diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 448b34f20a5..1335e9c2642 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,4 +1,14 @@
-
+
+
+
+
+### Community Note
+
+* Please vote on this pull request by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original pull request comment to help the community and maintainers prioritize this request
+* Please do not leave "+1" comments, they generate extra noise for pull request followers and do not help prioritize the request
+
+
+
Fixes #0000
Changes proposed in this pull request:
@@ -9,7 +19,7 @@ Changes proposed in this pull request:
Output from acceptance testing:
```
-$ make testacc TESTARGS='-run=TestAccAWSAvailabilityZones'
+$ make testacc TESTARGS='-run=TestAccXXX'
...
```
diff --git a/.travis.yml b/.travis.yml
index dfd36347151..faa8e660d1c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,7 +4,6 @@ services:
- docker
language: go
go:
-- "1.11.1"
go_import_path: github.com/terraform-providers/terraform-provider-aws
env:
GOFLAGS=-mod=vendor
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f4d542e0b92..d9ef1aae472 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,95 @@
+## 2.1.0 (March 07, 2019)
+
+FEATURES:
+
+* **New Resource:** `aws_route53_resolver_endpoint` ([#6563](https://github.com/terraform-providers/terraform-provider-aws/issues/6563))
+
+ENHANCEMENTS:
+
+* data-source/aws_elastic_beanstalk_hosted_zone: Add eu-north-1 region support ([#7829](https://github.com/terraform-providers/terraform-provider-aws/issues/7829))
+* data-source/aws_redshift_service_account: Add us-gov-east-1 and us-gov-west-1 region mappings ([#7635](https://github.com/terraform-providers/terraform-provider-aws/issues/7635))
+* data-source/aws_s3_bucket: Add `bucket_regional_domain_name` attribute ([#7765](https://github.com/terraform-providers/terraform-provider-aws/issues/7765))
+* resource/aws_autoscaling_group: Support new `mixed_instances_policy` `instance_distribution` `spot_max_price` ability to unset with empty string ([#7821](https://github.com/terraform-providers/terraform-provider-aws/issues/7821))
+* resource/aws_dlm_lifecycle_policy: Add validation support for 2, 3, 4, 6, and 8 in `policy_details` `schedule` `create_rule` `interval` argument (support shorter intervals) ([#7751](https://github.com/terraform-providers/terraform-provider-aws/issues/7751))
+* resource/aws_ec2_client_vpn_endpoint: Add `tags` argument ([#7619](https://github.com/terraform-providers/terraform-provider-aws/issues/7619))
+* resource/aws_ecs_service: Support plan time validation of new `health_check_grace_period_seconds` max of `2147483647` ([#7806](https://github.com/terraform-providers/terraform-provider-aws/issues/7806))
+* resource/aws_lb_target_group: Add `lambda_multi_value_headers_enabled` argument ([#7648](https://github.com/terraform-providers/terraform-provider-aws/issues/7648))
+* resource/aws_ram_resource_share: Add `arn` attribute ([#7634](https://github.com/terraform-providers/terraform-provider-aws/issues/7634))
+* resource/aws_s3_bucket: Add plan time length validation for `bucket` and `bucket_prefix` arguments ([#7778](https://github.com/terraform-providers/terraform-provider-aws/issues/7778))
+
+BUG FIXES:
+
+* resource/aws_autoscaling_group: Allow configuration of `mixed_instances_policy` `instance_distribution` `on_demand_base_capacity` argument to 0 ([#7821](https://github.com/terraform-providers/terraform-provider-aws/issues/7821))
+* resource/aws_cloudfront_distribution: Remove problematic `viewer_certificate` configuration block argument `ConflictsWith` usage from version 2.0.0 ([#7794](https://github.com/terraform-providers/terraform-provider-aws/issues/7794))
+* resource/aws_cloudfront_distribution: Skip disabling distributions on deletion for previously disabled distributions ([#7794](https://github.com/terraform-providers/terraform-provider-aws/issues/7794))
+* resource/aws_cloudfront_distribution: Retry on `PreconditionFailed` error messages after disabling distribution on deletion ([#7794](https://github.com/terraform-providers/terraform-provider-aws/issues/7794))
+* resource/aws_cloudfront_distribution: Wait for creation and update deployments to complete ([#7794](https://github.com/terraform-providers/terraform-provider-aws/issues/7794))
+* resource/aws_cloudfront_distribution: Prevent one minute timeout error for creation and update errors due to throttling ([#7809](https://github.com/terraform-providers/terraform-provider-aws/issues/7809))
+* resource/aws_db_instance: Properly set `engine_version` with `snapshot_identifier` ([#7738](https://github.com/terraform-providers/terraform-provider-aws/issues/7738))
+* resource/aws_dynamodb_table: Prevent perpetual plan differences with `ttl` configuration block `enabled` argument set to `false` ([#3960](https://github.com/terraform-providers/terraform-provider-aws/issues/3960))
+* resource/aws_ecs_service: Ensure `placement_strategy` removal in version 2.0.0 does not force recreation ([#7790](https://github.com/terraform-providers/terraform-provider-aws/issues/7790))
+* resource/aws_guardduty_detector: Prevent GuardDuty member accounts with unconfigured `finding_publishing_frequency` from triggering update errors ([#7804](https://github.com/terraform-providers/terraform-provider-aws/issues/7804))
+* resource/aws_launch_configuration: Prevent `ResourceInUse` errors caused by eventual consistency during deletion ([#7819](https://github.com/terraform-providers/terraform-provider-aws/issues/7819))
+* resource/aws_s3_bucket_notification: Prevent crash with empty filters configuration ([#7791](https://github.com/terraform-providers/terraform-provider-aws/issues/7791))
+
+## 2.0.0 (February 27, 2019)
+
+NOTES:
+
+* Full documentation about this update, including Terraform provider version pinning and configuration examples, can be found in the [Terraform AWS Provider Version 2 Upgrade Guide](https://www.terraform.io/docs/providers/aws/guides/version-2-upgrade.html)
+
+BREAKING CHANGES:
+
+* provider: Return error on AWS Account ID lookup failure during initialization (unlesss `skip_requesting_account_id = true`) ([#7737](https://github.com/terraform-providers/terraform-provider-aws/issues/7737))
+* data-source/aws_ami: Require `owners` argument ([#5576](https://github.com/terraform-providers/terraform-provider-aws/issues/5576))
+* data-source/aws_ami_ids: Require `owners` argument ([#5576](https://github.com/terraform-providers/terraform-provider-aws/issues/5576))
+* data-source/aws_iam_role: Remove deprecated attributes ([#7696](https://github.com/terraform-providers/terraform-provider-aws/issues/7696))
+* data-source/aws_kms_secret: Remove data source (replaced with `aws_kms_secrets` data source) ([#7657](https://github.com/terraform-providers/terraform-provider-aws/issues/7657))
+* data-source/aws_lambda_function: Returns unqualified (no `:QUALIFIER` or `:VERSION` suffix) value in `arn` attribute by default and qualified (includes `:QUALIFIER` or `:VERSION` suffix) value in `qualified_arn` attribute. Previously the `arn` attribute included `:$LATEST` suffix by default which was not compatible with many other resources. To restore the previous default behavior, set the `qualifier` argument to `$LATEST` and reference the `qualified_arn` attribute. ([#7663](https://github.com/terraform-providers/terraform-provider-aws/issues/7663))
+* data-source/aws_region: Remove deprecated `current` argument ([#7697](https://github.com/terraform-providers/terraform-provider-aws/issues/7697))
+* resource/aws_api_gateway_api_key: Remove deprecated `stage_key` configuration block ([#7698](https://github.com/terraform-providers/terraform-provider-aws/issues/7698))
+* resource/aws_api_gateway_integration: Remove deprecated `request_parameters_in_json` argument (replaced with `request_parameters` argument) ([#7699](https://github.com/terraform-providers/terraform-provider-aws/issues/7699))
+* resource/aws_api-gateway_integration_response: Remove deprecated `response_parameters_in_json` argument (replaced with `response_parameters` argument) ([#7700](https://github.com/terraform-providers/terraform-provider-aws/issues/7700))
+* resource/aws_api_gateway_method: Remove deprecated `request_parameters_in_json` argument (replaced with `request_parameters` argument) ([#7701](https://github.com/terraform-providers/terraform-provider-aws/issues/7701))
+* resource/aws_api_gateway_method_response: Remove deprecated `response_parameters_in_json` argument (replaced with `response_parameters` argument) ([#7704](https://github.com/terraform-providers/terraform-provider-aws/issues/7704))
+* resource/aws_appautoscaling_policy: Remove deprecated arguments (replaced with `step_scaling_policy_configuration` configuration block) ([#7706](https://github.com/terraform-providers/terraform-provider-aws/issues/7706))
+* resource/aws_autoscaling_policy: Remove deprecated `min_adjustment_step` argument (replaced with `min_adjustment_magnitude` argument) ([#7707](https://github.com/terraform-providers/terraform-provider-aws/issues/7707))
+* resource/aws_batch_compute_environment: Remove deprecated `ecc_cluster_arn` attribute (replaced with `ecs_cluster_arn` attribute) ([#7708](https://github.com/terraform-providers/terraform-provider-aws/issues/7708))
+* resource/aws_cloudfront_distribution: Remove deprecated `cache_behaviors` configuration block (replaced with `ordered_cache_behaviors` configuration block) ([#7710](https://github.com/terraform-providers/terraform-provider-aws/issues/7710))
+* resource/aws_cognito_user_pool: Ensure only `email_verification_message` argument or `verification_message_template` configuration block `email_message` argument is configured ([#2425](https://github.com/terraform-providers/terraform-provider-aws/issues/2425))
+* resource/aws_cognito_user_pool: Ensure only `email_verification_subject` argument or `verification_message_template` configuration block `email_subject` argument is configured ([#2425](https://github.com/terraform-providers/terraform-provider-aws/issues/2425))
+* resource/aws_cognito_user_pool: Ensure only `sms_verification_message` argument or `verification_message_template` configuration block `sms_message` argument is defined ([#2425](https://github.com/terraform-providers/terraform-provider-aws/issues/2425))
+* resource/aws_dx_lag: Remove deprecated `number_of_connections` argument and delete unmanaged connection during resource creation ([#7711](https://github.com/terraform-providers/terraform-provider-aws/issues/7711))
+* resource/aws_ecs_service: Remove deprecated `placement_strategy` configuration block (replaced with `ordered_placement_strategy` configuration block) ([#7712](https://github.com/terraform-providers/terraform-provider-aws/issues/7712))
+* resource/aws_efs_file_system: Remove deprecated `reference_name` argument (replaced with `creation_token` argument) ([#7713](https://github.com/terraform-providers/terraform-provider-aws/issues/7713))
+* resource/aws_elasticache_cluster: Remove deprecated `availability_zones` argument (replaced with `preferred_availability_zones` argument) ([#7714](https://github.com/terraform-providers/terraform-provider-aws/issues/7714))
+* resource/aws_instance: Remove deprecated top-level `network_interface_id` attribute ([#1193](https://github.com/terraform-providers/terraform-provider-aws/issues/1193)] / [[#7715](https://github.com/terraform-providers/terraform-provider-aws/issues/7715))
+* resource/aws_instance: Remove hardcoded AWS China prevention of tagging on creation ([#7654](https://github.com/terraform-providers/terraform-provider-aws/issues/7654))
+* resource/aws_lambda_function: Setting `reserved_concurrent_executions` to `0` will now disable Lambda Function invocations, causing downtime for the Lambda Function. Previously `reserved_concurrent_executions` accepted `0` and below for unreserved concurrency, which means it was not previously possible to disable invocations. The argument now differentiates between a new value for unreserved concurrency (`-1`) and disabling Lambda invocations (`0`). If previously configuring this value to `0` for unreserved concurrency, update the configured value to `-1` or the resource will disable Lambda Function invocations on update. If previously unconfigured, the argument does not require any changes. See the [Lambda User Guide](https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html) for more information about concurrency.
+* resource/aws_lambda_layer_version: Swap `arn` and `layer_arn` attribute values ([#7664](https://github.com/terraform-providers/terraform-provider-aws/issues/7664))
+* resource/aws_network_acl: Remove deprecated `subnet_id` argument (replaced with `subnet_ids` argument) ([#7716](https://github.com/terraform-providers/terraform-provider-aws/issues/7716))
+* resource/aws_redshift_cluster: Remove deprecated `bucket_name`, `enable_logging`, and `s3_key_prefix` arguments (replaced with `logging` configuration block) ([#7717](https://github.com/terraform-providers/terraform-provider-aws/issues/7717))
+* resource/aws_route_table: Resource import no longer imports `aws_route`, `aws_route_table_association`, and `aws_main_route_table_association` resources into the Terraform state ([#5657](https://github.com/terraform-providers/terraform-provider-aws/issues/5657))
+* resource/aws_route53_record: Require import for existing records (use deprecated `allow_overwrite` argument to temporarily reinstate the old behavior) ([#7734](https://github.com/terraform-providers/terraform-provider-aws/issues/7734))
+* resource/aws_route53_zone: Remove deprecated `vpc_id` and `vpc_region` arguments (replaced with `vpc` configuration block) ([#7695](https://github.com/terraform-providers/terraform-provider-aws/issues/7695))
+* resource/aws_s3_bucket_object: Remove hardcoded AWS China prevention of tagging ([#7654](https://github.com/terraform-providers/terraform-provider-aws/issues/7654))
+* resource/aws_wafregional_byte_match_set: Remove deprecated `byte_match_tuple` configuration block (replaced with `byte_match_tuples` configuration block) ([#7718](https://github.com/terraform-providers/terraform-provider-aws/issues/7718))
+
+ENHANCEMENTS:
+
+* data-source/aws_lambda_function: Add `tags` attribute ([#7663](https://github.com/terraform-providers/terraform-provider-aws/issues/7663))
+* resource/aws_dx_lag: Delete unmanaged connection during resource creation ([#7711](https://github.com/terraform-providers/terraform-provider-aws/issues/7711))
+* resource/aws_lambda_function: Disable Lambda Function invocations by setting `reserved_concurrent_executions` to `0` ([#3806](https://github.com/terraform-providers/terraform-provider-aws/issues/3806))
+
+BUG FIXES:
+
+* data-source/aws_lambda_function: Properly return error for missing function ([#7663](https://github.com/terraform-providers/terraform-provider-aws/issues/7663))
+* resource/aws_appautoscaling_policy: Properly read `step_scaling_policy_configuration` into Terraform state ([#7706](https://github.com/terraform-providers/terraform-provider-aws/issues/7706))
+* resource/aws_cloudfront_distribution: Adjust TypeSet and TypeList attributes for better difference handling ([#7732](https://github.com/terraform-providers/terraform-provider-aws/issues/7732))
+* resource/aws_redshift_cluster: Properly read logging into Terraform state ([#7717](https://github.com/terraform-providers/terraform-provider-aws/issues/7717))
+* resource/aws_route53_record: Existing Route 53 Records are no longer silently overwritten during resource creation by default (use `terraform import` or deprecated `allow_overwrite` argument) ([#7734](https://github.com/terraform-providers/terraform-provider-aws/issues/7734))
+* resource/aws_vpn_connection: Remove configurability of read-only `customer_gateway_configuration`, `routes`, and `vgw_telemetry` attributes ([#7636](https://github.com/terraform-providers/terraform-provider-aws/issues/7636))
+
## 1.60.0 (February 22, 2019)
ENHANCEMENTS:
diff --git a/README.md b/README.md
index 28dfaee8682..77d74078b42 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ Requirements
------------
- [Terraform](https://www.terraform.io/downloads.html) 0.10+
-- [Go](https://golang.org/doc/install) 1.11 (to build the provider plugin)
+- [Go](https://golang.org/doc/install) 1.12 (to build the provider plugin)
Building The Provider
---------------------
@@ -37,7 +37,7 @@ If you're building the provider, follow the instructions to [install it as a plu
Developing the Provider
---------------------------
-If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (version 1.11+ is *required*). You'll also need to correctly setup a [GOPATH](http://golang.org/doc/code.html#GOPATH), as well as adding `$GOPATH/bin` to your `$PATH`.
+If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (version 1.12+ is *required*). You'll also need to correctly setup a [GOPATH](http://golang.org/doc/code.html#GOPATH), as well as adding `$GOPATH/bin` to your `$PATH`.
To compile the provider, run `make build`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory.
diff --git a/aws/auth_helpers_test.go b/aws/auth_helpers_test.go
deleted file mode 100644
index 606e47de24e..00000000000
--- a/aws/auth_helpers_test.go
+++ /dev/null
@@ -1,1001 +0,0 @@
-package aws
-
-import (
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
- "net/http/httptest"
- "os"
- "testing"
-
- "github.com/aws/aws-sdk-go/aws/awserr"
- "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds"
- "github.com/aws/aws-sdk-go/service/iam"
- "github.com/aws/aws-sdk-go/service/sts"
-)
-
-func TestGetAccountIDAndPartition(t *testing.T) {
- var testCases = []struct {
- Description string
- AuthProviderName string
- EC2MetadataEndpoints []*endpoint
- IAMEndpoints []*awsMockEndpoint
- STSEndpoints []*awsMockEndpoint
- ErrCount int
- ExpectedAccountID string
- ExpectedPartition string
- }{
- {
- Description: "EC2 Metadata over iam:GetUser when using EC2 Instance Profile",
- AuthProviderName: ec2rolecreds.ProviderName,
- EC2MetadataEndpoints: append(ec2metadata_securityCredentialsEndpoints, ec2metadata_instanceIdEndpoint, ec2metadata_iamInfoEndpoint),
- IAMEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetUser&Version=2010-05-08"},
- Response: &awsMockResponse{200, iamResponse_GetUser_valid, "text/xml"},
- },
- },
- ExpectedAccountID: ec2metadata_iamInfoEndpoint_expectedAccountID,
- ExpectedPartition: ec2metadata_iamInfoEndpoint_expectedPartition,
- },
- {
- Description: "Mimic the metadata service mocked by Hologram (https://github.com/AdRoll/hologram)",
- AuthProviderName: ec2rolecreds.ProviderName,
- EC2MetadataEndpoints: ec2metadata_securityCredentialsEndpoints,
- IAMEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetUser&Version=2010-05-08"},
- Response: &awsMockResponse{403, iamResponse_GetUser_unauthorized, "text/xml"},
- },
- },
- STSEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetCallerIdentity&Version=2011-06-15"},
- Response: &awsMockResponse{200, stsResponse_GetCallerIdentity_valid, "text/xml"},
- },
- },
- ExpectedAccountID: stsResponse_GetCallerIdentity_valid_expectedAccountID,
- ExpectedPartition: stsResponse_GetCallerIdentity_valid_expectedPartition,
- },
- {
- Description: "iam:ListRoles if iam:GetUser AccessDenied and sts:GetCallerIdentity fails",
- IAMEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetUser&Version=2010-05-08"},
- Response: &awsMockResponse{403, iamResponse_GetUser_unauthorized, "text/xml"},
- },
- {
- Request: &awsMockRequest{"POST", "/", "Action=ListRoles&MaxItems=1&Version=2010-05-08"},
- Response: &awsMockResponse{200, iamResponse_ListRoles_valid, "text/xml"},
- },
- },
- STSEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetCallerIdentity&Version=2011-06-15"},
- Response: &awsMockResponse{403, stsResponse_GetCallerIdentity_unauthorized, "text/xml"},
- },
- },
- ExpectedAccountID: iamResponse_ListRoles_valid_expectedAccountID,
- ExpectedPartition: iamResponse_ListRoles_valid_expectedPartition,
- },
- {
- Description: "iam:ListRoles if iam:GetUser ValidationError and sts:GetCallerIdentity fails",
- IAMEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetUser&Version=2010-05-08"},
- Response: &awsMockResponse{400, iamResponse_GetUser_federatedFailure, "text/xml"},
- },
- {
- Request: &awsMockRequest{"POST", "/", "Action=ListRoles&MaxItems=1&Version=2010-05-08"},
- Response: &awsMockResponse{200, iamResponse_ListRoles_valid, "text/xml"},
- },
- },
- STSEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetCallerIdentity&Version=2011-06-15"},
- Response: &awsMockResponse{403, stsResponse_GetCallerIdentity_unauthorized, "text/xml"},
- },
- },
- ExpectedAccountID: iamResponse_ListRoles_valid_expectedAccountID,
- ExpectedPartition: iamResponse_ListRoles_valid_expectedPartition,
- },
- {
- Description: "Error when all endpoints fail",
- IAMEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetUser&Version=2010-05-08"},
- Response: &awsMockResponse{400, iamResponse_GetUser_federatedFailure, "text/xml"},
- },
- {
- Request: &awsMockRequest{"POST", "/", "Action=ListRoles&MaxItems=1&Version=2010-05-08"},
- Response: &awsMockResponse{403, iamResponse_ListRoles_unauthorized, "text/xml"},
- },
- },
- STSEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetCallerIdentity&Version=2011-06-15"},
- Response: &awsMockResponse{403, stsResponse_GetCallerIdentity_unauthorized, "text/xml"},
- },
- },
- ErrCount: 1,
- },
- }
-
- for _, testCase := range testCases {
- t.Run(testCase.Description, func(t *testing.T) {
- resetEnv := unsetEnv(t)
- defer resetEnv()
- // capture the test server's close method, to call after the test returns
- awsTs := awsMetadataApiMock(testCase.EC2MetadataEndpoints)
- defer awsTs()
-
- closeIam, iamSess, err := getMockedAwsApiSession("IAM", testCase.IAMEndpoints)
- defer closeIam()
- if err != nil {
- t.Fatal(err)
- }
-
- closeSts, stsSess, err := getMockedAwsApiSession("STS", testCase.STSEndpoints)
- defer closeSts()
- if err != nil {
- t.Fatal(err)
- }
-
- iamConn := iam.New(iamSess)
- stsConn := sts.New(stsSess)
-
- accountID, partition, err := GetAccountIDAndPartition(iamConn, stsConn, testCase.AuthProviderName)
- if err != nil && testCase.ErrCount == 0 {
- t.Fatalf("Expected no error, received error: %s", err)
- }
- if err == nil && testCase.ErrCount > 0 {
- t.Fatalf("Expected %d error(s), received none", testCase.ErrCount)
- }
- if accountID != testCase.ExpectedAccountID {
- t.Fatalf("Parsed account ID doesn't match with expected (%q != %q)", accountID, testCase.ExpectedAccountID)
- }
- if partition != testCase.ExpectedPartition {
- t.Fatalf("Parsed partition doesn't match with expected (%q != %q)", partition, testCase.ExpectedPartition)
- }
- })
- }
-}
-
-func TestGetAccountIDAndPartitionFromEC2Metadata(t *testing.T) {
- t.Run("EC2 metadata success", func(t *testing.T) {
- resetEnv := unsetEnv(t)
- defer resetEnv()
- // capture the test server's close method, to call after the test returns
- awsTs := awsMetadataApiMock(append(ec2metadata_securityCredentialsEndpoints, ec2metadata_instanceIdEndpoint, ec2metadata_iamInfoEndpoint))
- defer awsTs()
-
- id, partition, err := GetAccountIDAndPartitionFromEC2Metadata()
- if err != nil {
- t.Fatalf("Getting account ID from EC2 metadata API failed: %s", err)
- }
-
- if id != ec2metadata_iamInfoEndpoint_expectedAccountID {
- t.Fatalf("Expected account ID: %s, given: %s", ec2metadata_iamInfoEndpoint_expectedAccountID, id)
- }
- if partition != ec2metadata_iamInfoEndpoint_expectedPartition {
- t.Fatalf("Expected partition: %s, given: %s", ec2metadata_iamInfoEndpoint_expectedPartition, partition)
- }
- })
-}
-
-func TestGetAccountIDAndPartitionFromIAMGetUser(t *testing.T) {
- var testCases = []struct {
- Description string
- MockEndpoints []*awsMockEndpoint
- ErrCount int
- ExpectedAccountID string
- ExpectedPartition string
- }{
- {
- Description: "Ignore iam:GetUser failure with federated user",
- MockEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetUser&Version=2010-05-08"},
- Response: &awsMockResponse{400, iamResponse_GetUser_federatedFailure, "text/xml"},
- },
- },
- ErrCount: 0,
- },
- {
- Description: "Ignore iam:GetUser failure with unauthorized user",
- MockEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetUser&Version=2010-05-08"},
- Response: &awsMockResponse{403, iamResponse_GetUser_unauthorized, "text/xml"},
- },
- },
- ErrCount: 0,
- },
- {
- Description: "iam:GetUser success",
- MockEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetUser&Version=2010-05-08"},
- Response: &awsMockResponse{200, iamResponse_GetUser_valid, "text/xml"},
- },
- },
- ExpectedAccountID: iamResponse_GetUser_valid_expectedAccountID,
- ExpectedPartition: iamResponse_GetUser_valid_expectedPartition,
- },
- }
-
- for _, testCase := range testCases {
- t.Run(testCase.Description, func(t *testing.T) {
- closeIam, iamSess, err := getMockedAwsApiSession("IAM", testCase.MockEndpoints)
- defer closeIam()
- if err != nil {
- t.Fatal(err)
- }
-
- iamConn := iam.New(iamSess)
-
- accountID, partition, err := GetAccountIDAndPartitionFromIAMGetUser(iamConn)
- if err != nil && testCase.ErrCount == 0 {
- t.Fatalf("Expected no error, received error: %s", err)
- }
- if err == nil && testCase.ErrCount > 0 {
- t.Fatalf("Expected %d error(s), received none", testCase.ErrCount)
- }
- if accountID != testCase.ExpectedAccountID {
- t.Fatalf("Parsed account ID doesn't match with expected (%q != %q)", accountID, testCase.ExpectedAccountID)
- }
- if partition != testCase.ExpectedPartition {
- t.Fatalf("Parsed partition doesn't match with expected (%q != %q)", partition, testCase.ExpectedPartition)
- }
- })
- }
-}
-
-func TestGetAccountIDAndPartitionFromIAMListRoles(t *testing.T) {
- var testCases = []struct {
- Description string
- MockEndpoints []*awsMockEndpoint
- ErrCount int
- ExpectedAccountID string
- ExpectedPartition string
- }{
- {
- Description: "iam:ListRoles unauthorized",
- MockEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=ListRoles&MaxItems=1&Version=2010-05-08"},
- Response: &awsMockResponse{403, iamResponse_ListRoles_unauthorized, "text/xml"},
- },
- },
- ErrCount: 1,
- },
- {
- Description: "iam:ListRoles success",
- MockEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=ListRoles&MaxItems=1&Version=2010-05-08"},
- Response: &awsMockResponse{200, iamResponse_ListRoles_valid, "text/xml"},
- },
- },
- ExpectedAccountID: iamResponse_ListRoles_valid_expectedAccountID,
- ExpectedPartition: iamResponse_ListRoles_valid_expectedPartition,
- },
- }
-
- for _, testCase := range testCases {
- t.Run(testCase.Description, func(t *testing.T) {
- closeIam, iamSess, err := getMockedAwsApiSession("IAM", testCase.MockEndpoints)
- defer closeIam()
- if err != nil {
- t.Fatal(err)
- }
-
- iamConn := iam.New(iamSess)
-
- accountID, partition, err := GetAccountIDAndPartitionFromIAMListRoles(iamConn)
- if err != nil && testCase.ErrCount == 0 {
- t.Fatalf("Expected no error, received error: %s", err)
- }
- if err == nil && testCase.ErrCount > 0 {
- t.Fatalf("Expected %d error(s), received none", testCase.ErrCount)
- }
- if accountID != testCase.ExpectedAccountID {
- t.Fatalf("Parsed account ID doesn't match with expected (%q != %q)", accountID, testCase.ExpectedAccountID)
- }
- if partition != testCase.ExpectedPartition {
- t.Fatalf("Parsed partition doesn't match with expected (%q != %q)", partition, testCase.ExpectedPartition)
- }
- })
- }
-}
-
-func TestGetAccountIDAndPartitionFromSTSGetCallerIdentity(t *testing.T) {
- var testCases = []struct {
- Description string
- MockEndpoints []*awsMockEndpoint
- ErrCount int
- ExpectedAccountID string
- ExpectedPartition string
- }{
- {
- Description: "sts:GetCallerIdentity unauthorized",
- MockEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetCallerIdentity&Version=2011-06-15"},
- Response: &awsMockResponse{403, stsResponse_GetCallerIdentity_unauthorized, "text/xml"},
- },
- },
- ErrCount: 1,
- },
- {
- Description: "sts:GetCallerIdentity success",
- MockEndpoints: []*awsMockEndpoint{
- {
- Request: &awsMockRequest{"POST", "/", "Action=GetCallerIdentity&Version=2011-06-15"},
- Response: &awsMockResponse{200, stsResponse_GetCallerIdentity_valid, "text/xml"},
- },
- },
- ExpectedAccountID: stsResponse_GetCallerIdentity_valid_expectedAccountID,
- ExpectedPartition: stsResponse_GetCallerIdentity_valid_expectedPartition,
- },
- }
-
- for _, testCase := range testCases {
- t.Run(testCase.Description, func(t *testing.T) {
- closeSts, stsSess, err := getMockedAwsApiSession("STS", testCase.MockEndpoints)
- defer closeSts()
- if err != nil {
- t.Fatal(err)
- }
-
- stsConn := sts.New(stsSess)
-
- accountID, partition, err := GetAccountIDAndPartitionFromSTSGetCallerIdentity(stsConn)
- if err != nil && testCase.ErrCount == 0 {
- t.Fatalf("Expected no error, received error: %s", err)
- }
- if err == nil && testCase.ErrCount > 0 {
- t.Fatalf("Expected %d error(s), received none", testCase.ErrCount)
- }
- if accountID != testCase.ExpectedAccountID {
- t.Fatalf("Parsed account ID doesn't match with expected (%q != %q)", accountID, testCase.ExpectedAccountID)
- }
- if partition != testCase.ExpectedPartition {
- t.Fatalf("Parsed partition doesn't match with expected (%q != %q)", partition, testCase.ExpectedPartition)
- }
- })
- }
-}
-
-func TestAWSParseAccountIDAndPartitionFromARN(t *testing.T) {
- var testCases = []struct {
- InputARN string
- ErrCount int
- ExpectedAccountID string
- ExpectedPartition string
- }{
- {
- InputARN: "invalid-arn",
- ErrCount: 1,
- },
- {
- InputARN: "arn:aws:iam::123456789012:instance-profile/name",
- ExpectedAccountID: "123456789012",
- ExpectedPartition: "aws",
- },
- {
- InputARN: "arn:aws:iam::123456789012:user/name",
- ExpectedAccountID: "123456789012",
- ExpectedPartition: "aws",
- },
- {
- InputARN: "arn:aws:sts::123456789012:assumed-role/name",
- ExpectedAccountID: "123456789012",
- ExpectedPartition: "aws",
- },
- {
- InputARN: "arn:aws-us-gov:sts::123456789012:assumed-role/name",
- ExpectedAccountID: "123456789012",
- ExpectedPartition: "aws-us-gov",
- },
- }
-
- for _, testCase := range testCases {
- t.Run(testCase.InputARN, func(t *testing.T) {
- accountID, partition, err := parseAccountIDAndPartitionFromARN(testCase.InputARN)
- if err != nil && testCase.ErrCount == 0 {
- t.Fatalf("Expected no error when parsing ARN, received error: %s", err)
- }
- if err == nil && testCase.ErrCount > 0 {
- t.Fatalf("Expected %d error(s) when parsing ARN, received none", testCase.ErrCount)
- }
- if accountID != testCase.ExpectedAccountID {
- t.Fatalf("Parsed account ID doesn't match with expected (%q != %q)", accountID, testCase.ExpectedAccountID)
- }
- if partition != testCase.ExpectedPartition {
- t.Fatalf("Parsed partition doesn't match with expected (%q != %q)", partition, testCase.ExpectedPartition)
- }
- })
- }
-}
-
-func TestAWSGetCredentials_shouldError(t *testing.T) {
- resetEnv := unsetEnv(t)
- defer resetEnv()
- cfg := Config{}
-
- c, err := GetCredentials(&cfg)
- if awsErr, ok := err.(awserr.Error); ok {
- if awsErr.Code() != "NoCredentialProviders" {
- t.Fatal("Expected NoCredentialProviders error")
- }
- }
- _, err = c.Get()
- if awsErr, ok := err.(awserr.Error); ok {
- if awsErr.Code() != "NoCredentialProviders" {
- t.Fatal("Expected NoCredentialProviders error")
- }
- }
- if err == nil {
- t.Fatal("Expected an error with empty env, keys, and IAM in AWS Config")
- }
-}
-
-func TestAWSGetCredentials_shouldBeStatic(t *testing.T) {
- simple := []struct {
- Key, Secret, Token string
- }{
- {
- Key: "test",
- Secret: "secret",
- }, {
- Key: "test",
- Secret: "test",
- Token: "test",
- },
- }
-
- for _, c := range simple {
- cfg := Config{
- AccessKey: c.Key,
- SecretKey: c.Secret,
- Token: c.Token,
- }
-
- creds, err := GetCredentials(&cfg)
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
- if creds == nil {
- t.Fatal("Expected a static creds provider to be returned")
- }
-
- v, err := creds.Get()
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
-
- if v.AccessKeyID != c.Key {
- t.Fatalf("AccessKeyID mismatch, expected: (%s), got (%s)", c.Key, v.AccessKeyID)
- }
- if v.SecretAccessKey != c.Secret {
- t.Fatalf("SecretAccessKey mismatch, expected: (%s), got (%s)", c.Secret, v.SecretAccessKey)
- }
- if v.SessionToken != c.Token {
- t.Fatalf("SessionToken mismatch, expected: (%s), got (%s)", c.Token, v.SessionToken)
- }
- }
-}
-
-// TestAWSGetCredentials_shouldIAM is designed to test the scenario of running Terraform
-// from an EC2 instance, without environment variables or manually supplied
-// credentials.
-func TestAWSGetCredentials_shouldIAM(t *testing.T) {
- // clear AWS_* environment variables
- resetEnv := unsetEnv(t)
- defer resetEnv()
-
- // capture the test server's close method, to call after the test returns
- ts := awsMetadataApiMock(append(ec2metadata_securityCredentialsEndpoints, ec2metadata_instanceIdEndpoint, ec2metadata_iamInfoEndpoint))
- defer ts()
-
- // An empty config, no key supplied
- cfg := Config{}
-
- creds, err := GetCredentials(&cfg)
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
- if creds == nil {
- t.Fatal("Expected a static creds provider to be returned")
- }
-
- v, err := creds.Get()
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
- if v.AccessKeyID != "somekey" {
- t.Fatalf("AccessKeyID mismatch, expected: (somekey), got (%s)", v.AccessKeyID)
- }
- if v.SecretAccessKey != "somesecret" {
- t.Fatalf("SecretAccessKey mismatch, expected: (somesecret), got (%s)", v.SecretAccessKey)
- }
- if v.SessionToken != "sometoken" {
- t.Fatalf("SessionToken mismatch, expected: (sometoken), got (%s)", v.SessionToken)
- }
-}
-
-// TestAWSGetCredentials_shouldIAM is designed to test the scenario of running Terraform
-// from an EC2 instance, without environment variables or manually supplied
-// credentials.
-func TestAWSGetCredentials_shouldIgnoreIAM(t *testing.T) {
- resetEnv := unsetEnv(t)
- defer resetEnv()
- // capture the test server's close method, to call after the test returns
- ts := awsMetadataApiMock(append(ec2metadata_securityCredentialsEndpoints, ec2metadata_instanceIdEndpoint, ec2metadata_iamInfoEndpoint))
- defer ts()
- simple := []struct {
- Key, Secret, Token string
- }{
- {
- Key: "test",
- Secret: "secret",
- }, {
- Key: "test",
- Secret: "test",
- Token: "test",
- },
- }
-
- for _, c := range simple {
- cfg := Config{
- AccessKey: c.Key,
- SecretKey: c.Secret,
- Token: c.Token,
- }
-
- creds, err := GetCredentials(&cfg)
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
- if creds == nil {
- t.Fatal("Expected a static creds provider to be returned")
- }
-
- v, err := creds.Get()
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
- if v.AccessKeyID != c.Key {
- t.Fatalf("AccessKeyID mismatch, expected: (%s), got (%s)", c.Key, v.AccessKeyID)
- }
- if v.SecretAccessKey != c.Secret {
- t.Fatalf("SecretAccessKey mismatch, expected: (%s), got (%s)", c.Secret, v.SecretAccessKey)
- }
- if v.SessionToken != c.Token {
- t.Fatalf("SessionToken mismatch, expected: (%s), got (%s)", c.Token, v.SessionToken)
- }
- }
-}
-
-func TestAWSGetCredentials_shouldErrorWithInvalidEndpoint(t *testing.T) {
- resetEnv := unsetEnv(t)
- defer resetEnv()
- // capture the test server's close method, to call after the test returns
- ts := invalidAwsEnv(t)
- defer ts()
-
- creds, err := GetCredentials(&Config{})
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
- if creds == nil {
- t.Fatal("Expected a static creds provider to be returned")
- }
-
- v, err := creds.Get()
- if err == nil {
- t.Fatal("Expected error returned when getting creds w/ invalid EC2 endpoint")
- }
-
- if v.ProviderName != "" {
- t.Fatalf("Expected provider name to be empty, %q given", v.ProviderName)
- }
-}
-
-func TestAWSGetCredentials_shouldIgnoreInvalidEndpoint(t *testing.T) {
- resetEnv := unsetEnv(t)
- defer resetEnv()
- // capture the test server's close method, to call after the test returns
- ts := invalidAwsEnv(t)
- defer ts()
-
- creds, err := GetCredentials(&Config{AccessKey: "accessKey", SecretKey: "secretKey"})
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
- v, err := creds.Get()
- if err != nil {
- t.Fatalf("Getting static credentials w/ invalid EC2 endpoint failed: %s", err)
- }
- if creds == nil {
- t.Fatal("Expected a static creds provider to be returned")
- }
-
- if v.ProviderName != "StaticProvider" {
- t.Fatalf("Expected provider name to be %q, %q given", "StaticProvider", v.ProviderName)
- }
-
- if v.AccessKeyID != "accessKey" {
- t.Fatalf("Static Access Key %q doesn't match: %s", "accessKey", v.AccessKeyID)
- }
-
- if v.SecretAccessKey != "secretKey" {
- t.Fatalf("Static Secret Key %q doesn't match: %s", "secretKey", v.SecretAccessKey)
- }
-}
-
-func TestAWSGetCredentials_shouldCatchEC2RoleProvider(t *testing.T) {
- resetEnv := unsetEnv(t)
- defer resetEnv()
- // capture the test server's close method, to call after the test returns
- ts := awsMetadataApiMock(append(ec2metadata_securityCredentialsEndpoints, ec2metadata_instanceIdEndpoint, ec2metadata_iamInfoEndpoint))
- defer ts()
-
- creds, err := GetCredentials(&Config{})
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
- if creds == nil {
- t.Fatal("Expected an EC2Role creds provider to be returned")
- }
-
- v, err := creds.Get()
- if err != nil {
- t.Fatalf("Expected no error when getting creds: %s", err)
- }
- expectedProvider := "EC2RoleProvider"
- if v.ProviderName != expectedProvider {
- t.Fatalf("Expected provider name to be %q, %q given",
- expectedProvider, v.ProviderName)
- }
-}
-
-var credentialsFileContents = `[myprofile]
-aws_access_key_id = accesskey
-aws_secret_access_key = secretkey
-`
-
-func TestAWSGetCredentials_shouldBeShared(t *testing.T) {
- file, err := ioutil.TempFile(os.TempDir(), "terraform_aws_cred")
- if err != nil {
- t.Fatalf("Error writing temporary credentials file: %s", err)
- }
- _, err = file.WriteString(credentialsFileContents)
- if err != nil {
- t.Fatalf("Error writing temporary credentials to file: %s", err)
- }
- err = file.Close()
- if err != nil {
- t.Fatalf("Error closing temporary credentials file: %s", err)
- }
-
- defer os.Remove(file.Name())
-
- resetEnv := unsetEnv(t)
- defer resetEnv()
-
- if err := os.Setenv("AWS_PROFILE", "myprofile"); err != nil {
- t.Fatalf("Error resetting env var AWS_PROFILE: %s", err)
- }
- if err := os.Setenv("AWS_SHARED_CREDENTIALS_FILE", file.Name()); err != nil {
- t.Fatalf("Error resetting env var AWS_SHARED_CREDENTIALS_FILE: %s", err)
- }
-
- creds, err := GetCredentials(&Config{Profile: "myprofile", CredsFilename: file.Name()})
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
- if creds == nil {
- t.Fatal("Expected a provider chain to be returned")
- }
-
- v, err := creds.Get()
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
-
- if v.AccessKeyID != "accesskey" {
- t.Fatalf("AccessKeyID mismatch, expected (%s), got (%s)", "accesskey", v.AccessKeyID)
- }
-
- if v.SecretAccessKey != "secretkey" {
- t.Fatalf("SecretAccessKey mismatch, expected (%s), got (%s)", "accesskey", v.AccessKeyID)
- }
-}
-
-func TestAWSGetCredentials_shouldBeENV(t *testing.T) {
- // need to set the environment variables to a dummy string, as we don't know
- // what they may be at runtime without hardcoding here
- s := "some_env"
- resetEnv := setEnv(s, t)
-
- defer resetEnv()
-
- cfg := Config{}
- creds, err := GetCredentials(&cfg)
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
- if creds == nil {
- t.Fatalf("Expected a static creds provider to be returned")
- }
-
- v, err := creds.Get()
- if err != nil {
- t.Fatalf("Error gettings creds: %s", err)
- }
- if v.AccessKeyID != s {
- t.Fatalf("AccessKeyID mismatch, expected: (%s), got (%s)", s, v.AccessKeyID)
- }
- if v.SecretAccessKey != s {
- t.Fatalf("SecretAccessKey mismatch, expected: (%s), got (%s)", s, v.SecretAccessKey)
- }
- if v.SessionToken != s {
- t.Fatalf("SessionToken mismatch, expected: (%s), got (%s)", s, v.SessionToken)
- }
-}
-
-// unsetEnv unsets environment variables for testing a "clean slate" with no
-// credentials in the environment
-func unsetEnv(t *testing.T) func() {
- // Grab any existing AWS keys and preserve. In some tests we'll unset these, so
- // we need to have them and restore them after
- e := getEnv()
- if err := os.Unsetenv("AWS_ACCESS_KEY_ID"); err != nil {
- t.Fatalf("Error unsetting env var AWS_ACCESS_KEY_ID: %s", err)
- }
- if err := os.Unsetenv("AWS_SECRET_ACCESS_KEY"); err != nil {
- t.Fatalf("Error unsetting env var AWS_SECRET_ACCESS_KEY: %s", err)
- }
- if err := os.Unsetenv("AWS_SESSION_TOKEN"); err != nil {
- t.Fatalf("Error unsetting env var AWS_SESSION_TOKEN: %s", err)
- }
- if err := os.Unsetenv("AWS_PROFILE"); err != nil {
- t.Fatalf("Error unsetting env var AWS_PROFILE: %s", err)
- }
- if err := os.Unsetenv("AWS_SHARED_CREDENTIALS_FILE"); err != nil {
- t.Fatalf("Error unsetting env var AWS_SHARED_CREDENTIALS_FILE: %s", err)
- }
-
- return func() {
- // re-set all the envs we unset above
- if err := os.Setenv("AWS_ACCESS_KEY_ID", e.Key); err != nil {
- t.Fatalf("Error resetting env var AWS_ACCESS_KEY_ID: %s", err)
- }
- if err := os.Setenv("AWS_SECRET_ACCESS_KEY", e.Secret); err != nil {
- t.Fatalf("Error resetting env var AWS_SECRET_ACCESS_KEY: %s", err)
- }
- if err := os.Setenv("AWS_SESSION_TOKEN", e.Token); err != nil {
- t.Fatalf("Error resetting env var AWS_SESSION_TOKEN: %s", err)
- }
- if err := os.Setenv("AWS_PROFILE", e.Profile); err != nil {
- t.Fatalf("Error resetting env var AWS_PROFILE: %s", err)
- }
- if err := os.Setenv("AWS_SHARED_CREDENTIALS_FILE", e.CredsFilename); err != nil {
- t.Fatalf("Error resetting env var AWS_SHARED_CREDENTIALS_FILE: %s", err)
- }
- }
-}
-
-func setEnv(s string, t *testing.T) func() {
- e := getEnv()
- // Set all the envs to a dummy value
- if err := os.Setenv("AWS_ACCESS_KEY_ID", s); err != nil {
- t.Fatalf("Error setting env var AWS_ACCESS_KEY_ID: %s", err)
- }
- if err := os.Setenv("AWS_SECRET_ACCESS_KEY", s); err != nil {
- t.Fatalf("Error setting env var AWS_SECRET_ACCESS_KEY: %s", err)
- }
- if err := os.Setenv("AWS_SESSION_TOKEN", s); err != nil {
- t.Fatalf("Error setting env var AWS_SESSION_TOKEN: %s", err)
- }
- if err := os.Setenv("AWS_PROFILE", s); err != nil {
- t.Fatalf("Error setting env var AWS_PROFILE: %s", err)
- }
- if err := os.Setenv("AWS_SHARED_CREDENTIALS_FILE", s); err != nil {
- t.Fatalf("Error setting env var AWS_SHARED_CREDENTIALS_FLE: %s", err)
- }
-
- return func() {
- // re-set all the envs we unset above
- if err := os.Setenv("AWS_ACCESS_KEY_ID", e.Key); err != nil {
- t.Fatalf("Error resetting env var AWS_ACCESS_KEY_ID: %s", err)
- }
- if err := os.Setenv("AWS_SECRET_ACCESS_KEY", e.Secret); err != nil {
- t.Fatalf("Error resetting env var AWS_SECRET_ACCESS_KEY: %s", err)
- }
- if err := os.Setenv("AWS_SESSION_TOKEN", e.Token); err != nil {
- t.Fatalf("Error resetting env var AWS_SESSION_TOKEN: %s", err)
- }
- if err := os.Setenv("AWS_PROFILE", e.Profile); err != nil {
- t.Fatalf("Error setting env var AWS_PROFILE: %s", err)
- }
- if err := os.Setenv("AWS_SHARED_CREDENTIALS_FILE", s); err != nil {
- t.Fatalf("Error setting env var AWS_SHARED_CREDENTIALS_FLE: %s", err)
- }
- }
-}
-
-// awsMetadataApiMock establishes a httptest server to mock out the internal AWS Metadata
-// service. IAM Credentials are retrieved by the EC2RoleProvider, which makes
-// API calls to this internal URL. By replacing the server with a test server,
-// we can simulate an AWS environment
-func awsMetadataApiMock(endpoints []*endpoint) func() {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- w.Header().Set("Content-Type", "text/plain")
- w.Header().Add("Server", "MockEC2")
- log.Printf("[DEBUG] Mocker server received request to %q", r.RequestURI)
- for _, e := range endpoints {
- if r.RequestURI == e.Uri {
- fmt.Fprintln(w, e.Body)
- w.WriteHeader(200)
- return
- }
- }
- w.WriteHeader(400)
- }))
-
- os.Setenv("AWS_METADATA_URL", ts.URL+"/latest")
- return ts.Close
-}
-
-// invalidAwsEnv establishes a httptest server to simulate behaviour
-// when endpoint doesn't respond as expected
-func invalidAwsEnv(t *testing.T) func() {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- w.WriteHeader(400)
- }))
-
- os.Setenv("AWS_METADATA_URL", ts.URL+"/latest")
- return ts.Close
-}
-
-func getEnv() *currentEnv {
- // Grab any existing AWS keys and preserve. In some tests we'll unset these, so
- // we need to have them and restore them after
- return ¤tEnv{
- Key: os.Getenv("AWS_ACCESS_KEY_ID"),
- Secret: os.Getenv("AWS_SECRET_ACCESS_KEY"),
- Token: os.Getenv("AWS_SESSION_TOKEN"),
- Profile: os.Getenv("AWS_PROFILE"),
- CredsFilename: os.Getenv("AWS_SHARED_CREDENTIALS_FILE"),
- }
-}
-
-// struct to preserve the current environment
-type currentEnv struct {
- Key, Secret, Token, Profile, CredsFilename string
-}
-
-type endpoint struct {
- Uri string `json:"uri"`
- Body string `json:"body"`
-}
-
-var ec2metadata_instanceIdEndpoint = &endpoint{
- Uri: "/latest/meta-data/instance-id",
- Body: "mock-instance-id",
-}
-
-var ec2metadata_securityCredentialsEndpoints = []*endpoint{
- {
- Uri: "/latest/meta-data/iam/security-credentials/",
- Body: "test_role",
- },
- {
- Uri: "/latest/meta-data/iam/security-credentials/test_role",
- Body: "{\"Code\":\"Success\",\"LastUpdated\":\"2015-12-11T17:17:25Z\",\"Type\":\"AWS-HMAC\",\"AccessKeyId\":\"somekey\",\"SecretAccessKey\":\"somesecret\",\"Token\":\"sometoken\"}",
- },
-}
-
-var ec2metadata_iamInfoEndpoint = &endpoint{
- Uri: "/latest/meta-data/iam/info",
- Body: "{\"Code\": \"Success\",\"LastUpdated\": \"2016-03-17T12:27:32Z\",\"InstanceProfileArn\": \"arn:aws:iam::000000000000:instance-profile/my-instance-profile\",\"InstanceProfileId\": \"AIPAABCDEFGHIJKLMN123\"}",
-}
-
-const ec2metadata_iamInfoEndpoint_expectedAccountID = `000000000000`
-const ec2metadata_iamInfoEndpoint_expectedPartition = `aws`
-
-const iamResponse_GetUser_valid = `
-
-
- AIDACKCEVSQ6C2EXAMPLE
- /division_abc/subdivision_xyz/
- Bob
- arn:aws:iam::111111111111:user/division_abc/subdivision_xyz/Bob
- 2013-10-02T17:01:44Z
- 2014-10-10T14:37:51Z
-
-
-
- 7a62c49f-347e-4fc4-9331-6e8eEXAMPLE
-
-`
-
-const iamResponse_GetUser_valid_expectedAccountID = `111111111111`
-const iamResponse_GetUser_valid_expectedPartition = `aws`
-
-const iamResponse_GetUser_unauthorized = `
-
- Sender
- AccessDenied
- User: arn:aws:iam::123456789012:user/Bob is not authorized to perform: iam:GetUser on resource: arn:aws:iam::123456789012:user/Bob
-
- 7a62c49f-347e-4fc4-9331-6e8eEXAMPLE
-`
-
-const stsResponse_GetCallerIdentity_valid = `
-
- arn:aws:iam::222222222222:user/Alice
- AKIAI44QH8DHBEXAMPLE
- 222222222222
-
-
- 01234567-89ab-cdef-0123-456789abcdef
-
-`
-
-const stsResponse_GetCallerIdentity_valid_expectedAccountID = `222222222222`
-const stsResponse_GetCallerIdentity_valid_expectedPartition = `aws`
-
-const stsResponse_GetCallerIdentity_unauthorized = `
-
- Sender
- AccessDenied
- User: arn:aws:iam::123456789012:user/Bob is not authorized to perform: sts:GetCallerIdentity
-
- 01234567-89ab-cdef-0123-456789abcdef
-`
-
-const iamResponse_GetUser_federatedFailure = `
-
- Sender
- ValidationError
- Must specify userName when calling with non-User credentials
-
- 7a62c49f-347e-4fc4-9331-6e8eEXAMPLE
-`
-
-const iamResponse_ListRoles_valid = `
-
- true
- AWceSSsKsazQ4IEplT9o4hURCzBs00iavlEvEXAMPLE
-
-
- /
- %7B%22Version%22%3A%222008-10-17%22%2C%22Statement%22%3A%5B%7B%22Sid%22%3A%22%22%2C%22Effect%22%3A%22Allow%22%2C%22Principal%22%3A%7B%22Service%22%3A%22ec2.amazonaws.com%22%7D%2C%22Action%22%3A%22sts%3AAssumeRole%22%7D%5D%7D
- AROACKCEVSQ6C2EXAMPLE
- elasticbeanstalk-role
- arn:aws:iam::444444444444:role/elasticbeanstalk-role
- 2013-10-02T17:01:44Z
-
-
-
-
- 7a62c49f-347e-4fc4-9331-6e8eEXAMPLE
-
-`
-
-const iamResponse_ListRoles_valid_expectedAccountID = `444444444444`
-const iamResponse_ListRoles_valid_expectedPartition = `aws`
-
-const iamResponse_ListRoles_unauthorized = `
-
- Sender
- AccessDenied
- User: arn:aws:iam::123456789012:user/Bob is not authorized to perform: iam:ListRoles on resource: arn:aws:iam::123456789012:role/
-
- 7a62c49f-347e-4fc4-9331-6e8eEXAMPLE
-`
diff --git a/aws/awserr.go b/aws/awserr.go
index 7c944b923e0..09771aea759 100644
--- a/aws/awserr.go
+++ b/aws/awserr.go
@@ -19,19 +19,6 @@ func isAWSErr(err error, code string, message string) bool {
return false
}
-// IsAWSErrExtended returns true if the error matches all conditions
-// * err is of type awserr.Error
-// * Error.Code() matches code
-// * Error.Message() contains message
-// * Error.OrigErr() contains origErrMessage
-// Note: This function will be moved out of the aws package in the future.
-func IsAWSErrExtended(err error, code string, message string, origErrMessage string) bool {
- if !isAWSErr(err, code, message) {
- return false
- }
- return strings.Contains(err.(awserr.Error).OrigErr().Error(), origErrMessage)
-}
-
func retryOnAwsCode(code string, f func() (interface{}, error)) (interface{}, error) {
var resp interface{}
err := resource.Retry(1*time.Minute, func() *resource.RetryError {
diff --git a/aws/cloudfront_distribution_configuration_structure.go b/aws/cloudfront_distribution_configuration_structure.go
index f2214189531..f977ed39313 100644
--- a/aws/cloudfront_distribution_configuration_structure.go
+++ b/aws/cloudfront_distribution_configuration_structure.go
@@ -10,8 +10,6 @@ package aws
import (
"bytes"
"fmt"
- "reflect"
- "sort"
"strconv"
"time"
@@ -26,14 +24,6 @@ import (
// is used to set the zone_id attribute.
const cloudFrontRoute53ZoneID = "Z2FDTNDATAQYW2"
-// Define Sort interface for []*string so we can ensure the order of
-// geo_restrictions.locations
-type StringPtrSlice []*string
-
-func (p StringPtrSlice) Len() int { return len(p) }
-func (p StringPtrSlice) Less(i, j int) bool { return *p[i] < *p[j] }
-func (p StringPtrSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
-
// Assemble the *cloudfront.DistributionConfig variable. Calls out to various
// expander functions to convert attributes and sub-attributes to the various
// complex structures which are necessary to properly build the
@@ -42,37 +32,27 @@ func (p StringPtrSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
// Used by the aws_cloudfront_distribution Create and Update functions.
func expandDistributionConfig(d *schema.ResourceData) *cloudfront.DistributionConfig {
distributionConfig := &cloudfront.DistributionConfig{
+ CacheBehaviors: expandCacheBehaviors(d.Get("ordered_cache_behavior").([]interface{})),
+ CallerReference: aws.String(time.Now().Format(time.RFC3339Nano)),
+ Comment: aws.String(d.Get("comment").(string)),
CustomErrorResponses: expandCustomErrorResponses(d.Get("custom_error_response").(*schema.Set)),
- DefaultCacheBehavior: expandDefaultCacheBehavior(d.Get("default_cache_behavior").(*schema.Set).List()[0].(map[string]interface{})),
+ DefaultCacheBehavior: expandCloudFrontDefaultCacheBehavior(d.Get("default_cache_behavior").([]interface{})[0].(map[string]interface{})),
+ DefaultRootObject: aws.String(d.Get("default_root_object").(string)),
Enabled: aws.Bool(d.Get("enabled").(bool)),
IsIPV6Enabled: aws.Bool(d.Get("is_ipv6_enabled").(bool)),
HttpVersion: aws.String(d.Get("http_version").(string)),
Origins: expandOrigins(d.Get("origin").(*schema.Set)),
PriceClass: aws.String(d.Get("price_class").(string)),
+ WebACLId: aws.String(d.Get("web_acl_id").(string)),
}
- if v, ok := d.GetOk("ordered_cache_behavior"); ok {
- distributionConfig.CacheBehaviors = expandCacheBehaviors(v.([]interface{}))
- } else {
- distributionConfig.CacheBehaviors = expandCacheBehaviorsDeprecated(d.Get("cache_behavior").(*schema.Set))
- }
+
// This sets CallerReference if it's still pending computation (ie: new resource)
- if v, ok := d.GetOk("caller_reference"); !ok {
- distributionConfig.CallerReference = aws.String(time.Now().Format(time.RFC3339Nano))
- } else {
+ if v, ok := d.GetOk("caller_reference"); ok {
distributionConfig.CallerReference = aws.String(v.(string))
}
- if v, ok := d.GetOk("comment"); ok {
- distributionConfig.Comment = aws.String(v.(string))
- } else {
- distributionConfig.Comment = aws.String("")
- }
- if v, ok := d.GetOk("default_root_object"); ok {
- distributionConfig.DefaultRootObject = aws.String(v.(string))
- } else {
- distributionConfig.DefaultRootObject = aws.String("")
- }
+
if v, ok := d.GetOk("logging_config"); ok {
- distributionConfig.Logging = expandLoggingConfig(v.(*schema.Set).List()[0].(map[string]interface{}))
+ distributionConfig.Logging = expandLoggingConfig(v.([]interface{})[0].(map[string]interface{}))
} else {
distributionConfig.Logging = expandLoggingConfig(nil)
}
@@ -82,15 +62,10 @@ func expandDistributionConfig(d *schema.ResourceData) *cloudfront.DistributionCo
distributionConfig.Aliases = expandAliases(schema.NewSet(aliasesHash, []interface{}{}))
}
if v, ok := d.GetOk("restrictions"); ok {
- distributionConfig.Restrictions = expandRestrictions(v.(*schema.Set).List()[0].(map[string]interface{}))
+ distributionConfig.Restrictions = expandRestrictions(v.([]interface{})[0].(map[string]interface{}))
}
if v, ok := d.GetOk("viewer_certificate"); ok {
- distributionConfig.ViewerCertificate = expandViewerCertificate(v.(*schema.Set).List()[0].(map[string]interface{}))
- }
- if v, ok := d.GetOk("web_acl_id"); ok {
- distributionConfig.WebACLId = aws.String(v.(string))
- } else {
- distributionConfig.WebACLId = aws.String("")
+ distributionConfig.ViewerCertificate = expandViewerCertificate(v.([]interface{})[0].(map[string]interface{}))
}
return distributionConfig
@@ -144,13 +119,7 @@ func flattenDistributionConfig(d *schema.ResourceData, distributionConfig *cloud
}
}
if distributionConfig.CacheBehaviors != nil {
- if _, ok := d.GetOk("cache_behavior"); ok {
- err = d.Set("cache_behavior", flattenCacheBehaviorsDeprecated(distributionConfig.CacheBehaviors))
- } else {
- err = d.Set("ordered_cache_behavior", flattenCacheBehaviors(distributionConfig.CacheBehaviors))
- }
-
- if err != nil {
+ if err := d.Set("ordered_cache_behavior", flattenCacheBehaviors(distributionConfig.CacheBehaviors)); err != nil {
return err
}
}
@@ -158,7 +127,7 @@ func flattenDistributionConfig(d *schema.ResourceData, distributionConfig *cloud
if distributionConfig.Logging != nil && *distributionConfig.Logging.Enabled {
err = d.Set("logging_config", flattenLoggingConfig(distributionConfig.Logging))
} else {
- err = d.Set("logging_config", schema.NewSet(loggingConfigHash, []interface{}{}))
+ err = d.Set("logging_config", []interface{}{})
}
if err != nil {
return err
@@ -186,93 +155,8 @@ func flattenDistributionConfig(d *schema.ResourceData, distributionConfig *cloud
return nil
}
-func expandDefaultCacheBehavior(m map[string]interface{}) *cloudfront.DefaultCacheBehavior {
- cb := expandCacheBehaviorDeprecated(m)
- var dcb cloudfront.DefaultCacheBehavior
-
- simpleCopyStruct(cb, &dcb)
- return &dcb
-}
-
-func flattenDefaultCacheBehavior(dcb *cloudfront.DefaultCacheBehavior) *schema.Set {
- var cb cloudfront.CacheBehavior
-
- simpleCopyStruct(dcb, &cb)
- m := flattenCacheBehaviorDeprecated(&cb)
- return schema.NewSet(defaultCacheBehaviorHash, []interface{}{m})
-}
-
-// Assemble the hash for the aws_cloudfront_distribution default_cache_behavior
-// TypeSet attribute.
-func defaultCacheBehaviorHash(v interface{}) int {
- var buf bytes.Buffer
- m := v.(map[string]interface{})
- buf.WriteString(fmt.Sprintf("%t-", m["compress"].(bool)))
- buf.WriteString(fmt.Sprintf("%s-", m["viewer_protocol_policy"].(string)))
- buf.WriteString(fmt.Sprintf("%s-", m["target_origin_id"].(string)))
- buf.WriteString(fmt.Sprintf("%d-", forwardedValuesHash(m["forwarded_values"].(*schema.Set).List()[0].(map[string]interface{}))))
- buf.WriteString(fmt.Sprintf("%d-", m["min_ttl"].(int)))
- if d, ok := m["field_level_encryption_id"]; ok && d.(string) != "" {
- buf.WriteString(fmt.Sprintf("%s-", d.(string)))
- }
- if d, ok := m["trusted_signers"]; ok {
- for _, e := range sortInterfaceSlice(d.([]interface{})) {
- buf.WriteString(fmt.Sprintf("%s-", e.(string)))
- }
- }
- if d, ok := m["max_ttl"]; ok {
- buf.WriteString(fmt.Sprintf("%d-", d.(int)))
- }
- if d, ok := m["smooth_streaming"]; ok {
- buf.WriteString(fmt.Sprintf("%t-", d.(bool)))
- }
- if d, ok := m["default_ttl"]; ok {
- buf.WriteString(fmt.Sprintf("%d-", d.(int)))
- }
- if d, ok := m["allowed_methods"]; ok {
- for _, e := range sortInterfaceSlice(d.([]interface{})) {
- buf.WriteString(fmt.Sprintf("%s-", e.(string)))
- }
- }
- if d, ok := m["cached_methods"]; ok {
- for _, e := range sortInterfaceSlice(d.([]interface{})) {
- buf.WriteString(fmt.Sprintf("%s-", e.(string)))
- }
- }
- if d, ok := m["lambda_function_association"]; ok {
- var associations []interface{}
- switch d.(type) {
- case *schema.Set:
- associations = d.(*schema.Set).List()
- default:
- associations = d.([]interface{})
- }
- for _, lfa := range associations {
- buf.WriteString(fmt.Sprintf("%d-", lambdaFunctionAssociationHash(lfa.(map[string]interface{}))))
- }
- }
- return hashcode.String(buf.String())
-}
-
-func expandCacheBehaviorsDeprecated(s *schema.Set) *cloudfront.CacheBehaviors {
- var qty int64
- var items []*cloudfront.CacheBehavior
- for _, v := range s.List() {
- items = append(items, expandCacheBehaviorDeprecated(v.(map[string]interface{})))
- qty++
- }
- return &cloudfront.CacheBehaviors{
- Quantity: aws.Int64(qty),
- Items: items,
- }
-}
-
-func flattenCacheBehaviorsDeprecated(cbs *cloudfront.CacheBehaviors) *schema.Set {
- s := []interface{}{}
- for _, v := range cbs.Items {
- s = append(s, flattenCacheBehaviorDeprecated(v))
- }
- return schema.NewSet(cacheBehaviorHash, s)
+func flattenDefaultCacheBehavior(dcb *cloudfront.DefaultCacheBehavior) []interface{} {
+ return []interface{}{flattenCloudFrontDefaultCacheBehavior(dcb)}
}
func expandCacheBehaviors(lst []interface{}) *cloudfront.CacheBehaviors {
@@ -296,54 +180,51 @@ func flattenCacheBehaviors(cbs *cloudfront.CacheBehaviors) []interface{} {
return lst
}
-// Deprecated.
-func expandCacheBehaviorDeprecated(m map[string]interface{}) *cloudfront.CacheBehavior {
- cb := &cloudfront.CacheBehavior{
+func expandCloudFrontDefaultCacheBehavior(m map[string]interface{}) *cloudfront.DefaultCacheBehavior {
+ dcb := &cloudfront.DefaultCacheBehavior{
Compress: aws.Bool(m["compress"].(bool)),
- FieldLevelEncryptionId: aws.String(m["field_level_encryption_id"].(string)),
- ViewerProtocolPolicy: aws.String(m["viewer_protocol_policy"].(string)),
- TargetOriginId: aws.String(m["target_origin_id"].(string)),
- ForwardedValues: expandForwardedValues(m["forwarded_values"].(*schema.Set).List()[0].(map[string]interface{})),
DefaultTTL: aws.Int64(int64(m["default_ttl"].(int))),
+ FieldLevelEncryptionId: aws.String(m["field_level_encryption_id"].(string)),
+ ForwardedValues: expandForwardedValues(m["forwarded_values"].([]interface{})[0].(map[string]interface{})),
MaxTTL: aws.Int64(int64(m["max_ttl"].(int))),
MinTTL: aws.Int64(int64(m["min_ttl"].(int))),
+ TargetOriginId: aws.String(m["target_origin_id"].(string)),
+ ViewerProtocolPolicy: aws.String(m["viewer_protocol_policy"].(string)),
}
if v, ok := m["trusted_signers"]; ok {
- cb.TrustedSigners = expandTrustedSigners(v.([]interface{}))
+ dcb.TrustedSigners = expandTrustedSigners(v.([]interface{}))
} else {
- cb.TrustedSigners = expandTrustedSigners([]interface{}{})
+ dcb.TrustedSigners = expandTrustedSigners([]interface{}{})
}
if v, ok := m["lambda_function_association"]; ok {
- cb.LambdaFunctionAssociations = expandLambdaFunctionAssociations(v.(*schema.Set).List())
+ dcb.LambdaFunctionAssociations = expandLambdaFunctionAssociations(v.(*schema.Set).List())
}
if v, ok := m["smooth_streaming"]; ok {
- cb.SmoothStreaming = aws.Bool(v.(bool))
+ dcb.SmoothStreaming = aws.Bool(v.(bool))
}
if v, ok := m["allowed_methods"]; ok {
- cb.AllowedMethods = expandAllowedMethodsDeprecated(v.([]interface{}))
+ dcb.AllowedMethods = expandAllowedMethods(v.(*schema.Set))
}
if v, ok := m["cached_methods"]; ok {
- cb.AllowedMethods.CachedMethods = expandCachedMethodsDeprecated(v.([]interface{}))
- }
- if v, ok := m["path_pattern"]; ok {
- cb.PathPattern = aws.String(v.(string))
+ dcb.AllowedMethods.CachedMethods = expandCachedMethods(v.(*schema.Set))
}
- return cb
+
+ return dcb
}
func expandCacheBehavior(m map[string]interface{}) *cloudfront.CacheBehavior {
cb := &cloudfront.CacheBehavior{
Compress: aws.Bool(m["compress"].(bool)),
- FieldLevelEncryptionId: aws.String(m["field_level_encryption_id"].(string)),
- ViewerProtocolPolicy: aws.String(m["viewer_protocol_policy"].(string)),
- TargetOriginId: aws.String(m["target_origin_id"].(string)),
- ForwardedValues: expandForwardedValues(m["forwarded_values"].(*schema.Set).List()[0].(map[string]interface{})),
DefaultTTL: aws.Int64(int64(m["default_ttl"].(int))),
+ FieldLevelEncryptionId: aws.String(m["field_level_encryption_id"].(string)),
+ ForwardedValues: expandForwardedValues(m["forwarded_values"].([]interface{})[0].(map[string]interface{})),
MaxTTL: aws.Int64(int64(m["max_ttl"].(int))),
MinTTL: aws.Int64(int64(m["min_ttl"].(int))),
+ TargetOriginId: aws.String(m["target_origin_id"].(string)),
+ ViewerProtocolPolicy: aws.String(m["viewer_protocol_policy"].(string)),
}
if v, ok := m["trusted_signers"]; ok {
@@ -371,40 +252,38 @@ func expandCacheBehavior(m map[string]interface{}) *cloudfront.CacheBehavior {
return cb
}
-func flattenCacheBehaviorDeprecated(cb *cloudfront.CacheBehavior) map[string]interface{} {
- m := make(map[string]interface{})
-
- m["compress"] = *cb.Compress
- m["field_level_encryption_id"] = aws.StringValue(cb.FieldLevelEncryptionId)
- m["viewer_protocol_policy"] = *cb.ViewerProtocolPolicy
- m["target_origin_id"] = *cb.TargetOriginId
- m["forwarded_values"] = schema.NewSet(forwardedValuesHash, []interface{}{flattenForwardedValues(cb.ForwardedValues)})
- m["min_ttl"] = int(*cb.MinTTL)
-
- if len(cb.TrustedSigners.Items) > 0 {
- m["trusted_signers"] = flattenTrustedSigners(cb.TrustedSigners)
+func flattenCloudFrontDefaultCacheBehavior(dcb *cloudfront.DefaultCacheBehavior) map[string]interface{} {
+ m := map[string]interface{}{
+ "compress": aws.BoolValue(dcb.Compress),
+ "field_level_encryption_id": aws.StringValue(dcb.FieldLevelEncryptionId),
+ "viewer_protocol_policy": aws.StringValue(dcb.ViewerProtocolPolicy),
+ "target_origin_id": aws.StringValue(dcb.TargetOriginId),
+ "forwarded_values": []interface{}{flattenForwardedValues(dcb.ForwardedValues)},
+ "min_ttl": aws.Int64Value(dcb.MinTTL),
}
- if len(cb.LambdaFunctionAssociations.Items) > 0 {
- m["lambda_function_association"] = flattenLambdaFunctionAssociations(cb.LambdaFunctionAssociations)
+
+ if len(dcb.TrustedSigners.Items) > 0 {
+ m["trusted_signers"] = flattenTrustedSigners(dcb.TrustedSigners)
}
- if cb.MaxTTL != nil {
- m["max_ttl"] = int(*cb.MaxTTL)
+ if len(dcb.LambdaFunctionAssociations.Items) > 0 {
+ m["lambda_function_association"] = flattenLambdaFunctionAssociations(dcb.LambdaFunctionAssociations)
}
- if cb.SmoothStreaming != nil {
- m["smooth_streaming"] = *cb.SmoothStreaming
+ if dcb.MaxTTL != nil {
+ m["max_ttl"] = aws.Int64Value(dcb.MaxTTL)
}
- if cb.DefaultTTL != nil {
- m["default_ttl"] = int(*cb.DefaultTTL)
+ if dcb.SmoothStreaming != nil {
+ m["smooth_streaming"] = aws.BoolValue(dcb.SmoothStreaming)
}
- if cb.AllowedMethods != nil {
- m["allowed_methods"] = flattenAllowedMethodsDeprecated(cb.AllowedMethods)
+ if dcb.DefaultTTL != nil {
+ m["default_ttl"] = int(aws.Int64Value(dcb.DefaultTTL))
}
- if cb.AllowedMethods.CachedMethods != nil {
- m["cached_methods"] = flattenCachedMethodsDeprecated(cb.AllowedMethods.CachedMethods)
+ if dcb.AllowedMethods != nil {
+ m["allowed_methods"] = flattenAllowedMethods(dcb.AllowedMethods)
}
- if cb.PathPattern != nil {
- m["path_pattern"] = *cb.PathPattern
+ if dcb.AllowedMethods.CachedMethods != nil {
+ m["cached_methods"] = flattenCachedMethods(dcb.AllowedMethods.CachedMethods)
}
+
return m
}
@@ -415,7 +294,7 @@ func flattenCacheBehavior(cb *cloudfront.CacheBehavior) map[string]interface{} {
m["field_level_encryption_id"] = aws.StringValue(cb.FieldLevelEncryptionId)
m["viewer_protocol_policy"] = *cb.ViewerProtocolPolicy
m["target_origin_id"] = *cb.TargetOriginId
- m["forwarded_values"] = schema.NewSet(forwardedValuesHash, []interface{}{flattenForwardedValues(cb.ForwardedValues)})
+ m["forwarded_values"] = []interface{}{flattenForwardedValues(cb.ForwardedValues)}
m["min_ttl"] = int(*cb.MinTTL)
if len(cb.TrustedSigners.Items) > 0 {
@@ -445,61 +324,6 @@ func flattenCacheBehavior(cb *cloudfront.CacheBehavior) map[string]interface{} {
return m
}
-// Assemble the hash for the aws_cloudfront_distribution cache_behavior
-// TypeSet attribute.
-func cacheBehaviorHash(v interface{}) int {
- var buf bytes.Buffer
- m := v.(map[string]interface{})
- buf.WriteString(fmt.Sprintf("%t-", m["compress"].(bool)))
- buf.WriteString(fmt.Sprintf("%s-", m["viewer_protocol_policy"].(string)))
- buf.WriteString(fmt.Sprintf("%s-", m["target_origin_id"].(string)))
- buf.WriteString(fmt.Sprintf("%d-", forwardedValuesHash(m["forwarded_values"].(*schema.Set).List()[0].(map[string]interface{}))))
- buf.WriteString(fmt.Sprintf("%d-", m["min_ttl"].(int)))
- if d, ok := m["field_level_encryption_id"]; ok && d.(string) != "" {
- buf.WriteString(fmt.Sprintf("%s-", d.(string)))
- }
- if d, ok := m["trusted_signers"]; ok {
- for _, e := range sortInterfaceSlice(d.([]interface{})) {
- buf.WriteString(fmt.Sprintf("%s-", e.(string)))
- }
- }
- if d, ok := m["max_ttl"]; ok {
- buf.WriteString(fmt.Sprintf("%d-", d.(int)))
- }
- if d, ok := m["smooth_streaming"]; ok {
- buf.WriteString(fmt.Sprintf("%t-", d.(bool)))
- }
- if d, ok := m["default_ttl"]; ok {
- buf.WriteString(fmt.Sprintf("%d-", d.(int)))
- }
- if d, ok := m["allowed_methods"]; ok {
- for _, e := range sortInterfaceSlice(d.([]interface{})) {
- buf.WriteString(fmt.Sprintf("%s-", e.(string)))
- }
- }
- if d, ok := m["cached_methods"]; ok {
- for _, e := range sortInterfaceSlice(d.([]interface{})) {
- buf.WriteString(fmt.Sprintf("%s-", e.(string)))
- }
- }
- if d, ok := m["path_pattern"]; ok {
- buf.WriteString(fmt.Sprintf("%s-", d))
- }
- if d, ok := m["lambda_function_association"]; ok {
- var associations []interface{}
- switch d.(type) {
- case *schema.Set:
- associations = d.(*schema.Set).List()
- default:
- associations = d.([]interface{})
- }
- for _, lfa := range associations {
- buf.WriteString(fmt.Sprintf("%d-", lambdaFunctionAssociationHash(lfa.(map[string]interface{}))))
- }
- }
- return hashcode.String(buf.String())
-}
-
func expandTrustedSigners(s []interface{}) *cloudfront.TrustedSigners {
var ts cloudfront.TrustedSigners
if len(s) > 0 {
@@ -582,8 +406,8 @@ func expandForwardedValues(m map[string]interface{}) *cloudfront.ForwardedValues
fv := &cloudfront.ForwardedValues{
QueryString: aws.Bool(m["query_string"].(bool)),
}
- if v, ok := m["cookies"]; ok && v.(*schema.Set).Len() > 0 {
- fv.Cookies = expandCookiePreference(v.(*schema.Set).List()[0].(map[string]interface{}))
+ if v, ok := m["cookies"]; ok && len(v.([]interface{})) > 0 {
+ fv.Cookies = expandCookiePreference(v.([]interface{})[0].(map[string]interface{}))
}
if v, ok := m["headers"]; ok {
fv.Headers = expandHeaders(v.([]interface{}))
@@ -598,7 +422,7 @@ func flattenForwardedValues(fv *cloudfront.ForwardedValues) map[string]interface
m := make(map[string]interface{})
m["query_string"] = *fv.QueryString
if fv.Cookies != nil {
- m["cookies"] = schema.NewSet(cookiePreferenceHash, []interface{}{flattenCookiePreference(fv.Cookies)})
+ m["cookies"] = []interface{}{flattenCookiePreference(fv.Cookies)}
}
if fv.Headers != nil {
m["headers"] = flattenHeaders(fv.Headers)
@@ -609,28 +433,6 @@ func flattenForwardedValues(fv *cloudfront.ForwardedValues) map[string]interface
return m
}
-// Assemble the hash for the aws_cloudfront_distribution forwarded_values
-// TypeSet attribute.
-func forwardedValuesHash(v interface{}) int {
- var buf bytes.Buffer
- m := v.(map[string]interface{})
- buf.WriteString(fmt.Sprintf("%t-", m["query_string"].(bool)))
- if d, ok := m["cookies"]; ok && d.(*schema.Set).Len() > 0 {
- buf.WriteString(fmt.Sprintf("%d-", cookiePreferenceHash(d.(*schema.Set).List()[0].(map[string]interface{}))))
- }
- if d, ok := m["headers"]; ok {
- for _, e := range sortInterfaceSlice(d.([]interface{})) {
- buf.WriteString(fmt.Sprintf("%s-", e.(string)))
- }
- }
- if d, ok := m["query_string_cache_keys"]; ok {
- for _, e := range sortInterfaceSlice(d.([]interface{})) {
- buf.WriteString(fmt.Sprintf("%s-", e.(string)))
- }
- }
- return hashcode.String(buf.String())
-}
-
func expandHeaders(d []interface{}) *cloudfront.Headers {
return &cloudfront.Headers{
Quantity: aws.Int64(int64(len(d))),
@@ -678,20 +480,6 @@ func flattenCookiePreference(cp *cloudfront.CookiePreference) map[string]interfa
return m
}
-// Assemble the hash for the aws_cloudfront_distribution cookies
-// TypeSet attribute.
-func cookiePreferenceHash(v interface{}) int {
- var buf bytes.Buffer
- m := v.(map[string]interface{})
- buf.WriteString(fmt.Sprintf("%s-", m["forward"].(string)))
- if d, ok := m["whitelisted_names"]; ok {
- for _, e := range sortInterfaceSlice(d.([]interface{})) {
- buf.WriteString(fmt.Sprintf("%s-", e.(string)))
- }
- }
- return hashcode.String(buf.String())
-}
-
func expandCookieNames(d []interface{}) *cloudfront.CookieNames {
return &cloudfront.CookieNames{
Quantity: aws.Int64(int64(len(d))),
@@ -720,20 +508,6 @@ func flattenAllowedMethods(am *cloudfront.AllowedMethods) *schema.Set {
return nil
}
-func expandAllowedMethodsDeprecated(s []interface{}) *cloudfront.AllowedMethods {
- return &cloudfront.AllowedMethods{
- Quantity: aws.Int64(int64(len(s))),
- Items: expandStringList(s),
- }
-}
-
-func flattenAllowedMethodsDeprecated(am *cloudfront.AllowedMethods) []interface{} {
- if am.Items != nil {
- return flattenStringList(am.Items)
- }
- return []interface{}{}
-}
-
func expandCachedMethods(s *schema.Set) *cloudfront.CachedMethods {
return &cloudfront.CachedMethods{
Quantity: aws.Int64(int64(s.Len())),
@@ -748,20 +522,6 @@ func flattenCachedMethods(cm *cloudfront.CachedMethods) *schema.Set {
return nil
}
-func expandCachedMethodsDeprecated(s []interface{}) *cloudfront.CachedMethods {
- return &cloudfront.CachedMethods{
- Quantity: aws.Int64(int64(len(s))),
- Items: expandStringList(s),
- }
-}
-
-func flattenCachedMethodsDeprecated(cm *cloudfront.CachedMethods) []interface{} {
- if cm.Items != nil {
- return flattenStringList(cm.Items)
- }
- return []interface{}{}
-}
-
func expandOrigins(s *schema.Set) *cloudfront.Origins {
qty := 0
items := []*cloudfront.Origin{}
@@ -792,7 +552,7 @@ func expandOrigin(m map[string]interface{}) *cloudfront.Origin {
origin.CustomHeaders = expandCustomHeaders(v.(*schema.Set))
}
if v, ok := m["custom_origin_config"]; ok {
- if s := v.(*schema.Set).List(); len(s) > 0 {
+ if s := v.([]interface{}); len(s) > 0 {
origin.CustomOriginConfig = expandCustomOriginConfig(s[0].(map[string]interface{}))
}
}
@@ -800,7 +560,7 @@ func expandOrigin(m map[string]interface{}) *cloudfront.Origin {
origin.OriginPath = aws.String(v.(string))
}
if v, ok := m["s3_origin_config"]; ok {
- if s := v.(*schema.Set).List(); len(s) > 0 {
+ if s := v.([]interface{}); len(s) > 0 {
origin.S3OriginConfig = expandS3OriginConfig(s[0].(map[string]interface{}))
}
}
@@ -818,21 +578,19 @@ func expandOrigin(m map[string]interface{}) *cloudfront.Origin {
func flattenOrigin(or *cloudfront.Origin) map[string]interface{} {
m := make(map[string]interface{})
- m["origin_id"] = *or.Id
- m["domain_name"] = *or.DomainName
+ m["origin_id"] = aws.StringValue(or.Id)
+ m["domain_name"] = aws.StringValue(or.DomainName)
if or.CustomHeaders != nil {
m["custom_header"] = flattenCustomHeaders(or.CustomHeaders)
}
if or.CustomOriginConfig != nil {
- m["custom_origin_config"] = schema.NewSet(customOriginConfigHash, []interface{}{flattenCustomOriginConfig(or.CustomOriginConfig)})
+ m["custom_origin_config"] = []interface{}{flattenCustomOriginConfig(or.CustomOriginConfig)}
}
if or.OriginPath != nil {
- m["origin_path"] = *or.OriginPath
+ m["origin_path"] = aws.StringValue(or.OriginPath)
}
- if or.S3OriginConfig != nil {
- if or.S3OriginConfig.OriginAccessIdentity != nil && *or.S3OriginConfig.OriginAccessIdentity != "" {
- m["s3_origin_config"] = schema.NewSet(s3OriginConfigHash, []interface{}{flattenS3OriginConfig(or.S3OriginConfig)})
- }
+ if or.S3OriginConfig != nil && aws.StringValue(or.S3OriginConfig.OriginAccessIdentity) != "" {
+ m["s3_origin_config"] = []interface{}{flattenS3OriginConfig(or.S3OriginConfig)}
}
return m
}
@@ -848,7 +606,7 @@ func originHash(v interface{}) int {
buf.WriteString(fmt.Sprintf("%d-", customHeadersHash(v.(*schema.Set))))
}
if v, ok := m["custom_origin_config"]; ok {
- if s := v.(*schema.Set).List(); len(s) > 0 {
+ if s := v.([]interface{}); len(s) > 0 && s[0] != nil {
buf.WriteString(fmt.Sprintf("%d-", customOriginConfigHash((s[0].(map[string]interface{})))))
}
}
@@ -856,7 +614,7 @@ func originHash(v interface{}) int {
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
}
if v, ok := m["s3_origin_config"]; ok {
- if s := v.(*schema.Set).List(); len(s) > 0 {
+ if s := v.([]interface{}); len(s) > 0 && s[0] != nil {
buf.WriteString(fmt.Sprintf("%d-", s3OriginConfigHash((s[0].(map[string]interface{})))))
}
}
@@ -924,7 +682,7 @@ func expandCustomOriginConfig(m map[string]interface{}) *cloudfront.CustomOrigin
OriginProtocolPolicy: aws.String(m["origin_protocol_policy"].(string)),
HTTPPort: aws.Int64(int64(m["http_port"].(int))),
HTTPSPort: aws.Int64(int64(m["https_port"].(int))),
- OriginSslProtocols: expandCustomOriginConfigSSL(m["origin_ssl_protocols"].([]interface{})),
+ OriginSslProtocols: expandCustomOriginConfigSSL(m["origin_ssl_protocols"].(*schema.Set).List()),
OriginReadTimeout: aws.Int64(int64(m["origin_read_timeout"].(int))),
OriginKeepaliveTimeout: aws.Int64(int64(m["origin_keepalive_timeout"].(int))),
}
@@ -954,7 +712,7 @@ func customOriginConfigHash(v interface{}) int {
buf.WriteString(fmt.Sprintf("%s-", m["origin_protocol_policy"].(string)))
buf.WriteString(fmt.Sprintf("%d-", m["http_port"].(int)))
buf.WriteString(fmt.Sprintf("%d-", m["https_port"].(int)))
- for _, v := range sortInterfaceSlice(m["origin_ssl_protocols"].([]interface{})) {
+ for _, v := range sortInterfaceSlice(m["origin_ssl_protocols"].(*schema.Set).List()) {
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
}
buf.WriteString(fmt.Sprintf("%d-", m["origin_keepalive_timeout"].(int)))
@@ -971,8 +729,8 @@ func expandCustomOriginConfigSSL(s []interface{}) *cloudfront.OriginSslProtocols
}
}
-func flattenCustomOriginConfigSSL(osp *cloudfront.OriginSslProtocols) []interface{} {
- return flattenStringList(osp.Items)
+func flattenCustomOriginConfigSSL(osp *cloudfront.OriginSslProtocols) *schema.Set {
+ return schema.NewSet(schema.HashString, flattenStringList(osp.Items))
}
func expandS3OriginConfig(m map[string]interface{}) *cloudfront.S3OriginConfig {
@@ -1085,23 +843,14 @@ func expandLoggingConfig(m map[string]interface{}) *cloudfront.LoggingConfig {
return &lc
}
-func flattenLoggingConfig(lc *cloudfront.LoggingConfig) *schema.Set {
- m := make(map[string]interface{})
- m["prefix"] = *lc.Prefix
- m["bucket"] = *lc.Bucket
- m["include_cookies"] = *lc.IncludeCookies
- return schema.NewSet(loggingConfigHash, []interface{}{m})
-}
+func flattenLoggingConfig(lc *cloudfront.LoggingConfig) []interface{} {
+ m := map[string]interface{}{
+ "bucket": aws.StringValue(lc.Bucket),
+ "include_cookies": aws.BoolValue(lc.IncludeCookies),
+ "prefix": aws.StringValue(lc.Prefix),
+ }
-// Assemble the hash for the aws_cloudfront_distribution logging_config
-// TypeSet attribute.
-func loggingConfigHash(v interface{}) int {
- var buf bytes.Buffer
- m := v.(map[string]interface{})
- buf.WriteString(fmt.Sprintf("%s-", m["prefix"].(string)))
- buf.WriteString(fmt.Sprintf("%s-", m["bucket"].(string)))
- buf.WriteString(fmt.Sprintf("%t-", m["include_cookies"].(bool)))
- return hashcode.String(buf.String())
+ return []interface{}{m}
}
func expandAliases(as *schema.Set) *cloudfront.Aliases {
@@ -1131,66 +880,42 @@ func aliasesHash(v interface{}) int {
func expandRestrictions(m map[string]interface{}) *cloudfront.Restrictions {
return &cloudfront.Restrictions{
- GeoRestriction: expandGeoRestriction(m["geo_restriction"].(*schema.Set).List()[0].(map[string]interface{})),
+ GeoRestriction: expandGeoRestriction(m["geo_restriction"].([]interface{})[0].(map[string]interface{})),
}
}
-func flattenRestrictions(r *cloudfront.Restrictions) *schema.Set {
- m := make(map[string]interface{})
- s := schema.NewSet(geoRestrictionHash, []interface{}{flattenGeoRestriction(r.GeoRestriction)})
- m["geo_restriction"] = s
- return schema.NewSet(restrictionsHash, []interface{}{m})
-}
+func flattenRestrictions(r *cloudfront.Restrictions) []interface{} {
+ m := map[string]interface{}{
+ "geo_restriction": []interface{}{flattenGeoRestriction(r.GeoRestriction)},
+ }
-// Assemble the hash for the aws_cloudfront_distribution restrictions
-// TypeSet attribute.
-func restrictionsHash(v interface{}) int {
- var buf bytes.Buffer
- m := v.(map[string]interface{})
- buf.WriteString(fmt.Sprintf("%d-", geoRestrictionHash(m["geo_restriction"].(*schema.Set).List()[0].(map[string]interface{}))))
- return hashcode.String(buf.String())
+ return []interface{}{m}
}
func expandGeoRestriction(m map[string]interface{}) *cloudfront.GeoRestriction {
- gr := cloudfront.GeoRestriction{
+ gr := &cloudfront.GeoRestriction{
+ Quantity: aws.Int64(int64(0)),
RestrictionType: aws.String(m["restriction_type"].(string)),
}
+
if v, ok := m["locations"]; ok {
- gr.Quantity = aws.Int64(int64(len(v.([]interface{}))))
- gr.Items = expandStringList(v.([]interface{}))
- sort.Sort(StringPtrSlice(gr.Items))
- } else {
- gr.Quantity = aws.Int64(0)
+ gr.Items = expandStringSet(v.(*schema.Set))
+ gr.Quantity = aws.Int64(int64(v.(*schema.Set).Len()))
}
- return &gr
+
+ return gr
}
func flattenGeoRestriction(gr *cloudfront.GeoRestriction) map[string]interface{} {
m := make(map[string]interface{})
- m["restriction_type"] = *gr.RestrictionType
+ m["restriction_type"] = aws.StringValue(gr.RestrictionType)
if gr.Items != nil {
- sort.Sort(StringPtrSlice(gr.Items))
- m["locations"] = flattenStringList(gr.Items)
+ m["locations"] = schema.NewSet(schema.HashString, flattenStringList(gr.Items))
}
return m
}
-// Assemble the hash for the aws_cloudfront_distribution geo_restriction
-// TypeSet attribute.
-func geoRestrictionHash(v interface{}) int {
- var buf bytes.Buffer
- m := v.(map[string]interface{})
- // All keys added in alphabetical order.
- buf.WriteString(fmt.Sprintf("%s-", m["restriction_type"].(string)))
- if v, ok := m["locations"]; ok {
- for _, w := range sortInterfaceSlice(v.([]interface{})) {
- buf.WriteString(fmt.Sprintf("%s-", w.(string)))
- }
- }
- return hashcode.String(buf.String())
-}
-
func expandViewerCertificate(m map[string]interface{}) *cloudfront.ViewerCertificate {
var vc cloudfront.ViewerCertificate
if v, ok := m["iam_certificate_id"]; ok && v != "" {
@@ -1208,7 +933,7 @@ func expandViewerCertificate(m map[string]interface{}) *cloudfront.ViewerCertifi
return &vc
}
-func flattenViewerCertificate(vc *cloudfront.ViewerCertificate) *schema.Set {
+func flattenViewerCertificate(vc *cloudfront.ViewerCertificate) []interface{} {
m := make(map[string]interface{})
if vc.IAMCertificateId != nil {
@@ -1225,50 +950,7 @@ func flattenViewerCertificate(vc *cloudfront.ViewerCertificate) *schema.Set {
if vc.MinimumProtocolVersion != nil {
m["minimum_protocol_version"] = *vc.MinimumProtocolVersion
}
- return schema.NewSet(viewerCertificateHash, []interface{}{m})
-}
-
-// Assemble the hash for the aws_cloudfront_distribution viewer_certificate
-// TypeSet attribute.
-func viewerCertificateHash(v interface{}) int {
- var buf bytes.Buffer
- m := v.(map[string]interface{})
- if v, ok := m["iam_certificate_id"]; ok && v.(string) != "" {
- buf.WriteString(fmt.Sprintf("%s-", v.(string)))
- buf.WriteString(fmt.Sprintf("%s-", m["ssl_support_method"].(string)))
- } else if v, ok := m["acm_certificate_arn"]; ok && v.(string) != "" {
- buf.WriteString(fmt.Sprintf("%s-", v.(string)))
- buf.WriteString(fmt.Sprintf("%s-", m["ssl_support_method"].(string)))
- } else {
- buf.WriteString(fmt.Sprintf("%t-", m["cloudfront_default_certificate"].(bool)))
- }
- // if minimum_protocol_version is not specified and we use cloudfront_default_certificate,
- // ignore current value of minimum_protocol_version
- if c, ok := m["cloudfront_default_certificate"]; !(ok && c.(bool)) {
- if v, ok := m["minimum_protocol_version"]; ok && v.(string) != "" {
- buf.WriteString(fmt.Sprintf("%s-", v.(string)))
- }
- }
- return hashcode.String(buf.String())
-}
-
-// Do a top-level copy of struct fields from one struct to another. Used to
-// copy fields between CacheBehavior and DefaultCacheBehavior structs.
-func simpleCopyStruct(src, dst interface{}) {
- s := reflect.ValueOf(src).Elem()
- d := reflect.ValueOf(dst).Elem()
-
- for i := 0; i < s.NumField(); i++ {
- if s.Field(i).CanSet() {
- if s.Field(i).Interface() != nil {
- for j := 0; j < d.NumField(); j++ {
- if d.Type().Field(j).Name == s.Type().Field(i).Name {
- d.Field(j).Set(s.Field(i))
- }
- }
- }
- }
- }
+ return []interface{}{m}
}
// Convert *cloudfront.ActiveTrustedSigners to a flatmap.Map type, which ensures
diff --git a/aws/cloudfront_distribution_configuration_structure_test.go b/aws/cloudfront_distribution_configuration_structure_test.go
index 76e5144b7dd..ec81f214276 100644
--- a/aws/cloudfront_distribution_configuration_structure_test.go
+++ b/aws/cloudfront_distribution_configuration_structure_test.go
@@ -13,7 +13,7 @@ func defaultCacheBehaviorConf() map[string]interface{} {
return map[string]interface{}{
"viewer_protocol_policy": "allow-all",
"target_origin_id": "myS3Origin",
- "forwarded_values": schema.NewSet(forwardedValuesHash, []interface{}{forwardedValuesConf()}),
+ "forwarded_values": []interface{}{forwardedValuesConf()},
"min_ttl": 0,
"trusted_signers": trustedSignersConf(),
"lambda_function_association": lambdaFunctionAssociationsConf(),
@@ -27,22 +27,6 @@ func defaultCacheBehaviorConf() map[string]interface{} {
}
}
-func cacheBehaviorConf1() map[string]interface{} {
- cb := defaultCacheBehaviorConf()
- cb["path_pattern"] = "/path1"
- return cb
-}
-
-func cacheBehaviorConf2() map[string]interface{} {
- cb := defaultCacheBehaviorConf()
- cb["path_pattern"] = "/path2"
- return cb
-}
-
-func cacheBehaviorsConf() *schema.Set {
- return schema.NewSet(cacheBehaviorHash, []interface{}{cacheBehaviorConf1(), cacheBehaviorConf2()})
-}
-
func trustedSignersConf() []interface{} {
return []interface{}{"1234567890EX", "1234567891EX"}
}
@@ -68,7 +52,7 @@ func forwardedValuesConf() map[string]interface{} {
return map[string]interface{}{
"query_string": true,
"query_string_cache_keys": queryStringCacheKeysConf(),
- "cookies": schema.NewSet(cookiePreferenceHash, []interface{}{cookiePreferenceConf()}),
+ "cookies": []interface{}{cookiePreferenceConf()},
"headers": headersConf(),
}
}
@@ -92,12 +76,12 @@ func cookieNamesConf() []interface{} {
return []interface{}{"Example1", "Example2"}
}
-func allowedMethodsConf() []interface{} {
- return []interface{}{"DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"}
+func allowedMethodsConf() *schema.Set {
+ return schema.NewSet(schema.HashString, []interface{}{"DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"})
}
-func cachedMethodsConf() []interface{} {
- return []interface{}{"GET", "HEAD", "OPTIONS"}
+func cachedMethodsConf() *schema.Set {
+ return schema.NewSet(schema.HashString, []interface{}{"GET", "HEAD", "OPTIONS"})
}
func originCustomHeadersConf() *schema.Set {
@@ -129,8 +113,8 @@ func customOriginConf() map[string]interface{} {
}
}
-func customOriginSslProtocolsConf() []interface{} {
- return []interface{}{"SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2"}
+func customOriginSslProtocolsConf() *schema.Set {
+ return schema.NewSet(schema.HashString, []interface{}{"SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2"})
}
func s3OriginConf() map[string]interface{} {
@@ -144,7 +128,7 @@ func originWithCustomConf() map[string]interface{} {
"origin_id": "CustomOrigin",
"domain_name": "www.example.com",
"origin_path": "/",
- "custom_origin_config": schema.NewSet(customOriginConfigHash, []interface{}{customOriginConf()}),
+ "custom_origin_config": []interface{}{customOriginConf()},
"custom_header": originCustomHeadersConf(),
}
}
@@ -153,7 +137,7 @@ func originWithS3Conf() map[string]interface{} {
"origin_id": "S3Origin",
"domain_name": "s3.example.com",
"origin_path": "/",
- "s3_origin_config": schema.NewSet(s3OriginConfigHash, []interface{}{s3OriginConf()}),
+ "s3_origin_config": []interface{}{s3OriginConf()},
"custom_header": originCustomHeadersConf(),
}
}
@@ -165,13 +149,13 @@ func multiOriginConf() *schema.Set {
func geoRestrictionWhitelistConf() map[string]interface{} {
return map[string]interface{}{
"restriction_type": "whitelist",
- "locations": []interface{}{"CA", "GB", "US"},
+ "locations": schema.NewSet(schema.HashString, []interface{}{"CA", "GB", "US"}),
}
}
func geoRestrictionsConf() map[string]interface{} {
return map[string]interface{}{
- "geo_restriction": schema.NewSet(geoRestrictionHash, []interface{}{geoRestrictionWhitelistConf()}),
+ "geo_restriction": []interface{}{geoRestrictionWhitelistConf()},
}
}
@@ -255,9 +239,9 @@ func viewerCertificateConfSetACM() map[string]interface{} {
}
}
-func TestCloudFrontStructure_expandDefaultCacheBehavior(t *testing.T) {
+func TestCloudFrontStructure_expandCloudFrontDefaultCacheBehavior(t *testing.T) {
data := defaultCacheBehaviorConf()
- dcb := expandDefaultCacheBehavior(data)
+ dcb := expandCloudFrontDefaultCacheBehavior(data)
if dcb == nil {
t.Fatalf("ExpandDefaultCacheBehavior returned nil")
}
@@ -291,147 +275,11 @@ func TestCloudFrontStructure_expandDefaultCacheBehavior(t *testing.T) {
if *dcb.LambdaFunctionAssociations.Quantity != 2 {
t.Fatalf("Expected LambdaFunctionAssociations to be 2, got %v", *dcb.LambdaFunctionAssociations.Quantity)
}
- if !reflect.DeepEqual(dcb.AllowedMethods.Items, expandStringList(allowedMethodsConf())) {
- t.Fatalf("Expected AllowedMethods.Items to be %v, got %v", allowedMethodsConf(), dcb.AllowedMethods.Items)
- }
- if !reflect.DeepEqual(dcb.AllowedMethods.CachedMethods.Items, expandStringList(cachedMethodsConf())) {
- t.Fatalf("Expected AllowedMethods.CachedMethods.Items to be %v, got %v", cachedMethodsConf(), dcb.AllowedMethods.CachedMethods.Items)
- }
-}
-
-func TestCloudFrontStructure_flattenDefaultCacheBehavior(t *testing.T) {
- in := defaultCacheBehaviorConf()
- dcb := expandDefaultCacheBehavior(in)
- out := flattenDefaultCacheBehavior(dcb)
- diff := schema.NewSet(defaultCacheBehaviorHash, []interface{}{in}).Difference(out)
-
- if len(diff.List()) > 0 {
- t.Fatalf("Expected out to be %v, got %v, diff: %v", in, out, diff)
- }
-}
-
-func TestCloudFrontStructure_expandCacheBehavior(t *testing.T) {
- data := cacheBehaviorConf1()
- cb := expandCacheBehaviorDeprecated(data)
- if !*cb.Compress {
- t.Fatalf("Expected Compress to be true, got %v", *cb.Compress)
- }
- if *cb.ViewerProtocolPolicy != "allow-all" {
- t.Fatalf("Expected ViewerProtocolPolicy to be allow-all, got %v", *cb.ViewerProtocolPolicy)
- }
- if *cb.TargetOriginId != "myS3Origin" {
- t.Fatalf("Expected TargetOriginId to be myS3Origin, got %v", *cb.TargetOriginId)
- }
- if !reflect.DeepEqual(cb.ForwardedValues.Headers.Items, expandStringList(headersConf())) {
- t.Fatalf("Expected Items to be %v, got %v", headersConf(), cb.ForwardedValues.Headers.Items)
- }
- if *cb.MinTTL != 0 {
- t.Fatalf("Expected MinTTL to be 0, got %v", *cb.MinTTL)
- }
- if !reflect.DeepEqual(cb.TrustedSigners.Items, expandStringList(trustedSignersConf())) {
- t.Fatalf("Expected TrustedSigners.Items to be %v, got %v", trustedSignersConf(), cb.TrustedSigners.Items)
- }
- if *cb.MaxTTL != 31536000 {
- t.Fatalf("Expected MaxTTL to be 31536000, got %v", *cb.MaxTTL)
- }
- if *cb.SmoothStreaming {
- t.Fatalf("Expected SmoothStreaming to be false, got %v", *cb.SmoothStreaming)
- }
- if *cb.DefaultTTL != 86400 {
- t.Fatalf("Expected DefaultTTL to be 86400, got %v", *cb.DefaultTTL)
- }
- if *cb.LambdaFunctionAssociations.Quantity != 2 {
- t.Fatalf("Expected LambdaFunctionAssociations to be 2, got %v", *cb.LambdaFunctionAssociations.Quantity)
- }
- if !reflect.DeepEqual(cb.AllowedMethods.Items, expandStringList(allowedMethodsConf())) {
- t.Fatalf("Expected AllowedMethods.Items to be %v, got %v", allowedMethodsConf(), cb.AllowedMethods.Items)
- }
- if !reflect.DeepEqual(cb.AllowedMethods.CachedMethods.Items, expandStringList(cachedMethodsConf())) {
- t.Fatalf("Expected AllowedMethods.CachedMethods.Items to be %v, got %v", cachedMethodsConf(), cb.AllowedMethods.CachedMethods.Items)
- }
- if *cb.PathPattern != "/path1" {
- t.Fatalf("Expected PathPattern to be /path1, got %v", *cb.PathPattern)
- }
-}
-
-func TestCloudFrontStructure_flattenCacheBehavior(t *testing.T) {
- in := cacheBehaviorConf1()
- cb := expandCacheBehaviorDeprecated(in)
- out := flattenCacheBehaviorDeprecated(cb)
- var diff *schema.Set
- if !out["compress"].(bool) {
- t.Fatalf("Expected out[compress] to be true, got %v", out["compress"])
- }
- if out["viewer_protocol_policy"] != "allow-all" {
- t.Fatalf("Expected out[viewer_protocol_policy] to be allow-all, got %v", out["viewer_protocol_policy"])
- }
- if out["target_origin_id"] != "myS3Origin" {
- t.Fatalf("Expected out[target_origin_id] to be myS3Origin, got %v", out["target_origin_id"])
- }
-
- var outSet, ok = out["lambda_function_association"].(*schema.Set)
- if !ok {
- t.Fatalf("out['lambda_function_association'] is not a slice as expected: %#v", out["lambda_function_association"])
- }
-
- inSet, ok := in["lambda_function_association"].(*schema.Set)
- if !ok {
- t.Fatalf("in['lambda_function_association'] is not a set as expected: %#v", in["lambda_function_association"])
- }
-
- if !inSet.Equal(outSet) {
- t.Fatalf("in / out sets are not equal, in: \n%#v\n\nout: \n%#v\n", inSet, outSet)
- }
-
- diff = out["forwarded_values"].(*schema.Set).Difference(in["forwarded_values"].(*schema.Set))
- if len(diff.List()) > 0 {
- t.Fatalf("Expected out[forwarded_values] to be %v, got %v, diff: %v", out["forwarded_values"], in["forwarded_values"], diff)
- }
- if out["min_ttl"] != int(0) {
- t.Fatalf("Expected out[min_ttl] to be 0 (int), got %v", out["min_ttl"])
- }
- if !reflect.DeepEqual(out["trusted_signers"], in["trusted_signers"]) {
- t.Fatalf("Expected out[trusted_signers] to be %v, got %v", in["trusted_signers"], out["trusted_signers"])
- }
- if out["max_ttl"] != int(31536000) {
- t.Fatalf("Expected out[max_ttl] to be 31536000 (int), got %v", out["max_ttl"])
- }
- if out["smooth_streaming"].(bool) {
- t.Fatalf("Expected out[smooth_streaming] to be false, got %v", out["smooth_streaming"])
- }
- if out["default_ttl"] != int(86400) {
- t.Fatalf("Expected out[default_ttl] to be 86400 (int), got %v", out["default_ttl"])
+ if !reflect.DeepEqual(dcb.AllowedMethods.Items, expandStringList(allowedMethodsConf().List())) {
+ t.Fatalf("Expected AllowedMethods.Items to be %v, got %v", allowedMethodsConf().List(), dcb.AllowedMethods.Items)
}
- if !reflect.DeepEqual(out["allowed_methods"], in["allowed_methods"]) {
- t.Fatalf("Expected out[allowed_methods] to be %v, got %v", in["allowed_methods"], out["allowed_methods"])
- }
- if !reflect.DeepEqual(out["cached_methods"], in["cached_methods"]) {
- t.Fatalf("Expected out[cached_methods] to be %v, got %v", in["cached_methods"], out["cached_methods"])
- }
- if out["path_pattern"] != "/path1" {
- t.Fatalf("Expected out[path_pattern] to be /path1, got %v", out["path_pattern"])
- }
-}
-
-func TestCloudFrontStructure_expandCacheBehaviors(t *testing.T) {
- data := cacheBehaviorsConf()
- cbs := expandCacheBehaviorsDeprecated(data)
- if *cbs.Quantity != 2 {
- t.Fatalf("Expected Quantity to be 2, got %v", *cbs.Quantity)
- }
- if *cbs.Items[0].TargetOriginId != "myS3Origin" {
- t.Fatalf("Expected first Item's TargetOriginId to be myS3Origin, got %v", *cbs.Items[0].TargetOriginId)
- }
-}
-
-func TestCloudFrontStructure_flattenCacheBehaviors(t *testing.T) {
- in := cacheBehaviorsConf()
- cbs := expandCacheBehaviorsDeprecated(in)
- out := flattenCacheBehaviorsDeprecated(cbs)
- diff := in.Difference(out)
-
- if len(diff.List()) > 0 {
- t.Fatalf("Expected out to be %v, got %v, diff: %v", in, out, diff)
+ if !reflect.DeepEqual(dcb.AllowedMethods.CachedMethods.Items, expandStringList(cachedMethodsConf().List())) {
+ t.Fatalf("Expected AllowedMethods.CachedMethods.Items to be %v, got %v", cachedMethodsConf().List(), dcb.AllowedMethods.CachedMethods.Items)
}
}
@@ -536,7 +384,7 @@ func TestCloudFrontStructure_flattenForwardedValues(t *testing.T) {
if !out["query_string"].(bool) {
t.Fatalf("Expected out[query_string] to be true, got %v", out["query_string"])
}
- if !out["cookies"].(*schema.Set).Equal(in["cookies"].(*schema.Set)) {
+ if !reflect.DeepEqual(out["cookies"], in["cookies"]) {
t.Fatalf("Expected out[cookies] to be %v, got %v", in["cookies"], out["cookies"])
}
if !reflect.DeepEqual(out["headers"], in["headers"]) {
@@ -630,42 +478,42 @@ func TestCloudFrontStructure_flattenCookieNames(t *testing.T) {
func TestCloudFrontStructure_expandAllowedMethods(t *testing.T) {
data := allowedMethodsConf()
- am := expandAllowedMethodsDeprecated(data)
+ am := expandAllowedMethods(data)
if *am.Quantity != 7 {
t.Fatalf("Expected Quantity to be 7, got %v", *am.Quantity)
}
- if !reflect.DeepEqual(am.Items, expandStringList(data)) {
+ if !reflect.DeepEqual(am.Items, expandStringList(data.List())) {
t.Fatalf("Expected Items to be %v, got %v", data, am.Items)
}
}
func TestCloudFrontStructure_flattenAllowedMethods(t *testing.T) {
in := allowedMethodsConf()
- am := expandAllowedMethodsDeprecated(in)
- out := flattenAllowedMethodsDeprecated(am)
+ am := expandAllowedMethods(in)
+ out := flattenAllowedMethods(am)
- if !reflect.DeepEqual(in, out) {
+ if !in.Equal(out) {
t.Fatalf("Expected out to be %v, got %v", in, out)
}
}
func TestCloudFrontStructure_expandCachedMethods(t *testing.T) {
data := cachedMethodsConf()
- cm := expandCachedMethodsDeprecated(data)
+ cm := expandCachedMethods(data)
if *cm.Quantity != 3 {
t.Fatalf("Expected Quantity to be 3, got %v", *cm.Quantity)
}
- if !reflect.DeepEqual(cm.Items, expandStringList(data)) {
+ if !reflect.DeepEqual(cm.Items, expandStringList(data.List())) {
t.Fatalf("Expected Items to be %v, got %v", data, cm.Items)
}
}
func TestCloudFrontStructure_flattenCachedMethods(t *testing.T) {
in := cachedMethodsConf()
- cm := expandCachedMethodsDeprecated(in)
- out := flattenCachedMethodsDeprecated(cm)
+ cm := expandCachedMethods(in)
+ out := flattenCachedMethods(cm)
- if !reflect.DeepEqual(in, out) {
+ if !in.Equal(out) {
t.Fatalf("Expected out to be %v, got %v", in, out)
}
}
@@ -726,9 +574,6 @@ func TestCloudFrontStructure_flattenOrigin(t *testing.T) {
if out["origin_path"] != "/" {
t.Fatalf("Expected out[origin_path] to be /, got %v", out["origin_path"])
}
- if !out["custom_origin_config"].(*schema.Set).Equal(in["custom_origin_config"].(*schema.Set)) {
- t.Fatalf("Expected out[custom_origin_config] to be %v, got %v", in["custom_origin_config"], out["custom_origin_config"])
- }
}
func TestCloudFrontStructure_expandCustomHeaders(t *testing.T) {
@@ -803,28 +648,40 @@ func TestCloudFrontStructure_flattenCustomOriginConfig(t *testing.T) {
co := expandCustomOriginConfig(in)
out := flattenCustomOriginConfig(co)
- if !reflect.DeepEqual(in, out) {
- t.Fatalf("Expected out to be %v, got %v", in, out)
+ if e, a := in["http_port"], out["http_port"]; e != a {
+ t.Fatalf("Expected http_port to be %v, got %v", e, a)
+ }
+ if e, a := in["https_port"], out["https_port"]; e != a {
+ t.Fatalf("Expected https_port to be %v, got %v", e, a)
+ }
+ if e, a := in["origin_keepalive_timeout"], out["origin_keepalive_timeout"]; e != a {
+ t.Fatalf("Expected origin_keepalive_timeout to be %v, got %v", e, a)
+ }
+ if e, a := in["origin_protocol_policy"], out["origin_protocol_policy"]; e != a {
+ t.Fatalf("Expected origin_protocol_policy to be %v, got %v", e, a)
+ }
+ if e, a := in["origin_read_timeout"], out["origin_read_timeout"]; e != a {
+ t.Fatalf("Expected origin_read_timeout to be %v, got %v", e, a)
+ }
+ if e, a := in["origin_ssl_protocols"].(*schema.Set), out["origin_ssl_protocols"].(*schema.Set); !e.Equal(a) {
+ t.Fatalf("Expected origin_ssl_protocols to be %v, got %v", e, a)
}
}
func TestCloudFrontStructure_expandCustomOriginConfigSSL(t *testing.T) {
in := customOriginSslProtocolsConf()
- ocs := expandCustomOriginConfigSSL(in)
+ ocs := expandCustomOriginConfigSSL(in.List())
if *ocs.Quantity != 4 {
t.Fatalf("Expected Quantity to be 4, got %v", *ocs.Quantity)
}
- if *ocs.Items[0] != "SSLv3" {
- t.Fatalf("Expected first Item to be SSLv3, got %v", *ocs.Items[0])
- }
}
func TestCloudFrontStructure_flattenCustomOriginConfigSSL(t *testing.T) {
in := customOriginSslProtocolsConf()
- ocs := expandCustomOriginConfigSSL(in)
+ ocs := expandCustomOriginConfigSSL(in.List())
out := flattenCustomOriginConfigSSL(ocs)
- if !reflect.DeepEqual(in, out) {
+ if !in.Equal(out) {
t.Fatalf("Expected out to be %v, got %v", in, out)
}
}
@@ -940,17 +797,6 @@ func TestCloudFrontStructure_expandLoggingConfig_nilValue(t *testing.T) {
}
}
-func TestCloudFrontStructure_flattenLoggingConfig(t *testing.T) {
- in := loggingConfigConf()
- lc := expandLoggingConfig(in)
- out := flattenLoggingConfig(lc)
- diff := schema.NewSet(loggingConfigHash, []interface{}{in}).Difference(out)
-
- if len(diff.List()) > 0 {
- t.Fatalf("Expected out to be %v, got %v, diff: %v", in, out, diff)
- }
-}
-
func TestCloudFrontStructure_expandAliases(t *testing.T) {
data := aliasesConf()
a := expandAliases(data)
@@ -981,17 +827,6 @@ func TestCloudFrontStructure_expandRestrictions(t *testing.T) {
}
}
-func TestCloudFrontStructure_flattenRestrictions(t *testing.T) {
- in := geoRestrictionsConf()
- r := expandRestrictions(in)
- out := flattenRestrictions(r)
- diff := schema.NewSet(restrictionsHash, []interface{}{in}).Difference(out)
-
- if len(diff.List()) > 0 {
- t.Fatalf("Expected out to be %v, got %v, diff: %v", in, out, diff)
- }
-}
-
func TestCloudFrontStructure_expandGeoRestriction_whitelist(t *testing.T) {
data := geoRestrictionWhitelistConf()
gr := expandGeoRestriction(data)
@@ -1001,8 +836,8 @@ func TestCloudFrontStructure_expandGeoRestriction_whitelist(t *testing.T) {
if *gr.Quantity != 3 {
t.Fatalf("Expected Quantity to be 3, got %v", *gr.Quantity)
}
- if !reflect.DeepEqual(gr.Items, aws.StringSlice([]string{"CA", "GB", "US"})) {
- t.Fatalf("Expected Items be [CA, GB, US], got %v", gr.Items)
+ if !reflect.DeepEqual(aws.StringValueSlice(gr.Items), []string{"GB", "US", "CA"}) {
+ t.Fatalf("Expected Items be [CA, GB, US], got %v", aws.StringValueSlice(gr.Items))
}
}
@@ -1011,8 +846,11 @@ func TestCloudFrontStructure_flattenGeoRestriction_whitelist(t *testing.T) {
gr := expandGeoRestriction(in)
out := flattenGeoRestriction(gr)
- if !reflect.DeepEqual(in, out) {
- t.Fatalf("Expected out to be %v, got %v", in, out)
+ if e, a := in["restriction_type"], out["restriction_type"]; e != a {
+ t.Fatalf("Expected restriction_type to be %s, got %s", e, a)
+ }
+ if e, a := in["locations"].(*schema.Set), out["locations"].(*schema.Set); !e.Equal(a) {
+ t.Fatalf("Expected out to be %v, got %v", e, a)
}
}
@@ -1035,8 +873,11 @@ func TestCloudFrontStructure_flattenGeoRestriction_no_items(t *testing.T) {
gr := expandGeoRestriction(in)
out := flattenGeoRestriction(gr)
- if !reflect.DeepEqual(in, out) {
- t.Fatalf("Expected out to be %v, got %v", in, out)
+ if e, a := in["restriction_type"], out["restriction_type"]; e != a {
+ t.Fatalf("Expected restriction_type to be %s, got %s", e, a)
+ }
+ if out["locations"] != nil {
+ t.Fatalf("Expected locations to be nil, got %v", out["locations"])
}
}
@@ -1060,17 +901,6 @@ func TestCloudFrontStructure_expandViewerCertificate_cloudfront_default_certific
}
}
-func TestCloudFrontStructure_flattenViewerCertificate_cloudfront_default_certificate(t *testing.T) {
- in := viewerCertificateConfSetCloudFrontDefault()
- vc := expandViewerCertificate(in)
- out := flattenViewerCertificate(vc)
- diff := schema.NewSet(viewerCertificateHash, []interface{}{in}).Difference(out)
-
- if len(diff.List()) > 0 {
- t.Fatalf("Expected out to be %v, got %v, diff: %v", in, out, diff)
- }
-}
-
func TestCloudFrontStructure_expandViewerCertificate_iam_certificate_id(t *testing.T) {
data := viewerCertificateConfSetIAM()
vc := expandViewerCertificate(data)
@@ -1110,55 +940,3 @@ func TestCloudFrontStructure_expandViewerCertificate_acm_certificate_arn(t *test
t.Fatalf("Expected IAMCertificateId to be TLSv1, got %v", *vc.MinimumProtocolVersion)
}
}
-
-func TestCloudFrontStructure_falttenViewerCertificate_iam_certificate_id(t *testing.T) {
- in := viewerCertificateConfSetIAM()
- vc := expandViewerCertificate(in)
- out := flattenViewerCertificate(vc)
- diff := schema.NewSet(viewerCertificateHash, []interface{}{in}).Difference(out)
-
- if len(diff.List()) > 0 {
- t.Fatalf("Expected out to be %v, got %v, diff: %v", in, out, diff)
- }
-}
-
-func TestCloudFrontStructure_falttenViewerCertificate_acm_certificate_arn(t *testing.T) {
- in := viewerCertificateConfSetACM()
- vc := expandViewerCertificate(in)
- out := flattenViewerCertificate(vc)
- diff := schema.NewSet(viewerCertificateHash, []interface{}{in}).Difference(out)
-
- if len(diff.List()) > 0 {
- t.Fatalf("Expected out to be %v, got %v, diff: %v", in, out, diff)
- }
-}
-
-func TestCloudFrontStructure_viewerCertificateHash_IAM(t *testing.T) {
- in := viewerCertificateConfSetIAM()
- out := viewerCertificateHash(in)
- expected := 1157261784
-
- if expected != out {
- t.Fatalf("Expected %v, got %v", expected, out)
- }
-}
-
-func TestCloudFrontStructure_viewerCertificateHash_ACM(t *testing.T) {
- in := viewerCertificateConfSetACM()
- out := viewerCertificateHash(in)
- expected := 2883600425
-
- if expected != out {
- t.Fatalf("Expected %v, got %v", expected, out)
- }
-}
-
-func TestCloudFrontStructure_viewerCertificateHash_default(t *testing.T) {
- in := viewerCertificateConfSetCloudFrontDefault()
- out := viewerCertificateHash(in)
- expected := 69840937
-
- if expected != out {
- t.Fatalf("Expected %v, got %v", expected, out)
- }
-}
diff --git a/aws/config.go b/aws/config.go
index b59e20a5563..d26517425c5 100644
--- a/aws/config.go
+++ b/aws/config.go
@@ -1,20 +1,13 @@
package aws
import (
- "crypto/tls"
- "errors"
"fmt"
"log"
- "net/http"
- "os"
"strings"
- "time"
"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"
"github.com/aws/aws-sdk-go/service/acmpca"
"github.com/aws/aws-sdk-go/service/apigateway"
@@ -128,8 +121,7 @@ import (
"github.com/aws/aws-sdk-go/service/wafregional"
"github.com/aws/aws-sdk-go/service/worklink"
"github.com/aws/aws-sdk-go/service/workspaces"
- "github.com/davecgh/go-spew/spew"
- cleanhttp "github.com/hashicorp/go-cleanhttp"
+ awsbase "github.com/hashicorp/aws-sdk-go-base"
"github.com/hashicorp/terraform/helper/logging"
"github.com/hashicorp/terraform/terraform"
)
@@ -148,8 +140,8 @@ type Config struct {
AssumeRoleSessionName string
AssumeRolePolicy string
- AllowedAccountIds []interface{}
- ForbiddenAccountIds []interface{}
+ AllowedAccountIds []string
+ ForbiddenAccountIds []string
AcmEndpoint string
ApigatewayEndpoint string
@@ -309,365 +301,175 @@ type AWSClient struct {
workspacesconn *workspaces.WorkSpaces
}
-func (c *AWSClient) S3() *s3.S3 {
- return c.s3conn
-}
-
-func (c *AWSClient) DynamoDB() *dynamodb.DynamoDB {
- return c.dynamodbconn
-}
-
-func (c *AWSClient) IsChinaCloud() bool {
- _, isChinaCloud := endpoints.PartitionForRegion([]endpoints.Partition{endpoints.AwsCnPartition()}, c.region)
- return isChinaCloud
-}
-
// Client configures and returns a fully initialized AWSClient
func (c *Config) Client() (interface{}, error) {
// Get the auth and region. This can fail if keys/regions were not
// specified and we're attempting to use the environment.
- if c.SkipRegionValidation {
- log.Println("[INFO] Skipping region validation")
- } else {
- log.Println("[INFO] Building AWS region structure")
- err := c.ValidateRegion()
- if err != nil {
+ if !c.SkipRegionValidation {
+ if err := awsbase.ValidateRegion(c.Region); err != nil {
return nil, err
}
}
- var client AWSClient
- // store AWS region in client struct, for region specific operations such as
- // bucket storage in S3
- client.region = c.Region
-
log.Println("[INFO] Building AWS auth structure")
- creds, err := GetCredentials(c)
- if err != nil {
- return nil, err
- }
-
- // define the AWS Session options
- // Credentials or Profile will be set in the Options below
- // MaxRetries may be set once we validate credentials
- var opt = session.Options{
- Config: aws.Config{
- Region: aws.String(c.Region),
- MaxRetries: aws.Int(0),
- HTTPClient: cleanhttp.DefaultClient(),
- S3ForcePathStyle: aws.Bool(c.S3ForcePathStyle),
+ awsbaseConfig := &awsbase.Config{
+ AccessKey: c.AccessKey,
+ AssumeRoleARN: c.AssumeRoleARN,
+ AssumeRoleExternalID: c.AssumeRoleExternalID,
+ AssumeRolePolicy: c.AssumeRolePolicy,
+ AssumeRoleSessionName: c.AssumeRoleSessionName,
+ CredsFilename: c.CredsFilename,
+ DebugLogging: logging.IsDebugOrHigher(),
+ IamEndpoint: c.IamEndpoint,
+ Insecure: c.Insecure,
+ MaxRetries: c.MaxRetries,
+ Profile: c.Profile,
+ Region: c.Region,
+ SecretKey: c.SecretKey,
+ SkipCredsValidation: c.SkipCredsValidation,
+ SkipMetadataApiCheck: c.SkipMetadataApiCheck,
+ SkipRequestingAccountId: c.SkipRequestingAccountId,
+ StsEndpoint: c.StsEndpoint,
+ Token: c.Token,
+ UserAgentProducts: []*awsbase.UserAgentProduct{
+ {Name: "APN", Version: "1.0"},
+ {Name: "HashiCorp", Version: "1.0"},
+ {Name: "Terraform", Version: terraform.VersionString()},
},
}
- // Call Get to check for credential provider. If nothing found, we'll get an
- // error, and we can present it nicely to the user
- cp, err := creds.Get()
+ sess, accountID, partition, err := awsbase.GetSessionWithAccountIDAndPartition(awsbaseConfig)
if err != nil {
- if awsErr, ok := err.(awserr.Error); ok && awsErr.Code() == "NoCredentialProviders" {
- // If a profile wasn't specified, the session may still be able to resolve credentials from shared config.
- if c.Profile == "" {
- sess, err := session.NewSession()
- if err != nil {
- return nil, errors.New(`No valid credential sources found for AWS Provider.
- Please see https://terraform.io/docs/providers/aws/index.html for more information on
- providing credentials for the AWS Provider`)
- }
- _, err = sess.Config.Credentials.Get()
- if err != nil {
- return nil, errors.New(`No valid credential sources found for AWS Provider.
- Please see https://terraform.io/docs/providers/aws/index.html for more information on
- providing credentials for the AWS Provider`)
- }
- log.Printf("[INFO] Using session-derived AWS Auth")
- opt.Config.Credentials = sess.Config.Credentials
- } else {
- log.Printf("[INFO] AWS Auth using Profile: %q", c.Profile)
- opt.Profile = c.Profile
- opt.SharedConfigState = session.SharedConfigEnable
- }
- } else {
- return nil, fmt.Errorf("Error loading credentials for AWS Provider: %s", err)
- }
- } else {
- // add the validated credentials to the session options
- log.Printf("[INFO] AWS Auth provider used: %q", cp.ProviderName)
- opt.Config.Credentials = creds
- }
-
- if logging.IsDebugOrHigher() {
- opt.Config.LogLevel = aws.LogLevel(aws.LogDebugWithHTTPBody | aws.LogDebugWithRequestRetries | aws.LogDebugWithRequestErrors)
- opt.Config.Logger = awsLogger{}
- }
-
- if c.Insecure {
- transport := opt.Config.HTTPClient.Transport.(*http.Transport)
- transport.TLSClientConfig = &tls.Config{
- InsecureSkipVerify: true,
- }
- }
-
- // create base session with no retries. MaxRetries will be set later
- sess, err := session.NewSessionWithOptions(opt)
- if err != nil {
- if awsErr, ok := err.(awserr.Error); ok && awsErr.Code() == "NoCredentialProviders" {
- return nil, errors.New(`No valid credential sources found for AWS Provider.
- Please see https://terraform.io/docs/providers/aws/index.html for more information on
- providing credentials for the AWS Provider`)
- }
- return nil, fmt.Errorf("Error creating AWS session: %s", err)
- }
-
- sess.Handlers.Build.PushBackNamed(addTerraformVersionToUserAgent)
-
- if extraDebug := os.Getenv("TERRAFORM_AWS_AUTHFAILURE_DEBUG"); extraDebug != "" {
- sess.Handlers.UnmarshalError.PushFrontNamed(debugAuthFailure)
- }
-
- // if the desired number of retries is non-zero, update the session
- if c.MaxRetries > 0 {
- sess = sess.Copy(&aws.Config{MaxRetries: aws.Int(c.MaxRetries)})
- }
-
- // Generally, we want to configure a lower retry theshold for networking issues
- // as the session retry threshold is very high by default and can mask permanent
- // networking failures, such as a non-existent service endpoint.
- // MaxRetries will override this logic if it has a lower retry threshold.
- // NOTE: This logic can be fooled by other request errors raising the retry count
- // before any networking error occurs
- sess.Handlers.Retry.PushBack(func(r *request.Request) {
- // We currently depend on the DefaultRetryer exponential backoff here.
- // ~10 retries gives a fair backoff of a few seconds.
- if r.RetryCount < 9 {
- return
- }
- // RequestError: send request failed
- // caused by: Post https://FQDN/: dial tcp: lookup FQDN: no such host
- if IsAWSErrExtended(r.Error, "RequestError", "send request failed", "no such host") {
- log.Printf("[WARN] Disabling retries after next request due to networking issue")
- r.Retryable = aws.Bool(false)
- }
- // RequestError: send request failed
- // caused by: Post https://FQDN/: dial tcp IPADDRESS:443: connect: connection refused
- if IsAWSErrExtended(r.Error, "RequestError", "send request failed", "connection refused") {
- log.Printf("[WARN] Disabling retries after next request due to networking issue")
- r.Retryable = aws.Bool(false)
- }
- })
-
- // This restriction should only be used for Route53 sessions.
- // Other resources that have restrictions should allow the API to fail, rather
- // than Terraform abstracting the region for the user. This can lead to breaking
- // changes if that resource is ever opened up to more regions.
- r53Sess := sess.Copy(&aws.Config{Region: aws.String("us-east-1"), Endpoint: aws.String(c.R53Endpoint)})
-
- // Some services have user-configurable endpoints
- awsAcmSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.AcmEndpoint)})
- awsApigatewaySess := sess.Copy(&aws.Config{Endpoint: aws.String(c.ApigatewayEndpoint)})
- awsCfSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.CloudFormationEndpoint)})
- awsCwSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.CloudWatchEndpoint)})
- awsCweSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.CloudWatchEventsEndpoint)})
- awsCwlSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.CloudWatchLogsEndpoint)})
- awsDynamoSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.DynamoDBEndpoint)})
- awsEc2Sess := sess.Copy(&aws.Config{Endpoint: aws.String(c.Ec2Endpoint)})
- awsAutoscalingSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.AutoscalingEndpoint)})
- awsEcrSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.EcrEndpoint)})
- awsEcsSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.EcsEndpoint)})
- awsEfsSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.EfsEndpoint)})
- awsElbSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.ElbEndpoint)})
- awsEsSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.EsEndpoint)})
- awsIamSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.IamEndpoint)})
- awsLambdaSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.LambdaEndpoint)})
- awsKinesisSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.KinesisEndpoint)})
- awsKinesisAnalyticsSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.KinesisAnalyticsEndpoint)})
- awsKinesisAnalyticsV2Sess := sess.Copy(&aws.Config{Endpoint: aws.String(c.KinesisAnalyticsEndpoint)})
- awsKmsSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.KmsEndpoint)})
- awsRdsSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.RdsEndpoint)})
- awsS3Sess := sess.Copy(&aws.Config{Endpoint: aws.String(c.S3Endpoint)})
- awsS3ControlSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.S3ControlEndpoint)})
- awsSnsSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.SnsEndpoint)})
- awsSqsSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.SqsEndpoint)})
- awsStsSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.StsEndpoint)})
- awsDeviceFarmSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.DeviceFarmEndpoint)})
- awsSsmSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.SsmEndpoint)})
-
- log.Println("[INFO] Initializing DeviceFarm SDK connection")
- client.devicefarmconn = devicefarm.New(awsDeviceFarmSess)
-
- // Beyond verifying credentials (if enabled), we use the next set of logic
- // to determine two pieces of information required for manually assembling
- // resource ARNs when they are not available in the service API:
- // * client.accountid
- // * client.partition
- client.iamconn = iam.New(awsIamSess)
- client.stsconn = sts.New(awsStsSess)
-
- if c.AssumeRoleARN != "" {
- client.accountid, client.partition, _ = parseAccountIDAndPartitionFromARN(c.AssumeRoleARN)
- }
-
- // Validate credentials early and fail before we do any graph walking.
- if !c.SkipCredsValidation {
- var err error
- client.accountid, client.partition, err = GetAccountIDAndPartitionFromSTSGetCallerIdentity(client.stsconn)
- if err != nil {
- return nil, fmt.Errorf("error validating provider credentials: %s", err)
- }
- }
-
- if client.accountid == "" && !c.SkipRequestingAccountId {
- var err error
- client.accountid, client.partition, err = GetAccountIDAndPartition(client.iamconn, client.stsconn, cp.ProviderName)
- if err != nil {
- // DEPRECATED: Next major version of the provider should return the error instead of logging
- // if skip_request_account_id is not enabled.
- log.Printf("[WARN] %s", fmt.Sprintf(
- "AWS account ID not previously found and failed retrieving via all available methods. "+
- "This will return an error in the next major version of the AWS provider. "+
- "See https://www.terraform.io/docs/providers/aws/index.html#skip_requesting_account_id for workaround and implications. "+
- "Errors: %s", err))
- }
+ return nil, err
}
- if client.accountid == "" {
+ if accountID == "" {
log.Printf("[WARN] AWS account ID not found for provider. See https://www.terraform.io/docs/providers/aws/index.html#skip_requesting_account_id for implications.")
}
- authErr := c.ValidateAccountId(client.accountid)
- if authErr != nil {
- return nil, authErr
- }
-
- // Infer AWS partition from configured region if we still need it
- if client.partition == "" {
- if partition, ok := endpoints.PartitionForRegion(endpoints.DefaultPartitions(), client.region); ok {
- client.partition = partition.ID()
- }
+ if err := awsbase.ValidateAccountID(accountID, c.AllowedAccountIds, c.ForbiddenAccountIds); err != nil {
+ return nil, err
}
- client.ec2conn = ec2.New(awsEc2Sess)
-
- if !c.SkipGetEC2Platforms {
- supportedPlatforms, err := GetSupportedEC2Platforms(client.ec2conn)
- if err != nil {
- // We intentionally fail *silently* because there's a chance
- // user just doesn't have ec2:DescribeAccountAttributes permissions
- log.Printf("[WARN] Unable to get supported EC2 platforms: %s", err)
- } else {
- client.supportedplatforms = supportedPlatforms
- }
+ client := &AWSClient{
+ accountid: accountID,
+ acmconn: acm.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.AcmEndpoint)})),
+ acmpcaconn: acmpca.New(sess),
+ apigateway: apigateway.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.ApigatewayEndpoint)})),
+ apigatewayv2conn: apigatewayv2.New(sess),
+ appautoscalingconn: applicationautoscaling.New(sess),
+ appmeshconn: appmesh.New(sess),
+ appsyncconn: appsync.New(sess),
+ athenaconn: athena.New(sess),
+ autoscalingconn: autoscaling.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.AutoscalingEndpoint)})),
+ backupconn: backup.New(sess),
+ batchconn: batch.New(sess),
+ budgetconn: budgets.New(sess),
+ cfconn: cloudformation.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.CloudFormationEndpoint)})),
+ cloud9conn: cloud9.New(sess),
+ cloudfrontconn: cloudfront.New(sess),
+ cloudhsmv2conn: cloudhsmv2.New(sess),
+ cloudsearchconn: cloudsearch.New(sess),
+ cloudtrailconn: cloudtrail.New(sess),
+ cloudwatchconn: cloudwatch.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.CloudWatchEndpoint)})),
+ cloudwatcheventsconn: cloudwatchevents.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.CloudWatchEventsEndpoint)})),
+ cloudwatchlogsconn: cloudwatchlogs.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.CloudWatchLogsEndpoint)})),
+ codebuildconn: codebuild.New(sess),
+ codecommitconn: codecommit.New(sess),
+ codedeployconn: codedeploy.New(sess),
+ codepipelineconn: codepipeline.New(sess),
+ cognitoconn: cognitoidentity.New(sess),
+ cognitoidpconn: cognitoidentityprovider.New(sess),
+ configconn: configservice.New(sess),
+ costandusagereportconn: costandusagereportservice.New(sess),
+ datapipelineconn: datapipeline.New(sess),
+ datasyncconn: datasync.New(sess),
+ daxconn: dax.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.DynamoDBEndpoint)})),
+ devicefarmconn: devicefarm.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.DeviceFarmEndpoint)})),
+ dlmconn: dlm.New(sess),
+ dmsconn: databasemigrationservice.New(sess),
+ docdbconn: docdb.New(sess),
+ dsconn: directoryservice.New(sess),
+ dxconn: directconnect.New(sess),
+ dynamodbconn: dynamodb.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.DynamoDBEndpoint)})),
+ ec2conn: ec2.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.Ec2Endpoint)})),
+ ecrconn: ecr.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.EcrEndpoint)})),
+ ecsconn: ecs.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.EcsEndpoint)})),
+ efsconn: efs.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.EfsEndpoint)})),
+ eksconn: eks.New(sess),
+ elasticacheconn: elasticache.New(sess),
+ elasticbeanstalkconn: elasticbeanstalk.New(sess),
+ elastictranscoderconn: elastictranscoder.New(sess),
+ elbconn: elb.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.ElbEndpoint)})),
+ elbv2conn: elbv2.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.ElbEndpoint)})),
+ emrconn: emr.New(sess),
+ esconn: elasticsearch.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.EsEndpoint)})),
+ firehoseconn: firehose.New(sess),
+ fmsconn: fms.New(sess),
+ fsxconn: fsx.New(sess),
+ gameliftconn: gamelift.New(sess),
+ glacierconn: glacier.New(sess),
+ globalacceleratorconn: globalaccelerator.New(sess),
+ glueconn: glue.New(sess),
+ guarddutyconn: guardduty.New(sess),
+ iamconn: iam.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.IamEndpoint)})),
+ inspectorconn: inspector.New(sess),
+ iotconn: iot.New(sess),
+ kafkaconn: kafka.New(sess),
+ kinesisanalyticsconn: kinesisanalytics.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.KinesisAnalyticsEndpoint)})),
+ kinesisanalyticsv2conn: kinesisanalyticsv2.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.KinesisAnalyticsEndpoint)})),
+ kinesisconn: kinesis.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.KinesisEndpoint)})),
+ kmsconn: kms.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.KmsEndpoint)})),
+ lambdaconn: lambda.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.LambdaEndpoint)})),
+ lexmodelconn: lexmodelbuildingservice.New(sess),
+ licensemanagerconn: licensemanager.New(sess),
+ lightsailconn: lightsail.New(sess),
+ macieconn: macie.New(sess),
+ mediaconnectconn: mediaconnect.New(sess),
+ mediaconvertconn: mediaconvert.New(sess),
+ medialiveconn: medialive.New(sess),
+ mediapackageconn: mediapackage.New(sess),
+ mediastoreconn: mediastore.New(sess),
+ mediastoredataconn: mediastoredata.New(sess),
+ mqconn: mq.New(sess),
+ neptuneconn: neptune.New(sess),
+ opsworksconn: opsworks.New(sess),
+ organizationsconn: organizations.New(sess),
+ partition: partition,
+ pinpointconn: pinpoint.New(sess),
+ pricingconn: pricing.New(sess),
+ r53conn: route53.New(sess.Copy(&aws.Config{Region: aws.String("us-east-1"), Endpoint: aws.String(c.R53Endpoint)})),
+ ramconn: ram.New(sess),
+ rdsconn: rds.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.RdsEndpoint)})),
+ redshiftconn: redshift.New(sess),
+ region: c.Region,
+ resourcegroupsconn: resourcegroups.New(sess),
+ route53resolverconn: route53resolver.New(sess),
+ s3conn: s3.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.S3Endpoint), S3ForcePathStyle: aws.Bool(c.S3ForcePathStyle)})),
+ s3controlconn: s3control.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.S3ControlEndpoint)})),
+ sagemakerconn: sagemaker.New(sess),
+ scconn: servicecatalog.New(sess),
+ sdconn: servicediscovery.New(sess),
+ secretsmanagerconn: secretsmanager.New(sess),
+ securityhubconn: securityhub.New(sess),
+ serverlessapplicationrepositoryconn: serverlessapplicationrepository.New(sess),
+ sesConn: ses.New(sess),
+ sfnconn: sfn.New(sess),
+ shieldconn: shield.New(sess),
+ simpledbconn: simpledb.New(sess),
+ snsconn: sns.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.SnsEndpoint)})),
+ sqsconn: sqs.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.SqsEndpoint)})),
+ ssmconn: ssm.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.SsmEndpoint)})),
+ storagegatewayconn: storagegateway.New(sess),
+ stsconn: sts.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.StsEndpoint)})),
+ swfconn: swf.New(sess),
+ transferconn: transfer.New(sess),
+ wafconn: waf.New(sess),
+ wafregionalconn: wafregional.New(sess),
+ worklinkconn: worklink.New(sess),
+ workspacesconn: workspaces.New(sess),
}
- client.acmconn = acm.New(awsAcmSess)
- client.acmpcaconn = acmpca.New(sess)
- client.apigateway = apigateway.New(awsApigatewaySess)
- client.apigatewayv2conn = apigatewayv2.New(sess)
- client.appautoscalingconn = applicationautoscaling.New(sess)
- client.appmeshconn = appmesh.New(sess)
- client.appsyncconn = appsync.New(sess)
- client.athenaconn = athena.New(sess)
- client.autoscalingconn = autoscaling.New(awsAutoscalingSess)
- client.backupconn = backup.New(sess)
- client.batchconn = batch.New(sess)
- client.budgetconn = budgets.New(sess)
- client.cfconn = cloudformation.New(awsCfSess)
- client.cloud9conn = cloud9.New(sess)
- client.cloudfrontconn = cloudfront.New(sess)
- client.cloudhsmv2conn = cloudhsmv2.New(sess)
- client.cloudsearchconn = cloudsearch.New(sess)
- client.cloudtrailconn = cloudtrail.New(sess)
- client.cloudwatchconn = cloudwatch.New(awsCwSess)
- client.cloudwatcheventsconn = cloudwatchevents.New(awsCweSess)
- client.cloudwatchlogsconn = cloudwatchlogs.New(awsCwlSess)
- client.codebuildconn = codebuild.New(sess)
- client.codecommitconn = codecommit.New(sess)
- client.codedeployconn = codedeploy.New(sess)
- client.codepipelineconn = codepipeline.New(sess)
- client.cognitoconn = cognitoidentity.New(sess)
- client.cognitoidpconn = cognitoidentityprovider.New(sess)
- client.configconn = configservice.New(sess)
- client.costandusagereportconn = costandusagereportservice.New(sess)
- client.datapipelineconn = datapipeline.New(sess)
- client.datasyncconn = datasync.New(sess)
- client.daxconn = dax.New(awsDynamoSess)
- client.dlmconn = dlm.New(sess)
- client.dmsconn = databasemigrationservice.New(sess)
- client.docdbconn = docdb.New(sess)
- client.dsconn = directoryservice.New(sess)
- client.dxconn = directconnect.New(sess)
- client.dynamodbconn = dynamodb.New(awsDynamoSess)
- client.ecrconn = ecr.New(awsEcrSess)
- client.ecsconn = ecs.New(awsEcsSess)
- client.efsconn = efs.New(awsEfsSess)
- client.eksconn = eks.New(sess)
- client.elasticacheconn = elasticache.New(sess)
- client.elasticbeanstalkconn = elasticbeanstalk.New(sess)
- client.elastictranscoderconn = elastictranscoder.New(sess)
- client.elbconn = elb.New(awsElbSess)
- client.elbv2conn = elbv2.New(awsElbSess)
- client.emrconn = emr.New(sess)
- client.esconn = elasticsearch.New(awsEsSess)
- client.firehoseconn = firehose.New(sess)
- client.fmsconn = fms.New(sess)
- client.fsxconn = fsx.New(sess)
- client.gameliftconn = gamelift.New(sess)
- client.glacierconn = glacier.New(sess)
- client.globalacceleratorconn = globalaccelerator.New(sess)
- client.glueconn = glue.New(sess)
- client.guarddutyconn = guardduty.New(sess)
- client.inspectorconn = inspector.New(sess)
- client.iotconn = iot.New(sess)
- client.kafkaconn = kafka.New(sess)
- client.kinesisanalyticsconn = kinesisanalytics.New(awsKinesisAnalyticsSess)
- client.kinesisanalyticsv2conn = kinesisanalyticsv2.New(awsKinesisAnalyticsV2Sess)
- client.kinesisconn = kinesis.New(awsKinesisSess)
- client.kmsconn = kms.New(awsKmsSess)
- client.lambdaconn = lambda.New(awsLambdaSess)
- client.lexmodelconn = lexmodelbuildingservice.New(sess)
- client.licensemanagerconn = licensemanager.New(sess)
- client.lightsailconn = lightsail.New(sess)
- client.macieconn = macie.New(sess)
- client.mediaconnectconn = mediaconnect.New(sess)
- client.mediaconvertconn = mediaconvert.New(sess)
- client.medialiveconn = medialive.New(sess)
- client.mediapackageconn = mediapackage.New(sess)
- client.mediastoreconn = mediastore.New(sess)
- client.mediastoredataconn = mediastoredata.New(sess)
- client.mqconn = mq.New(sess)
- client.neptuneconn = neptune.New(sess)
- client.neptuneconn = neptune.New(sess)
- client.opsworksconn = opsworks.New(sess)
- client.organizationsconn = organizations.New(sess)
- client.pinpointconn = pinpoint.New(sess)
- client.pricingconn = pricing.New(sess)
- client.r53conn = route53.New(r53Sess)
- client.ramconn = ram.New(sess)
- client.rdsconn = rds.New(awsRdsSess)
- client.redshiftconn = redshift.New(sess)
- client.resourcegroupsconn = resourcegroups.New(sess)
- client.route53resolverconn = route53resolver.New(sess)
- client.s3conn = s3.New(awsS3Sess)
- client.s3controlconn = s3control.New(awsS3ControlSess)
- client.sagemakerconn = sagemaker.New(sess)
- client.scconn = servicecatalog.New(sess)
- client.sdconn = servicediscovery.New(sess)
- client.secretsmanagerconn = secretsmanager.New(sess)
- client.securityhubconn = securityhub.New(sess)
- client.serverlessapplicationrepositoryconn = serverlessapplicationrepository.New(sess)
- client.sesConn = ses.New(sess)
- client.sfnconn = sfn.New(sess)
- client.shieldconn = shield.New(sess)
- client.simpledbconn = simpledb.New(sess)
- client.snsconn = sns.New(awsSnsSess)
- client.sqsconn = sqs.New(awsSqsSess)
- client.ssmconn = ssm.New(awsSsmSess)
- client.storagegatewayconn = storagegateway.New(sess)
- client.swfconn = swf.New(sess)
- client.transferconn = transfer.New(sess)
- client.wafconn = waf.New(sess)
- client.wafregionalconn = wafregional.New(sess)
- client.worklinkconn = worklink.New(sess)
- client.workspacesconn = workspaces.New(sess)
-
// Workaround for https://github.com/aws/aws-sdk-go/issues/1376
client.kinesisconn.Handlers.Retry.PushBack(func(r *request.Request) {
if !strings.HasPrefix(r.Operation.Name, "Describe") && !strings.HasPrefix(r.Operation.Name, "List") {
@@ -726,7 +528,18 @@ func (c *Config) Client() (interface{}, error) {
}
})
- return &client, nil
+ if !c.SkipGetEC2Platforms {
+ supportedPlatforms, err := GetSupportedEC2Platforms(client.ec2conn)
+ if err != nil {
+ // We intentionally fail *silently* because there's a chance
+ // user just doesn't have ec2:DescribeAccountAttributes permissions
+ log.Printf("[WARN] Unable to get supported EC2 platforms: %s", err)
+ } else {
+ client.supportedplatforms = supportedPlatforms
+ }
+ }
+
+ return client, nil
}
func hasEc2Classic(platforms []string) bool {
@@ -738,49 +551,6 @@ func hasEc2Classic(platforms []string) bool {
return false
}
-// ValidateRegion returns an error if the configured region is not a
-// valid aws region and nil otherwise.
-func (c *Config) ValidateRegion() error {
- 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)
-}
-
-// ValidateAccountId returns a context-specific error if the configured account
-// id is explicitly forbidden or not authorised; and nil if it is authorised.
-func (c *Config) ValidateAccountId(accountId string) error {
- if c.AllowedAccountIds == nil && c.ForbiddenAccountIds == nil {
- return nil
- }
-
- log.Println("[INFO] Validating account ID")
-
- if c.ForbiddenAccountIds != nil {
- for _, id := range c.ForbiddenAccountIds {
- if id == accountId {
- return fmt.Errorf("Forbidden account ID (%s)", id)
- }
- }
- }
-
- if c.AllowedAccountIds != nil {
- for _, id := range c.AllowedAccountIds {
- if id == accountId {
- return nil
- }
- }
- return fmt.Errorf("Account ID not allowed (%s)", accountId)
- }
-
- return nil
-}
-
func GetSupportedEC2Platforms(conn *ec2.EC2) ([]string, error) {
attrName := "supported-platforms"
@@ -808,34 +578,3 @@ func GetSupportedEC2Platforms(conn *ec2.EC2) ([]string, error) {
return platforms, nil
}
-
-// addTerraformVersionToUserAgent is a named handler that will add Terraform's
-// version information to requests made by the AWS SDK.
-var addTerraformVersionToUserAgent = request.NamedHandler{
- Name: "terraform.TerraformVersionUserAgentHandler",
- Fn: request.MakeAddToUserAgentHandler(
- "APN/1.0 HashiCorp/1.0 Terraform", terraform.VersionString()),
-}
-
-var debugAuthFailure = request.NamedHandler{
- Name: "terraform.AuthFailureAdditionalDebugHandler",
- Fn: func(req *request.Request) {
- if isAWSErr(req.Error, "AuthFailure", "AWS was not able to validate the provided access credentials") {
- log.Printf("[INFO] Additional AuthFailure Debugging Context")
- log.Printf("[INFO] Current system UTC time: %s", time.Now().UTC())
- log.Printf("[INFO] Request object: %s", spew.Sdump(req))
- }
- },
-}
-
-type awsLogger struct{}
-
-func (l awsLogger) Log(args ...interface{}) {
- tokens := make([]string, 0, len(args))
- for _, arg := range args {
- if token, ok := arg.(string); ok {
- tokens = append(tokens, token)
- }
- }
- log.Printf("[DEBUG] [aws-sdk-go] %s", strings.Join(tokens, " "))
-}
diff --git a/aws/config_test.go b/aws/config_test.go
index 2a40be73ebb..1e6594e3d93 100644
--- a/aws/config_test.go
+++ b/aws/config_test.go
@@ -1,30 +1,22 @@
package aws
import (
- "bytes"
- "fmt"
- "log"
- "net/http"
- "net/http/httptest"
"reflect"
"testing"
- "time"
- "github.com/aws/aws-sdk-go/aws"
- awsCredentials "github.com/aws/aws-sdk-go/aws/credentials"
- "github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ec2"
+ awsbase "github.com/hashicorp/aws-sdk-go-base"
)
func TestGetSupportedEC2Platforms(t *testing.T) {
- ec2Endpoints := []*awsMockEndpoint{
+ ec2Endpoints := []*awsbase.MockEndpoint{
{
- Request: &awsMockRequest{"POST", "/", "Action=DescribeAccountAttributes&" +
+ Request: &awsbase.MockRequest{"POST", "/", "Action=DescribeAccountAttributes&" +
"AttributeName.1=supported-platforms&Version=2016-11-15"},
- Response: &awsMockResponse{200, test_ec2_describeAccountAttributes_response, "text/xml"},
+ Response: &awsbase.MockResponse{200, test_ec2_describeAccountAttributes_response, "text/xml"},
},
}
- closeFunc, sess, err := getMockedAwsApiSession("EC2", ec2Endpoints)
+ closeFunc, sess, err := awsbase.GetMockedAwsApiSession("EC2", ec2Endpoints)
if err != nil {
t.Fatal(err)
}
@@ -41,68 +33,6 @@ func TestGetSupportedEC2Platforms(t *testing.T) {
}
}
-// getMockedAwsApiSession establishes a httptest server to simulate behaviour
-// of a real AWS API server
-func getMockedAwsApiSession(svcName string, endpoints []*awsMockEndpoint) (func(), *session.Session, error) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- buf := new(bytes.Buffer)
- if _, err := buf.ReadFrom(r.Body); err != nil {
- w.WriteHeader(500)
- fmt.Fprintf(w, "Error reading from HTTP Request Body: %s", err)
- return
- }
- requestBody := buf.String()
-
- log.Printf("[DEBUG] Received %s API %q request to %q: %s",
- svcName, r.Method, r.RequestURI, requestBody)
-
- for _, e := range endpoints {
- if r.Method == e.Request.Method && r.RequestURI == e.Request.Uri && requestBody == e.Request.Body {
- log.Printf("[DEBUG] Mocked %s API responding with %d: %s",
- svcName, e.Response.StatusCode, e.Response.Body)
-
- w.WriteHeader(e.Response.StatusCode)
- w.Header().Set("Content-Type", e.Response.ContentType)
- w.Header().Set("X-Amzn-Requestid", "1b206dd1-f9a8-11e5-becf-051c60f11c4a")
- w.Header().Set("Date", time.Now().Format(time.RFC1123))
-
- fmt.Fprintln(w, e.Response.Body)
- return
- }
- }
-
- w.WriteHeader(400)
- }))
-
- sc := awsCredentials.NewStaticCredentials("accessKey", "secretKey", "")
-
- sess, err := session.NewSession(&aws.Config{
- Credentials: sc,
- Region: aws.String("us-east-1"),
- Endpoint: aws.String(ts.URL),
- CredentialsChainVerboseErrors: aws.Bool(true),
- })
-
- return ts.Close, sess, err
-}
-
-type awsMockEndpoint struct {
- Request *awsMockRequest
- Response *awsMockResponse
-}
-
-type awsMockRequest struct {
- Method string
- Uri string
- Body string
-}
-
-type awsMockResponse struct {
- StatusCode int
- Body string
- ContentType string
-}
-
var test_ec2_describeAccountAttributes_response = `7a62c49f-347e-4fc4-9331-6e8eEXAMPLE
diff --git a/aws/data_source_aws_ami.go b/aws/data_source_aws_ami.go
index f5b8a01d0ee..a877fe62762 100644
--- a/aws/data_source_aws_ami.go
+++ b/aws/data_source_aws_ami.go
@@ -41,9 +41,12 @@ func dataSourceAwsAmi() *schema.Resource {
},
"owners": {
Type: schema.TypeList,
- Optional: true,
- ForceNew: true,
- Elem: &schema.Schema{Type: schema.TypeString},
+ Required: true,
+ MinItems: 1,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ ValidateFunc: validation.NoZeroValues,
+ },
},
// Computed values.
"architecture": {
@@ -182,49 +185,15 @@ func dataSourceAwsAmi() *schema.Resource {
func dataSourceAwsAmiRead(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).ec2conn
- executableUsers, executableUsersOk := d.GetOk("executable_users")
- filters, filtersOk := d.GetOk("filter")
- nameRegex, nameRegexOk := d.GetOk("name_regex")
- owners, ownersOk := d.GetOk("owners")
-
- if !executableUsersOk && !filtersOk && !nameRegexOk && !ownersOk {
- return fmt.Errorf("One of executable_users, filters, name_regex, or owners must be assigned")
- }
-
- params := &ec2.DescribeImagesInput{}
- if executableUsersOk {
- params.ExecutableUsers = expandStringList(executableUsers.([]interface{}))
- }
- if filtersOk {
- params.Filters = buildAwsDataSourceFilters(filters.(*schema.Set))
+ params := &ec2.DescribeImagesInput{
+ Owners: expandStringList(d.Get("owners").([]interface{})),
}
- if ownersOk {
- o := expandStringList(owners.([]interface{}))
- if len(o) > 0 {
- params.Owners = o
- }
+ if v, ok := d.GetOk("executable_users"); ok {
+ params.ExecutableUsers = expandStringList(v.([]interface{}))
}
-
- // Deprecated: pre-2.0.0 warning logging
- if !ownersOk {
- log.Print("[WARN] The \"owners\" argument will become required in the next major version.")
- log.Print("[WARN] Documentation can be found at: https://www.terraform.io/docs/providers/aws/d/ami.html#owners")
-
- missingOwnerFilter := true
-
- if filtersOk {
- for _, filter := range params.Filters {
- if aws.StringValue(filter.Name) == "owner-alias" || aws.StringValue(filter.Name) == "owner-id" {
- missingOwnerFilter = false
- break
- }
- }
- }
-
- if missingOwnerFilter {
- log.Print("[WARN] Potential security issue: missing \"owners\" filtering for AMI. Check AMI to ensure it came from trusted source.")
- }
+ if v, ok := d.GetOk("filter"); ok {
+ params.Filters = buildAwsDataSourceFilters(v.(*schema.Set))
}
log.Printf("[DEBUG] Reading AMI: %s", params)
@@ -234,7 +203,7 @@ func dataSourceAwsAmiRead(d *schema.ResourceData, meta interface{}) error {
}
var filteredImages []*ec2.Image
- if nameRegexOk {
+ if nameRegex, ok := d.GetOk("name_regex"); ok {
r := regexp.MustCompile(nameRegex.(string))
for _, image := range resp.Images {
// Check for a very rare case where the response would include no
diff --git a/aws/data_source_aws_ami_ids.go b/aws/data_source_aws_ami_ids.go
index 7c932fa6cd1..941dc4b8840 100644
--- a/aws/data_source_aws_ami_ids.go
+++ b/aws/data_source_aws_ami_ids.go
@@ -34,9 +34,12 @@ func dataSourceAwsAmiIds() *schema.Resource {
},
"owners": {
Type: schema.TypeList,
- Optional: true,
- ForceNew: true,
- Elem: &schema.Schema{Type: schema.TypeString},
+ Required: true,
+ MinItems: 1,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ ValidateFunc: validation.NoZeroValues,
+ },
},
"ids": {
Type: schema.TypeList,
@@ -55,51 +58,15 @@ func dataSourceAwsAmiIds() *schema.Resource {
func dataSourceAwsAmiIdsRead(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).ec2conn
- executableUsers, executableUsersOk := d.GetOk("executable_users")
- filters, filtersOk := d.GetOk("filter")
- nameRegex, nameRegexOk := d.GetOk("name_regex")
- owners, ownersOk := d.GetOk("owners")
- sortAscending := d.Get("sort_ascending").(bool)
-
- if !executableUsersOk && !filtersOk && !nameRegexOk && !ownersOk {
- return fmt.Errorf("One of executable_users, filters, name_regex, or owners must be assigned")
- }
-
- params := &ec2.DescribeImagesInput{}
-
- if executableUsersOk {
- params.ExecutableUsers = expandStringList(executableUsers.([]interface{}))
- }
- if filtersOk {
- params.Filters = buildAwsDataSourceFilters(filters.(*schema.Set))
+ params := &ec2.DescribeImagesInput{
+ Owners: expandStringList(d.Get("owners").([]interface{})),
}
- if ownersOk {
- o := expandStringList(owners.([]interface{}))
- if len(o) > 0 {
- params.Owners = o
- }
+ if v, ok := d.GetOk("executable_users"); ok {
+ params.ExecutableUsers = expandStringList(v.([]interface{}))
}
-
- // Deprecated: pre-2.0.0 warning logging
- if !ownersOk {
- log.Print("[WARN] The \"owners\" argument will become required in the next major version.")
- log.Print("[WARN] Documentation can be found at: https://www.terraform.io/docs/providers/aws/d/ami.html#owners")
-
- missingOwnerFilter := true
-
- if filtersOk {
- for _, filter := range params.Filters {
- if aws.StringValue(filter.Name) == "owner-alias" || aws.StringValue(filter.Name) == "owner-id" {
- missingOwnerFilter = false
- break
- }
- }
- }
-
- if missingOwnerFilter {
- log.Print("[WARN] Potential security issue: missing \"owners\" filtering for AMI. Check AMI to ensure it came from trusted source.")
- }
+ if v, ok := d.GetOk("filter"); ok {
+ params.Filters = buildAwsDataSourceFilters(v.(*schema.Set))
}
log.Printf("[DEBUG] Reading AMI IDs: %s", params)
@@ -111,7 +78,7 @@ func dataSourceAwsAmiIdsRead(d *schema.ResourceData, meta interface{}) error {
var filteredImages []*ec2.Image
imageIds := make([]string, 0)
- if nameRegexOk {
+ if nameRegex, ok := d.GetOk("name_regex"); ok {
r := regexp.MustCompile(nameRegex.(string))
for _, image := range resp.Images {
// Check for a very rare case where the response would include no
@@ -134,7 +101,7 @@ func dataSourceAwsAmiIdsRead(d *schema.ResourceData, meta interface{}) error {
sort.Slice(filteredImages, func(i, j int) bool {
itime, _ := time.Parse(time.RFC3339, aws.StringValue(filteredImages[i].CreationDate))
jtime, _ := time.Parse(time.RFC3339, aws.StringValue(filteredImages[j].CreationDate))
- if sortAscending {
+ if d.Get("sort_ascending").(bool) {
return itime.Unix() < jtime.Unix()
}
return itime.Unix() > jtime.Unix()
diff --git a/aws/data_source_aws_ami_ids_test.go b/aws/data_source_aws_ami_ids_test.go
index 1a38b56c6af..587970f8913 100644
--- a/aws/data_source_aws_ami_ids_test.go
+++ b/aws/data_source_aws_ami_ids_test.go
@@ -58,22 +58,6 @@ func TestAccDataSourceAwsAmiIds_sorted(t *testing.T) {
})
}
-func TestAccDataSourceAwsAmiIds_empty(t *testing.T) {
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- Providers: testAccProviders,
- Steps: []resource.TestStep{
- {
- Config: testAccDataSourceAwsAmiIdsConfig_empty,
- Check: resource.ComposeTestCheckFunc(
- testAccCheckAwsAmiDataSourceID("data.aws_ami_ids.empty"),
- resource.TestCheckResourceAttr("data.aws_ami_ids.empty", "ids.#", "0"),
- ),
- },
- },
- })
-}
-
const testAccDataSourceAwsAmiIdsConfig_basic = `
data "aws_ami_ids" "ubuntu" {
owners = ["099720109477"]
@@ -113,12 +97,3 @@ data "aws_ami_ids" "test" {
}
`, sort_ascending)
}
-
-const testAccDataSourceAwsAmiIdsConfig_empty = `
-data "aws_ami_ids" "empty" {
- filter {
- name = "name"
- values = []
- }
-}
-`
diff --git a/aws/data_source_aws_ami_test.go b/aws/data_source_aws_ami_test.go
index 1288b17a9a2..32eb66f301f 100644
--- a/aws/data_source_aws_ami_test.go
+++ b/aws/data_source_aws_ami_test.go
@@ -127,37 +127,6 @@ func TestAccAWSAmiDataSource_instanceStore(t *testing.T) {
})
}
-func TestAccAWSAmiDataSource_owners(t *testing.T) {
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- Providers: testAccProviders,
- Steps: []resource.TestStep{
- {
- Config: testAccCheckAwsAmiDataSourceOwnersConfig,
- Check: resource.ComposeTestCheckFunc(
- testAccCheckAwsAmiDataSourceID("data.aws_ami.amazon_ami"),
- ),
- },
- },
- })
-}
-
-// Acceptance test for: https://github.com/hashicorp/terraform/issues/10758
-func TestAccAWSAmiDataSource_ownersEmpty(t *testing.T) {
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- Providers: testAccProviders,
- Steps: []resource.TestStep{
- {
- Config: testAccCheckAwsAmiDataSourceEmptyOwnersConfig,
- Check: resource.ComposeTestCheckFunc(
- testAccCheckAwsAmiDataSourceID("data.aws_ami.amazon_ami"),
- ),
- },
- },
- })
-}
-
func TestAccAWSAmiDataSource_localNameFilter(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
@@ -175,7 +144,6 @@ func TestAccAWSAmiDataSource_localNameFilter(t *testing.T) {
}
func testAccCheckAwsAmiDataSourceID(n string) resource.TestCheckFunc {
- // Wait for IAM role
return func(s *terraform.State) error {
rs, ok := s.RootModule().Resources[n]
if !ok {
@@ -196,10 +164,8 @@ func testAccCheckAwsAmiDataSourceID(n string) resource.TestCheckFunc {
const testAccCheckAwsAmiDataSourceConfig = `
data "aws_ami" "nat_ami" {
most_recent = true
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
+
filter {
name = "name"
values = ["amzn-ami-vpc-nat*"]
@@ -223,10 +189,8 @@ data "aws_ami" "nat_ami" {
const testAccCheckAwsAmiDataSourceWindowsConfig = `
data "aws_ami" "windows_ami" {
most_recent = true
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
+
filter {
name = "name"
values = ["Windows_Server-2012-R2*"]
@@ -250,10 +214,8 @@ data "aws_ami" "windows_ami" {
const testAccCheckAwsAmiDataSourceInstanceStoreConfig = `
data "aws_ami" "instance_store_ami" {
most_recent = true
- filter {
- name = "owner-id"
- values = ["099720109477"]
- }
+ owners = ["099720109477"]
+
filter {
name = "name"
values = ["ubuntu/images/hvm-instance/ubuntu-trusty-14.04-amd64-server*"]
@@ -269,38 +231,6 @@ data "aws_ami" "instance_store_ami" {
}
`
-// Testing owner parameter
-const testAccCheckAwsAmiDataSourceOwnersConfig = `
-data "aws_ami" "amazon_ami" {
- most_recent = true
- owners = ["amazon"]
-}
-`
-
-const testAccCheckAwsAmiDataSourceEmptyOwnersConfig = `
-data "aws_ami" "amazon_ami" {
- most_recent = true
- owners = [""]
-
- # we need to test the owners = [""] for regressions but we want to filter the results
- # beyond all public AWS AMIs :)
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
-
- filter {
- name = "name"
- values = ["amzn-ami-minimal-hvm-*"]
- }
-
- filter {
- name = "root-device-type"
- values = ["ebs"]
- }
-}
-`
-
// Testing name_regex parameter
const testAccCheckAwsAmiDataSourceNameRegexConfig = `
data "aws_ami" "name_regex_filtered_ami" {
diff --git a/aws/data_source_aws_autoscaling_groups_test.go b/aws/data_source_aws_autoscaling_groups_test.go
index c8b79431125..11434f1a368 100644
--- a/aws/data_source_aws_autoscaling_groups_test.go
+++ b/aws/data_source_aws_autoscaling_groups_test.go
@@ -84,11 +84,7 @@ func testAccCheckAwsAutoscalingGroupsConfig(rInt1, rInt2, rInt3 int) string {
return fmt.Sprintf(`
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -162,11 +158,7 @@ func testAccCheckAwsAutoscalingGroupsConfigWithDataSource(rInt1, rInt2, rInt3 in
return fmt.Sprintf(`
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
diff --git a/aws/data_source_aws_dynamodb_table.go b/aws/data_source_aws_dynamodb_table.go
index 7112796a14d..4705ac31ee3 100644
--- a/aws/data_source_aws_dynamodb_table.go
+++ b/aws/data_source_aws_dynamodb_table.go
@@ -224,13 +224,10 @@ func dataSourceAwsDynamoDbTableRead(d *schema.ResourceData, meta interface{}) er
TableName: aws.String(d.Id()),
})
if err != nil {
- return err
+ return fmt.Errorf("error describing DynamoDB Table (%s) Time to Live: %s", d.Id(), err)
}
- if ttlOut.TimeToLiveDescription != nil {
- err := d.Set("ttl", flattenDynamoDbTtl(ttlOut.TimeToLiveDescription))
- if err != nil {
- return err
- }
+ if err := d.Set("ttl", flattenDynamoDbTtl(ttlOut)); err != nil {
+ return fmt.Errorf("error setting ttl: %s", err)
}
tags, err := readDynamoDbTableTags(d.Get("arn").(string), conn)
diff --git a/aws/data_source_aws_dynamodb_table_test.go b/aws/data_source_aws_dynamodb_table_test.go
index 8480d978b88..ee4e19843aa 100644
--- a/aws/data_source_aws_dynamodb_table_test.go
+++ b/aws/data_source_aws_dynamodb_table_test.go
@@ -25,6 +25,7 @@ func TestAccDataSourceAwsDynamoDbTable_basic(t *testing.T) {
resource.TestCheckResourceAttr("data.aws_dynamodb_table.dynamodb_table_test", "range_key", "GameTitle"),
resource.TestCheckResourceAttr("data.aws_dynamodb_table.dynamodb_table_test", "attribute.#", "3"),
resource.TestCheckResourceAttr("data.aws_dynamodb_table.dynamodb_table_test", "global_secondary_index.#", "1"),
+ resource.TestCheckResourceAttr("data.aws_dynamodb_table.dynamodb_table_test", "ttl.#", "1"),
resource.TestCheckResourceAttr("data.aws_dynamodb_table.dynamodb_table_test", "tags.%", "2"),
resource.TestCheckResourceAttr("data.aws_dynamodb_table.dynamodb_table_test", "tags.Name", "dynamodb-table-1"),
resource.TestCheckResourceAttr("data.aws_dynamodb_table.dynamodb_table_test", "tags.Environment", "test"),
diff --git a/aws/data_source_aws_ebs_volume.go b/aws/data_source_aws_ebs_volume.go
index 7795335d874..1a109d0ba3e 100644
--- a/aws/data_source_aws_ebs_volume.go
+++ b/aws/data_source_aws_ebs_volume.go
@@ -7,7 +7,6 @@ import (
"github.com/aws/aws-sdk-go/aws/arn"
"github.com/aws/aws-sdk-go/service/ec2"
- "github.com/davecgh/go-spew/spew"
"github.com/hashicorp/terraform/helper/schema"
)
@@ -80,8 +79,6 @@ func dataSourceAwsEbsVolumeRead(d *schema.ResourceData, meta interface{}) error
return err
}
- log.Printf("Found These Volumes %s", spew.Sdump(resp.Volumes))
-
filteredVolumes := resp.Volumes[:]
var volume *ec2.Volume
diff --git a/aws/data_source_aws_elastic_beanstalk_hosted_zone.go b/aws/data_source_aws_elastic_beanstalk_hosted_zone.go
index d0f209eae6b..90bc5638213 100644
--- a/aws/data_source_aws_elastic_beanstalk_hosted_zone.go
+++ b/aws/data_source_aws_elastic_beanstalk_hosted_zone.go
@@ -15,6 +15,7 @@ var elasticBeanstalkHostedZoneIds = map[string]string{
"ap-south-1": "Z18NTBI3Y7N9TZ",
"ca-central-1": "ZJFCZL7SSZB5I",
"eu-central-1": "Z1FRNW7UH4DEZJ",
+ "eu-north-1": "Z23GO28BZ5AETM",
"eu-west-1": "Z2NYPWQ7DFZAZH",
"eu-west-2": "Z1GKAAAUGATPF1",
"eu-west-3": "Z5WN6GAYWG5OB",
diff --git a/aws/data_source_aws_iam_role.go b/aws/data_source_aws_iam_role.go
index 26af5a2fb01..63c68cc2d1b 100644
--- a/aws/data_source_aws_iam_role.go
+++ b/aws/data_source_aws_iam_role.go
@@ -20,9 +20,9 @@ func dataSourceAwsIAMRole() *schema.Resource {
Computed: true,
},
"assume_role_policy_document": {
- Type: schema.TypeString,
- Computed: true,
- Deprecated: "Use `assume_role_policy` instead",
+ Type: schema.TypeString,
+ Computed: true,
+ Removed: "Use `assume_role_policy` instead",
},
"assume_role_policy": {
Type: schema.TypeString,
@@ -37,9 +37,9 @@ func dataSourceAwsIAMRole() *schema.Resource {
Computed: true,
},
"role_id": {
- Type: schema.TypeString,
- Computed: true,
- Deprecated: "Use `unique_id` instead",
+ Type: schema.TypeString,
+ Computed: true,
+ Removed: "Use `unique_id` instead",
},
"unique_id": {
Type: schema.TypeString,
@@ -50,13 +50,13 @@ func dataSourceAwsIAMRole() *schema.Resource {
Computed: true,
},
"role_name": {
- Type: schema.TypeString,
- Optional: true,
- Deprecated: "Use `name` instead",
+ Type: schema.TypeString,
+ Optional: true,
+ Removed: "Use `name` instead",
},
"name": {
Type: schema.TypeString,
- Optional: true,
+ Required: true,
},
"create_date": {
Type: schema.TypeString,
@@ -72,34 +72,20 @@ func dataSourceAwsIAMRole() *schema.Resource {
func dataSourceAwsIAMRoleRead(d *schema.ResourceData, meta interface{}) error {
iamconn := meta.(*AWSClient).iamconn
-
- name, hasName := d.GetOk("name")
- roleName, hasRoleName := d.GetOk("role_name")
-
- if !hasName && !hasRoleName {
- return fmt.Errorf("`%s` must be set", "name")
- }
-
- var id string
- if hasName {
- id = name.(string)
- } else if hasRoleName {
- id = roleName.(string)
- }
- d.SetId(id)
+ name := d.Get("name").(string)
input := &iam.GetRoleInput{
- RoleName: aws.String(d.Id()),
+ RoleName: aws.String(name),
}
output, err := iamconn.GetRole(input)
if err != nil {
- return fmt.Errorf("Error reading IAM Role %s: %s", d.Id(), err)
+ return fmt.Errorf("error reading IAM Role (%s): %s", name, err)
}
d.Set("arn", output.Role.Arn)
if err := d.Set("create_date", output.Role.CreateDate.Format(time.RFC3339)); err != nil {
- return err
+ return fmt.Errorf("error setting create_date: %s", err)
}
d.Set("description", output.Role.Description)
d.Set("max_session_duration", output.Role.MaxSessionDuration)
@@ -113,15 +99,13 @@ func dataSourceAwsIAMRoleRead(d *schema.ResourceData, meta interface{}) error {
assumRolePolicy, err := url.QueryUnescape(aws.StringValue(output.Role.AssumeRolePolicyDocument))
if err != nil {
- return err
+ return fmt.Errorf("error parsing assume role policy document: %s", err)
}
if err := d.Set("assume_role_policy", assumRolePolicy); err != nil {
- return err
+ return fmt.Errorf("error setting assume_role_policy: %s", err)
}
- // Keep backward compatibility with previous attributes
- d.Set("role_id", output.Role.RoleId)
- d.Set("assume_role_policy_document", assumRolePolicy)
+ d.SetId(name)
return nil
}
diff --git a/aws/data_source_aws_iam_role_test.go b/aws/data_source_aws_iam_role_test.go
index ead7f4263d1..ad8f15bde4a 100644
--- a/aws/data_source_aws_iam_role_test.go
+++ b/aws/data_source_aws_iam_role_test.go
@@ -2,7 +2,6 @@ package aws
import (
"fmt"
- "regexp"
"testing"
"github.com/hashicorp/terraform/helper/acctest"
@@ -10,7 +9,9 @@ import (
)
func TestAccAWSDataSourceIAMRole_basic(t *testing.T) {
- roleName := fmt.Sprintf("test-role-%s", acctest.RandString(10))
+ roleName := acctest.RandomWithPrefix("tf-acc-test")
+ dataSourceName := "data.aws_iam_role.test"
+ resourceName := "aws_iam_role.test"
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
@@ -18,15 +19,15 @@ func TestAccAWSDataSourceIAMRole_basic(t *testing.T) {
Steps: []resource.TestStep{
{
Config: testAccAwsIAMRoleConfig(roleName),
- Check: resource.ComposeTestCheckFunc(
- resource.TestCheckResourceAttrSet("data.aws_iam_role.test", "unique_id"),
- resource.TestCheckResourceAttrSet("data.aws_iam_role.test", "assume_role_policy"),
- resource.TestCheckResourceAttr("data.aws_iam_role.test", "path", "/testpath/"),
- resource.TestCheckResourceAttr("data.aws_iam_role.test", "permissions_boundary", ""),
- resource.TestCheckResourceAttr("data.aws_iam_role.test", "name", roleName),
- resource.TestCheckResourceAttrSet("data.aws_iam_role.test", "create_date"),
- resource.TestMatchResourceAttr("data.aws_iam_role.test", "arn",
- regexp.MustCompile(`^arn:[\w-]+:([a-zA-Z0-9\-])+:([a-z]{2}-(gov-)?[a-z]+-\d{1})?:(\d{12})?:(.*)$`)),
+ Check: resource.ComposeAggregateTestCheckFunc(
+ resource.TestCheckResourceAttrPair(dataSourceName, "arn", resourceName, "arn"),
+ resource.TestCheckResourceAttrPair(dataSourceName, "assume_role_policy", resourceName, "assume_role_policy"),
+ resource.TestCheckResourceAttrPair(dataSourceName, "create_date", resourceName, "create_date"),
+ resource.TestCheckResourceAttrPair(dataSourceName, "description", resourceName, "description"),
+ resource.TestCheckResourceAttrPair(dataSourceName, "max_session_duration", resourceName, "max_session_duration"),
+ resource.TestCheckResourceAttrPair(dataSourceName, "name", resourceName, "name"),
+ resource.TestCheckResourceAttrPair(dataSourceName, "path", resourceName, "path"),
+ resource.TestCheckResourceAttrPair(dataSourceName, "unique_id", resourceName, "unique_id"),
),
},
},
@@ -35,8 +36,8 @@ func TestAccAWSDataSourceIAMRole_basic(t *testing.T) {
func testAccAwsIAMRoleConfig(roleName string) string {
return fmt.Sprintf(`
-resource "aws_iam_role" "test_role" {
- name = "%s"
+resource "aws_iam_role" "test" {
+ name = %[1]q
assume_role_policy = < adjustment_type instead",
+ Type: schema.TypeString,
+ Optional: true,
+ Removed: "Use `step_scaling_policy_configuration` configuration block `adjustment_type` argument instead",
},
"cooldown": {
- Type: schema.TypeInt,
- Optional: true,
- Deprecated: "Use step_scaling_policy_configuration -> cooldown instead",
+ Type: schema.TypeInt,
+ Optional: true,
+ Removed: "Use `step_scaling_policy_configuration` configuration block `cooldown` argument instead",
},
"metric_aggregation_type": {
- Type: schema.TypeString,
- Optional: true,
- Deprecated: "Use step_scaling_policy_configuration -> metric_aggregation_type instead",
+ Type: schema.TypeString,
+ Optional: true,
+ Removed: "Use `step_scaling_policy_configuration` configuration block `metric_aggregation_type` argument instead",
},
"min_adjustment_magnitude": {
- Type: schema.TypeInt,
- Optional: true,
- Deprecated: "Use step_scaling_policy_configuration -> min_adjustment_magnitude instead",
+ Type: schema.TypeInt,
+ Optional: true,
+ Removed: "Use `step_scaling_policy_configuration` configuration block `min_adjustment_magnitude` argument instead",
},
"step_adjustment": {
- Type: schema.TypeSet,
- Optional: true,
- Deprecated: "Use step_scaling_policy_configuration -> step_adjustment instead",
- Set: resourceAwsAppautoscalingAdjustmentHash,
+ Type: schema.TypeSet,
+ Optional: true,
+ Removed: "Use `step_scaling_policy_configuration` configuration block `step_adjustment` configuration block instead",
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"metric_interval_lower_bound": {
@@ -315,9 +313,12 @@ func resourceAwsAppautoscalingPolicyRead(d *schema.ResourceData, meta interface{
d.Set("scalable_dimension", p.ScalableDimension)
d.Set("service_namespace", p.ServiceNamespace)
d.Set("alarms", p.Alarms)
- d.Set("step_scaling_policy_configuration", flattenStepScalingPolicyConfiguration(p.StepScalingPolicyConfiguration))
- d.Set("target_tracking_scaling_policy_configuration",
- flattenTargetTrackingScalingPolicyConfiguration(p.TargetTrackingScalingPolicyConfiguration))
+ if err := d.Set("step_scaling_policy_configuration", flattenStepScalingPolicyConfiguration(p.StepScalingPolicyConfiguration)); err != nil {
+ return fmt.Errorf("error setting step_scaling_policy_configuration: %s", err)
+ }
+ if err := d.Set("target_tracking_scaling_policy_configuration", flattenTargetTrackingScalingPolicyConfiguration(p.TargetTrackingScalingPolicyConfiguration)); err != nil {
+ return fmt.Errorf("error setting target_tracking_scaling_policy_configuration: %s", err)
+ }
return nil
}
@@ -504,43 +505,6 @@ func getAwsAppautoscalingPutScalingPolicyInput(d *schema.ResourceData) (applicat
params.ScalableDimension = aws.String(v.(string))
}
- // Deprecated fields
- // TODO: Remove in next major version
- at, atOk := d.GetOk("adjustment_type")
- cd, cdOk := d.GetOk("cooldown")
- mat, matOk := d.GetOk("metric_aggregation_type")
- mam, mamOk := d.GetOk("min_adjustment_magnitude")
- sa, saOk := d.GetOk("step_adjustment")
- if atOk || cdOk || matOk || mamOk || saOk {
- cfg := &applicationautoscaling.StepScalingPolicyConfiguration{}
-
- if atOk {
- cfg.AdjustmentType = aws.String(at.(string))
- }
-
- if cdOk {
- cfg.Cooldown = aws.Int64(int64(cd.(int)))
- }
-
- if matOk {
- cfg.MetricAggregationType = aws.String(mat.(string))
- }
-
- if saOk {
- steps, err := expandAppautoscalingStepAdjustments(sa.(*schema.Set).List())
- if err != nil {
- return params, fmt.Errorf("metric_interval_lower_bound and metric_interval_upper_bound must be strings!")
- }
- cfg.StepAdjustments = steps
- }
-
- if mamOk {
- cfg.MinAdjustmentMagnitude = aws.Int64(int64(mam.(int)))
- }
-
- params.StepScalingPolicyConfiguration = cfg
- }
-
if v, ok := d.GetOk("step_scaling_policy_configuration"); ok {
params.StepScalingPolicyConfiguration = expandStepScalingPolicyConfiguration(v.([]interface{}))
}
@@ -638,19 +602,35 @@ func flattenStepScalingPolicyConfiguration(cfg *applicationautoscaling.StepScali
m := make(map[string]interface{})
if cfg.AdjustmentType != nil {
- m["adjustment_type"] = *cfg.AdjustmentType
+ m["adjustment_type"] = aws.StringValue(cfg.AdjustmentType)
}
if cfg.Cooldown != nil {
- m["cooldown"] = *cfg.Cooldown
+ m["cooldown"] = aws.Int64Value(cfg.Cooldown)
}
if cfg.MetricAggregationType != nil {
- m["metric_aggregation_type"] = *cfg.MetricAggregationType
+ m["metric_aggregation_type"] = aws.StringValue(cfg.MetricAggregationType)
}
if cfg.MinAdjustmentMagnitude != nil {
- m["min_adjustment_magnitude"] = *cfg.MinAdjustmentMagnitude
+ m["min_adjustment_magnitude"] = aws.Int64Value(cfg.MinAdjustmentMagnitude)
}
if cfg.StepAdjustments != nil {
- m["step_adjustment"] = flattenAppautoscalingStepAdjustments(cfg.StepAdjustments)
+ stepAdjustmentsResource := &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "metric_interval_lower_bound": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "metric_interval_upper_bound": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "scaling_adjustment": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+ },
+ }
+ m["step_adjustment"] = schema.NewSet(schema.HashResource(stepAdjustmentsResource), flattenAppautoscalingStepAdjustments(cfg.StepAdjustments))
}
return []interface{}{m}
@@ -662,13 +642,13 @@ func flattenAppautoscalingStepAdjustments(adjs []*applicationautoscaling.StepAdj
for i, adj := range adjs {
m := make(map[string]interface{})
- m["scaling_adjustment"] = *adj.ScalingAdjustment
+ m["scaling_adjustment"] = int(aws.Int64Value(adj.ScalingAdjustment))
if adj.MetricIntervalLowerBound != nil {
- m["metric_interval_lower_bound"] = *adj.MetricIntervalLowerBound
+ m["metric_interval_lower_bound"] = fmt.Sprintf("%g", aws.Float64Value(adj.MetricIntervalLowerBound))
}
if adj.MetricIntervalUpperBound != nil {
- m["metric_interval_upper_bound"] = *adj.MetricIntervalUpperBound
+ m["metric_interval_upper_bound"] = fmt.Sprintf("%g", aws.Float64Value(adj.MetricIntervalUpperBound))
}
out[i] = m
@@ -748,17 +728,3 @@ func flattenPredefinedMetricSpecification(cfg *applicationautoscaling.Predefined
}
return []interface{}{m}
}
-
-func resourceAwsAppautoscalingAdjustmentHash(v interface{}) int {
- var buf bytes.Buffer
- m := v.(map[string]interface{})
- if v, ok := m["metric_interval_lower_bound"]; ok {
- buf.WriteString(fmt.Sprintf("%f-", v))
- }
- if v, ok := m["metric_interval_upper_bound"]; ok {
- buf.WriteString(fmt.Sprintf("%f-", v))
- }
- buf.WriteString(fmt.Sprintf("%d-", m["scaling_adjustment"].(int)))
-
- return hashcode.String(buf.String())
-}
diff --git a/aws/resource_aws_appautoscaling_policy_test.go b/aws/resource_aws_appautoscaling_policy_test.go
index 2b6f77f1c5a..b4499a96ee7 100644
--- a/aws/resource_aws_appautoscaling_policy_test.go
+++ b/aws/resource_aws_appautoscaling_policy_test.go
@@ -13,9 +13,9 @@ import (
func TestAccAWSAppautoScalingPolicy_basic(t *testing.T) {
var policy applicationautoscaling.ScalingPolicy
-
- randClusterName := fmt.Sprintf("cluster%s", acctest.RandString(10))
- randPolicyName := fmt.Sprintf("terraform-test-foobar-%s", acctest.RandString(5))
+ appAutoscalingTargetResourceName := "aws_appautoscaling_target.test"
+ resourceName := "aws_appautoscaling_policy.test"
+ rName := acctest.RandomWithPrefix("tf-acc-test")
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
@@ -23,51 +23,20 @@ func TestAccAWSAppautoScalingPolicy_basic(t *testing.T) {
CheckDestroy: testAccCheckAWSAppautoscalingPolicyDestroy,
Steps: []resource.TestStep{
{
- Config: testAccAWSAppautoscalingPolicyConfig(randClusterName, randPolicyName),
+ Config: testAccAWSAppautoscalingPolicyConfig(rName),
Check: resource.ComposeTestCheckFunc(
- testAccCheckAWSAppautoscalingPolicyExists("aws_appautoscaling_policy.foobar_simple", &policy),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "adjustment_type", "ChangeInCapacity"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "policy_type", "StepScaling"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "cooldown", "60"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "step_adjustment.#", "1"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "step_adjustment.2087484785.scaling_adjustment", "1"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "step_adjustment.2087484785.metric_interval_lower_bound", "0"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "name", randPolicyName),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "resource_id", fmt.Sprintf("service/%s/foobar", randClusterName)),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "service_namespace", "ecs"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "scalable_dimension", "ecs:service:DesiredCount"),
- ),
- },
- },
- })
-}
-
-func TestAccAWSAppautoScalingPolicy_nestedSchema(t *testing.T) {
- var policy applicationautoscaling.ScalingPolicy
-
- randClusterName := fmt.Sprintf("cluster%s", acctest.RandString(10))
- randPolicyName := fmt.Sprintf("terraform-test-foobar-%s", acctest.RandString(5))
-
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- Providers: testAccProviders,
- CheckDestroy: testAccCheckAWSAppautoscalingPolicyDestroy,
- Steps: []resource.TestStep{
- {
- Config: testAccAWSAppautoscalingPolicyNestedSchemaConfig(randClusterName, randPolicyName),
- Check: resource.ComposeTestCheckFunc(
- testAccCheckAWSAppautoscalingPolicyExists("aws_appautoscaling_policy.foobar_simple", &policy),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "step_scaling_policy_configuration.0.adjustment_type", "PercentChangeInCapacity"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "step_scaling_policy_configuration.0.cooldown", "60"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "step_scaling_policy_configuration.0.step_adjustment.#", "1"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "step_scaling_policy_configuration.0.step_adjustment.1704088838.scaling_adjustment", "1"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "step_scaling_policy_configuration.0.step_adjustment.1704088838.metric_interval_lower_bound", "1"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "step_scaling_policy_configuration.0.step_adjustment.1704088838.metric_interval_upper_bound", ""),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "name", randPolicyName),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "policy_type", "StepScaling"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "resource_id", fmt.Sprintf("service/%s/foobar", randClusterName)),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "service_namespace", "ecs"),
- resource.TestCheckResourceAttr("aws_appautoscaling_policy.foobar_simple", "scalable_dimension", "ecs:service:DesiredCount"),
+ testAccCheckAWSAppautoscalingPolicyExists(resourceName, &policy),
+ resource.TestCheckResourceAttr(resourceName, "name", rName),
+ resource.TestCheckResourceAttr(resourceName, "policy_type", "StepScaling"),
+ resource.TestCheckResourceAttrPair(resourceName, "resource_id", appAutoscalingTargetResourceName, "resource_id"),
+ resource.TestCheckResourceAttrPair(resourceName, "scalable_dimension", appAutoscalingTargetResourceName, "scalable_dimension"),
+ resource.TestCheckResourceAttrPair(resourceName, "service_namespace", appAutoscalingTargetResourceName, "service_namespace"),
+ resource.TestCheckResourceAttr(resourceName, "step_scaling_policy_configuration.0.adjustment_type", "ChangeInCapacity"),
+ resource.TestCheckResourceAttr(resourceName, "step_scaling_policy_configuration.0.cooldown", "60"),
+ resource.TestCheckResourceAttr(resourceName, "step_scaling_policy_configuration.0.step_adjustment.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "step_scaling_policy_configuration.0.step_adjustment.207530251.scaling_adjustment", "1"),
+ resource.TestCheckResourceAttr(resourceName, "step_scaling_policy_configuration.0.step_adjustment.207530251.metric_interval_lower_bound", "0"),
+ resource.TestCheckResourceAttr(resourceName, "step_scaling_policy_configuration.0.step_adjustment.207530251.metric_interval_upper_bound", ""),
),
},
},
@@ -289,61 +258,62 @@ func testAccCheckAWSAppautoscalingPolicyDestroy(s *terraform.State) error {
return nil
}
-func testAccAWSAppautoscalingPolicyConfig(
- randClusterName string,
- randPolicyName string) string {
+func testAccAWSAppautoscalingPolicyConfig(rName string) string {
return fmt.Sprintf(`
-resource "aws_ecs_cluster" "foo" {
- name = "%s"
+resource "aws_ecs_cluster" "test" {
+ name = %[1]q
}
-resource "aws_ecs_task_definition" "task" {
- family = "foobar"
- container_definitions = < 0 {
- d.Set("vpc_zone_identifier", strings.Split(*g.VPCZoneIdentifier, ","))
- } else {
- d.Set("vpc_zone_identifier", []string{})
+ if err := d.Set("target_group_arns", flattenStringList(g.TargetGroupARNs)); err != nil {
+ return fmt.Errorf("error setting target_group_arns: %s", err)
}
- d.Set("protect_from_scale_in", g.NewInstancesProtectedFromScaleIn)
-
// If no termination polices are explicitly configured and the upstream state
// is only using the "Default" policy, clear the state to make it consistent
// with the default AWS create API behavior.
_, ok := d.GetOk("termination_policies")
- if !ok && len(g.TerminationPolicies) == 1 && *g.TerminationPolicies[0] == "Default" {
+ if !ok && len(g.TerminationPolicies) == 1 && aws.StringValue(g.TerminationPolicies[0]) == "Default" {
d.Set("termination_policies", []interface{}{})
} else {
- d.Set("termination_policies", flattenStringList(g.TerminationPolicies))
+ if err := d.Set("termination_policies", flattenStringList(g.TerminationPolicies)); err != nil {
+ return fmt.Errorf("error setting termination_policies: %s", err)
+ }
}
- if g.EnabledMetrics != nil {
- if err := d.Set("enabled_metrics", flattenAsgEnabledMetrics(g.EnabledMetrics)); err != nil {
- log.Printf("[WARN] Error setting metrics for (%s): %s", d.Id(), err)
+ d.Set("vpc_zone_identifier", []string{})
+ if len(aws.StringValue(g.VPCZoneIdentifier)) > 0 {
+ if err := d.Set("vpc_zone_identifier", strings.Split(aws.StringValue(g.VPCZoneIdentifier), ",")); err != nil {
+ return fmt.Errorf("error setting vpc_zone_identifier: %s", err)
}
- d.Set("metrics_granularity", g.EnabledMetrics[0].Granularity)
- } else {
- d.Set("enabled_metrics", nil)
}
return nil
@@ -1259,7 +1269,7 @@ func expandAutoScalingInstancesDistribution(l []interface{}) *autoscaling.Instan
instancesDistribution.OnDemandAllocationStrategy = aws.String(v.(string))
}
- if v, ok := m["on_demand_base_capacity"]; ok && v.(int) != 0 {
+ if v, ok := m["on_demand_base_capacity"]; ok {
instancesDistribution.OnDemandBaseCapacity = aws.Int64(int64(v.(int)))
}
@@ -1275,7 +1285,7 @@ func expandAutoScalingInstancesDistribution(l []interface{}) *autoscaling.Instan
instancesDistribution.SpotInstancePools = aws.Int64(int64(v.(int)))
}
- if v, ok := m["spot_max_price"]; ok && v.(string) != "" {
+ if v, ok := m["spot_max_price"]; ok {
instancesDistribution.SpotMaxPrice = aws.String(v.(string))
}
diff --git a/aws/resource_aws_autoscaling_group_test.go b/aws/resource_aws_autoscaling_group_test.go
index e1a62c07228..4fde5668a53 100644
--- a/aws/resource_aws_autoscaling_group_test.go
+++ b/aws/resource_aws_autoscaling_group_test.go
@@ -79,30 +79,6 @@ func testSweepAutoscalingGroups(region string) error {
return nil
}
-func TestAccAWSAutoScalingGroup_importBasic(t *testing.T) {
- resourceName := "aws_autoscaling_group.bar"
- randName := fmt.Sprintf("terraform-test-%s", acctest.RandString(10))
-
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- Providers: testAccProviders,
- CheckDestroy: testAccCheckAWSAutoScalingGroupDestroy,
- Steps: []resource.TestStep{
- {
- Config: testAccAWSAutoScalingGroupImport(randName),
- },
-
- {
- ResourceName: resourceName,
- ImportState: true,
- ImportStateVerify: true,
- ImportStateVerifyIgnore: []string{
- "force_delete", "metrics_granularity", "wait_for_capacity_timeout"},
- },
- },
- })
-}
-
func TestAccAWSAutoScalingGroup_basic(t *testing.T) {
var group autoscaling.Group
var lc autoscaling.LaunchConfiguration
@@ -110,11 +86,9 @@ func TestAccAWSAutoScalingGroup_basic(t *testing.T) {
randName := fmt.Sprintf("terraform-test-%s", acctest.RandString(10))
resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- IDRefreshName: "aws_autoscaling_group.bar",
- IDRefreshIgnore: []string{"force_delete", "metrics_granularity", "wait_for_capacity_timeout"},
- Providers: testAccProviders,
- CheckDestroy: testAccCheckAWSAutoScalingGroupDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProviders,
+ CheckDestroy: testAccCheckAWSAutoScalingGroupDestroy,
Steps: []resource.TestStep{
{
Config: testAccAWSAutoScalingGroupConfig(randName),
@@ -122,33 +96,50 @@ func TestAccAWSAutoScalingGroup_basic(t *testing.T) {
testAccCheckAWSAutoScalingGroupExists("aws_autoscaling_group.bar", &group),
testAccCheckAWSAutoScalingGroupHealthyCapacity(&group, 2),
testAccCheckAWSAutoScalingGroupAttributes(&group, randName),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "availability_zones.2487133097", "us-west-2a"),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "name", randName),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "max_size", "5"),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "min_size", "2"),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "health_check_grace_period", "300"),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "health_check_type", "ELB"),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "desired_capacity", "4"),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "force_delete", "true"),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "termination_policies.0", "OldestInstance"),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "termination_policies.1", "ClosestToNextInstanceHour"),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "protect_from_scale_in", "false"),
- resource.TestCheckResourceAttr(
- "aws_autoscaling_group.bar", "enabled_metrics.#", "0"),
+ testAccMatchResourceAttrRegionalARN("aws_autoscaling_group.bar", "arn", "autoscaling", regexp.MustCompile(`autoScalingGroup:.+`)),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "availability_zones.2487133097", "us-west-2a"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "default_cooldown", "300"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "desired_capacity", "4"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "enabled_metrics.#", "0"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "force_delete", "true"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "health_check_grace_period", "300"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "health_check_type", "ELB"),
+ resource.TestCheckNoResourceAttr("aws_autoscaling_group.bar", "initial_lifecycle_hook.#"),
+ resource.TestCheckResourceAttrPair("aws_autoscaling_group.bar", "launch_configuration", "aws_launch_configuration.foobar", "name"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "launch_template.#", "0"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "load_balancers.#", "0"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "max_size", "5"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "metrics_granularity", "1Minute"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "min_size", "2"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "mixed_instances_policy.#", "0"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "name", randName),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "placement_group", ""),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "protect_from_scale_in", "false"),
+ testAccCheckResourceAttrGlobalARN("aws_autoscaling_group.bar", "service_linked_role_arn", "iam", "role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "suspended_processes.#", "0"),
+ resource.TestCheckNoResourceAttr("aws_autoscaling_group.bar", "tag.#"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "tags.#", "3"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "target_group_arns.#", "0"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "termination_policies.#", "2"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "termination_policies.0", "OldestInstance"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "termination_policies.1", "ClosestToNextInstanceHour"),
+ resource.TestCheckResourceAttr("aws_autoscaling_group.bar", "vpc_zone_identifier.#", "0"),
),
},
-
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
{
Config: testAccAWSAutoScalingGroupConfigUpdate(randName),
Check: resource.ComposeTestCheckFunc(
@@ -196,6 +187,20 @@ func TestAccAWSAutoScalingGroup_namePrefix(t *testing.T) {
"aws_autoscaling_group.test", "arn"),
),
},
+ {
+ ResourceName: "aws_autoscaling_group.test",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
},
})
}
@@ -217,6 +222,20 @@ func TestAccAWSAutoScalingGroup_autoGeneratedName(t *testing.T) {
"aws_autoscaling_group.bar", "arn"),
),
},
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
},
})
}
@@ -234,7 +253,20 @@ func TestAccAWSAutoScalingGroup_terminationPolicies(t *testing.T) {
"aws_autoscaling_group.bar", "termination_policies.#", "0"),
),
},
-
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
{
Config: testAccAWSAutoScalingGroupConfig_terminationPoliciesUpdate,
Check: resource.ComposeTestCheckFunc(
@@ -244,7 +276,20 @@ func TestAccAWSAutoScalingGroup_terminationPolicies(t *testing.T) {
"aws_autoscaling_group.bar", "termination_policies.0", "OldestInstance"),
),
},
-
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
{
Config: testAccAWSAutoScalingGroupConfig_terminationPoliciesExplicitDefault,
Check: resource.ComposeTestCheckFunc(
@@ -254,7 +299,6 @@ func TestAccAWSAutoScalingGroup_terminationPolicies(t *testing.T) {
"aws_autoscaling_group.bar", "termination_policies.0", "Default"),
),
},
-
{
Config: testAccAWSAutoScalingGroupConfig_terminationPoliciesEmpty,
Check: resource.ComposeTestCheckFunc(
@@ -294,7 +338,20 @@ func TestAccAWSAutoScalingGroup_tags(t *testing.T) {
}),
),
},
-
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
{
Config: testAccAWSAutoScalingGroupConfigUpdate(randName),
Check: resource.ComposeTestCheckFunc(
@@ -338,7 +395,20 @@ func TestAccAWSAutoScalingGroup_VpcUpdates(t *testing.T) {
"aws_autoscaling_group.bar", "vpc_zone_identifier.#", "0"),
),
},
-
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
{
Config: testAccAWSAutoScalingGroupConfigWithVPCIdent,
Check: resource.ComposeTestCheckFunc(
@@ -371,6 +441,20 @@ func TestAccAWSAutoScalingGroup_WithLoadBalancer(t *testing.T) {
testAccCheckAWSAutoScalingGroupAttributesLoadBalancer(&group),
),
},
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
},
})
}
@@ -392,6 +476,20 @@ func TestAccAWSAutoScalingGroup_withPlacementGroup(t *testing.T) {
"aws_autoscaling_group.bar", "placement_group", randName),
),
},
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
},
})
}
@@ -413,7 +511,20 @@ func TestAccAWSAutoScalingGroup_enablingMetrics(t *testing.T) {
"aws_autoscaling_group.bar", "enabled_metrics"),
),
},
-
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
{
Config: testAccAWSAutoscalingMetricsCollectionConfig_updatingMetricsCollected,
Check: resource.ComposeTestCheckFunc(
@@ -451,6 +562,20 @@ func TestAccAWSAutoScalingGroup_suspendingProcesses(t *testing.T) {
"aws_autoscaling_group.bar", "suspended_processes.#", "2"),
),
},
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
{
Config: testAccAWSAutoScalingGroupConfigWithSuspendedProcessesUpdated(randName),
Check: resource.ComposeTestCheckFunc(
@@ -479,7 +604,20 @@ func TestAccAWSAutoScalingGroup_withMetrics(t *testing.T) {
"aws_autoscaling_group.bar", "enabled_metrics.#", "7"),
),
},
-
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
{
Config: testAccAWSAutoscalingMetricsCollectionConfig_updatingMetricsCollected,
Check: resource.ComposeTestCheckFunc(
@@ -508,6 +646,20 @@ func TestAccAWSAutoScalingGroup_serviceLinkedRoleARN(t *testing.T) {
"aws_autoscaling_group.bar", "service_linked_role_arn"),
),
},
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
},
})
}
@@ -565,7 +717,20 @@ func TestAccAWSAutoScalingGroup_ALB_TargetGroups(t *testing.T) {
"aws_autoscaling_group.bar", "target_group_arns.#", "2"),
),
},
-
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
{
Config: testAccAWSAutoScalingGroupConfig_ALB_TargetGroup_post,
Check: resource.ComposeAggregateTestCheckFunc(
@@ -586,11 +751,9 @@ func TestAccAWSAutoScalingGroup_initialLifecycleHook(t *testing.T) {
randName := fmt.Sprintf("terraform-test-%s", acctest.RandString(10))
resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- IDRefreshName: "aws_autoscaling_group.bar",
- IDRefreshIgnore: []string{"force_delete", "metrics_granularity", "wait_for_capacity_timeout"},
- Providers: testAccProviders,
- CheckDestroy: testAccCheckAWSAutoScalingGroupDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProviders,
+ CheckDestroy: testAccCheckAWSAutoScalingGroupDestroy,
Steps: []resource.TestStep{
{
Config: testAccAWSAutoScalingGroupWithHookConfig(randName),
@@ -607,6 +770,20 @@ func TestAccAWSAutoScalingGroup_initialLifecycleHook(t *testing.T) {
"aws_autoscaling_group.bar", "initial_lifecycle_hook.391359060.name"),
),
},
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
},
})
}
@@ -630,6 +807,20 @@ func TestAccAWSAutoScalingGroup_ALB_TargetGroups_ELBCapacity(t *testing.T) {
testAccCheckAWSALBTargetGroupHealthy(&tg),
),
},
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
},
})
}
@@ -880,10 +1071,9 @@ func TestAccAWSAutoScalingGroup_classicVpcZoneIdentifier(t *testing.T) {
var group autoscaling.Group
resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- IDRefreshName: "aws_autoscaling_group.test",
- Providers: testAccProviders,
- CheckDestroy: testAccCheckAWSAutoScalingGroupDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProviders,
+ CheckDestroy: testAccCheckAWSAutoScalingGroupDestroy,
Steps: []resource.TestStep{
{
Config: testAccAWSAutoScalingGroupConfig_classicVpcZoneIdentifier,
@@ -892,6 +1082,20 @@ func TestAccAWSAutoScalingGroup_classicVpcZoneIdentifier(t *testing.T) {
resource.TestCheckResourceAttr("aws_autoscaling_group.test", "vpc_zone_identifier.#", "0"),
),
},
+ {
+ ResourceName: "aws_autoscaling_group.test",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
},
})
}
@@ -900,10 +1104,9 @@ func TestAccAWSAutoScalingGroup_emptyAvailabilityZones(t *testing.T) {
var group autoscaling.Group
resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- IDRefreshName: "aws_autoscaling_group.test",
- Providers: testAccProviders,
- CheckDestroy: testAccCheckAWSAutoScalingGroupDestroy,
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProviders,
+ CheckDestroy: testAccCheckAWSAutoScalingGroupDestroy,
Steps: []resource.TestStep{
{
Config: testAccAWSAutoScalingGroupConfig_emptyAvailabilityZones,
@@ -912,6 +1115,20 @@ func TestAccAWSAutoScalingGroup_emptyAvailabilityZones(t *testing.T) {
resource.TestCheckResourceAttr("aws_autoscaling_group.test", "availability_zones.#", "1"),
),
},
+ {
+ ResourceName: "aws_autoscaling_group.test",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
},
})
}
@@ -932,6 +1149,20 @@ func TestAccAWSAutoScalingGroup_launchTemplate(t *testing.T) {
"aws_autoscaling_group.bar", "launch_template.0.id"),
),
},
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
},
})
}
@@ -952,7 +1183,20 @@ func TestAccAWSAutoScalingGroup_launchTemplate_update(t *testing.T) {
"aws_autoscaling_group.bar", "launch_template.0.name"),
),
},
-
+ {
+ ResourceName: "aws_autoscaling_group.bar",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
{
Config: testAccAWSAutoScalingGroupConfig_withLaunchTemplate_toLaunchConfig,
Check: resource.ComposeTestCheckFunc(
@@ -1016,6 +1260,20 @@ func TestAccAWSAutoScalingGroup_LaunchTemplate_IAMInstanceProfile(t *testing.T)
testAccCheckAWSAutoScalingGroupExists(resourceName, &group),
),
},
+ {
+ ResourceName: resourceName,
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "force_delete",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
+ "wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
+ },
+ },
},
})
}
@@ -1049,8 +1307,12 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy(t *testing.T) {
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
"force_delete",
- "metrics_granularity",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
"wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
},
},
},
@@ -1082,8 +1344,12 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_InstancesDistribution_OnDem
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
"force_delete",
- "metrics_granularity",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
"wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
},
},
},
@@ -1115,8 +1381,12 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_InstancesDistribution_OnDem
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
"force_delete",
- "metrics_granularity",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
"wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
},
},
{
@@ -1128,6 +1398,15 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_InstancesDistribution_OnDem
resource.TestCheckResourceAttr(resourceName, "mixed_instances_policy.0.instances_distribution.0.on_demand_base_capacity", "2"),
),
},
+ {
+ Config: testAccAWSAutoScalingGroupConfig_MixedInstancesPolicy_InstancesDistribution_OnDemandBaseCapacity(rName, 0),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckAWSAutoScalingGroupExists(resourceName, &group),
+ resource.TestCheckResourceAttr(resourceName, "mixed_instances_policy.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "mixed_instances_policy.0.instances_distribution.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "mixed_instances_policy.0.instances_distribution.0.on_demand_base_capacity", "0"),
+ ),
+ },
},
})
}
@@ -1157,8 +1436,12 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_InstancesDistribution_OnDem
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
"force_delete",
- "metrics_granularity",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
"wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
},
},
{
@@ -1199,8 +1482,12 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_InstancesDistribution_SpotA
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
"force_delete",
- "metrics_granularity",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
"wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
},
},
},
@@ -1232,8 +1519,12 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_InstancesDistribution_SpotI
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
"force_delete",
- "metrics_granularity",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
"wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
},
},
{
@@ -1274,8 +1565,12 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_InstancesDistribution_SpotM
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
"force_delete",
- "metrics_granularity",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
"wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
},
},
{
@@ -1287,6 +1582,15 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_InstancesDistribution_SpotM
resource.TestCheckResourceAttr(resourceName, "mixed_instances_policy.0.instances_distribution.0.spot_max_price", "0.51"),
),
},
+ {
+ Config: testAccAWSAutoScalingGroupConfig_MixedInstancesPolicy_InstancesDistribution_SpotMaxPrice(rName, ""),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckAWSAutoScalingGroupExists(resourceName, &group),
+ resource.TestCheckResourceAttr(resourceName, "mixed_instances_policy.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "mixed_instances_policy.0.instances_distribution.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "mixed_instances_policy.0.instances_distribution.0.spot_max_price", ""),
+ ),
+ },
},
})
}
@@ -1317,8 +1621,12 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_LaunchTemplate_LaunchTempla
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
"force_delete",
- "metrics_granularity",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
"wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
},
},
},
@@ -1351,8 +1659,12 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_LaunchTemplate_LaunchTempla
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
"force_delete",
- "metrics_granularity",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
"wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
},
},
{
@@ -1396,8 +1708,12 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_LaunchTemplate_Override_Ins
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
"force_delete",
- "metrics_granularity",
+ "initial_lifecycle_hook",
+ "name_prefix",
+ "tag",
+ "tags",
"wait_for_capacity_timeout",
+ "wait_for_elb_capacity",
},
},
{
@@ -1418,11 +1734,7 @@ func TestAccAWSAutoScalingGroup_MixedInstancesPolicy_LaunchTemplate_Override_Ins
const testAccAWSAutoScalingGroupConfig_autoGeneratedName = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1447,11 +1759,7 @@ resource "aws_autoscaling_group" "bar" {
const testAccAWSAutoScalingGroupConfig_namePrefix = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1477,11 +1785,7 @@ resource "aws_autoscaling_group" "test" {
const testAccAWSAutoScalingGroupConfig_terminationPoliciesEmpty = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1507,11 +1811,7 @@ resource "aws_autoscaling_group" "bar" {
const testAccAWSAutoScalingGroupConfig_terminationPoliciesExplicitDefault = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1538,11 +1838,7 @@ resource "aws_autoscaling_group" "bar" {
const testAccAWSAutoScalingGroupConfig_terminationPoliciesUpdate = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1570,11 +1866,7 @@ func testAccAWSAutoScalingGroupConfig(name string) string {
return fmt.Sprintf(`
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1629,11 +1921,7 @@ func testAccAWSAutoScalingGroupConfigUpdate(name string) string {
return fmt.Sprintf(`
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1686,65 +1974,6 @@ resource "aws_autoscaling_group" "bar" {
`, name)
}
-func testAccAWSAutoScalingGroupImport(name string) string {
- return fmt.Sprintf(`
-data "aws_ami" "test_ami" {
- most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
-
- filter {
- name = "name"
- values = ["amzn-ami-hvm-*-x86_64-gp2"]
- }
-}
-
-resource "aws_launch_configuration" "foobar" {
- image_id = "${data.aws_ami.test_ami.id}"
- instance_type = "t2.micro"
-}
-
-resource "aws_placement_group" "test" {
- name = "asg_pg_%s"
- strategy = "cluster"
-}
-
-resource "aws_autoscaling_group" "bar" {
- availability_zones = ["us-west-2a"]
- name = "%s"
- max_size = 5
- min_size = 2
- health_check_type = "ELB"
- desired_capacity = 4
- force_delete = true
- termination_policies = ["OldestInstance","ClosestToNextInstanceHour"]
-
- launch_configuration = "${aws_launch_configuration.foobar.name}"
-
- tag {
- key = "FromTags1"
- value = "value1"
- propagate_at_launch = true
- }
-
- tag {
- key = "FromTags2"
- value = "value2"
- propagate_at_launch = true
- }
-
- tag {
- key = "FromTags3"
- value = "value3"
- propagate_at_launch = true
- }
-}
-`, name, name)
-}
-
const testAccAWSAutoScalingGroupConfigWithLoadBalancer = `
resource "aws_vpc" "foo" {
cidr_block = "10.1.0.0/16"
@@ -1857,11 +2086,7 @@ resource "aws_subnet" "main" {
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1904,11 +2129,7 @@ resource "aws_subnet" "main" {
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1936,11 +2157,7 @@ func testAccAWSAutoScalingGroupConfig_withPlacementGroup(name string) string {
return fmt.Sprintf(`
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1984,11 +2201,7 @@ resource "aws_autoscaling_group" "bar" {
const testAccAWSAutoScalingGroupConfig_withServiceLinkedRoleARN = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2018,11 +2231,7 @@ resource "aws_autoscaling_group" "bar" {
const testAccAWSAutoscalingMetricsCollectionConfig_allMetricsCollected = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2060,11 +2269,7 @@ resource "aws_autoscaling_group" "bar" {
const testAccAWSAutoscalingMetricsCollectionConfig_updatingMetricsCollected = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2135,11 +2340,7 @@ resource "aws_subnet" "alt" {
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2226,11 +2427,7 @@ resource "aws_subnet" "alt" {
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2330,11 +2527,7 @@ resource "aws_subnet" "alt" {
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2392,11 +2585,7 @@ func testAccAWSAutoScalingGroupWithHookConfig(name string) string {
return fmt.Sprintf(`
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2530,11 +2719,7 @@ resource "aws_route" "public_default_route" {
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2580,11 +2765,7 @@ func testAccAWSAutoScalingGroupConfigWithSuspendedProcesses(name string) string
return fmt.Sprintf(`
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2629,11 +2810,7 @@ func testAccAWSAutoScalingGroupConfigWithSuspendedProcessesUpdated(name string)
return fmt.Sprintf(`
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2686,11 +2863,7 @@ resource "aws_autoscaling_group" "test" {
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2731,11 +2904,7 @@ resource "aws_autoscaling_group" "test" {
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2752,11 +2921,7 @@ resource "aws_launch_configuration" "test" {
const testAccAWSAutoScalingGroupConfig_withLaunchTemplate = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2787,11 +2952,7 @@ resource "aws_autoscaling_group" "bar" {
const testAccAWSAutoScalingGroupConfig_withLaunchTemplate_toLaunchConfig = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2824,11 +2985,7 @@ resource "aws_autoscaling_group" "bar" {
const testAccAWSAutoScalingGroupConfig_withLaunchTemplate_toLaunchTemplateName = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -2869,11 +3026,7 @@ resource "aws_autoscaling_group" "bar" {
const testAccAWSAutoScalingGroupConfig_withLaunchTemplate_toLaunchTemplateVersion = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
diff --git a/aws/resource_aws_autoscaling_notification.go b/aws/resource_aws_autoscaling_notification.go
index 7b2108254c8..b70215ec291 100644
--- a/aws/resource_aws_autoscaling_notification.go
+++ b/aws/resource_aws_autoscaling_notification.go
@@ -43,8 +43,8 @@ func resourceAwsAutoscalingNotification() *schema.Resource {
func resourceAwsAutoscalingNotificationCreate(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).autoscalingconn
- gl := convertSetToList(d.Get("group_names").(*schema.Set))
- nl := convertSetToList(d.Get("notifications").(*schema.Set))
+ gl := expandStringList(d.Get("group_names").(*schema.Set).List())
+ nl := expandStringList(d.Get("notifications").(*schema.Set).List())
topic := d.Get("topic_arn").(string)
if err := addNotificationConfigToGroupsWithTopic(conn, gl, nl, topic); err != nil {
@@ -59,7 +59,7 @@ func resourceAwsAutoscalingNotificationCreate(d *schema.ResourceData, meta inter
func resourceAwsAutoscalingNotificationRead(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).autoscalingconn
- gl := convertSetToList(d.Get("group_names").(*schema.Set))
+ gl := expandStringList(d.Get("group_names").(*schema.Set).List())
opts := &autoscaling.DescribeNotificationConfigurationsInput{
AutoScalingGroupNames: gl,
@@ -120,7 +120,7 @@ func resourceAwsAutoscalingNotificationUpdate(d *schema.ResourceData, meta inter
// Notifications API call is a PUT, so we don't need to diff the list, just
// push whatever it is and AWS sorts it out
- nl := convertSetToList(d.Get("notifications").(*schema.Set))
+ nl := expandStringList(d.Get("notifications").(*schema.Set).List())
o, n := d.GetChange("group_names")
if o == nil {
@@ -130,10 +130,8 @@ func resourceAwsAutoscalingNotificationUpdate(d *schema.ResourceData, meta inter
n = new(schema.Set)
}
- os := o.(*schema.Set)
- ns := n.(*schema.Set)
- remove := convertSetToList(os.Difference(ns))
- add := convertSetToList(ns.Difference(os))
+ remove := expandStringList(o.(*schema.Set).List())
+ add := expandStringList(n.(*schema.Set).List())
topic := d.Get("topic_arn").(string)
@@ -143,7 +141,7 @@ func resourceAwsAutoscalingNotificationUpdate(d *schema.ResourceData, meta inter
var update []*string
if d.HasChange("notifications") {
- update = convertSetToList(d.Get("group_names").(*schema.Set))
+ update = expandStringList(d.Get("group_names").(*schema.Set).List())
} else {
update = add
}
@@ -191,18 +189,10 @@ func removeNotificationConfigToGroupsWithTopic(conn *autoscaling.AutoScaling, gr
func resourceAwsAutoscalingNotificationDelete(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).autoscalingconn
- gl := convertSetToList(d.Get("group_names").(*schema.Set))
+
+ gl := expandStringList(d.Get("group_names").(*schema.Set).List())
topic := d.Get("topic_arn").(string)
err := removeNotificationConfigToGroupsWithTopic(conn, gl, topic)
return err
}
-
-func convertSetToList(s *schema.Set) (nl []*string) {
- l := s.List()
- for _, n := range l {
- nl = append(nl, aws.String(n.(string)))
- }
-
- return nl
-}
diff --git a/aws/resource_aws_autoscaling_policy.go b/aws/resource_aws_autoscaling_policy.go
index 2eabb90a7a7..b2d560b3ab5 100644
--- a/aws/resource_aws_autoscaling_policy.go
+++ b/aws/resource_aws_autoscaling_policy.go
@@ -72,10 +72,9 @@ func resourceAwsAutoscalingPolicy() *schema.Resource {
ValidateFunc: validation.IntAtLeast(1),
},
"min_adjustment_step": {
- Type: schema.TypeInt,
- Optional: true,
- Deprecated: "Use min_adjustment_magnitude instead, otherwise you may see a perpetual diff on this resource.",
- ConflictsWith: []string{"min_adjustment_magnitude"},
+ Type: schema.TypeInt,
+ Optional: true,
+ Removed: "Use `min_adjustment_magnitude` argument instead",
},
"scaling_adjustment": {
Type: schema.TypeInt,
@@ -228,9 +227,6 @@ func resourceAwsAutoscalingPolicyRead(d *schema.ResourceData, meta interface{})
d.Set("policy_type", p.PolicyType)
if p.MinAdjustmentMagnitude != nil {
d.Set("min_adjustment_magnitude", p.MinAdjustmentMagnitude)
- d.Set("min_adjustment_step", 0)
- } else {
- d.Set("min_adjustment_step", p.MinAdjustmentStep)
}
d.Set("arn", p.PolicyARN)
d.Set("name", p.PolicyName)
@@ -344,11 +340,8 @@ func getAwsAutoscalingPutScalingPolicyInput(d *schema.ResourceData) (autoscaling
}
// MinAdjustmentMagnitude is supported if the policy type is SimpleScaling or StepScaling.
- // MinAdjustmentStep is available for backward compatibility. Use MinAdjustmentMagnitude instead.
if v, ok := d.GetOkExists("min_adjustment_magnitude"); ok && v.(int) != 0 && (policyType == "SimpleScaling" || policyType == "StepScaling") {
params.MinAdjustmentMagnitude = aws.Int64(int64(v.(int)))
- } else if v, ok := d.GetOkExists("min_adjustment_step"); ok && v.(int) != 0 && (policyType == "SimpleScaling" || policyType == "StepScaling") {
- params.MinAdjustmentStep = aws.Int64(int64(v.(int)))
}
// This parameter is required if the policy type is SimpleScaling and not supported otherwise.
diff --git a/aws/resource_aws_autoscaling_policy_test.go b/aws/resource_aws_autoscaling_policy_test.go
index 505023e6802..0400138306c 100644
--- a/aws/resource_aws_autoscaling_policy_test.go
+++ b/aws/resource_aws_autoscaling_policy_test.go
@@ -2,14 +2,12 @@ package aws
import (
"fmt"
- "log"
"testing"
"time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/service/autoscaling"
- "github.com/davecgh/go-spew/spew"
"github.com/hashicorp/terraform/helper/acctest"
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/terraform"
@@ -126,7 +124,6 @@ func testAccCheckScalingPolicyDisappears(conf *autoscaling.ScalingPolicy) resour
PolicyName: conf.PolicyName,
}
- log.Printf("TEST %s", spew.Sdump(params))
_, err := conn.DeletePolicy(params)
if err != nil {
return err
@@ -155,37 +152,6 @@ func testAccCheckScalingPolicyDisappears(conf *autoscaling.ScalingPolicy) resour
}
}
-func TestAccAWSAutoscalingPolicy_upgrade(t *testing.T) {
- var policy autoscaling.ScalingPolicy
-
- name := fmt.Sprintf("terraform-testacc-asp-%s", acctest.RandString(5))
-
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- Providers: testAccProviders,
- CheckDestroy: testAccCheckAWSAutoscalingPolicyDestroy,
- Steps: []resource.TestStep{
- {
- Config: testAccAWSAutoscalingPolicyConfig_upgrade_614(name),
- Check: resource.ComposeTestCheckFunc(
- testAccCheckScalingPolicyExists("aws_autoscaling_policy.foobar_simple", &policy),
- resource.TestCheckResourceAttr("aws_autoscaling_policy.foobar_simple", "min_adjustment_step", "0"),
- resource.TestCheckResourceAttr("aws_autoscaling_policy.foobar_simple", "min_adjustment_magnitude", "1"),
- ),
- ExpectNonEmptyPlan: true,
- },
- {
- Config: testAccAWSAutoscalingPolicyConfig_upgrade_615(name),
- Check: resource.ComposeTestCheckFunc(
- testAccCheckScalingPolicyExists("aws_autoscaling_policy.foobar_simple", &policy),
- resource.TestCheckResourceAttr("aws_autoscaling_policy.foobar_simple", "min_adjustment_step", "0"),
- resource.TestCheckResourceAttr("aws_autoscaling_policy.foobar_simple", "min_adjustment_magnitude", "1"),
- ),
- },
- },
- })
-}
-
func TestAccAWSAutoscalingPolicy_SimpleScalingStepAdjustment(t *testing.T) {
var policy autoscaling.ScalingPolicy
@@ -487,34 +453,6 @@ resource "aws_autoscaling_policy" "foobar_target_tracking" {
`, name, name, name)
}
-func testAccAWSAutoscalingPolicyConfig_upgrade_614(name string) string {
- return testAccAWSAutoscalingPolicyConfig_base(name) + fmt.Sprintf(`
-resource "aws_autoscaling_policy" "foobar_simple" {
- name = "%s-foobar_simple"
- adjustment_type = "PercentChangeInCapacity"
- cooldown = 300
- policy_type = "SimpleScaling"
- scaling_adjustment = 2
- min_adjustment_step = 1
- autoscaling_group_name = "${aws_autoscaling_group.test.name}"
-}
-`, name)
-}
-
-func testAccAWSAutoscalingPolicyConfig_upgrade_615(name string) string {
- return testAccAWSAutoscalingPolicyConfig_base(name) + fmt.Sprintf(`
-resource "aws_autoscaling_policy" "foobar_simple" {
- name = "%s-foobar_simple"
- adjustment_type = "PercentChangeInCapacity"
- cooldown = 300
- policy_type = "SimpleScaling"
- scaling_adjustment = 2
- min_adjustment_magnitude = 1
- autoscaling_group_name = "${aws_autoscaling_group.test.name}"
-}
-`, name)
-}
-
func testAccAWSAutoscalingPolicyConfig_SimpleScalingStepAdjustment(name string) string {
return testAccAWSAutoscalingPolicyConfig_base(name) + fmt.Sprintf(`
resource "aws_autoscaling_policy" "foobar_simple" {
diff --git a/aws/resource_aws_batch_compute_environment.go b/aws/resource_aws_batch_compute_environment.go
index 3d2e7c719c0..3eb7b6521a5 100644
--- a/aws/resource_aws_batch_compute_environment.go
+++ b/aws/resource_aws_batch_compute_environment.go
@@ -122,9 +122,9 @@ func resourceAwsBatchComputeEnvironment() *schema.Resource {
Computed: true,
},
"ecc_cluster_arn": {
- Type: schema.TypeString,
- Computed: true,
- Deprecated: "Use ecs_cluster_arn instead",
+ Type: schema.TypeString,
+ Computed: true,
+ Removed: "Use `ecs_cluster_arn` attribute instead",
},
"ecs_cluster_arn": {
Type: schema.TypeString,
@@ -273,7 +273,6 @@ func resourceAwsBatchComputeEnvironmentRead(d *schema.ResourceData, meta interfa
}
d.Set("arn", computeEnvironment.ComputeEnvironmentArn)
- d.Set("ecc_cluster_arn", computeEnvironment.EcsClusterArn)
d.Set("ecs_cluster_arn", computeEnvironment.EcsClusterArn)
d.Set("status", computeEnvironment.Status)
d.Set("status_reason", computeEnvironment.StatusReason)
diff --git a/aws/resource_aws_batch_compute_environment_test.go b/aws/resource_aws_batch_compute_environment_test.go
index 2b835e86359..bf99739f70a 100644
--- a/aws/resource_aws_batch_compute_environment_test.go
+++ b/aws/resource_aws_batch_compute_environment_test.go
@@ -40,19 +40,23 @@ func testSweepBatchComputeEnvironments(region string) error {
return fmt.Errorf("Error retrieving Batch Compute Environments: %s", err)
}
for _, computeEnvironment := range out.ComputeEnvironments {
- name := computeEnvironment.ComputeEnvironmentName
+ name := aws.StringValue(computeEnvironment.ComputeEnvironmentName)
- log.Printf("[INFO] Disabling Batch Compute Environment: %s", *name)
- err := disableBatchComputeEnvironment(*name, 20*time.Minute, conn)
- if err != nil {
- log.Printf("[ERROR] Failed to disable Batch Compute Environment %s: %s", *name, err)
- continue
+ if aws.StringValue(computeEnvironment.State) == batch.CEStateEnabled {
+ log.Printf("[INFO] Disabling Batch Compute Environment: %s", name)
+ err := disableBatchComputeEnvironment(name, 20*time.Minute, conn)
+
+ if err != nil {
+ log.Printf("[ERROR] Failed to disable Batch Compute Environment %s: %s", name, err)
+ continue
+ }
}
- log.Printf("[INFO] Deleting Batch Compute Environment: %s", *name)
- err = deleteBatchComputeEnvironment(*name, 20*time.Minute, conn)
+ log.Printf("[INFO] Deleting Batch Compute Environment: %s", name)
+ err := deleteBatchComputeEnvironment(name, 20*time.Minute, conn)
+
if err != nil {
- log.Printf("[ERROR] Failed to delete Batch Compute Environment %s: %s", *name, err)
+ log.Printf("[ERROR] Failed to delete Batch Compute Environment %s: %s", name, err)
}
}
diff --git a/aws/resource_aws_budgets_budget_test.go b/aws/resource_aws_budgets_budget_test.go
index 4d46d33673b..f7ad3505106 100644
--- a/aws/resource_aws_budgets_budget_test.go
+++ b/aws/resource_aws_budgets_budget_test.go
@@ -1,12 +1,10 @@
package aws
import (
- "bytes"
"fmt"
"reflect"
"regexp"
"testing"
- "text/template"
"time"
"github.com/aws/aws-sdk-go/aws"
@@ -312,129 +310,115 @@ func testAccAWSBudgetsBudgetConfigDefaults(name string) budgets.Budget {
}
func testAccAWSBudgetsBudgetConfig_WithAccountID(budgetConfig budgets.Budget, accountID, costFilterKey string) string {
- t := template.Must(template.New("t1").
- Parse(`
+ timePeriodStart := budgetConfig.TimePeriod.Start.Format("2006-01-02_15:04")
+ costFilterValue := *budgetConfig.CostFilters[costFilterKey][0]
+
+ return fmt.Sprintf(`
resource "aws_budgets_budget" "foo" {
- account_id = "` + accountID + `"
- name_prefix = "{{.BudgetName}}"
- budget_type = "{{.BudgetType}}"
- limit_amount = "{{.BudgetLimit.Amount}}"
- limit_unit = "{{.BudgetLimit.Unit}}"
- time_period_start = "{{.TimePeriod.Start.Format "2006-01-02_15:04"}}"
- time_unit = "{{.TimeUnit}}"
+ account_id = "%s"
+ name_prefix = "%s"
+ budget_type = "%s"
+ limit_amount = "%s"
+ limit_unit = "%s"
+ time_period_start = "%s"
+ time_unit = "%s"
cost_filters = {
- "` + costFilterKey + `" = "` + *budgetConfig.CostFilters[costFilterKey][0] + `"
+ "%s" = "%s"
}
}
-`))
- var doc bytes.Buffer
- // TODO: Convert to fmt.Sprintf() (https://github.com/terraform-providers/terraform-provider-aws/issues/7456)
- if err := t.Execute(&doc, budgetConfig); err != nil {
- panic(fmt.Sprintf("error executing template: %s", err))
- }
- return doc.String()
+
+ `, accountID, *budgetConfig.BudgetName, *budgetConfig.BudgetType, *budgetConfig.BudgetLimit.Amount, *budgetConfig.BudgetLimit.Unit, timePeriodStart, *budgetConfig.TimeUnit, costFilterKey, costFilterValue)
}
func testAccAWSBudgetsBudgetConfig_PrefixDefaults(budgetConfig budgets.Budget, costFilterKey string) string {
- t := template.Must(template.New("t1").
- Parse(`
+ timePeriodStart := budgetConfig.TimePeriod.Start.Format("2006-01-02_15:04")
+ costFilterValue := *budgetConfig.CostFilters[costFilterKey][0]
+
+ return fmt.Sprintf(`
resource "aws_budgets_budget" "foo" {
- name_prefix = "{{.BudgetName}}"
- budget_type = "{{.BudgetType}}"
- limit_amount = "{{.BudgetLimit.Amount}}"
- limit_unit = "{{.BudgetLimit.Unit}}"
- time_period_start = "{{.TimePeriod.Start.Format "2006-01-02_15:04"}}"
- time_unit = "{{.TimeUnit}}"
+ name_prefix = "%s"
+ budget_type = "%s"
+ limit_amount = "%s"
+ limit_unit = "%s"
+ time_period_start = "%s"
+ time_unit = "%s"
cost_filters = {
- "` + costFilterKey + `" = "` + *budgetConfig.CostFilters[costFilterKey][0] + `"
+ "%s" = "%s"
}
}
-`))
- var doc bytes.Buffer
- // TODO: Convert to fmt.Sprintf() (https://github.com/terraform-providers/terraform-provider-aws/issues/7456)
- if err := t.Execute(&doc, budgetConfig); err != nil {
- panic(fmt.Sprintf("error executing template: %s", err))
- }
- return doc.String()
+
+ `, *budgetConfig.BudgetName, *budgetConfig.BudgetType, *budgetConfig.BudgetLimit.Amount, *budgetConfig.BudgetLimit.Unit, timePeriodStart, *budgetConfig.TimeUnit, costFilterKey, costFilterValue)
}
func testAccAWSBudgetsBudgetConfig_Prefix(budgetConfig budgets.Budget, costFilterKey string) string {
- t := template.Must(template.New("t1").
- Parse(`
+ timePeriodStart := budgetConfig.TimePeriod.Start.Format("2006-01-02_15:04")
+ timePeriodEnd := budgetConfig.TimePeriod.End.Format("2006-01-02_15:04")
+ costFilterValue := *budgetConfig.CostFilters[costFilterKey][0]
+
+ return fmt.Sprintf(`
resource "aws_budgets_budget" "foo" {
- name_prefix = "{{.BudgetName}}"
- budget_type = "{{.BudgetType}}"
- limit_amount = "{{.BudgetLimit.Amount}}"
- limit_unit = "{{.BudgetLimit.Unit}}"
+ name_prefix = "%s"
+ budget_type = "%s"
+ limit_amount = "%s"
+ limit_unit = "%s"
cost_types {
- include_tax = "{{.CostTypes.IncludeTax}}"
- include_subscription = "{{.CostTypes.IncludeSubscription}}"
- use_blended = "{{.CostTypes.UseBlended}}"
+ include_tax = "%t"
+ include_subscription = "%t"
+ use_blended = "%t"
}
- time_period_start = "{{.TimePeriod.Start.Format "2006-01-02_15:04"}}"
- time_period_end = "{{.TimePeriod.End.Format "2006-01-02_15:04"}}"
- time_unit = "{{.TimeUnit}}"
+ time_period_start = "%s"
+ time_period_end = "%s"
+ time_unit = "%s"
cost_filters = {
- "` + costFilterKey + `" = "` + *budgetConfig.CostFilters[costFilterKey][0] + `"
- }
-}
-`))
- var doc bytes.Buffer
- // TODO: Convert to fmt.Sprintf() (https://github.com/terraform-providers/terraform-provider-aws/issues/7456)
- if err := t.Execute(&doc, budgetConfig); err != nil {
- panic(fmt.Sprintf("error executing template: %s", err))
+ "%s" = "%s"
}
- return doc.String()
}
+ `, *budgetConfig.BudgetName, *budgetConfig.BudgetType, *budgetConfig.BudgetLimit.Amount, *budgetConfig.BudgetLimit.Unit, *budgetConfig.CostTypes.IncludeTax, *budgetConfig.CostTypes.IncludeSubscription, *budgetConfig.CostTypes.UseBlended, timePeriodStart, timePeriodEnd, *budgetConfig.TimeUnit, costFilterKey, costFilterValue)
+}
func testAccAWSBudgetsBudgetConfig_BasicDefaults(budgetConfig budgets.Budget, costFilterKey string) string {
- t := template.Must(template.New("t1").
- Parse(`
+ timePeriodStart := budgetConfig.TimePeriod.Start.Format("2006-01-02_15:04")
+ costFilterValue := *budgetConfig.CostFilters[costFilterKey][0]
+
+ return fmt.Sprintf(`
resource "aws_budgets_budget" "foo" {
- name = "{{.BudgetName}}"
- budget_type = "{{.BudgetType}}"
- limit_amount = "{{.BudgetLimit.Amount}}"
- limit_unit = "{{.BudgetLimit.Unit}}"
- time_period_start = "{{.TimePeriod.Start.Format "2006-01-02_15:04"}}"
- time_unit = "{{.TimeUnit}}"
+ name = "%s"
+ budget_type = "%s"
+ limit_amount = "%s"
+ limit_unit = "%s"
+ time_period_start = "%s"
+ time_unit = "%s"
cost_filters = {
- "` + costFilterKey + `" = "` + *budgetConfig.CostFilters[costFilterKey][0] + `"
+ "%s" = "%s"
}
}
-`))
- var doc bytes.Buffer
- // TODO: Convert to fmt.Sprintf() (https://github.com/terraform-providers/terraform-provider-aws/issues/7456)
- if err := t.Execute(&doc, budgetConfig); err != nil {
- panic(fmt.Sprintf("error executing template: %s", err))
- }
- return doc.String()
+
+ `, *budgetConfig.BudgetName, *budgetConfig.BudgetType, *budgetConfig.BudgetLimit.Amount, *budgetConfig.BudgetLimit.Unit, timePeriodStart, *budgetConfig.TimeUnit, costFilterKey, costFilterValue)
}
func testAccAWSBudgetsBudgetConfig_Basic(budgetConfig budgets.Budget, costFilterKey string) string {
- t := template.Must(template.New("t1").
- Parse(`
+ timePeriodStart := budgetConfig.TimePeriod.Start.Format("2006-01-02_15:04")
+ timePeriodEnd := budgetConfig.TimePeriod.End.Format("2006-01-02_15:04")
+ costFilterValue := *budgetConfig.CostFilters[costFilterKey][0]
+
+ return fmt.Sprintf(`
resource "aws_budgets_budget" "foo" {
- name = "{{.BudgetName}}"
- budget_type = "{{.BudgetType}}"
- limit_amount = "{{.BudgetLimit.Amount}}"
- limit_unit = "{{.BudgetLimit.Unit}}"
+ name = "%s"
+ budget_type = "%s"
+ limit_amount = "%s"
+ limit_unit = "%s"
cost_types {
- include_tax = "{{.CostTypes.IncludeTax}}"
- include_subscription = "{{.CostTypes.IncludeSubscription}}"
- use_blended = "{{.CostTypes.UseBlended}}"
+ include_tax = "%t"
+ include_subscription = "%t"
+ use_blended = "%t"
}
- time_period_start = "{{.TimePeriod.Start.Format "2006-01-02_15:04"}}"
- time_period_end = "{{.TimePeriod.End.Format "2006-01-02_15:04"}}"
- time_unit = "{{.TimeUnit}}"
+ time_period_start = "%s"
+ time_period_end = "%s"
+ time_unit = "%s"
cost_filters = {
- "` + costFilterKey + `" = "` + *budgetConfig.CostFilters[costFilterKey][0] + `"
+ "%s" = "%s"
}
}
-`))
- var doc bytes.Buffer
- // TODO: Convert to fmt.Sprintf() (https://github.com/terraform-providers/terraform-provider-aws/issues/7456)
- if err := t.Execute(&doc, budgetConfig); err != nil {
- panic(fmt.Sprintf("error executing template: %s", err))
- }
- return doc.String()
+
+ `, *budgetConfig.BudgetName, *budgetConfig.BudgetType, *budgetConfig.BudgetLimit.Amount, *budgetConfig.BudgetLimit.Unit, *budgetConfig.CostTypes.IncludeTax, *budgetConfig.CostTypes.IncludeSubscription, *budgetConfig.CostTypes.UseBlended, timePeriodStart, timePeriodEnd, *budgetConfig.TimeUnit, costFilterKey, costFilterValue)
}
diff --git a/aws/resource_aws_cloudfront_distribution.go b/aws/resource_aws_cloudfront_distribution.go
index 1825ab02e26..81678a104f4 100644
--- a/aws/resource_aws_cloudfront_distribution.go
+++ b/aws/resource_aws_cloudfront_distribution.go
@@ -35,11 +35,9 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
Set: aliasesHash,
},
"cache_behavior": {
- Type: schema.TypeSet,
- Optional: true,
- Set: cacheBehaviorHash,
- ConflictsWith: []string{"ordered_cache_behavior"},
- Deprecated: "Use `ordered_cache_behavior` instead",
+ Type: schema.TypeSet,
+ Optional: true,
+ Removed: "Use `ordered_cache_behavior` configuration block(s) instead",
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"allowed_methods": {
@@ -69,14 +67,12 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
"forwarded_values": {
Type: schema.TypeSet,
Required: true,
- Set: forwardedValuesHash,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"cookies": {
Type: schema.TypeSet,
Required: true,
- Set: cookiePreferenceHash,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
@@ -130,7 +126,6 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
},
},
},
- Set: lambdaFunctionAssociationHash,
},
"max_ttl": {
Type: schema.TypeInt,
@@ -167,9 +162,8 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
},
},
"ordered_cache_behavior": {
- Type: schema.TypeList,
- Optional: true,
- ConflictsWith: []string{"cache_behavior"},
+ Type: schema.TypeList,
+ Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"allowed_methods": {
@@ -197,16 +191,14 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
Optional: true,
},
"forwarded_values": {
- Type: schema.TypeSet,
+ Type: schema.TypeList,
Required: true,
- Set: forwardedValuesHash,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"cookies": {
- Type: schema.TypeSet,
+ Type: schema.TypeList,
Required: true,
- Set: cookiePreferenceHash,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
@@ -326,19 +318,18 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
},
},
"default_cache_behavior": {
- Type: schema.TypeSet,
+ Type: schema.TypeList,
Required: true,
- Set: defaultCacheBehaviorHash,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"allowed_methods": {
- Type: schema.TypeList,
+ Type: schema.TypeSet,
Required: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"cached_methods": {
- Type: schema.TypeList,
+ Type: schema.TypeSet,
Required: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
@@ -357,16 +348,14 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
Optional: true,
},
"forwarded_values": {
- Type: schema.TypeSet,
+ Type: schema.TypeList,
Required: true,
- Set: forwardedValuesHash,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"cookies": {
- Type: schema.TypeSet,
+ Type: schema.TypeList,
Required: true,
- Set: cookiePreferenceHash,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
@@ -467,9 +456,8 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
ValidateFunc: validation.StringInSlice([]string{"http1.1", "http2"}, false),
},
"logging_config": {
- Type: schema.TypeSet,
+ Type: schema.TypeList,
Optional: true,
- Set: loggingConfigHash,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
@@ -497,11 +485,9 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"custom_origin_config": {
- Type: schema.TypeSet,
- Optional: true,
- ConflictsWith: []string{"origin.s3_origin_config"},
- Set: customOriginConfigHash,
- MaxItems: 1,
+ Type: schema.TypeList,
+ Optional: true,
+ MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"http_port": {
@@ -527,7 +513,7 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
Required: true,
},
"origin_ssl_protocols": {
- Type: schema.TypeList,
+ Type: schema.TypeSet,
Required: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
@@ -566,11 +552,9 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
Optional: true,
},
"s3_origin_config": {
- Type: schema.TypeSet,
- Optional: true,
- ConflictsWith: []string{"origin.custom_origin_config"},
- Set: s3OriginConfigHash,
- MaxItems: 1,
+ Type: schema.TypeList,
+ Optional: true,
+ MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"origin_access_identity": {
@@ -589,21 +573,19 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
Default: "PriceClass_All",
},
"restrictions": {
- Type: schema.TypeSet,
+ Type: schema.TypeList,
Required: true,
- Set: restrictionsHash,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"geo_restriction": {
- Type: schema.TypeSet,
+ Type: schema.TypeList,
Required: true,
- Set: geoRestrictionHash,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"locations": {
- Type: schema.TypeList,
+ Type: schema.TypeSet,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
@@ -618,26 +600,22 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
},
},
"viewer_certificate": {
- Type: schema.TypeSet,
+ Type: schema.TypeList,
Required: true,
- Set: viewerCertificateHash,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"acm_certificate_arn": {
- Type: schema.TypeString,
- Optional: true,
- ConflictsWith: []string{"viewer_certificate.cloudfront_default_certificate", "viewer_certificate.iam_certificate_id"},
+ Type: schema.TypeString,
+ Optional: true,
},
"cloudfront_default_certificate": {
- Type: schema.TypeBool,
- Optional: true,
- ConflictsWith: []string{"viewer_certificate.acm_certificate_arn", "viewer_certificate.iam_certificate_id"},
+ Type: schema.TypeBool,
+ Optional: true,
},
"iam_certificate_id": {
- Type: schema.TypeString,
- Optional: true,
- ConflictsWith: []string{"viewer_certificate.acm_certificate_arn", "viewer_certificate.cloudfront_default_certificate"},
+ Type: schema.TypeString,
+ Optional: true,
},
"minimum_protocol_version": {
Type: schema.TypeString,
@@ -721,21 +699,36 @@ func resourceAwsCloudFrontDistributionCreate(d *schema.ResourceData, meta interf
err := resource.Retry(1*time.Minute, func() *resource.RetryError {
var err error
resp, err = conn.CreateDistributionWithTags(params)
+
+ // ACM and IAM certificate eventual consistency
+ // InvalidViewerCertificate: The specified SSL certificate doesn't exist, isn't in us-east-1 region, isn't valid, or doesn't include a valid certificate chain.
+ if isAWSErr(err, cloudfront.ErrCodeInvalidViewerCertificate, "") {
+ return resource.RetryableError(err)
+ }
+
if err != nil {
- // ACM and IAM certificate eventual consistency
- // InvalidViewerCertificate: The specified SSL certificate doesn't exist, isn't in us-east-1 region, isn't valid, or doesn't include a valid certificate chain.
- if isAWSErr(err, cloudfront.ErrCodeInvalidViewerCertificate, "") {
- return resource.RetryableError(err)
- }
return resource.NonRetryableError(err)
}
+
return nil
})
+
+ // Propagate AWS Go SDK retried error, if any
+ if isResourceTimeoutError(err) {
+ resp, err = conn.CreateDistributionWithTags(params)
+ }
+
if err != nil {
return fmt.Errorf("error creating CloudFront Distribution: %s", err)
}
d.SetId(*resp.Distribution.Id)
+
+ log.Printf("[DEBUG] Waiting until CloudFront Distribution (%s) is deployed", d.Id())
+ if err := resourceAwsCloudFrontDistributionWaitUntilDeployed(d.Id(), meta); err != nil {
+ return fmt.Errorf("error waiting until CloudFront Distribution (%s) is deployed: %s", d.Id(), err)
+ }
+
return resourceAwsCloudFrontDistributionRead(d, meta)
}
@@ -801,20 +794,34 @@ func resourceAwsCloudFrontDistributionUpdate(d *schema.ResourceData, meta interf
// Handle eventual consistency issues
err := resource.Retry(1*time.Minute, func() *resource.RetryError {
_, err := conn.UpdateDistribution(params)
+
+ // ACM and IAM certificate eventual consistency
+ // InvalidViewerCertificate: The specified SSL certificate doesn't exist, isn't in us-east-1 region, isn't valid, or doesn't include a valid certificate chain.
+ if isAWSErr(err, cloudfront.ErrCodeInvalidViewerCertificate, "") {
+ return resource.RetryableError(err)
+ }
+
if err != nil {
- // ACM and IAM certificate eventual consistency
- // InvalidViewerCertificate: The specified SSL certificate doesn't exist, isn't in us-east-1 region, isn't valid, or doesn't include a valid certificate chain.
- if isAWSErr(err, cloudfront.ErrCodeInvalidViewerCertificate, "") {
- return resource.RetryableError(err)
- }
return resource.NonRetryableError(err)
}
+
return nil
})
+
+ // Propagate AWS Go SDK retried error, if any
+ if isResourceTimeoutError(err) {
+ _, err = conn.UpdateDistribution(params)
+ }
+
if err != nil {
return fmt.Errorf("error updating CloudFront Distribution (%s): %s", d.Id(), err)
}
+ log.Printf("[DEBUG] Waiting until CloudFront Distribution (%s) is deployed", d.Id())
+ if err := resourceAwsCloudFrontDistributionWaitUntilDeployed(d.Id(), meta); err != nil {
+ return fmt.Errorf("error waiting until CloudFront Distribution (%s) is deployed: %s", d.Id(), err)
+ }
+
if err := setTagsCloudFront(conn, d, d.Get("arn").(string)); err != nil {
return err
}
@@ -825,42 +832,127 @@ func resourceAwsCloudFrontDistributionUpdate(d *schema.ResourceData, meta interf
func resourceAwsCloudFrontDistributionDelete(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).cloudfrontconn
- // manually disable the distribution first
- d.Set("enabled", false)
- err := resourceAwsCloudFrontDistributionUpdate(d, meta)
- if err != nil {
- return err
- }
-
- // skip delete if retain_on_delete is enabled
if d.Get("retain_on_delete").(bool) {
log.Printf("[WARN] Removing CloudFront Distribution ID %q with `retain_on_delete` set. Please delete this distribution manually.", d.Id())
return nil
}
- // Distribution needs to be in deployed state again before it can be deleted.
- err = resourceAwsCloudFrontDistributionWaitUntilDeployed(d.Id(), meta)
- if err != nil {
- return err
- }
-
- // now delete
- params := &cloudfront.DeleteDistributionInput{
+ deleteDistributionInput := &cloudfront.DeleteDistributionInput{
Id: aws.String(d.Id()),
IfMatch: aws.String(d.Get("etag").(string)),
}
- // Eventual consistency for "deployed" state
- err = resource.Retry(1*time.Minute, func() *resource.RetryError {
- _, err := conn.DeleteDistribution(params)
+ log.Printf("[DEBUG] Deleting CloudFront Distribution: %s", d.Id())
+ _, err := conn.DeleteDistribution(deleteDistributionInput)
+
+ if err == nil || isAWSErr(err, cloudfront.ErrCodeNoSuchDistribution, "") {
+ return nil
+ }
+
+ // Refresh our ETag if it is out of date and attempt deletion again.
+ if isAWSErr(err, cloudfront.ErrCodeInvalidIfMatchVersion, "") {
+ getDistributionInput := &cloudfront.GetDistributionInput{
+ Id: aws.String(d.Id()),
+ }
+ var getDistributionOutput *cloudfront.GetDistributionOutput
+
+ log.Printf("[DEBUG] Refreshing CloudFront Distribution (%s) ETag", d.Id())
+ getDistributionOutput, err = conn.GetDistribution(getDistributionInput)
+
+ if err != nil {
+ return fmt.Errorf("error refreshing CloudFront Distribution (%s) ETag: %s", d.Id(), err)
+ }
+
+ if getDistributionOutput == nil {
+ return fmt.Errorf("error refreshing CloudFront Distribution (%s) ETag: empty response", d.Id())
+ }
+
+ deleteDistributionInput.IfMatch = getDistributionOutput.ETag
+
+ _, err = conn.DeleteDistribution(deleteDistributionInput)
+ }
+
+ // Disable distribution if it is not yet disabled and attempt deletion again.
+ // Here we update via the deployed configuration to ensure we are not submitting an out of date
+ // configuration from the Terraform configuration, should other changes have occurred manually.
+ if isAWSErr(err, cloudfront.ErrCodeDistributionNotDisabled, "") {
+ getDistributionInput := &cloudfront.GetDistributionInput{
+ Id: aws.String(d.Id()),
+ }
+ var getDistributionOutput *cloudfront.GetDistributionOutput
+
+ log.Printf("[DEBUG] Refreshing CloudFront Distribution (%s) to disable", d.Id())
+ getDistributionOutput, err = conn.GetDistribution(getDistributionInput)
+
+ if err != nil {
+ return fmt.Errorf("error refreshing CloudFront Distribution (%s) to disable: %s", d.Id(), err)
+ }
+
+ if getDistributionOutput == nil || getDistributionOutput.Distribution == nil {
+ return fmt.Errorf("error refreshing CloudFront Distribution (%s) to disable: empty response", d.Id())
+ }
+
+ updateDistributionInput := &cloudfront.UpdateDistributionInput{
+ DistributionConfig: getDistributionOutput.Distribution.DistributionConfig,
+ Id: deleteDistributionInput.Id,
+ IfMatch: getDistributionOutput.ETag,
+ }
+ updateDistributionInput.DistributionConfig.Enabled = aws.Bool(false)
+ var updateDistributionOutput *cloudfront.UpdateDistributionOutput
+
+ log.Printf("[DEBUG] Disabling CloudFront Distribution: %s", d.Id())
+ updateDistributionOutput, err = conn.UpdateDistribution(updateDistributionInput)
+
if err != nil {
- if isAWSErr(err, cloudfront.ErrCodeDistributionNotDisabled, "The distribution you are trying to delete has not been disabled.") {
- return resource.RetryableError(err)
+ return fmt.Errorf("error disabling CloudFront Distribution (%s): %s", d.Id(), err)
+ }
+
+ log.Printf("[DEBUG] Waiting until CloudFront Distribution (%s) is deployed", d.Id())
+ if err := resourceAwsCloudFrontDistributionWaitUntilDeployed(d.Id(), meta); err != nil {
+ return fmt.Errorf("error waiting until CloudFront Distribution (%s) is deployed: %s", d.Id(), err)
+ }
+
+ deleteDistributionInput.IfMatch = updateDistributionOutput.ETag
+
+ _, err = conn.DeleteDistribution(deleteDistributionInput)
+
+ // CloudFront has eventual consistency issues even for "deployed" state.
+ // Occasionally the DeleteDistribution call will return this error as well, in which retries will succeed:
+ // * PreconditionFailed: The request failed because it didn't meet the preconditions in one or more request-header fields
+ if isAWSErr(err, cloudfront.ErrCodeDistributionNotDisabled, "") || isAWSErr(err, cloudfront.ErrCodePreconditionFailed, "") {
+ err = resource.Retry(2*time.Minute, func() *resource.RetryError {
+ _, err := conn.DeleteDistribution(deleteDistributionInput)
+
+ if isAWSErr(err, cloudfront.ErrCodeDistributionNotDisabled, "") {
+ return resource.RetryableError(err)
+ }
+
+ if isAWSErr(err, cloudfront.ErrCodeNoSuchDistribution, "") {
+ return nil
+ }
+
+ if isAWSErr(err, cloudfront.ErrCodePreconditionFailed, "") {
+ return resource.RetryableError(err)
+ }
+
+ if err != nil {
+ return resource.NonRetryableError(err)
+ }
+
+ return nil
+ })
+
+ // Propagate AWS Go SDK retried error, if any
+ if isResourceTimeoutError(err) {
+ _, err = conn.DeleteDistribution(deleteDistributionInput)
}
- return resource.NonRetryableError(err)
}
+ }
+
+ if isAWSErr(err, cloudfront.ErrCodeNoSuchDistribution, "") {
return nil
- })
+ }
+
if err != nil {
return fmt.Errorf("CloudFront Distribution %s cannot be deleted: %s", d.Id(), err)
}
@@ -878,7 +970,7 @@ func resourceAwsCloudFrontDistributionWaitUntilDeployed(id string, meta interfac
Refresh: resourceAwsCloudFrontWebDistributionStateRefreshFunc(id, meta),
Timeout: 70 * time.Minute,
MinTimeout: 15 * time.Second,
- Delay: 10 * time.Minute,
+ Delay: 1 * time.Minute,
}
_, err := stateConf.WaitForState()
diff --git a/aws/resource_aws_cloudfront_distribution_test.go b/aws/resource_aws_cloudfront_distribution_test.go
index 5139aa78852..c75f087a166 100644
--- a/aws/resource_aws_cloudfront_distribution_test.go
+++ b/aws/resource_aws_cloudfront_distribution_test.go
@@ -75,29 +75,6 @@ func testSweepCloudFrontDistributions(region string) error {
return nil
}
-func TestAccAWSCloudFrontDistribution_importBasic(t *testing.T) {
- ri := acctest.RandInt()
- testConfig := fmt.Sprintf(testAccAWSCloudFrontDistributionS3Config, ri, originBucket, logBucket, testAccAWSCloudFrontDistributionRetainConfig())
-
- resourceName := "aws_cloudfront_distribution.s3_distribution"
-
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- Providers: testAccProviders,
- CheckDestroy: testAccCheckCloudFrontDistributionDestroy,
- Steps: []resource.TestStep{
- {
- Config: testConfig,
- },
- {
- ResourceName: resourceName,
- ImportState: true,
- ImportStateVerify: true,
- },
- },
- })
-}
-
// TestAccAWSCloudFrontDistribution_S3Origin runs an
// aws_cloudfront_distribution acceptance test with a single S3 origin.
//
@@ -124,6 +101,12 @@ func TestAccAWSCloudFrontDistribution_S3Origin(t *testing.T) {
),
),
},
+ {
+ ResourceName: "aws_cloudfront_distribution.s3_distribution",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{"retain_on_delete"},
+ },
},
})
}
@@ -152,6 +135,12 @@ func TestAccAWSCloudFrontDistribution_S3OriginWithTags(t *testing.T) {
"aws_cloudfront_distribution.s3_distribution", "tags.account", "main"),
),
},
+ {
+ ResourceName: "aws_cloudfront_distribution.s3_distribution",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{"retain_on_delete"},
+ },
{
Config: postConfig,
Check: resource.ComposeTestCheckFunc(
@@ -187,6 +176,12 @@ func TestAccAWSCloudFrontDistribution_customOrigin(t *testing.T) {
),
),
},
+ {
+ ResourceName: "aws_cloudfront_distribution.custom_distribution",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{"retain_on_delete"},
+ },
},
})
}
@@ -207,11 +202,17 @@ func TestAccAWSCloudFrontDistribution_multiOrigin(t *testing.T) {
Config: testAccAWSCloudFrontDistributionMultiOriginConfig,
Check: resource.ComposeTestCheckFunc(
testAccCheckCloudFrontDistributionExistence(resourceName),
- resource.TestCheckResourceAttr(resourceName, "cache_behavior.#", "2"),
- resource.TestCheckResourceAttr(resourceName, "cache_behavior.2106187217.default_ttl", "50"),
- resource.TestCheckResourceAttr(resourceName, "cache_behavior.2106187217.path_pattern", "images1/*.jpg"),
+ resource.TestCheckResourceAttr(resourceName, "ordered_cache_behavior.#", "2"),
+ resource.TestCheckResourceAttr(resourceName, "ordered_cache_behavior.0.default_ttl", "50"),
+ resource.TestCheckResourceAttr(resourceName, "ordered_cache_behavior.0.path_pattern", "images1/*.jpg"),
),
},
+ {
+ ResourceName: resourceName,
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{"retain_on_delete"},
+ },
},
})
}
@@ -241,9 +242,10 @@ func TestAccAWSCloudFrontDistribution_orderedCacheBehavior(t *testing.T) {
),
},
{
- ResourceName: resourceName,
- ImportState: true,
- ImportStateVerify: true,
+ ResourceName: resourceName,
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{"retain_on_delete"},
},
},
})
@@ -297,33 +299,24 @@ func TestAccAWSCloudFrontDistribution_noOptionalItemsConfig(t *testing.T) {
resource.TestMatchResourceAttr(resourceName, "arn", regexp.MustCompile(`^arn:[^:]+:cloudfront::[^:]+:distribution/[A-Z0-9]+$`)),
resource.TestCheckResourceAttr(resourceName, "custom_error_response.#", "0"),
resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.#", "1"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.allowed_methods.#", "7"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.allowed_methods.0", "HEAD"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.allowed_methods.1", "DELETE"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.allowed_methods.2", "POST"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.allowed_methods.3", "GET"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.allowed_methods.4", "OPTIONS"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.allowed_methods.5", "PUT"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.allowed_methods.6", "PATCH"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.cached_methods.#", "2"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.cached_methods.0", "HEAD"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.cached_methods.1", "GET"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.compress", "false"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.default_ttl", "86400"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.forwarded_values.#", "1"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.forwarded_values.2510654351.cookies.#", "1"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.forwarded_values.2510654351.cookies.1870923232.forward", "all"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.forwarded_values.2510654351.cookies.1870923232.whitelisted_names.#", "0"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.forwarded_values.2510654351.headers.#", "0"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.forwarded_values.2510654351.query_string", "false"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.forwarded_values.2510654351.query_string_cache_keys.#", "0"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.lambda_function_association.#", "0"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.max_ttl", "31536000"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.min_ttl", "0"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.smooth_streaming", "false"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.target_origin_id", "myCustomOrigin"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.trusted_signers.#", "0"),
- resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.2871742778.viewer_protocol_policy", "allow-all"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.allowed_methods.#", "7"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.cached_methods.#", "2"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.compress", "false"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.default_ttl", "86400"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.forwarded_values.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.forwarded_values.0.cookies.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.forwarded_values.0.cookies.0.forward", "all"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.forwarded_values.0.cookies.0.whitelisted_names.#", "0"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.forwarded_values.0.headers.#", "0"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.forwarded_values.0.query_string", "false"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.forwarded_values.0.query_string_cache_keys.#", "0"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.lambda_function_association.#", "0"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.max_ttl", "31536000"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.min_ttl", "0"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.smooth_streaming", "false"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.target_origin_id", "myCustomOrigin"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.trusted_signers.#", "0"),
+ resource.TestCheckResourceAttr(resourceName, "default_cache_behavior.0.viewer_protocol_policy", "allow-all"),
resource.TestMatchResourceAttr(resourceName, "domain_name", regexp.MustCompile(`^[a-z0-9]+\.cloudfront\.net$`)),
resource.TestCheckResourceAttr(resourceName, "enabled", "true"),
resource.TestMatchResourceAttr(resourceName, "etag", regexp.MustCompile(`^[A-Z0-9]+$`)),
@@ -334,29 +327,29 @@ func TestAccAWSCloudFrontDistribution_noOptionalItemsConfig(t *testing.T) {
resource.TestCheckResourceAttr(resourceName, "origin.#", "1"),
resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_header.#", "0"),
resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.#", "1"),
- resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.3832794885.http_port", "80"),
- resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.3832794885.https_port", "443"),
- resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.3832794885.origin_keepalive_timeout", "5"),
- resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.3832794885.origin_protocol_policy", "http-only"),
- resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.3832794885.origin_read_timeout", "30"),
- resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.3832794885.origin_ssl_protocols.#", "2"),
- resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.3832794885.origin_ssl_protocols.0", "SSLv3"),
- resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.3832794885.origin_ssl_protocols.1", "TLSv1"),
+ resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.0.http_port", "80"),
+ resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.0.https_port", "443"),
+ resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.0.origin_keepalive_timeout", "5"),
+ resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.0.origin_protocol_policy", "http-only"),
+ resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.0.origin_read_timeout", "30"),
+ resource.TestCheckResourceAttr(resourceName, "origin.1857972443.custom_origin_config.0.origin_ssl_protocols.#", "2"),
resource.TestCheckResourceAttr(resourceName, "origin.1857972443.domain_name", "www.example.com"),
resource.TestCheckResourceAttr(resourceName, "price_class", "PriceClass_All"),
resource.TestCheckResourceAttr(resourceName, "restrictions.#", "1"),
- resource.TestCheckResourceAttr(resourceName, "restrictions.811065190.geo_restriction.#", "1"),
- resource.TestCheckResourceAttr(resourceName, "restrictions.811065190.geo_restriction.1303118592.locations.#", "4"),
- resource.TestCheckResourceAttr(resourceName, "restrictions.811065190.geo_restriction.1303118592.locations.0", "CA"),
- resource.TestCheckResourceAttr(resourceName, "restrictions.811065190.geo_restriction.1303118592.locations.1", "DE"),
- resource.TestCheckResourceAttr(resourceName, "restrictions.811065190.geo_restriction.1303118592.locations.2", "GB"),
- resource.TestCheckResourceAttr(resourceName, "restrictions.811065190.geo_restriction.1303118592.locations.3", "US"),
- resource.TestCheckResourceAttr(resourceName, "restrictions.811065190.geo_restriction.1303118592.restriction_type", "whitelist"),
+ resource.TestCheckResourceAttr(resourceName, "restrictions.0.geo_restriction.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "restrictions.0.geo_restriction.0.locations.#", "4"),
+ resource.TestCheckResourceAttr(resourceName, "restrictions.0.geo_restriction.0.restriction_type", "whitelist"),
resource.TestCheckResourceAttr(resourceName, "tags.%", "0"),
resource.TestCheckResourceAttr(resourceName, "viewer_certificate.#", "1"),
- resource.TestCheckResourceAttr(resourceName, "viewer_certificate.69840937.cloudfront_default_certificate", "true"),
+ resource.TestCheckResourceAttr(resourceName, "viewer_certificate.0.cloudfront_default_certificate", "true"),
),
},
+ {
+ ResourceName: resourceName,
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{"retain_on_delete"},
+ },
},
})
}
@@ -381,6 +374,12 @@ func TestAccAWSCloudFrontDistribution_HTTP11Config(t *testing.T) {
),
),
},
+ {
+ ResourceName: "aws_cloudfront_distribution.http_1_1",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{"retain_on_delete"},
+ },
},
})
}
@@ -401,6 +400,12 @@ func TestAccAWSCloudFrontDistribution_IsIPV6EnabledConfig(t *testing.T) {
"aws_cloudfront_distribution.is_ipv6_enabled", "is_ipv6_enabled", "true"),
),
},
+ {
+ ResourceName: "aws_cloudfront_distribution.is_ipv6_enabled",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{"retain_on_delete"},
+ },
},
})
}
@@ -419,6 +424,63 @@ func TestAccAWSCloudFrontDistribution_noCustomErrorResponseConfig(t *testing.T)
),
),
},
+ {
+ ResourceName: "aws_cloudfront_distribution.no_custom_error_responses",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{"retain_on_delete"},
+ },
+ },
+ })
+}
+
+func TestAccAWSCloudFrontDistribution_ViewerCertificate_AcmCertificateArn(t *testing.T) {
+ resourceName := "aws_cloudfront_distribution.test"
+ retainOnDelete := testAccAWSCloudFrontDistributionRetainOnDeleteFromEnv()
+
+ resource.ParallelTest(t, resource.TestCase{
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProvidersWithTLS,
+ CheckDestroy: testAccCheckCloudFrontDistributionDestroy,
+ Steps: []resource.TestStep{
+ {
+ Config: testAccAWSCloudFrontDistributionConfigViewerCertificateAcmCertificateArn(retainOnDelete),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckCloudFrontDistributionExistence(resourceName),
+ ),
+ },
+ {
+ ResourceName: resourceName,
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{"retain_on_delete"},
+ },
+ },
+ })
+}
+
+// Reference: https://github.com/terraform-providers/terraform-provider-aws/issues/7773
+func TestAccAWSCloudFrontDistribution_ViewerCertificate_AcmCertificateArn_ConflictsWithCloudFrontDefaultCertificate(t *testing.T) {
+ resourceName := "aws_cloudfront_distribution.test"
+ retainOnDelete := testAccAWSCloudFrontDistributionRetainOnDeleteFromEnv()
+
+ resource.ParallelTest(t, resource.TestCase{
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProvidersWithTLS,
+ CheckDestroy: testAccCheckCloudFrontDistributionDestroy,
+ Steps: []resource.TestStep{
+ {
+ Config: testAccAWSCloudFrontDistributionConfigViewerCertificateAcmCertificateArnConflictsWithCloudFrontDefaultCertificate(retainOnDelete),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckCloudFrontDistributionExistence(resourceName),
+ ),
+ },
+ {
+ ResourceName: resourceName,
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{"retain_on_delete"},
+ },
},
})
}
@@ -430,7 +492,7 @@ func testAccCheckCloudFrontDistributionDestroy(s *terraform.State) error {
}
dist, err := testAccAuxCloudFrontGetDistributionConfig(s, k)
if err == nil {
- if _, ok := os.LookupEnv("TF_TEST_CLOUDFRONT_RETAIN"); ok {
+ if testAccAWSCloudFrontDistributionRetainOnDeleteFromEnv() {
if *dist.DistributionConfig.Enabled {
return fmt.Errorf("CloudFront distribution should be disabled")
}
@@ -474,8 +536,13 @@ func testAccAuxCloudFrontGetDistributionConfig(s *terraform.State, cloudFrontRes
return res.Distribution, nil
}
+func testAccAWSCloudFrontDistributionRetainOnDeleteFromEnv() bool {
+ _, ok := os.LookupEnv("TF_TEST_CLOUDFRONT_RETAIN")
+ return ok
+}
+
func testAccAWSCloudFrontDistributionRetainConfig() string {
- if _, ok := os.LookupEnv("TF_TEST_CLOUDFRONT_RETAIN"); ok {
+ if testAccAWSCloudFrontDistributionRetainOnDeleteFromEnv() {
return "retain_on_delete = true"
}
return ""
@@ -763,7 +830,7 @@ resource "aws_cloudfront_distribution" "multi_origin_distribution" {
max_ttl = 100
viewer_protocol_policy = "allow-all"
}
- cache_behavior {
+ ordered_cache_behavior {
allowed_methods = [ "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT" ]
cached_methods = [ "GET", "HEAD" ]
target_origin_id = "myS3Origin"
@@ -779,7 +846,7 @@ resource "aws_cloudfront_distribution" "multi_origin_distribution" {
viewer_protocol_policy = "allow-all"
path_pattern = "images1/*.jpg"
}
- cache_behavior {
+ ordered_cache_behavior {
allowed_methods = [ "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT" ]
cached_methods = [ "GET", "HEAD" ]
target_origin_id = "myCustomOrigin"
@@ -1164,3 +1231,132 @@ resource "aws_cloudfront_distribution" "main" {
%s
}
`, acctest.RandInt(), testAccAWSCloudFrontDistributionRetainConfig())
+
+func testAccAWSCloudFrontDistributionConfigViewerCertificateAcmCertificateArnBase(commonName string) string {
+ return fmt.Sprintf(`
+provider "aws" {
+ region = "us-east-1"
+}
+
+resource "tls_private_key" "test" {
+ algorithm = "RSA"
+}
+
+resource "tls_self_signed_cert" "test" {
+ allowed_uses = [
+ "key_encipherment",
+ "digital_signature",
+ "server_auth",
+ ]
+
+ key_algorithm = "RSA"
+ private_key_pem = "${tls_private_key.test.private_key_pem}"
+ validity_period_hours = 12
+
+ subject {
+ common_name = %q
+ organization = "ACME Examples, Inc"
+ }
+}
+
+resource "aws_acm_certificate" "test" {
+ certificate_body = "${tls_self_signed_cert.test.cert_pem}"
+ private_key = "${tls_private_key.test.private_key_pem}"
+}
+`, commonName)
+}
+
+func testAccAWSCloudFrontDistributionConfigViewerCertificateAcmCertificateArn(retainOnDelete bool) string {
+ return testAccAWSCloudFrontDistributionConfigViewerCertificateAcmCertificateArnBase("example.com") + fmt.Sprintf(`
+resource "aws_cloudfront_distribution" "test" {
+ enabled = false
+ retain_on_delete = %t
+
+ default_cache_behavior {
+ allowed_methods = ["GET", "HEAD"]
+ cached_methods = ["GET", "HEAD"]
+ target_origin_id = "test"
+ viewer_protocol_policy = "allow-all"
+
+ forwarded_values {
+ query_string = false
+
+ cookies {
+ forward = "all"
+ }
+ }
+ }
+
+ origin {
+ domain_name = "www.example.com"
+ origin_id = "test"
+
+ custom_origin_config {
+ http_port = 80
+ https_port = 443
+ origin_protocol_policy = "https-only"
+ origin_ssl_protocols = ["TLSv1.2"]
+ }
+ }
+
+ restrictions {
+ geo_restriction {
+ restriction_type = "none"
+ }
+ }
+
+ viewer_certificate {
+ acm_certificate_arn = "${aws_acm_certificate.test.arn}"
+ ssl_support_method = "sni-only"
+ }
+}
+`, retainOnDelete)
+}
+
+func testAccAWSCloudFrontDistributionConfigViewerCertificateAcmCertificateArnConflictsWithCloudFrontDefaultCertificate(retainOnDelete bool) string {
+ return testAccAWSCloudFrontDistributionConfigViewerCertificateAcmCertificateArnBase("example.com") + fmt.Sprintf(`
+resource "aws_cloudfront_distribution" "test" {
+ enabled = false
+ retain_on_delete = %t
+
+ default_cache_behavior {
+ allowed_methods = ["GET", "HEAD"]
+ cached_methods = ["GET", "HEAD"]
+ target_origin_id = "test"
+ viewer_protocol_policy = "allow-all"
+
+ forwarded_values {
+ query_string = false
+
+ cookies {
+ forward = "all"
+ }
+ }
+ }
+
+ origin {
+ domain_name = "www.example.com"
+ origin_id = "test"
+
+ custom_origin_config {
+ http_port = 80
+ https_port = 443
+ origin_protocol_policy = "https-only"
+ origin_ssl_protocols = ["TLSv1.2"]
+ }
+ }
+
+ restrictions {
+ geo_restriction {
+ restriction_type = "none"
+ }
+ }
+
+ viewer_certificate {
+ acm_certificate_arn = "${aws_acm_certificate.test.arn}"
+ cloudfront_default_certificate = false
+ ssl_support_method = "sni-only"
+ }
+}
+`, retainOnDelete)
+}
diff --git a/aws/resource_aws_cloudwatch_event_permission.go b/aws/resource_aws_cloudwatch_event_permission.go
index 8457bdf0e98..0382636be53 100644
--- a/aws/resource_aws_cloudwatch_event_permission.go
+++ b/aws/resource_aws_cloudwatch_event_permission.go
@@ -9,6 +9,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/arn"
+ "github.com/aws/aws-sdk-go/aws/awsutil"
events "github.com/aws/aws-sdk-go/service/cloudwatchevents"
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/helper/schema"
@@ -230,6 +231,16 @@ type CloudWatchEventPermissionPolicyDoc struct {
Statements []CloudWatchEventPermissionPolicyStatement `json:"Statement"`
}
+// String returns the string representation
+func (d CloudWatchEventPermissionPolicyDoc) String() string {
+ return awsutil.Prettify(d)
+}
+
+// GoString returns the string representation
+func (d CloudWatchEventPermissionPolicyDoc) GoString() string {
+ return d.String()
+}
+
// CloudWatchEventPermissionPolicyStatement represents the Statement attribute of CloudWatchEventPermissionPolicyDoc
// See also: https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/API_DescribeEventBus.html
type CloudWatchEventPermissionPolicyStatement struct {
@@ -241,6 +252,16 @@ type CloudWatchEventPermissionPolicyStatement struct {
Resource string
}
+// String returns the string representation
+func (s CloudWatchEventPermissionPolicyStatement) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CloudWatchEventPermissionPolicyStatement) GoString() string {
+ return s.String()
+}
+
// CloudWatchEventPermissionPolicyStatementCondition represents the Condition attribute of CloudWatchEventPermissionPolicyStatement
// See also: https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/API_DescribeEventBus.html
type CloudWatchEventPermissionPolicyStatementCondition struct {
@@ -249,7 +270,17 @@ type CloudWatchEventPermissionPolicyStatementCondition struct {
Value string
}
-func (condition *CloudWatchEventPermissionPolicyStatementCondition) UnmarshalJSON(b []byte) error {
+// String returns the string representation
+func (c CloudWatchEventPermissionPolicyStatementCondition) String() string {
+ return awsutil.Prettify(c)
+}
+
+// GoString returns the string representation
+func (c CloudWatchEventPermissionPolicyStatementCondition) GoString() string {
+ return c.String()
+}
+
+func (c *CloudWatchEventPermissionPolicyStatementCondition) UnmarshalJSON(b []byte) error {
var out CloudWatchEventPermissionPolicyStatementCondition
// JSON representation: \"Condition\":{\"StringEquals\":{\"aws:PrincipalOrgID\":\"o-0123456789\"}}
@@ -268,14 +299,14 @@ func (condition *CloudWatchEventPermissionPolicyStatementCondition) UnmarshalJSO
}
}
- *condition = out
+ *c = out
return nil
}
func findCloudWatchEventPermissionPolicyStatementByID(policy *CloudWatchEventPermissionPolicyDoc, id string) (
*CloudWatchEventPermissionPolicyStatement, error) {
- log.Printf("[DEBUG] Received %d statements in CloudWatch Events permission policy: %s", len(policy.Statements), policy.Statements)
+ log.Printf("[DEBUG] Finding statement (%s) in CloudWatch Events permission policy: %s", id, policy)
for _, statement := range policy.Statements {
if statement.Sid == id {
return &statement, nil
@@ -285,7 +316,7 @@ func findCloudWatchEventPermissionPolicyStatementByID(policy *CloudWatchEventPer
return nil, &resource.NotFoundError{
LastRequest: id,
LastResponse: policy,
- Message: fmt.Sprintf("Failed to find statement %q in CloudWatch Events permission policy:\n%s", id, policy.Statements),
+ Message: fmt.Sprintf("Failed to find statement (%s) in CloudWatch Events permission policy: %s", id, policy),
}
}
@@ -305,15 +336,15 @@ func expandCloudWatchEventsCondition(l []interface{}) *events.Condition {
return condition
}
-func flattenCloudWatchEventPermissionPolicyStatementCondition(condition *CloudWatchEventPermissionPolicyStatementCondition) []interface{} {
- if condition == nil {
+func flattenCloudWatchEventPermissionPolicyStatementCondition(c *CloudWatchEventPermissionPolicyStatementCondition) []interface{} {
+ if c == nil {
return []interface{}{}
}
m := map[string]interface{}{
- "key": condition.Key,
- "type": condition.Type,
- "value": condition.Value,
+ "key": c.Key,
+ "type": c.Type,
+ "value": c.Value,
}
return []interface{}{m}
diff --git a/aws/resource_aws_cloudwatch_event_rule_test.go b/aws/resource_aws_cloudwatch_event_rule_test.go
index d489f37c9b7..3e25e0db32a 100644
--- a/aws/resource_aws_cloudwatch_event_rule_test.go
+++ b/aws/resource_aws_cloudwatch_event_rule_test.go
@@ -17,6 +17,9 @@ func init() {
resource.AddTestSweepers("aws_cloudwatch_event_rule", &resource.Sweeper{
Name: "aws_cloudwatch_event_rule",
F: testSweepCloudWatchEventRules,
+ Dependencies: []string{
+ "aws_cloudwatch_event_target",
+ },
})
}
diff --git a/aws/resource_aws_cloudwatch_event_target_test.go b/aws/resource_aws_cloudwatch_event_target_test.go
index 6b75cbd0939..369307cf09a 100644
--- a/aws/resource_aws_cloudwatch_event_target_test.go
+++ b/aws/resource_aws_cloudwatch_event_target_test.go
@@ -2,15 +2,92 @@ package aws
import (
"fmt"
+ "log"
"regexp"
"testing"
+ "github.com/aws/aws-sdk-go/aws"
events "github.com/aws/aws-sdk-go/service/cloudwatchevents"
"github.com/hashicorp/terraform/helper/acctest"
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/terraform"
)
+func init() {
+ resource.AddTestSweepers("aws_cloudwatch_event_target", &resource.Sweeper{
+ Name: "aws_cloudwatch_event_target",
+ F: testSweepCloudWatchEventTargets,
+ })
+}
+
+func testSweepCloudWatchEventTargets(region string) error {
+ client, err := sharedClientForRegion(region)
+ if err != nil {
+ return fmt.Errorf("Error getting client: %s", err)
+ }
+ conn := client.(*AWSClient).cloudwatcheventsconn
+
+ input := &events.ListRulesInput{}
+
+ for {
+ output, err := conn.ListRules(input)
+
+ if testSweepSkipSweepError(err) {
+ log.Printf("[WARN] Skipping CloudWatch Event Target sweep for %s: %s", region, err)
+ return nil
+ }
+
+ if err != nil {
+ return fmt.Errorf("Error retrieving CloudWatch Event Targets: %s", err)
+ }
+
+ for _, rule := range output.Rules {
+ listTargetsByRuleInput := &events.ListTargetsByRuleInput{
+ Limit: aws.Int64(100), // Set limit to allowed maximum to prevent API throttling
+ Rule: rule.Name,
+ }
+ ruleName := aws.StringValue(rule.Name)
+
+ for {
+ listTargetsByRuleOutput, err := conn.ListTargetsByRule(listTargetsByRuleInput)
+
+ if err != nil {
+ return fmt.Errorf("Error retrieving CloudWatch Event Targets: %s", err)
+ }
+
+ for _, target := range listTargetsByRuleOutput.Targets {
+ removeTargetsInput := &events.RemoveTargetsInput{
+ Ids: []*string{target.Id},
+ Rule: rule.Name,
+ }
+ targetID := aws.StringValue(target.Id)
+
+ log.Printf("[INFO] Deleting CloudWatch Event Rule (%s) Target: %s", ruleName, targetID)
+ _, err := conn.RemoveTargets(removeTargetsInput)
+
+ if err != nil {
+ return fmt.Errorf("Error deleting CloudWatch Event Rule (%s) Target %s: %s", ruleName, targetID, err)
+ }
+ }
+
+ if aws.StringValue(listTargetsByRuleOutput.NextToken) == "" {
+ break
+ }
+
+ listTargetsByRuleInput.NextToken = listTargetsByRuleOutput.NextToken
+ }
+ }
+
+ if aws.StringValue(output.NextToken) == "" {
+ break
+ }
+
+ input.NextToken = output.NextToken
+ }
+
+ return nil
+}
+
func TestAccAWSCloudWatchEventTarget_basic(t *testing.T) {
var target events.Target
rName1 := acctest.RandString(5)
diff --git a/aws/resource_aws_cloudwatch_log_destination_policy_test.go b/aws/resource_aws_cloudwatch_log_destination_policy_test.go
index bbeb9e3525b..43abbf162c5 100644
--- a/aws/resource_aws_cloudwatch_log_destination_policy_test.go
+++ b/aws/resource_aws_cloudwatch_log_destination_policy_test.go
@@ -103,9 +103,7 @@ resource "aws_kinesis_stream" "test" {
shard_count = 1
}
-data "aws_region" "current" {
- current = true
-}
+data "aws_region" "current" {}
data "aws_iam_policy_document" "role" {
statement {
diff --git a/aws/resource_aws_cloudwatch_log_destination_test.go b/aws/resource_aws_cloudwatch_log_destination_test.go
index f808966ffe1..6a9fbacde78 100644
--- a/aws/resource_aws_cloudwatch_log_destination_test.go
+++ b/aws/resource_aws_cloudwatch_log_destination_test.go
@@ -103,9 +103,7 @@ resource "aws_kinesis_stream" "test" {
shard_count = 1
}
-data "aws_region" "current" {
- current = true
-}
+data "aws_region" "current" {}
data "aws_iam_policy_document" "role" {
statement {
diff --git a/aws/resource_aws_codebuild_project.go b/aws/resource_aws_codebuild_project.go
index 6dd1110d6b6..6cc8d3f1827 100644
--- a/aws/resource_aws_codebuild_project.go
+++ b/aws/resource_aws_codebuild_project.go
@@ -378,12 +378,6 @@ func resourceAwsCodeBuildProject() *schema.Resource {
MaxItems: 1,
Set: resourceAwsCodeBuildProjectSourceHash,
},
- "timeout": {
- Type: schema.TypeInt,
- Optional: true,
- ValidateFunc: validation.IntBetween(5, 480),
- Removed: "This field has been removed. Please use build_timeout instead",
- },
"build_timeout": {
Type: schema.TypeInt,
Optional: true,
diff --git a/aws/resource_aws_cognito_user_pool.go b/aws/resource_aws_cognito_user_pool.go
index 051483a6558..6b7548140da 100644
--- a/aws/resource_aws_cognito_user_pool.go
+++ b/aws/resource_aws_cognito_user_pool.go
@@ -148,17 +148,19 @@ func resourceAwsCognitoUserPool() *schema.Resource {
},
"email_verification_subject": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ValidateFunc: validateCognitoUserPoolEmailVerificationSubject,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validateCognitoUserPoolEmailVerificationSubject,
+ ConflictsWith: []string{"verification_message_template.0.email_subject"},
},
"email_verification_message": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ValidateFunc: validateCognitoUserPoolEmailVerificationMessage,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validateCognitoUserPoolEmailVerificationMessage,
+ ConflictsWith: []string{"verification_message_template.0.email_message"},
},
"endpoint": {
@@ -391,9 +393,10 @@ func resourceAwsCognitoUserPool() *schema.Resource {
},
"sms_verification_message": {
- Type: schema.TypeString,
- Optional: true,
- ValidateFunc: validateCognitoUserPoolSmsVerificationMessage,
+ Type: schema.TypeString,
+ Optional: true,
+ ValidateFunc: validateCognitoUserPoolSmsVerificationMessage,
+ ConflictsWith: []string{"verification_message_template.0.sms_message"},
},
"tags": tagsSchema(),
@@ -448,10 +451,11 @@ func resourceAwsCognitoUserPool() *schema.Resource {
}, false),
},
"email_message": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ValidateFunc: validateCognitoUserPoolTemplateEmailMessage,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validateCognitoUserPoolTemplateEmailMessage,
+ ConflictsWith: []string{"email_verification_message"},
},
"email_message_by_link": {
Type: schema.TypeString,
@@ -460,10 +464,11 @@ func resourceAwsCognitoUserPool() *schema.Resource {
ValidateFunc: validateCognitoUserPoolTemplateEmailMessageByLink,
},
"email_subject": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ValidateFunc: validateCognitoUserPoolTemplateEmailSubject,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validateCognitoUserPoolTemplateEmailSubject,
+ ConflictsWith: []string{"email_verification_subject"},
},
"email_subject_by_link": {
Type: schema.TypeString,
@@ -472,10 +477,11 @@ func resourceAwsCognitoUserPool() *schema.Resource {
ValidateFunc: validateCognitoUserPoolTemplateEmailSubjectByLink,
},
"sms_message": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ValidateFunc: validateCognitoUserPoolTemplateSmsMessage,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validateCognitoUserPoolTemplateSmsMessage,
+ ConflictsWith: []string{"sms_verification_message"},
},
},
},
diff --git a/aws/resource_aws_cognito_user_pool_test.go b/aws/resource_aws_cognito_user_pool_test.go
index 87079972d6b..50bc7da80dd 100644
--- a/aws/resource_aws_cognito_user_pool_test.go
+++ b/aws/resource_aws_cognito_user_pool_test.go
@@ -1155,11 +1155,8 @@ resource "aws_cognito_user_pool" "pool" {
# attributes.
verification_message_template {
default_email_option = "CONFIRM_WITH_LINK"
- email_message = "Foo {####} Bar"
email_message_by_link = "{##foobar##}"
- email_subject = "FooBar {####}"
email_subject_by_link = "foobar"
- sms_message = "{####} Baz"
}
}`, name)
}
diff --git a/aws/resource_aws_db_instance.go b/aws/resource_aws_db_instance.go
index d52e366df39..1a8c7544e2c 100644
--- a/aws/resource_aws_db_instance.go
+++ b/aws/resource_aws_db_instance.go
@@ -813,6 +813,11 @@ func resourceAwsDbInstanceCreate(d *schema.ResourceData, meta interface{}) error
opts.Engine = aws.String(attr.(string))
}
+ if attr, ok := d.GetOk("engine_version"); ok {
+ modifyDbInstanceInput.EngineVersion = aws.String(attr.(string))
+ requiresModifyDbInstance = true
+ }
+
if attr, ok := d.GetOk("iam_database_authentication_enabled"); ok {
opts.EnableIAMDatabaseAuthentication = aws.Bool(attr.(bool))
}
diff --git a/aws/resource_aws_db_instance_test.go b/aws/resource_aws_db_instance_test.go
index 0c8d141f608..d95d183a742 100644
--- a/aws/resource_aws_db_instance_test.go
+++ b/aws/resource_aws_db_instance_test.go
@@ -1506,6 +1506,30 @@ func TestAccAWSDBInstance_MSSQL_DomainSnapshotRestore(t *testing.T) {
})
}
+func TestAccAWSDBInstance_MySQL_SnapshotRestoreWithEngineVersion(t *testing.T) {
+ var v, vRestoredInstance rds.DBInstance
+ rInt := acctest.RandInt()
+
+ resource.ParallelTest(t, resource.TestCase{
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProviders,
+ CheckDestroy: testAccCheckAWSDBInstanceDestroy,
+ Steps: []resource.TestStep{
+ {
+ Config: testAccAWSDBMySQLSnapshotRestoreWithEngineVersion(rInt),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckAWSDBInstanceExists("aws_db_instance.mysql_restore", &vRestoredInstance),
+ testAccCheckAWSDBInstanceExists("aws_db_instance.mysql", &v),
+ resource.TestCheckResourceAttr(
+ "aws_db_instance.mysql", "engine_version", "5.6.35"),
+ resource.TestCheckResourceAttr(
+ "aws_db_instance.mysql_restore", "engine_version", "5.6.41"),
+ ),
+ },
+ },
+ })
+}
+
func TestAccAWSDBInstance_MinorVersion(t *testing.T) {
var v rds.DBInstance
@@ -3100,6 +3124,96 @@ resource "aws_iam_role_policy_attachment" "attatch-policy" {
`, rInt, rInt, rInt, rInt, rInt)
}
+func testAccAWSDBMySQLSnapshotRestoreWithEngineVersion(rInt int) string {
+ return fmt.Sprintf(`
+resource "aws_vpc" "foo" {
+ cidr_block = "10.1.0.0/16"
+ enable_dns_hostnames = true
+ tags = {
+ Name = "terraform-testacc-db-instance-mysql-domain"
+ }
+}
+
+resource "aws_db_subnet_group" "rds_one" {
+ name = "tf_acc_test_%[1]d"
+ description = "db subnets for rds_one"
+
+ subnet_ids = ["${aws_subnet.main.id}", "${aws_subnet.other.id}"]
+}
+
+resource "aws_subnet" "main" {
+ vpc_id = "${aws_vpc.foo.id}"
+ availability_zone = "us-west-2a"
+ cidr_block = "10.1.1.0/24"
+ tags = {
+ Name = "tf-acc-db-instance-mysql-domain-main"
+ }
+}
+
+resource "aws_subnet" "other" {
+ vpc_id = "${aws_vpc.foo.id}"
+ availability_zone = "us-west-2b"
+ cidr_block = "10.1.2.0/24"
+ tags = {
+ Name = "tf-acc-db-instance-mysql-domain-other"
+ }
+}
+
+resource "aws_db_instance" "mysql" {
+ allocated_storage = 20
+ engine = "MySQL"
+ engine_version = "5.6.35"
+ identifier = "tf-test-mysql-%[1]d"
+ instance_class = "db.t2.micro"
+ password = "password"
+ skip_final_snapshot = true
+ username = "root"
+}
+
+resource "aws_db_snapshot" "mysql-snap" {
+ db_instance_identifier = "${aws_db_instance.mysql.id}"
+ db_snapshot_identifier = "mysql-snap"
+}
+
+resource "aws_db_instance" "mysql_restore" {
+ identifier = "tf-test-mysql-%[1]d-restore"
+
+ db_subnet_group_name = "${aws_db_subnet_group.rds_one.name}"
+
+ instance_class = "db.t2.micro"
+ allocated_storage = 20
+ username = "root"
+ password = "password"
+ engine = "MySQL"
+ engine_version = "5.6.41"
+ backup_retention_period = 0
+ skip_final_snapshot = true
+ snapshot_identifier = "${aws_db_snapshot.mysql-snap.id}"
+
+ apply_immediately = true
+ vpc_security_group_ids = ["${aws_security_group.rds-mysql.id}"]
+}
+
+resource "aws_security_group" "rds-mysql" {
+ name = "tf-rds-mysql-test-%[1]d"
+
+ description = "TF Testing"
+ vpc_id = "${aws_vpc.foo.id}"
+}
+
+resource "aws_security_group_rule" "rds-mysql-1" {
+ type = "egress"
+ from_port = 0
+ to_port = 0
+ protocol = "-1"
+ cidr_blocks = ["0.0.0.0/0"]
+
+ security_group_id = "${aws_security_group.rds-mysql.id}"
+}
+
+`, rInt)
+}
+
var testAccAWSDBInstanceConfigAutoMinorVersion = fmt.Sprintf(`
resource "aws_db_instance" "bar" {
identifier = "foobarbaz-test-terraform-%d"
diff --git a/aws/resource_aws_dlm_lifecycle_policy.go b/aws/resource_aws_dlm_lifecycle_policy.go
index 210310cb5fe..96905f8a26a 100644
--- a/aws/resource_aws_dlm_lifecycle_policy.go
+++ b/aws/resource_aws_dlm_lifecycle_policy.go
@@ -66,6 +66,11 @@ func resourceAwsDlmLifecyclePolicy() *schema.Resource {
Type: schema.TypeInt,
Required: true,
ValidateFunc: validateIntegerInSlice([]int{
+ 2,
+ 3,
+ 4,
+ 6,
+ 8,
12,
24,
}),
diff --git a/aws/resource_aws_dx_lag.go b/aws/resource_aws_dx_lag.go
index ad844e96107..45feb3ce31a 100644
--- a/aws/resource_aws_dx_lag.go
+++ b/aws/resource_aws_dx_lag.go
@@ -47,8 +47,7 @@ func resourceAwsDxLag() *schema.Resource {
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.",
+ Removed: "Use `aws_dx_connection` and `aws_dx_connection_association` resources instead",
},
"force_destroy": {
Type: schema.TypeBool,
@@ -63,30 +62,32 @@ func resourceAwsDxLag() *schema.Resource {
func resourceAwsDxLagCreate(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).dxconn
- 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(noOfConnections)),
+ NumberOfConnections: aws.Int64(int64(1)),
}
log.Printf("[DEBUG] Creating Direct Connect LAG: %#v", req)
resp, err := conn.CreateLag(req)
if err != nil {
- return err
+ return fmt.Errorf("error creating Direct Connect LAG: %s", err)
}
- // TODO: Remove default connection(s) automatically provisioned by AWS
- // per NumberOfConnections
-
d.SetId(aws.StringValue(resp.LagId))
+
+ // Delete unmanaged connection
+ connectionID := aws.StringValue(resp.Connections[0].ConnectionId)
+ deleteConnectionInput := &directconnect.DeleteConnectionInput{
+ ConnectionId: resp.Connections[0].ConnectionId,
+ }
+
+ log.Printf("[DEBUG] Deleting newly created and unmanaged Direct Connect LAG (%s) Connection: %s", d.Id(), connectionID)
+ if _, err := conn.DeleteConnection(deleteConnectionInput); err != nil {
+ return fmt.Errorf("error deleting newly created and unmanaged Direct Connect LAG (%s) Connection (%s): %s", d.Id(), connectionID, err)
+ }
+
return resourceAwsDxLagUpdate(d, meta)
}
diff --git a/aws/resource_aws_dynamodb_global_table_test.go b/aws/resource_aws_dynamodb_global_table_test.go
index 6eedb381982..47a7afe881c 100644
--- a/aws/resource_aws_dynamodb_global_table_test.go
+++ b/aws/resource_aws_dynamodb_global_table_test.go
@@ -150,9 +150,7 @@ func testAccCheckAwsDynamoDbGlobalTableExists(name string) resource.TestCheckFun
func testAccDynamoDbGlobalTableConfig_basic(tableName string) string {
return fmt.Sprintf(`
-data "aws_region" "current" {
- current = true
-}
+data "aws_region" "current" {}
resource "aws_dynamodb_table" "test" {
hash_key = "myAttribute"
diff --git a/aws/resource_aws_dynamodb_table.go b/aws/resource_aws_dynamodb_table.go
index e353d5c13d8..65c9fd8cba6 100644
--- a/aws/resource_aws_dynamodb_table.go
+++ b/aws/resource_aws_dynamodb_table.go
@@ -128,7 +128,7 @@ func resourceAwsDynamoDbTable() *schema.Resource {
},
},
"ttl": {
- Type: schema.TypeSet,
+ Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
@@ -139,10 +139,12 @@ func resourceAwsDynamoDbTable() *schema.Resource {
},
"enabled": {
Type: schema.TypeBool,
- Required: true,
+ Optional: true,
+ Default: false,
},
},
},
+ DiffSuppressFunc: suppressMissingOptionalConfigurationBlock,
},
"local_secondary_index": {
Type: schema.TypeSet,
@@ -384,8 +386,10 @@ func resourceAwsDynamoDbTableCreate(d *schema.ResourceData, meta interface{}) er
return err
}
- if err := updateDynamoDbTimeToLive(d, conn); err != nil {
- return fmt.Errorf("error enabling DynamoDB Table (%s) time to live: %s", d.Id(), err)
+ if d.Get("ttl.0.enabled").(bool) {
+ if err := updateDynamoDbTimeToLive(d.Id(), d.Get("ttl").([]interface{}), conn); err != nil {
+ return fmt.Errorf("error enabling DynamoDB Table (%s) Time to Live: %s", d.Id(), err)
+ }
}
if err := setTagsDynamoDb(conn, d); err != nil {
@@ -542,7 +546,7 @@ func resourceAwsDynamoDbTableUpdate(d *schema.ResourceData, meta interface{}) er
}
if d.HasChange("ttl") {
- if err := updateDynamoDbTimeToLive(d, conn); err != nil {
+ if err := updateDynamoDbTimeToLive(d.Id(), d.Get("ttl").([]interface{}), conn); err != nil {
return fmt.Errorf("error updating DynamoDB Table (%s) time to live: %s", d.Id(), err)
}
}
@@ -587,13 +591,10 @@ func resourceAwsDynamoDbTableRead(d *schema.ResourceData, meta interface{}) erro
TableName: aws.String(d.Id()),
})
if err != nil {
- return err
+ return fmt.Errorf("error describing DynamoDB Table (%s) Time to Live: %s", d.Id(), err)
}
- if ttlOut.TimeToLiveDescription != nil {
- err := d.Set("ttl", flattenDynamoDbTtl(ttlOut.TimeToLiveDescription))
- if err != nil {
- return err
- }
+ if err := d.Set("ttl", flattenDynamoDbTtl(ttlOut)); err != nil {
+ return fmt.Errorf("error setting ttl: %s", err)
}
tags, err := readDynamoDbTableTags(d.Get("arn").(string), conn)
@@ -698,46 +699,25 @@ func waitForDynamodbTableDeletion(conn *dynamodb.DynamoDB, tableName string, tim
return err
}
-func updateDynamoDbTimeToLive(d *schema.ResourceData, conn *dynamodb.DynamoDB) error {
- toBeEnabled := false
- attributeName := ""
-
- 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
- }
-
- 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 {
- if isAWSErr(err, "ValidationException", "TimeToLive is already disabled") {
- return nil
- }
- return err
- }
+func updateDynamoDbTimeToLive(tableName string, ttlList []interface{}, conn *dynamodb.DynamoDB) error {
+ ttlMap := ttlList[0].(map[string]interface{})
- err = waitForDynamoDbTtlUpdateToBeCompleted(d.Id(), toBeEnabled, conn)
- if err != nil {
- return fmt.Errorf("Error waiting for DynamoDB TimeToLive to be updated: %s", err)
- }
+ input := &dynamodb.UpdateTimeToLiveInput{
+ TableName: aws.String(tableName),
+ TimeToLiveSpecification: &dynamodb.TimeToLiveSpecification{
+ AttributeName: aws.String(ttlMap["attribute_name"].(string)),
+ Enabled: aws.Bool(ttlMap["enabled"].(bool)),
+ },
+ }
+
+ log.Printf("[DEBUG] Updating DynamoDB Table (%s) Time To Live: %s", tableName, input)
+ if _, err := conn.UpdateTimeToLive(input); err != nil {
+ return fmt.Errorf("error updating DynamoDB Table (%s) Time To Live: %s", tableName, err)
+ }
+
+ log.Printf("[DEBUG] Waiting for DynamoDB Table (%s) Time to Live update to complete", tableName)
+ if err := waitForDynamoDbTtlUpdateToBeCompleted(tableName, ttlMap["enabled"].(bool), conn); err != nil {
+ return fmt.Errorf("error waiting for DynamoDB Table (%s) Time To Live update: %s", tableName, err)
}
return nil
diff --git a/aws/resource_aws_dynamodb_table_test.go b/aws/resource_aws_dynamodb_table_test.go
index edcfedbec42..d1bf3ba8acd 100644
--- a/aws/resource_aws_dynamodb_table_test.go
+++ b/aws/resource_aws_dynamodb_table_test.go
@@ -362,28 +362,6 @@ func TestAccAWSDynamoDbTable_importTags(t *testing.T) {
})
}
-func TestAccAWSDynamoDbTable_importTimeToLive(t *testing.T) {
- resourceName := "aws_dynamodb_table.basic-dynamodb-table"
- rName := acctest.RandomWithPrefix("TerraformTestTable-")
-
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- Providers: testAccProviders,
- CheckDestroy: testAccCheckAWSDynamoDbTableDestroy,
- Steps: []resource.TestStep{
- {
- Config: testAccAWSDynamoDbConfigAddTimeToLive(rName),
- },
-
- {
- ResourceName: resourceName,
- ImportState: true,
- ImportStateVerify: true,
- },
- },
- })
-}
-
func TestAccAWSDynamoDbTable_basic(t *testing.T) {
var conf dynamodb.DescribeTableOutput
@@ -864,10 +842,41 @@ func TestAccAWSDynamoDbTable_gsiUpdateNonKeyAttributes(t *testing.T) {
})
}
-func TestAccAWSDynamoDbTable_ttl(t *testing.T) {
- var conf dynamodb.DescribeTableOutput
+// TTL tests must be split since it can only be updated once per hour
+// ValidationException: Time to live has been modified multiple times within a fixed interval
+func TestAccAWSDynamoDbTable_Ttl_Enabled(t *testing.T) {
+ var table dynamodb.DescribeTableOutput
+ rName := acctest.RandomWithPrefix("TerraformTestTable-")
+ resourceName := "aws_dynamodb_table.test"
+
+ resource.ParallelTest(t, resource.TestCase{
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProviders,
+ CheckDestroy: testAccCheckAWSDynamoDbTableDestroy,
+ Steps: []resource.TestStep{
+ {
+ Config: testAccAWSDynamoDbConfigTimeToLive(rName, true),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckInitialAWSDynamoDbTableExists(resourceName, &table),
+ resource.TestCheckResourceAttr(resourceName, "ttl.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "ttl.0.enabled", "true"),
+ ),
+ },
+ {
+ ResourceName: resourceName,
+ ImportState: true,
+ ImportStateVerify: true,
+ },
+ },
+ })
+}
+// TTL tests must be split since it can only be updated once per hour
+// ValidationException: Time to live has been modified multiple times within a fixed interval
+func TestAccAWSDynamoDbTable_Ttl_Disabled(t *testing.T) {
+ var table dynamodb.DescribeTableOutput
rName := acctest.RandomWithPrefix("TerraformTestTable-")
+ resourceName := "aws_dynamodb_table.test"
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
@@ -875,15 +884,24 @@ func TestAccAWSDynamoDbTable_ttl(t *testing.T) {
CheckDestroy: testAccCheckAWSDynamoDbTableDestroy,
Steps: []resource.TestStep{
{
- Config: testAccAWSDynamoDbConfigInitialState(rName),
+ Config: testAccAWSDynamoDbConfigTimeToLive(rName, false),
Check: resource.ComposeTestCheckFunc(
- testAccCheckInitialAWSDynamoDbTableExists("aws_dynamodb_table.basic-dynamodb-table", &conf),
+ testAccCheckInitialAWSDynamoDbTableExists(resourceName, &table),
+ resource.TestCheckResourceAttr(resourceName, "ttl.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "ttl.0.enabled", "false"),
),
},
{
- Config: testAccAWSDynamoDbConfigAddTimeToLive(rName),
+ ResourceName: resourceName,
+ ImportState: true,
+ ImportStateVerify: true,
+ },
+ {
+ Config: testAccAWSDynamoDbConfigTimeToLive(rName, true),
Check: resource.ComposeTestCheckFunc(
- testAccCheckDynamoDbTableTimeToLiveWasUpdated("aws_dynamodb_table.basic-dynamodb-table"),
+ testAccCheckInitialAWSDynamoDbTableExists(resourceName, &table),
+ resource.TestCheckResourceAttr(resourceName, "ttl.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "ttl.0.enabled", "true"),
),
},
},
@@ -948,46 +966,6 @@ func TestAccAWSDynamoDbTable_attributeUpdateValidation(t *testing.T) {
})
}
-func testAccCheckDynamoDbTableTimeToLiveWasUpdated(n string) resource.TestCheckFunc {
- return func(s *terraform.State) error {
- log.Printf("[DEBUG] Trying to create initial table state!")
- rs, ok := s.RootModule().Resources[n]
- if !ok {
- return fmt.Errorf("Not found: %s", n)
- }
-
- if rs.Primary.ID == "" {
- return fmt.Errorf("No DynamoDB table name specified!")
- }
-
- conn := testAccProvider.Meta().(*AWSClient).dynamodbconn
-
- params := &dynamodb.DescribeTimeToLiveInput{
- TableName: aws.String(rs.Primary.ID),
- }
-
- resp, err := conn.DescribeTimeToLive(params)
-
- if err != nil {
- return fmt.Errorf("Problem describing time to live for table '%s': %s", rs.Primary.ID, err)
- }
-
- ttlDescription := resp.TimeToLiveDescription
-
- log.Printf("[DEBUG] Checking on table %s", rs.Primary.ID)
-
- if *ttlDescription.TimeToLiveStatus != dynamodb.TimeToLiveStatusEnabled {
- return fmt.Errorf("TimeToLiveStatus %s, not ENABLED!", *ttlDescription.TimeToLiveStatus)
- }
-
- if *ttlDescription.AttributeName != "TestTTL" {
- return fmt.Errorf("AttributeName was %s, not TestTTL!", *ttlDescription.AttributeName)
- }
-
- return nil
- }
-}
-
func TestAccAWSDynamoDbTable_encryption(t *testing.T) {
var confEncEnabled, confEncDisabled, confBasic dynamodb.DescribeTableOutput
@@ -1940,56 +1918,25 @@ resource "aws_dynamodb_table" "test" {
`, name)
}
-func testAccAWSDynamoDbConfigAddTimeToLive(rName string) string {
+func testAccAWSDynamoDbConfigTimeToLive(rName string, ttlEnabled bool) string {
return fmt.Sprintf(`
-resource "aws_dynamodb_table" "basic-dynamodb-table" {
- name = "%s"
- read_capacity = 1
- write_capacity = 2
- hash_key = "TestTableHashKey"
- range_key = "TestTableRangeKey"
+resource "aws_dynamodb_table" "test" {
+ hash_key = "TestTableHashKey"
+ name = %[1]q
+ read_capacity = 1
+ write_capacity = 1
attribute {
name = "TestTableHashKey"
type = "S"
}
- attribute {
- name = "TestTableRangeKey"
- type = "S"
- }
-
- attribute {
- name = "TestLSIRangeKey"
- type = "N"
- }
-
- attribute {
- name = "TestGSIRangeKey"
- type = "S"
- }
-
- local_secondary_index {
- name = "TestTableLSI"
- range_key = "TestLSIRangeKey"
- projection_type = "ALL"
- }
-
ttl {
- attribute_name = "TestTTL"
- enabled = true
- }
-
- global_secondary_index {
- name = "InitialTestTableGSI"
- hash_key = "TestTableHashKey"
- range_key = "TestGSIRangeKey"
- write_capacity = 1
- read_capacity = 1
- projection_type = "KEYS_ONLY"
+ attribute_name = "${%[2]t ? "TestTTL" : ""}"
+ enabled = %[2]t
}
}
-`, rName)
+`, rName, ttlEnabled)
}
func testAccAWSDynamoDbConfigOneAttribute(rName, hashKey, attrName, attrType string) string {
diff --git a/aws/resource_aws_ec2_client_vpn_endpoint.go b/aws/resource_aws_ec2_client_vpn_endpoint.go
index dc0b5694a2b..dbfab48cac4 100644
--- a/aws/resource_aws_ec2_client_vpn_endpoint.go
+++ b/aws/resource_aws_ec2_client_vpn_endpoint.go
@@ -108,6 +108,7 @@ func resourceAwsEc2ClientVpnEndpoint() *schema.Resource {
Type: schema.TypeString,
Computed: true,
},
+ "tags": tagsSchema(),
},
}
}
@@ -119,6 +120,7 @@ func resourceAwsEc2ClientVpnEndpointCreate(d *schema.ResourceData, meta interfac
ClientCidrBlock: aws.String(d.Get("client_cidr_block").(string)),
ServerCertificateArn: aws.String(d.Get("server_certificate_arn").(string)),
TransportProtocol: aws.String(d.Get("transport_protocol").(string)),
+ TagSpecifications: ec2TagSpecificationsFromMap(d.Get("tags").(map[string]interface{}), ec2.ResourceTypeClientVpnEndpoint),
}
if v, ok := d.GetOk("description"); ok {
@@ -227,12 +229,17 @@ func resourceAwsEc2ClientVpnEndpointRead(d *schema.ResourceData, meta interface{
err = d.Set("authentication_options", flattenAuthOptsConfig(result.ClientVpnEndpoints[0].AuthenticationOptions))
if err != nil {
- return err
+ return fmt.Errorf("error setting authentication_options: %s", err)
}
err = d.Set("connection_log_options", flattenConnLoggingConfig(result.ClientVpnEndpoints[0].ConnectionLogOptions))
if err != nil {
- return err
+ return fmt.Errorf("error setting connection_log_options: %s", err)
+ }
+
+ err = d.Set("tags", tagsToMap(result.ClientVpnEndpoints[0].Tags))
+ if err != nil {
+ return fmt.Errorf("error setting tags: %s", err)
}
return nil
@@ -254,6 +261,8 @@ func resourceAwsEc2ClientVpnEndpointDelete(d *schema.ResourceData, meta interfac
func resourceAwsEc2ClientVpnEndpointUpdate(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).ec2conn
+ d.Partial(true)
+
req := &ec2.ModifyClientVpnEndpointInput{
ClientVpnEndpointId: aws.String(d.Id()),
}
@@ -304,11 +313,16 @@ func resourceAwsEc2ClientVpnEndpointUpdate(d *schema.ResourceData, meta interfac
}
}
- _, err := conn.ModifyClientVpnEndpoint(req)
- if err != nil {
+ if _, err := conn.ModifyClientVpnEndpoint(req); err != nil {
return fmt.Errorf("Error modifying Client VPN endpoint: %s", err)
}
+ if err := setTags(conn, d); err != nil {
+ return err
+ }
+ d.SetPartial("tags")
+
+ d.Partial(false)
return resourceAwsEc2ClientVpnEndpointRead(d, meta)
}
diff --git a/aws/resource_aws_ec2_client_vpn_endpoint_test.go b/aws/resource_aws_ec2_client_vpn_endpoint_test.go
index 99caba0ede5..258f86408a4 100644
--- a/aws/resource_aws_ec2_client_vpn_endpoint_test.go
+++ b/aws/resource_aws_ec2_client_vpn_endpoint_test.go
@@ -14,7 +14,7 @@ import (
func TestAccAwsEc2ClientVpnEndpoint_basic(t *testing.T) {
rStr := acctest.RandString(5)
- resource.Test(t, resource.TestCase{
+ resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProvidersWithTLS,
CheckDestroy: testAccCheckAwsEc2ClientVpnEndpointDestroy,
@@ -40,7 +40,7 @@ func TestAccAwsEc2ClientVpnEndpoint_basic(t *testing.T) {
func TestAccAwsEc2ClientVpnEndpoint_msAD(t *testing.T) {
rStr := acctest.RandString(5)
- resource.Test(t, resource.TestCase{
+ resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProvidersWithTLS,
CheckDestroy: testAccCheckAwsEc2ClientVpnEndpointDestroy,
@@ -66,7 +66,7 @@ func TestAccAwsEc2ClientVpnEndpoint_msAD(t *testing.T) {
func TestAccAwsEc2ClientVpnEndpoint_withLogGroup(t *testing.T) {
rStr := acctest.RandString(5)
- resource.Test(t, resource.TestCase{
+ resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProvidersWithTLS,
CheckDestroy: testAccCheckAwsEc2ClientVpnEndpointDestroy,
@@ -97,7 +97,7 @@ func TestAccAwsEc2ClientVpnEndpoint_withLogGroup(t *testing.T) {
func TestAccAwsEc2ClientVpnEndpoint_withDNSServers(t *testing.T) {
rStr := acctest.RandString(5)
- resource.Test(t, resource.TestCase{
+ resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProvidersWithTLS,
CheckDestroy: testAccCheckAwsEc2ClientVpnEndpointDestroy,
@@ -126,6 +126,42 @@ func TestAccAwsEc2ClientVpnEndpoint_withDNSServers(t *testing.T) {
})
}
+func TestAccAwsEc2ClientVpnEndpoint_tags(t *testing.T) {
+ resourceName := "aws_ec2_client_vpn_endpoint.test"
+ rStr := acctest.RandString(5)
+
+ resource.ParallelTest(t, resource.TestCase{
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProvidersWithTLS,
+ CheckDestroy: testAccCheckAwsEc2ClientVpnEndpointDestroy,
+ Steps: []resource.TestStep{
+ {
+ Config: testAccEc2ClientVpnEndpointConfig_tags(rStr),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckAwsEc2ClientVpnEndpointExists(resourceName),
+ resource.TestCheckResourceAttr(resourceName, "tags.%", "2"),
+ resource.TestCheckResourceAttr(resourceName, "tags.Usage", "original"),
+ ),
+ },
+ {
+ Config: testAccEc2ClientVpnEndpointConfig_tagsChanged(rStr),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckAwsEc2ClientVpnEndpointExists(resourceName),
+ resource.TestCheckResourceAttr(resourceName, "tags.%", "1"),
+ resource.TestCheckResourceAttr(resourceName, "tags.Usage", "changed"),
+ ),
+ },
+ {
+ Config: testAccEc2ClientVpnEndpointConfig(rStr),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckAwsEc2ClientVpnEndpointExists(resourceName),
+ resource.TestCheckResourceAttr(resourceName, "tags.%", "0"),
+ ),
+ },
+ },
+ })
+}
+
func testAccCheckAwsEc2ClientVpnEndpointDestroy(s *terraform.State) error {
conn := testAccProvider.Meta().(*AWSClient).ec2conn
@@ -383,3 +419,104 @@ resource "aws_ec2_client_vpn_endpoint" "test" {
}
`, rName)
}
+
+func testAccEc2ClientVpnEndpointConfig_tags(rName string) string {
+ return fmt.Sprintf(`
+resource "tls_private_key" "example" {
+ algorithm = "RSA"
+}
+
+resource "tls_self_signed_cert" "example" {
+ key_algorithm = "RSA"
+ private_key_pem = "${tls_private_key.example.private_key_pem}"
+
+ subject {
+ common_name = "example.com"
+ organization = "ACME Examples, Inc"
+ }
+
+ validity_period_hours = 12
+
+ allowed_uses = [
+ "key_encipherment",
+ "digital_signature",
+ "server_auth",
+ ]
+}
+
+resource "aws_acm_certificate" "cert" {
+ private_key = "${tls_private_key.example.private_key_pem}"
+ certificate_body = "${tls_self_signed_cert.example.cert_pem}"
+}
+
+resource "aws_ec2_client_vpn_endpoint" "test" {
+ description = "terraform-testacc-clientvpn-%s"
+ server_certificate_arn = "${aws_acm_certificate.cert.arn}"
+ client_cidr_block = "10.0.0.0/16"
+
+ authentication_options {
+ type = "certificate-authentication"
+ root_certificate_chain_arn = "${aws_acm_certificate.cert.arn}"
+ }
+
+ connection_log_options {
+ enabled = false
+ }
+
+ tags = {
+ Environment = "production"
+ Usage = "original"
+ }
+}
+`, rName)
+}
+
+func testAccEc2ClientVpnEndpointConfig_tagsChanged(rName string) string {
+ return fmt.Sprintf(`
+resource "tls_private_key" "example" {
+ algorithm = "RSA"
+}
+
+resource "tls_self_signed_cert" "example" {
+ key_algorithm = "RSA"
+ private_key_pem = "${tls_private_key.example.private_key_pem}"
+
+ subject {
+ common_name = "example.com"
+ organization = "ACME Examples, Inc"
+ }
+
+ validity_period_hours = 12
+
+ allowed_uses = [
+ "key_encipherment",
+ "digital_signature",
+ "server_auth",
+ ]
+}
+
+resource "aws_acm_certificate" "cert" {
+ private_key = "${tls_private_key.example.private_key_pem}"
+ certificate_body = "${tls_self_signed_cert.example.cert_pem}"
+}
+
+resource "aws_ec2_client_vpn_endpoint" "test" {
+ description = "terraform-testacc-clientvpn-%s"
+ server_certificate_arn = "${aws_acm_certificate.cert.arn}"
+ client_cidr_block = "10.0.0.0/16"
+
+ authentication_options {
+ type = "certificate-authentication"
+ root_certificate_chain_arn = "${aws_acm_certificate.cert.arn}"
+ }
+
+ connection_log_options {
+ enabled = false
+ }
+
+ tags = {
+ Usage = "changed"
+ }
+}
+`, rName)
+}
diff --git a/aws/resource_aws_ecs_service.go b/aws/resource_aws_ecs_service.go
index a2281881835..4bfa7881e3e 100644
--- a/aws/resource_aws_ecs_service.go
+++ b/aws/resource_aws_ecs_service.go
@@ -4,6 +4,7 @@ import (
"bytes"
"fmt"
"log"
+ "math"
"strings"
"time"
@@ -62,7 +63,7 @@ func resourceAwsEcsService() *schema.Resource {
"health_check_grace_period_seconds": {
Type: schema.TypeInt,
Optional: true,
- ValidateFunc: validation.IntBetween(0, 7200),
+ ValidateFunc: validation.IntBetween(0, math.MaxInt32),
},
"launch_type": {
@@ -208,22 +209,19 @@ func resourceAwsEcsService() *schema.Resource {
},
},
"placement_strategy": {
- Type: schema.TypeSet,
- Optional: true,
- ForceNew: true,
- MaxItems: 5,
- ConflictsWith: []string{"ordered_placement_strategy"},
- Deprecated: "Use `ordered_placement_strategy` instead",
+ Type: schema.TypeSet,
+ Optional: true,
+ Computed: true,
+ MaxItems: 5,
+ Removed: "Use `ordered_placement_strategy` configuration block(s) instead",
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"type": {
Type: schema.TypeString,
- ForceNew: true,
Required: true,
},
"field": {
Type: schema.TypeString,
- ForceNew: true,
Optional: true,
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
return strings.EqualFold(old, new)
@@ -231,27 +229,12 @@ func resourceAwsEcsService() *schema.Resource {
},
},
},
- Set: func(v interface{}) int {
- var buf bytes.Buffer
- m := v.(map[string]interface{})
- buf.WriteString(fmt.Sprintf("%s-", m["type"].(string)))
- if m["field"] != nil {
- field := m["field"].(string)
- if field == "host" {
- buf.WriteString("instanceId-")
- } else {
- buf.WriteString(fmt.Sprintf("%s-", field))
- }
- }
- return hashcode.String(buf.String())
- },
},
"ordered_placement_strategy": {
- Type: schema.TypeList,
- Optional: true,
- ForceNew: true,
- MaxItems: 5,
- ConflictsWith: []string{"placement_strategy"},
+ Type: schema.TypeList,
+ Optional: true,
+ ForceNew: true,
+ MaxItems: 5,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"type": {
@@ -434,12 +417,6 @@ func resourceAwsEcsServiceCreate(d *schema.ResourceData, meta interface{}) error
return err
}
input.PlacementStrategy = ps
- } else {
- ps, err := expandPlacementStrategyDeprecated(d.Get("placement_strategy").(*schema.Set))
- if err != nil {
- return err
- }
- input.PlacementStrategy = ps
}
constraints := d.Get("placement_constraints").(*schema.Set).List()
@@ -630,15 +607,10 @@ func resourceAwsEcsServiceRead(d *schema.ResourceData, meta interface{}) error {
d.Set("load_balancer", flattenEcsLoadBalancers(service.LoadBalancers))
}
- if _, ok := d.GetOk("placement_strategy"); ok {
- if err := d.Set("placement_strategy", flattenPlacementStrategyDeprecated(service.PlacementStrategy)); err != nil {
- return fmt.Errorf("error setting placement_strategy: %s", err)
- }
- } else {
- if err := d.Set("ordered_placement_strategy", flattenPlacementStrategy(service.PlacementStrategy)); err != nil {
- return fmt.Errorf("error setting ordered_placement_strategy: %s", err)
- }
+ if err := d.Set("ordered_placement_strategy", flattenPlacementStrategy(service.PlacementStrategy)); err != nil {
+ return fmt.Errorf("error setting ordered_placement_strategy: %s", err)
}
+
if err := d.Set("placement_constraints", flattenServicePlacementConstraints(service.PlacementConstraints)); err != nil {
log.Printf("[ERR] Error setting placement_constraints for (%s): %s", d.Id(), err)
}
@@ -739,29 +711,6 @@ func flattenServicePlacementConstraints(pcs []*ecs.PlacementConstraint) []map[st
return results
}
-func flattenPlacementStrategyDeprecated(pss []*ecs.PlacementStrategy) []map[string]interface{} {
- if len(pss) == 0 {
- return nil
- }
- results := make([]map[string]interface{}, 0)
- for _, ps := range pss {
- c := make(map[string]interface{})
- c["type"] = *ps.Type
-
- if ps.Field != nil {
- c["field"] = *ps.Field
-
- // for some fields the API requires lowercase for creation but will return uppercase on query
- if *ps.Field == "MEMORY" || *ps.Field == "CPU" {
- c["field"] = strings.ToLower(*ps.Field)
- }
- }
-
- results = append(results, c)
- }
- return results
-}
-
func expandPlacementStrategy(s []interface{}) ([]*ecs.PlacementStrategy, error) {
if len(s) == 0 {
return nil, nil
@@ -786,30 +735,6 @@ func expandPlacementStrategy(s []interface{}) ([]*ecs.PlacementStrategy, error)
return pss, nil
}
-func expandPlacementStrategyDeprecated(s *schema.Set) ([]*ecs.PlacementStrategy, error) {
- if len(s.List()) == 0 {
- return nil, nil
- }
- pss := make([]*ecs.PlacementStrategy, 0)
- for _, raw := range s.List() {
- p := raw.(map[string]interface{})
- t := p["type"].(string)
- f := p["field"].(string)
- if err := validateAwsEcsPlacementStrategy(t, f); err != nil {
- return nil, err
- }
- ps := &ecs.PlacementStrategy{
- Type: aws.String(t),
- }
- if f != "" {
- // Field must be omitted (i.e. not empty string) for random strategy
- ps.Field = aws.String(f)
- }
- pss = append(pss, ps)
- }
- return pss, nil
-}
-
func flattenPlacementStrategy(pss []*ecs.PlacementStrategy) []interface{} {
if len(pss) == 0 {
return nil
diff --git a/aws/resource_aws_ecs_service_test.go b/aws/resource_aws_ecs_service_test.go
index 72b487a0698..ff72e747377 100644
--- a/aws/resource_aws_ecs_service_test.go
+++ b/aws/resource_aws_ecs_service_test.go
@@ -3,6 +3,7 @@ package aws
import (
"fmt"
"log"
+ "math"
"regexp"
"testing"
"time"
@@ -323,7 +324,7 @@ func TestAccAWSEcsService_healthCheckGracePeriodSeconds(t *testing.T) {
},
{
Config: testAccAWSEcsService_healthCheckGracePeriodSeconds(vpcNameTag, clusterName, tdName,
- roleName, policyName, lbName, svcName, 7201),
+ roleName, policyName, lbName, svcName, math.MaxInt32+1),
ExpectError: regexp.MustCompile(`expected health_check_grace_period_seconds to be in the range`),
},
{
@@ -342,6 +343,14 @@ func TestAccAWSEcsService_healthCheckGracePeriodSeconds(t *testing.T) {
resource.TestCheckResourceAttr(resourceName, "health_check_grace_period_seconds", "600"),
),
},
+ {
+ Config: testAccAWSEcsService_healthCheckGracePeriodSeconds(vpcNameTag, clusterName, tdName,
+ roleName, policyName, lbName, svcName, math.MaxInt32),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckAWSEcsServiceExists(resourceName, &service),
+ resource.TestCheckResourceAttr(resourceName, "health_check_grace_period_seconds", "2147483647"),
+ ),
+ },
},
})
}
@@ -1191,7 +1200,7 @@ resource "aws_ecs_service" "mongo" {
cluster = "${aws_ecs_cluster.default.id}"
task_definition = "${aws_ecs_task_definition.mongo.arn}"
desired_count = 1
- placement_strategy {
+ ordered_placement_strategy {
field = "host"
type = "spread"
}
diff --git a/aws/resource_aws_efs_file_system.go b/aws/resource_aws_efs_file_system.go
index 3f4f98a7231..d2066cb6fb1 100644
--- a/aws/resource_aws_efs_file_system.go
+++ b/aws/resource_aws_efs_file_system.go
@@ -40,11 +40,10 @@ func resourceAwsEfsFileSystem() *schema.Resource {
},
"reference_name": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- Deprecated: "Please use attribute `creation_token' instead. This attribute might be removed in future releases.",
- ValidateFunc: validateReferenceName,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ Removed: "Use `creation_token` argument instead",
},
"performance_mode": {
@@ -105,12 +104,7 @@ func resourceAwsEfsFileSystemCreate(d *schema.ResourceData, meta interface{}) er
if v, ok := d.GetOk("creation_token"); ok {
creationToken = v.(string)
} else {
- if v, ok := d.GetOk("reference_name"); ok {
- creationToken = resource.PrefixedUniqueId(fmt.Sprintf("%s-", v.(string)))
- log.Printf("[WARN] Using deprecated `reference_name' attribute.")
- } else {
- creationToken = resource.UniqueId()
- }
+ creationToken = resource.UniqueId()
}
throughputMode := d.Get("throughput_mode").(string)
@@ -313,6 +307,9 @@ func resourceAwsEfsFileSystemDelete(d *schema.ResourceData, meta interface{}) er
_, err := conn.DeleteFileSystem(&efs.DeleteFileSystemInput{
FileSystemId: aws.String(d.Id()),
})
+ if err != nil {
+ return fmt.Errorf("Error delete file system: %s with err %s", d.Id(), err.Error())
+ }
stateConf := &resource.StateChangeConf{
Pending: []string{"available", "deleting"},
Target: []string{},
@@ -352,16 +349,6 @@ func resourceAwsEfsFileSystemDelete(d *schema.ResourceData, meta interface{}) er
return nil
}
-func validateReferenceName(v interface{}, k string) (ws []string, errors []error) {
- value := v.(string)
- creationToken := resource.PrefixedUniqueId(fmt.Sprintf("%s-", value))
- if len(creationToken) > 64 {
- errors = append(errors, fmt.Errorf(
- "%q cannot take the Creation Token over the limit of 64 characters: %q", k, value))
- }
- return
-}
-
func hasEmptyFileSystems(fs *efs.DescribeFileSystemsOutput) bool {
if fs != nil && len(fs.FileSystems) > 0 {
return false
diff --git a/aws/resource_aws_efs_file_system_test.go b/aws/resource_aws_efs_file_system_test.go
index bd4fa1e13b8..1ddc01a58a9 100644
--- a/aws/resource_aws_efs_file_system_test.go
+++ b/aws/resource_aws_efs_file_system_test.go
@@ -15,23 +15,6 @@ import (
"github.com/hashicorp/terraform/terraform"
)
-func TestResourceAWSEFSFileSystem_validateReferenceName(t *testing.T) {
- var value string
- var errors []error
-
- value = acctest.RandString(128)
- _, errors = validateReferenceName(value, "reference_name")
- if len(errors) == 0 {
- t.Fatalf("Expected to trigger a validation error")
- }
-
- value = acctest.RandString(32)
- _, errors = validateReferenceName(value, "reference_name")
- if len(errors) != 0 {
- t.Fatalf("Expected not to trigger a validation error")
- }
-}
-
func TestResourceAWSEFSFileSystem_hasEmptyFileSystems(t *testing.T) {
fs := &efs.DescribeFileSystemsOutput{
FileSystems: []*efs.FileSystemDescription{},
@@ -69,7 +52,7 @@ func TestAccAWSEFSFileSystem_importBasic(t *testing.T) {
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
- ImportStateVerifyIgnore: []string{"reference_name", "creation_token"},
+ ImportStateVerifyIgnore: []string{"creation_token"},
},
},
})
@@ -238,7 +221,7 @@ func TestAccAWSEFSFileSystem_ProvisionedThroughputInMibps(t *testing.T) {
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
- ImportStateVerifyIgnore: []string{"reference_name", "creation_token"},
+ ImportStateVerifyIgnore: []string{"creation_token"},
},
},
})
@@ -272,7 +255,7 @@ func TestAccAWSEFSFileSystem_ThroughputMode(t *testing.T) {
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
- ImportStateVerifyIgnore: []string{"reference_name", "creation_token"},
+ ImportStateVerifyIgnore: []string{"creation_token"},
},
},
})
diff --git a/aws/resource_aws_eip_test.go b/aws/resource_aws_eip_test.go
index 2617fcfe61e..6865ebd6c19 100644
--- a/aws/resource_aws_eip_test.go
+++ b/aws/resource_aws_eip_test.go
@@ -526,10 +526,8 @@ provider "aws" {
data "aws_ami" "amzn-ami-minimal-pv" {
most_recent = true
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
+
filter {
name = "name"
values = ["amzn-ami-minimal-pv-*"]
@@ -556,10 +554,8 @@ resource "aws_eip" "bar" {
const testAccAWSEIPInstanceConfig = `
data "aws_ami" "amzn-ami-minimal-pv" {
most_recent = true
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
+
filter {
name = "name"
values = ["amzn-ami-minimal-pv-*"]
@@ -583,10 +579,8 @@ resource "aws_eip" "bar" {
const testAccAWSEIPInstanceConfig2 = `
data "aws_ami" "amzn-ami-minimal-pv" {
most_recent = true
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
+
filter {
name = "name"
values = ["amzn-ami-minimal-pv-*"]
@@ -610,10 +604,8 @@ resource "aws_eip" "bar" {
const testAccAWSEIPInstanceConfig_associated = `
data "aws_ami" "amzn-ami-minimal-hvm" {
most_recent = true
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
+
filter {
name = "name"
values = ["amzn-ami-minimal-hvm-*"]
@@ -688,10 +680,8 @@ resource "aws_eip" "bar" {
const testAccAWSEIPInstanceConfig_associated_switch = `
data "aws_ami" "amzn-ami-minimal-hvm" {
most_recent = true
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
+
filter {
name = "name"
values = ["amzn-ami-minimal-hvm-*"]
@@ -852,10 +842,8 @@ variable "server_count" {
data "aws_ami" "amzn-ami-minimal-pv" {
most_recent = true
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
+
filter {
name = "name"
values = ["amzn-ami-minimal-pv-*"]
@@ -929,10 +917,8 @@ resource "aws_route_table_association" "us-east-1b-public" {
const testAccAWSEIPAssociate_not_associated = `
data "aws_ami" "amzn-ami-minimal-pv" {
most_recent = true
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
+
filter {
name = "name"
values = ["amzn-ami-minimal-pv-*"]
@@ -955,10 +941,8 @@ resource "aws_eip" "bar" {
const testAccAWSEIPAssociate_associated = `
data "aws_ami" "amzn-ami-minimal-pv" {
most_recent = true
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
+
filter {
name = "name"
values = ["amzn-ami-minimal-pv-*"]
diff --git a/aws/resource_aws_elasticache_cluster.go b/aws/resource_aws_elasticache_cluster.go
index d30a9f0bb2a..97de12cdd95 100644
--- a/aws/resource_aws_elasticache_cluster.go
+++ b/aws/resource_aws_elasticache_cluster.go
@@ -41,13 +41,12 @@ func resourceAwsElasticacheCluster() *schema.Resource {
ForceNew: true,
},
"availability_zones": {
- Type: schema.TypeSet,
- Optional: true,
- ForceNew: true,
- Elem: &schema.Schema{Type: schema.TypeString},
- Set: schema.HashString,
- ConflictsWith: []string{"preferred_availability_zones"},
- Deprecated: "Use `preferred_availability_zones` instead",
+ Type: schema.TypeSet,
+ Optional: true,
+ ForceNew: true,
+ Elem: &schema.Schema{Type: schema.TypeString},
+ Set: schema.HashString,
+ Removed: "Use `preferred_availability_zones` argument instead",
},
"az_mode": {
Type: schema.TypeString,
@@ -165,7 +164,6 @@ func resourceAwsElasticacheCluster() *schema.Resource {
Optional: true,
ForceNew: true,
ConflictsWith: []string{
- "availability_zones",
"az_mode",
"engine_version",
"engine",
@@ -387,12 +385,6 @@ func resourceAwsElasticacheClusterCreate(d *schema.ResourceData, meta interface{
if v, ok := d.GetOk("preferred_availability_zones"); ok && len(v.([]interface{})) > 0 {
req.PreferredAvailabilityZones = expandStringList(v.([]interface{}))
- } else {
- preferred_azs := d.Get("availability_zones").(*schema.Set).List()
- if len(preferred_azs) > 0 {
- azs := expandStringList(preferred_azs)
- req.PreferredAvailabilityZones = azs
- }
}
id, err := createElasticacheCacheCluster(conn, req)
diff --git a/aws/resource_aws_elasticache_cluster_test.go b/aws/resource_aws_elasticache_cluster_test.go
index b30eee336c5..749b3efb782 100644
--- a/aws/resource_aws_elasticache_cluster_test.go
+++ b/aws/resource_aws_elasticache_cluster_test.go
@@ -636,10 +636,6 @@ func TestAccAWSElasticacheCluster_ReplicationGroupID_InvalidAttributes(t *testin
Providers: testAccProviders,
CheckDestroy: testAccCheckAWSElasticacheClusterDestroy,
Steps: []resource.TestStep{
- {
- Config: testAccAWSElasticacheClusterConfig_ReplicationGroupID_InvalidAttribute(rName, "availability_zones", "${list(\"us-east-1a\", \"us-east-1c\")}"),
- ExpectError: regexp.MustCompile(`"replication_group_id": conflicts with availability_zones`),
- },
{
Config: testAccAWSElasticacheClusterConfig_ReplicationGroupID_InvalidAttribute(rName, "az_mode", "single-az"),
ExpectError: regexp.MustCompile(`"replication_group_id": conflicts with az_mode`),
diff --git a/aws/resource_aws_elasticsearch_domain.go b/aws/resource_aws_elasticsearch_domain.go
index b5f38a6fbde..a989d22531c 100644
--- a/aws/resource_aws_elasticsearch_domain.go
+++ b/aws/resource_aws_elasticsearch_domain.go
@@ -10,7 +10,6 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
elasticsearch "github.com/aws/aws-sdk-go/service/elasticsearchservice"
- "github.com/aws/aws-sdk-go/service/iam"
"github.com/hashicorp/terraform/helper/customdiff"
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/helper/schema"
@@ -320,37 +319,6 @@ func resourceAwsElasticSearchDomainImport(
return []*schema.ResourceData{d}, nil
}
-// This would be created automatically if the domain is created via Console
-// see http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-enabling-slr
-func createAwsElasticsearchIAMServiceRoleIfMissing(meta interface{}) error {
- serviceRoleName := "AWSServiceRoleForAmazonElasticsearchService"
- serviceName := "es.amazonaws.com"
-
- conn := meta.(*AWSClient).iamconn
-
- getRequest := &iam.GetRoleInput{
- RoleName: aws.String(serviceRoleName),
- }
- _, err := conn.GetRole(getRequest)
- if err != nil {
- if isAWSErr(err, iam.ErrCodeNoSuchEntityException, "Role not found") {
- createRequest := &iam.CreateServiceLinkedRoleInput{
- AWSServiceName: aws.String(serviceName),
- }
- _, err := conn.CreateServiceLinkedRole(createRequest)
- if err != nil {
- if isAWSErr(err, iam.ErrCodeInvalidInputException, "has been taken in this account") {
- return nil
- }
- return fmt.Errorf("Error creating IAM Service-Linked Role %s: %s", serviceRoleName, err)
- }
- return nil
- }
- return fmt.Errorf("Error reading IAM Role %s: %s", serviceRoleName, err)
- }
- return nil
-}
-
func resourceAwsElasticSearchDomainCreate(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).esconn
@@ -438,11 +406,6 @@ func resourceAwsElasticSearchDomainCreate(d *schema.ResourceData, meta interface
}
if v, ok := d.GetOk("vpc_options"); ok {
- err = createAwsElasticsearchIAMServiceRoleIfMissing(meta)
- if err != nil {
- return err
- }
-
options := v.([]interface{})
if options[0] == nil {
return fmt.Errorf("At least one field is expected inside vpc_options")
diff --git a/aws/resource_aws_glue_crawler.go b/aws/resource_aws_glue_crawler.go
index 63699ce4ba5..fa1489b03a3 100644
--- a/aws/resource_aws_glue_crawler.go
+++ b/aws/resource_aws_glue_crawler.go
@@ -251,6 +251,51 @@ func createCrawlerInput(crawlerName string, d *schema.ResourceData) (*glue.Creat
return crawlerInput, nil
}
+func updateCrawlerInput(crawlerName string, d *schema.ResourceData) (*glue.UpdateCrawlerInput, error) {
+ crawlerTargets, err := expandGlueCrawlerTargets(d)
+ if err != nil {
+ return nil, err
+ }
+ crawlerInput := &glue.UpdateCrawlerInput{
+ Name: aws.String(crawlerName),
+ DatabaseName: aws.String(d.Get("database_name").(string)),
+ Role: aws.String(d.Get("role").(string)),
+ Targets: crawlerTargets,
+ }
+ if description, ok := d.GetOk("description"); ok {
+ crawlerInput.Description = aws.String(description.(string))
+ }
+ if schedule, ok := d.GetOk("schedule"); ok {
+ crawlerInput.Schedule = aws.String(schedule.(string))
+ }
+ if classifiers, ok := d.GetOk("classifiers"); ok {
+ crawlerInput.Classifiers = expandStringList(classifiers.([]interface{}))
+ }
+
+ crawlerInput.SchemaChangePolicy = expandGlueSchemaChangePolicy(d.Get("schema_change_policy").([]interface{}))
+
+ if tablePrefix, ok := d.GetOk("table_prefix"); ok {
+ crawlerInput.TablePrefix = aws.String(tablePrefix.(string))
+ }
+ if configuration, ok := d.GetOk("configuration"); ok {
+ crawlerInput.Configuration = aws.String(configuration.(string))
+ }
+
+ if v, ok := d.GetOk("configuration"); ok {
+ configuration, err := structure.NormalizeJsonString(v)
+ if err != nil {
+ return nil, fmt.Errorf("Configuration contains an invalid JSON: %v", err)
+ }
+ crawlerInput.Configuration = aws.String(configuration)
+ }
+
+ if securityConfiguration, ok := d.GetOk("security_configuration"); ok {
+ crawlerInput.CrawlerSecurityConfiguration = aws.String(securityConfiguration.(string))
+ }
+
+ return crawlerInput, nil
+}
+
func expandGlueSchemaChangePolicy(v []interface{}) *glue.SchemaChangePolicy {
if len(v) == 0 {
return nil
@@ -362,15 +407,14 @@ func resourceAwsGlueCrawlerUpdate(d *schema.ResourceData, meta interface{}) erro
glueConn := meta.(*AWSClient).glueconn
name := d.Get("name").(string)
- crawlerInput, err := createCrawlerInput(name, d)
+ updateCrawlerInput, err := updateCrawlerInput(name, d)
if err != nil {
return err
}
- updateCrawlerInput := glue.UpdateCrawlerInput(*crawlerInput)
// Retry for IAM eventual consistency
err = resource.Retry(1*time.Minute, func() *resource.RetryError {
- _, err := glueConn.UpdateCrawler(&updateCrawlerInput)
+ _, err := glueConn.UpdateCrawler(updateCrawlerInput)
if err != nil {
if isAWSErr(err, glue.ErrCodeInvalidInputException, "Service is unable to assume role") {
return resource.RetryableError(err)
diff --git a/aws/resource_aws_guardduty_detector.go b/aws/resource_aws_guardduty_detector.go
index a2cff2eea0b..e56a14012cf 100644
--- a/aws/resource_aws_guardduty_detector.go
+++ b/aws/resource_aws_guardduty_detector.go
@@ -30,10 +30,12 @@ func resourceAwsGuardDutyDetector() *schema.Resource {
Type: schema.TypeString,
Computed: true,
},
+ // finding_publishing_frequency is marked as Computed:true since
+ // GuardDuty member accounts inherit setting from master account
"finding_publishing_frequency": {
Type: schema.TypeString,
Optional: true,
- Default: "SIX_HOURS",
+ Computed: true,
},
},
}
@@ -43,8 +45,11 @@ func resourceAwsGuardDutyDetectorCreate(d *schema.ResourceData, meta interface{}
conn := meta.(*AWSClient).guarddutyconn
input := guardduty.CreateDetectorInput{
- Enable: aws.Bool(d.Get("enable").(bool)),
- FindingPublishingFrequency: aws.String(d.Get("finding_publishing_frequency").(string)),
+ Enable: aws.Bool(d.Get("enable").(bool)),
+ }
+
+ if v, ok := d.GetOk("finding_publishing_frequency"); ok {
+ input.FindingPublishingFrequency = aws.String(v.(string))
}
log.Printf("[DEBUG] Creating GuardDuty Detector: %s", input)
diff --git a/aws/resource_aws_iam_user_login_profile.go b/aws/resource_aws_iam_user_login_profile.go
index 6a915d0e569..6900fc3aa5c 100644
--- a/aws/resource_aws_iam_user_login_profile.go
+++ b/aws/resource_aws_iam_user_login_profile.go
@@ -7,11 +7,12 @@ import (
"log"
"math/big"
"strings"
+ "time"
"github.com/aws/aws-sdk-go/aws"
- "github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/service/iam"
"github.com/hashicorp/terraform/helper/encryption"
+ "github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/helper/schema"
"github.com/hashicorp/terraform/helper/validation"
)
@@ -19,28 +20,38 @@ import (
func resourceAwsIamUserLoginProfile() *schema.Resource {
return &schema.Resource{
Create: resourceAwsIamUserLoginProfileCreate,
- Read: schema.Noop,
- Update: schema.Noop,
- Delete: schema.RemoveFromState,
+ Read: resourceAwsIamUserLoginProfileRead,
+ Delete: resourceAwsIamUserLoginProfileDelete,
+ Importer: &schema.ResourceImporter{
+ State: func(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
+ d.Set("encrypted_password", "")
+ d.Set("key_fingerprint", "")
+ return []*schema.ResourceData{d}, nil
+ },
+ },
Schema: map[string]*schema.Schema{
"user": {
Type: schema.TypeString,
Required: true,
+ ForceNew: true,
},
"pgp_key": {
Type: schema.TypeString,
Required: true,
+ ForceNew: true,
},
"password_reset_required": {
Type: schema.TypeBool,
Optional: true,
Default: true,
+ ForceNew: true,
},
"password_length": {
Type: schema.TypeInt,
Optional: true,
Default: 20,
+ ForceNew: true,
ValidateFunc: validation.IntBetween(5, 128),
},
@@ -112,41 +123,20 @@ func checkIAMPwdPolicy(pass []byte) bool {
func resourceAwsIamUserLoginProfileCreate(d *schema.ResourceData, meta interface{}) error {
iamconn := meta.(*AWSClient).iamconn
+ username := d.Get("user").(string)
encryptionKey, err := encryption.RetrieveGPGKey(strings.TrimSpace(d.Get("pgp_key").(string)))
if err != nil {
- return err
+ return fmt.Errorf("error retrieving GPG Key during IAM User Login Profile (%s) creation: %s", username, err)
}
- username := d.Get("user").(string)
passwordResetRequired := d.Get("password_reset_required").(bool)
passwordLength := d.Get("password_length").(int)
-
- // DEPRECATED: Automatic import will be removed in a future major version update
- // https://github.com/terraform-providers/terraform-provider-aws/issues/7536
- _, err = iamconn.GetLoginProfile(&iam.GetLoginProfileInput{
- UserName: aws.String(username),
- })
-
- // If there is already a login profile, bring it under management (to prevent
- // resource creation diffs) - we will never modify it, but obviously cannot
- // set the password.
- if err == nil {
- d.SetId(username)
- d.Set("key_fingerprint", "")
- d.Set("encrypted_password", "")
- return nil
- }
-
- if !isAWSErr(err, iam.ErrCodeNoSuchEntityException, "") {
- return fmt.Errorf("Error checking for existing IAM User Login Profile: %s", err)
- }
-
initialPassword := generateIAMPassword(passwordLength)
fingerprint, encrypted, err := encryption.EncryptValue(encryptionKey, initialPassword, "Password")
if err != nil {
- return err
+ return fmt.Errorf("error encrypting password during IAM User Login Profile (%s) creation: %s", username, err)
}
request := &iam.CreateLoginProfileInput{
@@ -158,15 +148,6 @@ func resourceAwsIamUserLoginProfileCreate(d *schema.ResourceData, meta interface
log.Println("[DEBUG] Create IAM User Login Profile request:", request)
createResp, err := iamconn.CreateLoginProfile(request)
if err != nil {
- if awsErr, ok := err.(awserr.Error); ok && awsErr.Code() == "EntityAlreadyExists" {
- // If there is already a login profile, bring it under management (to prevent
- // resource creation diffs) - we will never modify it, but obviously cannot
- // set the password.
- d.SetId(username)
- d.Set("key_fingerprint", "")
- d.Set("encrypted_password", "")
- return nil
- }
return fmt.Errorf("Error creating IAM User Login Profile for %q: %s", username, err)
}
@@ -175,3 +156,76 @@ func resourceAwsIamUserLoginProfileCreate(d *schema.ResourceData, meta interface
d.Set("encrypted_password", encrypted)
return nil
}
+
+func resourceAwsIamUserLoginProfileRead(d *schema.ResourceData, meta interface{}) error {
+ conn := meta.(*AWSClient).iamconn
+
+ input := &iam.GetLoginProfileInput{
+ UserName: aws.String(d.Id()),
+ }
+
+ log.Printf("[DEBUG] Getting IAM User Login Profile (%s): %s", d.Id(), input)
+ output, err := conn.GetLoginProfile(input)
+
+ if isAWSErr(err, iam.ErrCodeNoSuchEntityException, "") {
+ log.Printf("[WARN] IAM User Login Profile (%s) not found, removing from state", d.Id())
+ d.SetId("")
+ return nil
+ }
+
+ if err != nil {
+ return fmt.Errorf("error getting IAM User Login Profile (%s): %s", d.Id(), err)
+ }
+
+ if output == nil || output.LoginProfile == nil {
+ return fmt.Errorf("error getting IAM User Login Profile (%s): empty response", d.Id())
+ }
+
+ d.Set("user", aws.StringValue(output.LoginProfile.UserName))
+
+ return nil
+}
+
+func resourceAwsIamUserLoginProfileDelete(d *schema.ResourceData, meta interface{}) error {
+ conn := meta.(*AWSClient).iamconn
+
+ input := &iam.DeleteLoginProfileInput{
+ UserName: aws.String(d.Id()),
+ }
+
+ log.Printf("[DEBUG] Deleting IAM User Login Profile (%s): %s", d.Id(), input)
+ // Handle IAM eventual consistency
+ err := resource.Retry(1*time.Minute, func() *resource.RetryError {
+ _, err := conn.DeleteLoginProfile(input)
+
+ if isAWSErr(err, iam.ErrCodeNoSuchEntityException, "") {
+ return nil
+ }
+
+ // EntityTemporarilyUnmodifiable: Login Profile for User XXX cannot be modified while login profile is being created.
+ if isAWSErr(err, iam.ErrCodeEntityTemporarilyUnmodifiableException, "") {
+ return resource.RetryableError(err)
+ }
+
+ if err != nil {
+ return resource.NonRetryableError(err)
+ }
+
+ return nil
+ })
+
+ // Handle AWS Go SDK automatic retries
+ if isResourceTimeoutError(err) {
+ _, err = conn.DeleteLoginProfile(input)
+ }
+
+ if isAWSErr(err, iam.ErrCodeNoSuchEntityException, "") {
+ return nil
+ }
+
+ if err != nil {
+ return fmt.Errorf("error deleting IAM User Login Profile (%s): %s", d.Id(), err)
+ }
+
+ return nil
+}
diff --git a/aws/resource_aws_iam_user_login_profile_test.go b/aws/resource_aws_iam_user_login_profile_test.go
index fe48f4e67f8..57a1ec8fb96 100644
--- a/aws/resource_aws_iam_user_login_profile_test.go
+++ b/aws/resource_aws_iam_user_login_profile_test.go
@@ -9,7 +9,6 @@ import (
"regexp"
"github.com/aws/aws-sdk-go/aws"
- "github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/iam"
@@ -70,8 +69,25 @@ func TestAccAWSUserLoginProfile_basic(t *testing.T) {
Check: resource.ComposeTestCheckFunc(
testAccCheckAWSUserLoginProfileExists("aws_iam_user_login_profile.user", &conf),
testDecryptPasswordAndTest("aws_iam_user_login_profile.user", "aws_iam_access_key.user", testPrivKey1),
+ resource.TestCheckResourceAttrSet("aws_iam_user_login_profile.user", "encrypted_password"),
+ resource.TestCheckResourceAttrSet("aws_iam_user_login_profile.user", "key_fingerprint"),
+ resource.TestCheckResourceAttr("aws_iam_user_login_profile.user", "password_length", "20"),
+ resource.TestCheckResourceAttr("aws_iam_user_login_profile.user", "password_reset_required", "true"),
+ resource.TestCheckResourceAttr("aws_iam_user_login_profile.user", "pgp_key", testPubKey1+"\n"),
),
},
+ {
+ ResourceName: "aws_iam_user_login_profile.user",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "encrypted_password",
+ "key_fingerprint",
+ "password_length",
+ "password_reset_required",
+ "pgp_key",
+ },
+ },
},
})
}
@@ -92,8 +108,23 @@ func TestAccAWSUserLoginProfile_keybase(t *testing.T) {
testAccCheckAWSUserLoginProfileExists("aws_iam_user_login_profile.user", &conf),
resource.TestCheckResourceAttrSet("aws_iam_user_login_profile.user", "encrypted_password"),
resource.TestCheckResourceAttrSet("aws_iam_user_login_profile.user", "key_fingerprint"),
+ resource.TestCheckResourceAttr("aws_iam_user_login_profile.user", "password_length", "20"),
+ resource.TestCheckResourceAttr("aws_iam_user_login_profile.user", "password_reset_required", "true"),
+ resource.TestCheckResourceAttr("aws_iam_user_login_profile.user", "pgp_key", "keybase:terraformacctest\n"),
),
},
+ {
+ ResourceName: "aws_iam_user_login_profile.user",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "encrypted_password",
+ "key_fingerprint",
+ "password_length",
+ "password_reset_required",
+ "pgp_key",
+ },
+ },
},
})
}
@@ -149,6 +180,18 @@ func TestAccAWSUserLoginProfile_PasswordLength(t *testing.T) {
resource.TestCheckResourceAttr("aws_iam_user_login_profile.user", "password_length", "128"),
),
},
+ {
+ ResourceName: "aws_iam_user_login_profile.user",
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{
+ "encrypted_password",
+ "key_fingerprint",
+ "password_length",
+ "password_reset_required",
+ "pgp_key",
+ },
+ },
},
})
}
@@ -161,22 +204,15 @@ func testAccCheckAWSUserLoginProfileDestroy(s *terraform.State) error {
continue
}
- // Try to get user
_, err := iamconn.GetLoginProfile(&iam.GetLoginProfileInput{
UserName: aws.String(rs.Primary.ID),
})
- if err == nil {
- return fmt.Errorf("still exists.")
- }
- // Verify the error is what we want
- ec2err, ok := err.(awserr.Error)
- if !ok {
- return err
- }
- if ec2err.Code() != "NoSuchEntity" {
- return err
+ if isAWSErr(err, iam.ErrCodeNoSuchEntityException, "") {
+ continue
}
+
+ return fmt.Errorf("IAM User Login Profile (%s) still exists", rs.Primary.ID)
}
return nil
diff --git a/aws/resource_aws_instance.go b/aws/resource_aws_instance.go
index a66e5d53b6f..f9b0c9f55e8 100644
--- a/aws/resource_aws_instance.go
+++ b/aws/resource_aws_instance.go
@@ -184,11 +184,10 @@ func resourceAwsInstance() *schema.Resource {
Computed: true,
},
- // TODO: Deprecate me v0.10.0
"network_interface_id": {
- Type: schema.TypeString,
- Computed: true,
- Deprecated: "Please use `primary_network_interface_id` instead",
+ Type: schema.TypeString,
+ Computed: true,
+ Removed: "Use `primary_network_interface_id` attribute instead",
},
"primary_network_interface_id": {
@@ -311,12 +310,6 @@ func resourceAwsInstance() *schema.Resource {
"volume_tags": tagsSchemaComputed(),
- "block_device": {
- Type: schema.TypeMap,
- Optional: true,
- Removed: "Split out into three sub-types; see Changelog and Docs",
- },
-
"ebs_block_device": {
Type: schema.TypeSet,
Optional: true,
@@ -556,36 +549,32 @@ func resourceAwsInstanceCreate(d *schema.ResourceData, meta interface{}) error {
return fmt.Errorf("Only 1 of `ipv6_address_count` or `ipv6_addresses` can be specified")
}
- restricted := meta.(*AWSClient).IsChinaCloud()
- if !restricted {
+ tagsSpec := make([]*ec2.TagSpecification, 0)
- tagsSpec := make([]*ec2.TagSpecification, 0)
+ if v, ok := d.GetOk("tags"); ok {
+ tags := tagsFromMap(v.(map[string]interface{}))
- if v, ok := d.GetOk("tags"); ok {
- tags := tagsFromMap(v.(map[string]interface{}))
-
- spec := &ec2.TagSpecification{
- ResourceType: aws.String("instance"),
- Tags: tags,
- }
-
- tagsSpec = append(tagsSpec, spec)
+ spec := &ec2.TagSpecification{
+ ResourceType: aws.String("instance"),
+ Tags: tags,
}
- if v, ok := d.GetOk("volume_tags"); ok {
- tags := tagsFromMap(v.(map[string]interface{}))
+ tagsSpec = append(tagsSpec, spec)
+ }
- spec := &ec2.TagSpecification{
- ResourceType: aws.String("volume"),
- Tags: tags,
- }
+ if v, ok := d.GetOk("volume_tags"); ok {
+ tags := tagsFromMap(v.(map[string]interface{}))
- tagsSpec = append(tagsSpec, spec)
+ spec := &ec2.TagSpecification{
+ ResourceType: aws.String("volume"),
+ Tags: tags,
}
- if len(tagsSpec) > 0 {
- runOpts.TagSpecifications = tagsSpec
- }
+ tagsSpec = append(tagsSpec, spec)
+ }
+
+ if len(tagsSpec) > 0 {
+ runOpts.TagSpecifications = tagsSpec
}
// Create the instance
@@ -779,7 +768,6 @@ func resourceAwsInstanceRead(d *schema.ResourceData, meta interface{}) error {
d.Set("subnet_id", primaryNetworkInterface.SubnetId)
}
if primaryNetworkInterface.NetworkInterfaceId != nil {
- d.Set("network_interface_id", primaryNetworkInterface.NetworkInterfaceId) // TODO: Deprecate me v0.10.0
d.Set("primary_network_interface_id", primaryNetworkInterface.NetworkInterfaceId)
}
if primaryNetworkInterface.Ipv6Addresses != nil {
@@ -797,7 +785,6 @@ func resourceAwsInstanceRead(d *schema.ResourceData, meta interface{}) error {
} else {
d.Set("subnet_id", instance.SubnetId)
- d.Set("network_interface_id", "") // TODO: Deprecate me v0.10.0
d.Set("primary_network_interface_id", "")
}
@@ -903,25 +890,18 @@ func resourceAwsInstanceUpdate(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).ec2conn
d.Partial(true)
- restricted := meta.(*AWSClient).IsChinaCloud()
- if d.HasChange("tags") {
- if !d.IsNewResource() || restricted {
- if err := setTags(conn, d); err != nil {
- return err
- } else {
- d.SetPartial("tags")
- }
+ if d.HasChange("tags") && !d.IsNewResource() {
+ if err := setTags(conn, d); err != nil {
+ return err
}
+ d.SetPartial("tags")
}
- if d.HasChange("volume_tags") {
- if !d.IsNewResource() || restricted {
- if err := setVolumeTags(conn, d); err != nil {
- return err
- } else {
- d.SetPartial("volume_tags")
- }
+ if d.HasChange("volume_tags") && !d.IsNewResource() {
+ if err := setVolumeTags(conn, d); err != nil {
+ return err
}
+ d.SetPartial("volume_tags")
}
if d.HasChange("iam_instance_profile") && !d.IsNewResource() {
diff --git a/aws/resource_aws_instance_test.go b/aws/resource_aws_instance_test.go
index 4f23f0b9666..f902087d402 100644
--- a/aws/resource_aws_instance_test.go
+++ b/aws/resource_aws_instance_test.go
@@ -3720,11 +3720,7 @@ func testAccInstanceConfig_getPasswordData(val bool, rInt int) string {
# Find latest Microsoft Windows Server 2016 Core image (Amazon deletes old ones)
data "aws_ami" "win2016core" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
diff --git a/aws/resource_aws_iot_topic_rule_test.go b/aws/resource_aws_iot_topic_rule_test.go
index 3e94210b411..f43fbfbe6b7 100644
--- a/aws/resource_aws_iot_topic_rule_test.go
+++ b/aws/resource_aws_iot_topic_rule_test.go
@@ -455,9 +455,7 @@ resource "aws_iot_topic_rule" "rule" {
func testAccAWSIoTTopicRule_elasticsearch(rName string) string {
return fmt.Sprintf(testAccAWSIoTTopicRuleRole+`
-data "aws_region" "current" {
- current = true
-}
+data "aws_region" "current" {}
resource "aws_iot_topic_rule" "rule" {
name = "test_rule_%[1]s"
diff --git a/aws/resource_aws_kms_grant.go b/aws/resource_aws_kms_grant.go
index a6362f0cdc4..ae3c7aa4339 100644
--- a/aws/resource_aws_kms_grant.go
+++ b/aws/resource_aws_kms_grant.go
@@ -342,10 +342,8 @@ func findKmsGrantByIdWithRetry(conn *kms.KMS, keyId string, grantId string) (*km
func waitForKmsGrantToBeRevoked(conn *kms.KMS, keyId string, grantId string) error {
err := resource.Retry(3*time.Minute, func() *resource.RetryError {
grant, err := findKmsGrantById(conn, keyId, grantId, nil)
- if err != nil {
- if _, ok := err.(KmsGrantMissingError); ok {
- return nil
- }
+ if _, ok := err.(KmsGrantMissingError); ok {
+ return nil
}
if grant != nil {
diff --git a/aws/resource_aws_lambda_function.go b/aws/resource_aws_lambda_function.go
index 74ebeadbd5b..17924855ac2 100644
--- a/aws/resource_aws_lambda_function.go
+++ b/aws/resource_aws_lambda_function.go
@@ -120,8 +120,10 @@ func resourceAwsLambdaFunction() *schema.Resource {
Default: 128,
},
"reserved_concurrent_executions": {
- Type: schema.TypeInt,
- Optional: true,
+ Type: schema.TypeInt,
+ Optional: true,
+ Default: -1,
+ ValidateFunc: validation.IntAtLeast(-1),
},
"role": {
Type: schema.TypeString,
@@ -438,7 +440,7 @@ func resourceAwsLambdaFunctionCreate(d *schema.ResourceData, meta interface{}) e
d.SetId(d.Get("function_name").(string))
- if reservedConcurrentExecutions > 0 {
+ if reservedConcurrentExecutions >= 0 {
log.Printf("[DEBUG] Setting Concurrency to %d for the Lambda Function %s", reservedConcurrentExecutions, functionName)
@@ -495,7 +497,7 @@ func resourceAwsLambdaFunctionRead(d *schema.ResourceData, meta interface{}) err
if getFunctionOutput.Concurrency != nil {
d.Set("reserved_concurrent_executions", getFunctionOutput.Concurrency.ReservedConcurrentExecutions)
} else {
- d.Set("reserved_concurrent_executions", nil)
+ d.Set("reserved_concurrent_executions", -1)
}
// Tagging operations are permitted on Lambda functions only.
@@ -567,6 +569,7 @@ func resourceAwsLambdaFunctionRead(d *schema.ResourceData, meta interface{}) err
d.Set("version", function.Version)
d.Set("qualified_arn", function.FunctionArn)
} else {
+
// List is sorted from oldest to latest
// so this may get costly over time :'(
var lastVersion, lastQualifiedArn string
@@ -856,7 +859,7 @@ func resourceAwsLambdaFunctionUpdate(d *schema.ResourceData, meta interface{}) e
if d.HasChange("reserved_concurrent_executions") {
nc := d.Get("reserved_concurrent_executions")
- if nc.(int) > 0 {
+ if nc.(int) >= 0 {
log.Printf("[DEBUG] Updating Concurrency to %d for the Lambda Function %s", nc.(int), d.Id())
concurrencyParams := &lambda.PutFunctionConcurrencyInput{
diff --git a/aws/resource_aws_lambda_function_test.go b/aws/resource_aws_lambda_function_test.go
index d355116623f..6c99a91dd24 100644
--- a/aws/resource_aws_lambda_function_test.go
+++ b/aws/resource_aws_lambda_function_test.go
@@ -166,7 +166,7 @@ func TestAccAWSLambdaFunction_basic(t *testing.T) {
testAccCheckAwsLambdaFunctionName(&conf, funcName),
testAccCheckAwsLambdaFunctionArnHasSuffix(&conf, ":"+funcName),
resource.TestMatchResourceAttr(resourceName, "invoke_arn", regexp.MustCompile(fmt.Sprintf("^arn:[^:]+:apigateway:[^:]+:lambda:path/2015-03-31/functions/arn:[^:]+:lambda:[^:]+:[^:]+:function:%s/invocations$", funcName))),
- resource.TestCheckResourceAttr(resourceName, "reserved_concurrent_executions", "0"),
+ resource.TestCheckResourceAttr(resourceName, "reserved_concurrent_executions", "-1"),
),
},
},
@@ -229,7 +229,7 @@ func TestAccAWSLambdaFunction_concurrencyCycle(t *testing.T) {
testAccCheckAwsLambdaFunctionExists("aws_lambda_function.lambda_function_test", funcName, &conf),
testAccCheckAwsLambdaFunctionName(&conf, funcName),
testAccCheckAwsLambdaFunctionArnHasSuffix(&conf, ":"+funcName),
- resource.TestCheckResourceAttr("aws_lambda_function.lambda_function_test", "reserved_concurrent_executions", "0"),
+ resource.TestCheckResourceAttr("aws_lambda_function.lambda_function_test", "reserved_concurrent_executions", "-1"),
),
},
{
@@ -247,7 +247,7 @@ func TestAccAWSLambdaFunction_concurrencyCycle(t *testing.T) {
testAccCheckAwsLambdaFunctionExists("aws_lambda_function.lambda_function_test", funcName, &conf),
testAccCheckAwsLambdaFunctionName(&conf, funcName),
testAccCheckAwsLambdaFunctionArnHasSuffix(&conf, ":"+funcName),
- resource.TestCheckResourceAttr("aws_lambda_function.lambda_function_test", "reserved_concurrent_executions", "0"),
+ resource.TestCheckResourceAttr("aws_lambda_function.lambda_function_test", "reserved_concurrent_executions", "-1"),
),
},
},
@@ -1982,7 +1982,7 @@ resource "aws_lambda_function" "lambda_function_test" {
role = "${aws_iam_role.iam_for_lambda.arn}"
handler = "exports.example"
runtime = "nodejs8.10"
- layers = ["${aws_lambda_layer_version.lambda_function_test.layer_arn}"]
+ layers = ["${aws_lambda_layer_version.lambda_function_test.arn}"]
}
`, layerName, funcName)
}
@@ -2008,8 +2008,8 @@ resource "aws_lambda_function" "lambda_function_test" {
handler = "exports.example"
runtime = "nodejs8.10"
layers = [
- "${aws_lambda_layer_version.lambda_function_test.layer_arn}",
- "${aws_lambda_layer_version.lambda_function_test_2.layer_arn}",
+ "${aws_lambda_layer_version.lambda_function_test.arn}",
+ "${aws_lambda_layer_version.lambda_function_test_2.arn}",
]
}
`, layerName, layer2Name, funcName)
diff --git a/aws/resource_aws_lambda_layer_version.go b/aws/resource_aws_lambda_layer_version.go
index f0f89d71006..e0273e70342 100644
--- a/aws/resource_aws_lambda_layer_version.go
+++ b/aws/resource_aws_lambda_layer_version.go
@@ -196,11 +196,11 @@ func resourceAwsLambdaLayerVersionRead(d *schema.ResourceData, meta interface{})
if err := d.Set("version", strconv.FormatInt(version, 10)); err != nil {
return fmt.Errorf("Error setting lambda layer version: %s", err)
}
- if err := d.Set("arn", layerVersion.LayerArn); err != nil {
- return fmt.Errorf("Error setting lambda layer arn: %s", err)
+ if err := d.Set("arn", layerVersion.LayerVersionArn); err != nil {
+ return fmt.Errorf("Error setting lambda layer version arn: %s", err)
}
- if err := d.Set("layer_arn", layerVersion.LayerVersionArn); err != nil {
- return fmt.Errorf("Error setting lambda layer qualified arn: %s", err)
+ if err := d.Set("layer_arn", layerVersion.LayerArn); err != nil {
+ return fmt.Errorf("Error setting lambda layer arn: %s", err)
}
if err := d.Set("description", layerVersion.Description); err != nil {
return fmt.Errorf("Error setting lambda layer description: %s", err)
diff --git a/aws/resource_aws_lambda_layer_version_test.go b/aws/resource_aws_lambda_layer_version_test.go
index cd672724a55..c656fa99234 100644
--- a/aws/resource_aws_lambda_layer_version_test.go
+++ b/aws/resource_aws_lambda_layer_version_test.go
@@ -74,7 +74,16 @@ func TestAccAWSLambdaLayerVersion_basic(t *testing.T) {
Steps: []resource.TestStep{
{
Config: testAccAWSLambdaLayerVersionBasic(layerName),
- Check: testAccCheckAwsLambdaLayerVersionExists(resourceName, layerName),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckAwsLambdaLayerVersionExists(resourceName, layerName),
+ testAccCheckResourceAttrRegionalARN(resourceName, "arn", "lambda", fmt.Sprintf("layer:%s:1", layerName)),
+ resource.TestCheckResourceAttr(resourceName, "compatible_runtimes.#", "0"),
+ resource.TestCheckResourceAttr(resourceName, "description", ""),
+ resource.TestCheckResourceAttr(resourceName, "layer_name", layerName),
+ resource.TestCheckResourceAttr(resourceName, "license_info", ""),
+ testAccCheckResourceAttrRegionalARN(resourceName, "layer_arn", "lambda", fmt.Sprintf("layer:%s", layerName)),
+ resource.TestCheckResourceAttr(resourceName, "version", "1"),
+ ),
},
{
diff --git a/aws/resource_aws_launch_configuration.go b/aws/resource_aws_launch_configuration.go
index 7417d8f34ef..c72376566d7 100644
--- a/aws/resource_aws_launch_configuration.go
+++ b/aws/resource_aws_launch_configuration.go
@@ -563,19 +563,36 @@ func resourceAwsLaunchConfigurationRead(d *schema.ResourceData, meta interface{}
func resourceAwsLaunchConfigurationDelete(d *schema.ResourceData, meta interface{}) error {
autoscalingconn := meta.(*AWSClient).autoscalingconn
+ input := &autoscaling.DeleteLaunchConfigurationInput{
+ LaunchConfigurationName: aws.String(d.Id()),
+ }
+
+ log.Printf("[DEBUG] Deleting Autoscaling Launch Configuration: %s", d.Id())
+ // Retry for Autoscaling eventual consistency
+ err := resource.Retry(1*time.Minute, func() *resource.RetryError {
+ _, err := autoscalingconn.DeleteLaunchConfiguration(input)
+
+ if isAWSErr(err, autoscaling.ErrCodeResourceInUseFault, "") {
+ return resource.RetryableError(err)
+ }
- log.Printf("[DEBUG] Launch Configuration destroy: %v", d.Id())
- _, err := autoscalingconn.DeleteLaunchConfiguration(
- &autoscaling.DeleteLaunchConfigurationInput{
- LaunchConfigurationName: aws.String(d.Id()),
- })
- if err != nil {
if isAWSErr(err, "InvalidConfiguration.NotFound", "") {
- log.Printf("[DEBUG] Launch configuration (%s) not found", d.Id())
return nil
}
- return err
+ if err != nil {
+ return resource.NonRetryableError(err)
+ }
+
+ return nil
+ })
+
+ if isResourceTimeoutError(err) {
+ _, err = autoscalingconn.DeleteLaunchConfiguration(input)
+ }
+
+ if err != nil {
+ return fmt.Errorf("error deleting Autoscaling Launch Configuration (%s): %s", d.Id(), err)
}
return nil
diff --git a/aws/resource_aws_launch_template_test.go b/aws/resource_aws_launch_template_test.go
index b55931c5d03..497f89da310 100644
--- a/aws/resource_aws_launch_template_test.go
+++ b/aws/resource_aws_launch_template_test.go
@@ -1008,11 +1008,7 @@ resource "aws_launch_template" "test" {
const testAccAWSLaunchTemplateConfig_asg_basic = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1043,11 +1039,7 @@ resource "aws_autoscaling_group" "bar" {
const testAccAWSLaunchTemplateConfig_asg_update = `
data "aws_ami" "test_ami" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1078,11 +1070,7 @@ resource "aws_autoscaling_group" "bar" {
const testAccAWSLaunchTemplateConfig_instanceMarketOptions_basic = `
data "aws_ami" "test" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -1121,11 +1109,7 @@ resource "aws_autoscaling_group" "test" {
const testAccAWSLaunchTemplateConfig_instanceMarketOptions_update = `
data "aws_ami" "test" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
diff --git a/aws/resource_aws_lb_target_group.go b/aws/resource_aws_lb_target_group.go
index 94ffb3d8af2..49a5f8ea4bf 100644
--- a/aws/resource_aws_lb_target_group.go
+++ b/aws/resource_aws_lb_target_group.go
@@ -100,6 +100,12 @@ func resourceAwsLbTargetGroup() *schema.Resource {
Default: false,
},
+ "lambda_multi_value_headers_enabled": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Default: false,
+ },
+
"target_type": {
Type: schema.TypeString,
Optional: true,
@@ -367,9 +373,10 @@ func resourceAwsLbTargetGroupUpdate(d *schema.ResourceData, meta interface{}) er
}
}
- if d.Get("target_type").(string) != elbv2.TargetTypeEnumLambda {
- var attrs []*elbv2.TargetGroupAttribute
+ var attrs []*elbv2.TargetGroupAttribute
+ switch d.Get("target_type").(string) {
+ case elbv2.TargetTypeEnumInstance, elbv2.TargetTypeEnumIp:
if d.HasChange("deregistration_delay") {
attrs = append(attrs, &elbv2.TargetGroupAttribute{
Key: aws.String("deregistration_delay.timeout_seconds"),
@@ -395,7 +402,7 @@ func resourceAwsLbTargetGroupUpdate(d *schema.ResourceData, meta interface{}) er
// 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" && d.Get("target_type").(string) != elbv2.TargetTypeEnumLambda {
+ if d.HasChange("stickiness") && d.Get("protocol") != "TCP" {
stickinessBlocks := d.Get("stickiness").([]interface{})
if len(stickinessBlocks) == 1 {
stickiness := stickinessBlocks[0].(map[string]interface{})
@@ -420,17 +427,24 @@ func resourceAwsLbTargetGroupUpdate(d *schema.ResourceData, meta interface{}) er
})
}
}
+ case elbv2.TargetTypeEnumLambda:
+ if d.HasChange("lambda_multi_value_headers_enabled") {
+ attrs = append(attrs, &elbv2.TargetGroupAttribute{
+ Key: aws.String("lambda.multi_value_headers.enabled"),
+ Value: aws.String(strconv.FormatBool(d.Get("lambda_multi_value_headers_enabled").(bool))),
+ })
+ }
+ }
- if len(attrs) > 0 {
- params := &elbv2.ModifyTargetGroupAttributesInput{
- TargetGroupArn: aws.String(d.Id()),
- Attributes: attrs,
- }
+ if len(attrs) > 0 {
+ params := &elbv2.ModifyTargetGroupAttributesInput{
+ TargetGroupArn: aws.String(d.Id()),
+ Attributes: attrs,
+ }
- _, err := elbconn.ModifyTargetGroupAttributes(params)
- if err != nil {
- return fmt.Errorf("Error modifying Target Group Attributes: %s", err)
- }
+ _, err := elbconn.ModifyTargetGroupAttributes(params)
+ if err != nil {
+ return fmt.Errorf("Error modifying Target Group Attributes: %s", err)
}
}
@@ -551,6 +565,12 @@ func flattenAwsLbTargetGroupResource(d *schema.ResourceData, meta interface{}, t
for _, attr := range attrResp.Attributes {
switch aws.StringValue(attr.Key) {
+ case "lambda.multi_value_headers.enabled":
+ enabled, err := strconv.ParseBool(aws.StringValue(attr.Value))
+ if err != nil {
+ return fmt.Errorf("Error converting lambda.multi_value_headers.enabled to bool: %s", aws.StringValue(attr.Value))
+ }
+ d.Set("lambda_multi_value_headers_enabled", enabled)
case "proxy_protocol_v2.enabled":
enabled, err := strconv.ParseBool(aws.StringValue(attr.Value))
if err != nil {
diff --git a/aws/resource_aws_lb_test.go b/aws/resource_aws_lb_test.go
index d5ee66fe7a3..ab4d57230a7 100644
--- a/aws/resource_aws_lb_test.go
+++ b/aws/resource_aws_lb_test.go
@@ -18,6 +18,9 @@ func init() {
resource.AddTestSweepers("aws_lb", &resource.Sweeper{
Name: "aws_lb",
F: testSweepLBs,
+ Dependencies: []string{
+ "aws_api_gateway_vpc_link",
+ },
})
}
diff --git a/aws/resource_aws_licensemanager_association_test.go b/aws/resource_aws_licensemanager_association_test.go
index 040ee2a46a2..42c863faabf 100644
--- a/aws/resource_aws_licensemanager_association_test.go
+++ b/aws/resource_aws_licensemanager_association_test.go
@@ -95,12 +95,8 @@ func testAccCheckLicenseManagerAssociationDestroy(s *terraform.State) error {
const testAccLicenseManagerAssociationConfig_basic = `
data "aws_ami" "example" {
- most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ most_recent = true
+ owners = ["amazon"]
filter {
name = "name"
diff --git a/aws/resource_aws_network_acl.go b/aws/resource_aws_network_acl.go
index 746c6858a84..8bb5d0a6b8e 100644
--- a/aws/resource_aws_network_acl.go
+++ b/aws/resource_aws_network_acl.go
@@ -36,20 +36,18 @@ func resourceAwsNetworkAcl() *schema.Resource {
Computed: false,
},
"subnet_id": {
- Type: schema.TypeString,
- Optional: true,
- ForceNew: true,
- Computed: false,
- ConflictsWith: []string{"subnet_ids"},
- Deprecated: "Attribute subnet_id is deprecated on network_acl resources. Use subnet_ids instead",
+ Type: schema.TypeString,
+ Optional: true,
+ ForceNew: true,
+ Computed: false,
+ Removed: "Use `subnet_ids` argument instead",
},
"subnet_ids": {
- Type: schema.TypeSet,
- Optional: true,
- Computed: true,
- ConflictsWith: []string{"subnet_id"},
- Elem: &schema.Schema{Type: schema.TypeString},
- Set: schema.HashString,
+ Type: schema.TypeSet,
+ Optional: true,
+ Computed: true,
+ Elem: &schema.Schema{Type: schema.TypeString},
+ Set: schema.HashString,
},
"ingress": {
Type: schema.TypeSet,
@@ -266,23 +264,6 @@ func resourceAwsNetworkAclUpdate(d *schema.ResourceData, meta interface{}) error
}
}
- if d.HasChange("subnet_id") {
- //associate new subnet with the acl.
- _, n := d.GetChange("subnet_id")
- newSubnet := n.(string)
- association, err := findNetworkAclAssociation(newSubnet, conn)
- if err != nil {
- return fmt.Errorf("Failed to update acl %s with subnet %s: %s", d.Id(), newSubnet, err)
- }
- _, err = conn.ReplaceNetworkAclAssociation(&ec2.ReplaceNetworkAclAssociationInput{
- AssociationId: association.NetworkAclAssociationId,
- NetworkAclId: aws.String(d.Id()),
- })
- if err != nil {
- return err
- }
- }
-
if d.HasChange("subnet_ids") {
o, n := d.GetChange("subnet_ids")
if o == nil {
@@ -471,14 +452,7 @@ func resourceAwsNetworkAclDelete(d *schema.ResourceData, meta interface{}) error
// In case of dependency violation, we remove the association between subnet and network acl.
// This means the subnet is attached to default acl of vpc.
var associations []*ec2.NetworkAclAssociation
- if v, ok := d.GetOk("subnet_id"); ok {
-
- a, err := findNetworkAclAssociation(v.(string), conn)
- if err != nil {
- return resource.NonRetryableError(err)
- }
- associations = append(associations, a)
- } else if v, ok := d.GetOk("subnet_ids"); ok {
+ if v, ok := d.GetOk("subnet_ids"); ok {
ids := v.(*schema.Set).List()
for _, i := range ids {
a, err := findNetworkAclAssociation(i.(string), conn)
diff --git a/aws/resource_aws_opsworks_stack.go b/aws/resource_aws_opsworks_stack.go
index dbb0887be91..ce0a44beb63 100644
--- a/aws/resource_aws_opsworks_stack.go
+++ b/aws/resource_aws_opsworks_stack.go
@@ -3,16 +3,17 @@ package aws
import (
"fmt"
"log"
- "os"
"strings"
"time"
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/helper/schema"
+ "github.com/hashicorp/terraform/terraform"
"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/aws/request"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/opsworks"
)
@@ -387,11 +388,7 @@ func opsworksConnForRegion(region string, meta interface{}) (*opsworks.OpsWorks,
return nil, fmt.Errorf("Error creating AWS session: %s", err)
}
- sess.Handlers.Build.PushBackNamed(addTerraformVersionToUserAgent)
-
- if extraDebug := os.Getenv("TERRAFORM_AWS_AUTHFAILURE_DEBUG"); extraDebug != "" {
- sess.Handlers.UnmarshalError.PushFrontNamed(debugAuthFailure)
- }
+ sess.Handlers.Build.PushBack(request.MakeAddToUserAgentHandler("APN/1.0 HashiCorp/1.0 Terraform", terraform.VersionString()))
newSession := sess.Copy(&aws.Config{Region: aws.String(region)})
newOpsworksconn := opsworks.New(newSession)
diff --git a/aws/resource_aws_ram_resource_share.go b/aws/resource_aws_ram_resource_share.go
index 9820e7c67ac..ff82d219142 100644
--- a/aws/resource_aws_ram_resource_share.go
+++ b/aws/resource_aws_ram_resource_share.go
@@ -29,6 +29,11 @@ func resourceAwsRamResourceShare() *schema.Resource {
},
Schema: map[string]*schema.Schema{
+ "arn": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+
"name": {
Type: schema.TypeString,
Required: true,
@@ -113,6 +118,7 @@ func resourceAwsRamResourceShareRead(d *schema.ResourceData, meta interface{}) e
return nil
}
+ d.Set("arn", resourceShare.ResourceShareArn)
d.Set("name", resourceShare.Name)
d.Set("allow_external_principals", resourceShare.AllowExternalPrincipals)
diff --git a/aws/resource_aws_ram_resource_share_test.go b/aws/resource_aws_ram_resource_share_test.go
index fbf268ff876..3c3f9a473c8 100644
--- a/aws/resource_aws_ram_resource_share_test.go
+++ b/aws/resource_aws_ram_resource_share_test.go
@@ -2,6 +2,7 @@ package aws
import (
"fmt"
+ "regexp"
"testing"
"github.com/hashicorp/terraform/helper/acctest"
@@ -26,6 +27,7 @@ func TestAccAwsRamResourceShare_basic(t *testing.T) {
Config: testAccAwsRamResourceShareConfigName(shareName),
Check: resource.ComposeTestCheckFunc(
testAccCheckAwsRamResourceShareExists(resourceName, &resourceShare),
+ testAccMatchResourceAttrRegionalARN(resourceName, "arn", "ram", regexp.MustCompile(`resource-share/.+`)),
resource.TestCheckResourceAttr(resourceName, "allow_external_principals", "false"),
resource.TestCheckResourceAttr(resourceName, "name", shareName),
resource.TestCheckResourceAttr(resourceName, "tags.%", "0"),
diff --git a/aws/resource_aws_redshift_cluster.go b/aws/resource_aws_redshift_cluster.go
index fbe782fd60a..8044ea207bf 100644
--- a/aws/resource_aws_redshift_cluster.go
+++ b/aws/resource_aws_redshift_cluster.go
@@ -241,9 +241,10 @@ func resourceAwsRedshiftCluster() *schema.Resource {
},
"logging": {
- Type: schema.TypeList,
- MaxItems: 1,
- Optional: true,
+ Type: schema.TypeList,
+ MaxItems: 1,
+ Optional: true,
+ DiffSuppressFunc: suppressMissingOptionalConfigurationBlock,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"enable": {
@@ -267,27 +268,24 @@ func resourceAwsRedshiftCluster() *schema.Resource {
},
"enable_logging": {
- Type: schema.TypeBool,
- Optional: true,
- Computed: true,
- Deprecated: "Use enable in the 'logging' block instead",
- ConflictsWith: []string{"logging"},
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ Removed: "Use `logging` configuration block `enable` argument instead",
},
"bucket_name": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- Deprecated: "Use bucket_name in the 'logging' block instead",
- ConflictsWith: []string{"logging"},
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ Removed: "Use `logging` configuration block `bucket_name` argument instead",
},
"s3_key_prefix": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- Deprecated: "Use s3_key_prefix in the 'logging' block instead",
- ConflictsWith: []string{"logging"},
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ Removed: "Use `logging` configuration block `s3_key_prefix` argument instead",
},
"snapshot_identifier": {
@@ -499,13 +497,9 @@ func resourceAwsRedshiftClusterCreate(d *schema.ResourceData, meta interface{})
}
}
- logging, ok := d.GetOk("logging.0.enable")
- _, deprecatedOk := d.GetOk("enable_logging")
- if (ok && logging.(bool)) || deprecatedOk {
- loggingErr := enableRedshiftClusterLogging(d, conn)
- if loggingErr != nil {
- log.Printf("[ERROR] Error Enabling Logging on Redshift Cluster: %s", err)
- return loggingErr
+ if logging, ok := d.GetOk("logging.0.enable"); ok && logging.(bool) {
+ if err := enableRedshiftClusterLogging(d, conn); err != nil {
+ return fmt.Errorf("error enabling Redshift Cluster (%s) logging: %s", d.Id(), err)
}
}
@@ -614,12 +608,9 @@ func resourceAwsRedshiftClusterRead(d *schema.ResourceData, meta interface{}) er
d.Set("snapshot_copy", flattenRedshiftSnapshotCopy(rsc.ClusterSnapshotCopyStatus))
- // TODO: Deprecated fields - remove in next major version
- d.Set("bucket_name", loggingStatus.BucketName)
- d.Set("enable_logging", loggingStatus.LoggingEnabled)
- d.Set("s3_key_prefix", loggingStatus.S3KeyPrefix)
-
- d.Set("logging", flattenRedshiftLogging(loggingStatus))
+ if err := d.Set("logging", flattenRedshiftLogging(loggingStatus)); err != nil {
+ return fmt.Errorf("error setting logging: %s", err)
+ }
return nil
}
@@ -811,22 +802,6 @@ func resourceAwsRedshiftClusterUpdate(d *schema.ResourceData, meta interface{})
return err
}
}
- } else if d.HasChange("enable_logging") || d.HasChange("bucket_name") || d.HasChange("s3_key_prefix") {
- if enableLogging, ok := d.GetOk("enable_logging"); ok && enableLogging.(bool) {
- log.Printf("[INFO] Enabling Logging for Redshift Cluster %q", d.Id())
- err := enableRedshiftClusterLogging(d, conn)
- if err != nil {
- return err
- }
- } else {
- log.Printf("[INFO] Disabling Logging for Redshift Cluster %q", d.Id())
- _, err := conn.DisableLogging(&redshift.DisableLoggingInput{
- ClusterIdentifier: aws.String(d.Id()),
- })
- if err != nil {
- return err
- }
- }
}
d.Partial(false)
@@ -835,36 +810,23 @@ func resourceAwsRedshiftClusterUpdate(d *schema.ResourceData, meta interface{})
}
func enableRedshiftClusterLogging(d *schema.ResourceData, conn *redshift.Redshift) error {
- var bucketName, v interface{}
- var deprecatedOk, ok bool
- bucketName, deprecatedOk = d.GetOk("bucket_name")
- v, ok = d.GetOk("logging.0.bucket_name")
- if ok {
- bucketName = v
- }
- if !ok && !deprecatedOk {
+ bucketNameRaw, ok := d.GetOk("logging.0.bucket_name")
+
+ if !ok {
return fmt.Errorf("bucket_name must be set when enabling logging for Redshift Clusters")
}
params := &redshift.EnableLoggingInput{
ClusterIdentifier: aws.String(d.Id()),
- BucketName: aws.String(bucketName.(string)),
+ BucketName: aws.String(bucketNameRaw.(string)),
}
- var s3KeyPrefix interface{}
- s3KeyPrefix, deprecatedOk = d.GetOk("s3_key_prefix")
- v, ok = d.GetOk("logging.0.s3_key_prefix")
- if ok {
- s3KeyPrefix = v
- }
- if ok || deprecatedOk {
- params.S3KeyPrefix = aws.String(s3KeyPrefix.(string))
+ if v, ok := d.GetOk("logging.0.s3_key_prefix"); ok {
+ params.S3KeyPrefix = aws.String(v.(string))
}
- _, loggingErr := conn.EnableLogging(params)
- if loggingErr != nil {
- log.Printf("[ERROR] Error Enabling Logging on Redshift Cluster: %s", loggingErr)
- return loggingErr
+ if _, err := conn.EnableLogging(params); err != nil {
+ return fmt.Errorf("error enabling Redshift Cluster (%s) logging: %s", d.Id(), err)
}
return nil
}
diff --git a/aws/resource_aws_redshift_cluster_test.go b/aws/resource_aws_redshift_cluster_test.go
index 04898540844..7200c2f228b 100644
--- a/aws/resource_aws_redshift_cluster_test.go
+++ b/aws/resource_aws_redshift_cluster_test.go
@@ -223,38 +223,6 @@ func TestAccAWSRedshiftCluster_enhancedVpcRoutingEnabled(t *testing.T) {
})
}
-func TestAccAWSRedshiftCluster_loggingEnabledDeprecated(t *testing.T) {
- var v redshift.Cluster
- rInt := acctest.RandInt()
-
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- Providers: testAccProviders,
- CheckDestroy: testAccCheckAWSRedshiftClusterDestroy,
- Steps: []resource.TestStep{
- {
- Config: testAccAWSRedshiftClusterConfig_loggingEnabledDeprecated(rInt),
- Check: resource.ComposeTestCheckFunc(
- testAccCheckAWSRedshiftClusterExists("aws_redshift_cluster.default", &v),
- resource.TestCheckResourceAttr(
- "aws_redshift_cluster.default", "enable_logging", "true"),
- resource.TestCheckResourceAttr(
- "aws_redshift_cluster.default", "bucket_name", fmt.Sprintf("tf-redshift-logging-%d", rInt)),
- ),
- },
-
- {
- Config: testAccAWSRedshiftClusterConfig_loggingDisabledDeprecated(rInt),
- Check: resource.ComposeTestCheckFunc(
- testAccCheckAWSRedshiftClusterExists("aws_redshift_cluster.default", &v),
- resource.TestCheckResourceAttr(
- "aws_redshift_cluster.default", "enable_logging", "false"),
- ),
- },
- },
- })
-}
-
func TestAccAWSRedshiftCluster_loggingEnabled(t *testing.T) {
var v redshift.Cluster
rInt := acctest.RandInt()
@@ -1121,72 +1089,6 @@ resource "aws_redshift_cluster" "default" {
`, rInt)
}
-func testAccAWSRedshiftClusterConfig_loggingDisabledDeprecated(rInt int) string {
- return fmt.Sprintf(`
- resource "aws_redshift_cluster" "default" {
- cluster_identifier = "tf-redshift-cluster-%d"
- availability_zone = "us-west-2a"
- database_name = "mydb"
- master_username = "foo_test"
- master_password = "Mustbe8characters"
- node_type = "dc1.large"
- automated_snapshot_retention_period = 0
- allow_version_upgrade = false
- enable_logging = false
- skip_final_snapshot = true
- }`, rInt)
-}
-
-func testAccAWSRedshiftClusterConfig_loggingEnabledDeprecated(rInt int) string {
- return fmt.Sprintf(`
-data "aws_redshift_service_account" "main" {}
-
- resource "aws_s3_bucket" "bucket" {
- bucket = "tf-redshift-logging-%d"
- force_destroy = true
- policy = < 0 {
@@ -373,6 +371,7 @@ func resourceAwsRouteUpdate(d *schema.ResourceData, meta interface{}) error {
}
}
+ var replaceOpts *ec2.ReplaceRouteInput
// Formulate ReplaceRouteInput based on the target type
switch setTarget {
case "gateway_id":
diff --git a/aws/resource_aws_route53_record.go b/aws/resource_aws_route53_record.go
index 44eb98cd3c3..ae3d6685b0a 100644
--- a/aws/resource_aws_route53_record.go
+++ b/aws/resource_aws_route53_record.go
@@ -83,12 +83,6 @@ func resourceAwsRoute53Record() *schema.Resource {
ConflictsWith: []string{"alias"},
},
- "weight": {
- Type: schema.TypeInt,
- Optional: true,
- Removed: "Now implemented as weighted_routing_policy; Please see https://www.terraform.io/docs/providers/aws/r/route53_record.html",
- },
-
"set_identifier": {
Type: schema.TypeString,
Optional: true,
@@ -125,12 +119,6 @@ func resourceAwsRoute53Record() *schema.Resource {
Set: resourceAwsRoute53AliasRecordHash,
},
- "failover": { // PRIMARY | SECONDARY
- Type: schema.TypeString,
- Optional: true,
- Removed: "Now implemented as failover_routing_policy; see docs",
- },
-
"failover_routing_policy": {
Type: schema.TypeList,
Optional: true,
@@ -247,9 +235,10 @@ func resourceAwsRoute53Record() *schema.Resource {
},
"allow_overwrite": {
- Type: schema.TypeBool,
- Optional: true,
- Default: true,
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ Deprecated: "The next major version of the Terraform AWS Provider will require importing existing records",
},
},
}
diff --git a/aws/resource_aws_route53_resolver_endpoint.go b/aws/resource_aws_route53_resolver_endpoint.go
new file mode 100644
index 00000000000..168cdef6f00
--- /dev/null
+++ b/aws/resource_aws_route53_resolver_endpoint.go
@@ -0,0 +1,331 @@
+package aws
+
+import (
+ "bytes"
+ "fmt"
+ "log"
+ "time"
+
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/service/route53resolver"
+ "github.com/hashicorp/terraform/helper/hashcode"
+ "github.com/hashicorp/terraform/helper/resource"
+ "github.com/hashicorp/terraform/helper/schema"
+ "github.com/hashicorp/terraform/helper/validation"
+)
+
+const (
+ route53ResolverEndpointStatusDeleted = "DELETED"
+)
+
+func resourceAwsRoute53ResolverEndpoint() *schema.Resource {
+ return &schema.Resource{
+ Create: resourceAwsRoute53ResolverEndpointCreate,
+ Read: resourceAwsRoute53ResolverEndpointRead,
+ Update: resourceAwsRoute53ResolverEndpointUpdate,
+ Delete: resourceAwsRoute53ResolverEndpointDelete,
+ Importer: &schema.ResourceImporter{
+ State: schema.ImportStatePassthrough,
+ },
+
+ Schema: map[string]*schema.Schema{
+ "direction": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ ValidateFunc: validation.StringInSlice([]string{
+ route53resolver.ResolverEndpointDirectionInbound,
+ route53resolver.ResolverEndpointDirectionOutbound,
+ }, false),
+ },
+
+ "ip_address": {
+ Type: schema.TypeSet,
+ Required: true,
+ MinItems: 2,
+ MaxItems: 10,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "subnet_id": {
+ Type: schema.TypeString,
+ Required: true,
+ },
+ "ip": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ValidateFunc: validation.SingleIP(),
+ },
+ "ip_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ },
+ },
+ Set: route53ResolverHashIPAddress,
+ },
+
+ "security_group_ids": {
+ Type: schema.TypeSet,
+ Required: true,
+ ForceNew: true,
+ MinItems: 1,
+ MaxItems: 64,
+ Elem: &schema.Schema{Type: schema.TypeString},
+ Set: schema.HashString,
+ },
+
+ "name": {
+ Type: schema.TypeString,
+ Optional: true,
+ ValidateFunc: validateRoute53ResolverEndpointName,
+ },
+
+ "tags": tagsSchema(),
+
+ "arn": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+
+ "host_vpc_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ },
+
+ Timeouts: &schema.ResourceTimeout{
+ Create: schema.DefaultTimeout(10 * time.Minute),
+ Update: schema.DefaultTimeout(10 * time.Minute),
+ Delete: schema.DefaultTimeout(10 * time.Minute),
+ },
+ }
+}
+
+func resourceAwsRoute53ResolverEndpointCreate(d *schema.ResourceData, meta interface{}) error {
+ conn := meta.(*AWSClient).route53resolverconn
+
+ req := &route53resolver.CreateResolverEndpointInput{
+ CreatorRequestId: aws.String(resource.PrefixedUniqueId("tf-r53-resolver-")),
+ Direction: aws.String(d.Get("direction").(string)),
+ IpAddresses: expandRoute53ResolverIpAddresses(d.Get("ip_address").(*schema.Set)),
+ SecurityGroupIds: expandStringSet(d.Get("security_group_ids").(*schema.Set)),
+ }
+ if v, ok := d.GetOk("name"); ok && v.(string) != "" {
+ req.Name = aws.String(v.(string))
+ }
+ if v, ok := d.GetOk("tags"); ok && len(v.(map[string]interface{})) > 0 {
+ req.Tags = tagsFromMapRoute53Resolver(v.(map[string]interface{}))
+ }
+
+ log.Printf("[DEBUG] Creating Route53 Resolver endpoint: %#v", req)
+ resp, err := conn.CreateResolverEndpoint(req)
+ if err != nil {
+ return fmt.Errorf("error creating Route53 Resolver endpoint: %s", err)
+ }
+
+ d.SetId(aws.StringValue(resp.ResolverEndpoint.Id))
+
+ err = route53ResolverEndpointWaitUntilTargetState(conn, d.Id(), d.Timeout(schema.TimeoutCreate),
+ []string{route53resolver.ResolverEndpointStatusCreating},
+ []string{route53resolver.ResolverEndpointStatusOperational})
+ if err != nil {
+ return err
+ }
+
+ return resourceAwsRoute53ResolverEndpointRead(d, meta)
+}
+
+func resourceAwsRoute53ResolverEndpointRead(d *schema.ResourceData, meta interface{}) error {
+ conn := meta.(*AWSClient).route53resolverconn
+
+ epRaw, state, err := route53ResolverEndpointRefresh(conn, d.Id())()
+ if err != nil {
+ return fmt.Errorf("error getting Route53 Resolver endpoint (%s): %s", d.Id(), err)
+ }
+ if state == route53ResolverEndpointStatusDeleted {
+ log.Printf("[WARN] Route53 Resolver endpoint (%s) not found, removing from state", d.Id())
+ d.SetId("")
+ return nil
+ }
+
+ ep := epRaw.(*route53resolver.ResolverEndpoint)
+ d.Set("arn", ep.Arn)
+ d.Set("direction", ep.Direction)
+ d.Set("host_vpc_id", ep.HostVPCId)
+ d.Set("name", ep.Name)
+ if err := d.Set("security_group_ids", flattenStringSet(ep.SecurityGroupIds)); err != nil {
+ return err
+ }
+
+ ipAddresses := []interface{}{}
+ req := &route53resolver.ListResolverEndpointIpAddressesInput{
+ ResolverEndpointId: aws.String(d.Id()),
+ }
+ for {
+ resp, err := conn.ListResolverEndpointIpAddresses(req)
+ if err != nil {
+ return fmt.Errorf("error getting Route53 Resolver endpoint (%s) IP addresses: %s", d.Id(), err)
+ }
+
+ ipAddresses = append(ipAddresses, flattenRoute53ResolverIpAddresses(resp.IpAddresses)...)
+
+ if resp.NextToken == nil {
+ break
+ }
+ req.NextToken = resp.NextToken
+ }
+ if err := d.Set("ip_address", schema.NewSet(route53ResolverHashIPAddress, ipAddresses)); err != nil {
+ return err
+ }
+
+ if err := getTagsRoute53Resolver(conn, d); err != nil {
+ return fmt.Errorf("error getting Route53 Resolver endpoint (%s) tags: %s", d.Id(), err)
+ }
+
+ return nil
+}
+
+func resourceAwsRoute53ResolverEndpointUpdate(d *schema.ResourceData, meta interface{}) error {
+ conn := meta.(*AWSClient).route53resolverconn
+
+ d.Partial(true)
+ if d.HasChange("name") {
+ req := &route53resolver.UpdateResolverEndpointInput{
+ ResolverEndpointId: aws.String(d.Id()),
+ Name: aws.String(d.Get("name").(string)),
+ }
+
+ log.Printf("[DEBUG] Updating Route53 Resolver endpoint: %#v", req)
+ _, err := conn.UpdateResolverEndpoint(req)
+ if err != nil {
+ return fmt.Errorf("error updating Route53 Resolver endpoint (%s): %s", d.Id(), err)
+ }
+
+ err = route53ResolverEndpointWaitUntilTargetState(conn, d.Id(), d.Timeout(schema.TimeoutUpdate),
+ []string{route53resolver.ResolverEndpointStatusUpdating},
+ []string{route53resolver.ResolverEndpointStatusOperational})
+ if err != nil {
+ return err
+ }
+
+ d.SetPartial("name")
+ }
+
+ if d.HasChange("ip_address") {
+ oraw, nraw := d.GetChange("ip_address")
+ o := oraw.(*schema.Set)
+ n := nraw.(*schema.Set)
+ del := o.Difference(n).List()
+ add := n.Difference(o).List()
+
+ // Add new before deleting old so number of IP addresses doesn't drop below 2.
+ for _, v := range add {
+ _, err := conn.AssociateResolverEndpointIpAddress(&route53resolver.AssociateResolverEndpointIpAddressInput{
+ ResolverEndpointId: aws.String(d.Id()),
+ IpAddress: expandRoute53ResolverIpAddressUpdate(v),
+ })
+ if err != nil {
+ return fmt.Errorf("error associating Route53 Resolver endpoint (%s) IP address: %s", d.Id(), err)
+ }
+
+ err = route53ResolverEndpointWaitUntilTargetState(conn, d.Id(), d.Timeout(schema.TimeoutUpdate),
+ []string{route53resolver.ResolverEndpointStatusUpdating},
+ []string{route53resolver.ResolverEndpointStatusOperational})
+ if err != nil {
+ return err
+ }
+ }
+
+ for _, v := range del {
+ _, err := conn.DisassociateResolverEndpointIpAddress(&route53resolver.DisassociateResolverEndpointIpAddressInput{
+ ResolverEndpointId: aws.String(d.Id()),
+ IpAddress: expandRoute53ResolverIpAddressUpdate(v),
+ })
+ if err != nil {
+ return fmt.Errorf("error disassociating Route53 Resolver endpoint (%s) IP address: %s", d.Id(), err)
+ }
+
+ err = route53ResolverEndpointWaitUntilTargetState(conn, d.Id(), d.Timeout(schema.TimeoutUpdate),
+ []string{route53resolver.ResolverEndpointStatusUpdating},
+ []string{route53resolver.ResolverEndpointStatusOperational})
+ if err != nil {
+ return err
+ }
+ }
+
+ d.SetPartial("ip_address")
+ }
+
+ if err := setTagsRoute53Resolver(conn, d); err != nil {
+ return fmt.Errorf("error setting Route53 Resolver endpoint (%s) tags: %s", d.Id(), err)
+ }
+ d.SetPartial("tags")
+
+ d.Partial(false)
+ return resourceAwsRoute53ResolverEndpointRead(d, meta)
+}
+
+func resourceAwsRoute53ResolverEndpointDelete(d *schema.ResourceData, meta interface{}) error {
+ conn := meta.(*AWSClient).route53resolverconn
+
+ log.Printf("[DEBUG] Deleting Route53 Resolver endpoint: %s", d.Id())
+ _, err := conn.DeleteResolverEndpoint(&route53resolver.DeleteResolverEndpointInput{
+ ResolverEndpointId: aws.String(d.Id()),
+ })
+ if err != nil {
+ if isAWSErr(err, route53resolver.ErrCodeResourceNotFoundException, "") {
+ return nil
+ }
+
+ return fmt.Errorf("error deleting Route53 Resolver endpoint (%s): %s", d.Id(), err)
+ }
+
+ err = route53ResolverEndpointWaitUntilTargetState(conn, d.Id(), d.Timeout(schema.TimeoutDelete),
+ []string{route53resolver.ResolverEndpointStatusDeleting},
+ []string{route53ResolverEndpointStatusDeleted})
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func route53ResolverEndpointRefresh(conn *route53resolver.Route53Resolver, epId string) resource.StateRefreshFunc {
+ return func() (interface{}, string, error) {
+ resp, err := conn.GetResolverEndpoint(&route53resolver.GetResolverEndpointInput{
+ ResolverEndpointId: aws.String(epId),
+ })
+ if isAWSErr(err, route53resolver.ErrCodeResourceNotFoundException, "") {
+ return &route53resolver.ResolverEndpoint{}, route53ResolverEndpointStatusDeleted, nil
+ }
+ if err != nil {
+ return nil, "", err
+ }
+
+ return resp.ResolverEndpoint, aws.StringValue(resp.ResolverEndpoint.Status), nil
+ }
+}
+
+func route53ResolverEndpointWaitUntilTargetState(conn *route53resolver.Route53Resolver, epId string, timeout time.Duration, pending, target []string) error {
+ stateConf := &resource.StateChangeConf{
+ Pending: pending,
+ Target: target,
+ Refresh: route53ResolverEndpointRefresh(conn, epId),
+ Timeout: timeout,
+ Delay: 10 * time.Second,
+ MinTimeout: 5 * time.Second,
+ }
+ if _, err := stateConf.WaitForState(); err != nil {
+ return fmt.Errorf("error waiting for Route53 Resolver endpoint (%s) to reach target state: %s", epId, err)
+ }
+
+ return nil
+}
+
+func route53ResolverHashIPAddress(v interface{}) int {
+ var buf bytes.Buffer
+ m := v.(map[string]interface{})
+ buf.WriteString(fmt.Sprintf("%s-", m["subnet_id"].(string)))
+ return hashcode.String(buf.String())
+}
diff --git a/aws/resource_aws_route53_resolver_endpoint_test.go b/aws/resource_aws_route53_resolver_endpoint_test.go
new file mode 100644
index 00000000000..5611ded5d04
--- /dev/null
+++ b/aws/resource_aws_route53_resolver_endpoint_test.go
@@ -0,0 +1,309 @@
+package aws
+
+import (
+ "fmt"
+ "log"
+ "testing"
+ "time"
+
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/service/route53resolver"
+ "github.com/hashicorp/terraform/helper/acctest"
+ "github.com/hashicorp/terraform/helper/resource"
+ "github.com/hashicorp/terraform/terraform"
+)
+
+func init() {
+ resource.AddTestSweepers("aws_route53_resolver_endpoint", &resource.Sweeper{
+ Name: "aws_route53_resolver_endpoint",
+ F: testSweepRoute53ResolverEndpoints,
+ })
+}
+
+func testSweepRoute53ResolverEndpoints(region string) error {
+ client, err := sharedClientForRegion(region)
+ if err != nil {
+ return fmt.Errorf("error getting client: %s", err)
+ }
+ conn := client.(*AWSClient).route53resolverconn
+
+ err = conn.ListResolverEndpointsPages(&route53resolver.ListResolverEndpointsInput{}, func(page *route53resolver.ListResolverEndpointsOutput, isLast bool) bool {
+ if page == nil {
+ return !isLast
+ }
+
+ for _, resolverEndpoint := range page.ResolverEndpoints {
+ id := aws.StringValue(resolverEndpoint.Id)
+
+ log.Printf("[INFO] Deleting Route53 Resolver endpoint: %s", id)
+ _, err := conn.DeleteResolverEndpoint(&route53resolver.DeleteResolverEndpointInput{
+ ResolverEndpointId: aws.String(id),
+ })
+ if isAWSErr(err, route53resolver.ErrCodeResourceNotFoundException, "") {
+ continue
+ }
+ if err != nil {
+ log.Printf("[ERROR] Error deleting Route53 Resolver endpoint (%s): %s", id, err)
+ continue
+ }
+
+ err = route53ResolverEndpointWaitUntilTargetState(conn, id, 10*time.Minute,
+ []string{route53resolver.ResolverEndpointStatusDeleting},
+ []string{route53ResolverEndpointStatusDeleted})
+ if err != nil {
+ log.Printf("[ERROR] %s", err)
+ }
+ }
+
+ return !isLast
+ })
+ if err != nil {
+ if testSweepSkipSweepError(err) {
+ log.Printf("[WARN] Skipping Route53 Resolver endpoint sweep for %s: %s", region, err)
+ return nil
+ }
+ return fmt.Errorf("error retrievingRoute53 Resolver endpoints: %s", err)
+ }
+
+ return nil
+}
+
+func TestAccAwsRoute53ResolverEndpoint_basicInbound(t *testing.T) {
+ var ep route53resolver.ResolverEndpoint
+ resourceName := "aws_route53_resolver_endpoint.foo"
+ rInt := acctest.RandInt()
+ name := fmt.Sprintf("terraform-testacc-r53-resolver-%d", rInt)
+
+ resource.ParallelTest(t, resource.TestCase{
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProviders,
+ CheckDestroy: testAccCheckRoute53ResolverEndpointDestroy,
+ Steps: []resource.TestStep{
+ {
+ Config: testAccRoute53ResolverEndpointConfig_initial(rInt, "INBOUND", name),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckRoute53ResolverEndpointExists(resourceName, &ep),
+ resource.TestCheckResourceAttr(resourceName, "name", name),
+ resource.TestCheckResourceAttr(resourceName, "ip_address.#", "2"),
+ resource.TestCheckResourceAttr(resourceName, "security_group_ids.#", "2"),
+ resource.TestCheckResourceAttr(resourceName, "tags.%", "2"),
+ resource.TestCheckResourceAttr(resourceName, "tags.Usage", "original"),
+ ),
+ },
+ {
+ ResourceName: resourceName,
+ ImportState: true,
+ ImportStateVerify: true,
+ },
+ },
+ })
+}
+
+func TestAccAwsRoute53ResolverEndpoint_updateOutbound(t *testing.T) {
+ var ep route53resolver.ResolverEndpoint
+ resourceName := "aws_route53_resolver_endpoint.foo"
+ rInt := acctest.RandInt()
+ initialName := fmt.Sprintf("terraform-testacc-r53-resolver-%d", rInt)
+ updatedName := fmt.Sprintf("terraform-testacc-r53-rupdated-%d", rInt)
+
+ resource.ParallelTest(t, resource.TestCase{
+ PreCheck: func() { testAccPreCheck(t) },
+ Providers: testAccProviders,
+ CheckDestroy: testAccCheckRoute53ResolverEndpointDestroy,
+ Steps: []resource.TestStep{
+ {
+ Config: testAccRoute53ResolverEndpointConfig_initial(rInt, "OUTBOUND", initialName),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckRoute53ResolverEndpointExists(resourceName, &ep),
+ resource.TestCheckResourceAttr(resourceName, "name", initialName),
+ resource.TestCheckResourceAttr(resourceName, "ip_address.#", "2"),
+ resource.TestCheckResourceAttr(resourceName, "security_group_ids.#", "2"),
+ resource.TestCheckResourceAttr(resourceName, "tags.%", "2"),
+ resource.TestCheckResourceAttr(resourceName, "tags.Usage", "original"),
+ ),
+ },
+ {
+ Config: testAccRoute53ResolverEndpointConfig_updated(rInt, "OUTBOUND", updatedName),
+ Check: resource.ComposeTestCheckFunc(
+ testAccCheckRoute53ResolverEndpointExists(resourceName, &ep),
+ resource.TestCheckResourceAttr(resourceName, "name", updatedName),
+ resource.TestCheckResourceAttr(resourceName, "ip_address.#", "2"),
+ resource.TestCheckResourceAttr(resourceName, "security_group_ids.#", "2"),
+ resource.TestCheckResourceAttr(resourceName, "tags.%", "1"),
+ resource.TestCheckResourceAttr(resourceName, "tags.Usage", "changed"),
+ ),
+ },
+ },
+ })
+}
+
+func testAccCheckRoute53ResolverEndpointDestroy(s *terraform.State) error {
+ conn := testAccProvider.Meta().(*AWSClient).route53resolverconn
+
+ for _, rs := range s.RootModule().Resources {
+ if rs.Type != "aws_route53_resolver_endpoint" {
+ continue
+ }
+
+ // Try to find the resource
+ _, err := conn.GetResolverEndpoint(&route53resolver.GetResolverEndpointInput{
+ ResolverEndpointId: aws.String(rs.Primary.ID),
+ })
+ // Verify the error is what we want
+ if isAWSErr(err, route53resolver.ErrCodeResourceNotFoundException, "") {
+ return nil
+ }
+ if err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func testAccCheckRoute53ResolverEndpointExists(n string, ep *route53resolver.ResolverEndpoint) resource.TestCheckFunc {
+ return func(s *terraform.State) error {
+ rs, ok := s.RootModule().Resources[n]
+ if !ok {
+ return fmt.Errorf("Not found: %s", n)
+ }
+
+ if rs.Primary.ID == "" {
+ return fmt.Errorf("No Route 53 Resolver Endpoint ID is set")
+ }
+
+ conn := testAccProvider.Meta().(*AWSClient).route53resolverconn
+ resp, err := conn.GetResolverEndpoint(&route53resolver.GetResolverEndpointInput{
+ ResolverEndpointId: aws.String(rs.Primary.ID),
+ })
+ if err != nil {
+ return err
+ }
+
+ *ep = *resp.ResolverEndpoint
+
+ return nil
+ }
+}
+
+func testAccRoute53ResolverEndpointConfig_base(rInt int) string {
+ return fmt.Sprintf(`
+resource "aws_vpc" "foo" {
+ cidr_block = "10.0.0.0/16"
+ enable_dns_support = true
+ enable_dns_hostnames = true
+
+ tags = {
+ Name = "terraform-testacc-r53-resolver-vpc-%d"
+ }
+}
+
+data "aws_availability_zones" "available" {}
+
+resource "aws_subnet" "sn1" {
+ vpc_id = "${aws_vpc.foo.id}"
+ cidr_block = "${cidrsubnet(aws_vpc.foo.cidr_block, 2, 0)}"
+ availability_zone = "${data.aws_availability_zones.available.names[0]}"
+
+ tags = {
+ Name = "tf-acc-r53-resolver-sn1-%d"
+ }
+}
+
+resource "aws_subnet" "sn2" {
+ vpc_id = "${aws_vpc.foo.id}"
+ cidr_block = "${cidrsubnet(aws_vpc.foo.cidr_block, 2, 1)}"
+ availability_zone = "${data.aws_availability_zones.available.names[1]}"
+
+ tags = {
+ Name = "tf-acc-r53-resolver-sn2-%d"
+ }
+}
+
+resource "aws_subnet" "sn3" {
+ vpc_id = "${aws_vpc.foo.id}"
+ cidr_block = "${cidrsubnet(aws_vpc.foo.cidr_block, 2, 2)}"
+ availability_zone = "${data.aws_availability_zones.available.names[2]}"
+
+ tags = {
+ Name = "tf-acc-r53-resolver-sn3-%d"
+ }
+}
+
+resource "aws_security_group" "sg1" {
+ vpc_id = "${aws_vpc.foo.id}"
+ name = "tf-acc-r53-resolver-sg1-%d"
+
+ tags = {
+ Name = "tf-acc-r53-resolver-sg1-%d"
+ }
+}
+
+resource "aws_security_group" "sg2" {
+ vpc_id = "${aws_vpc.foo.id}"
+ name = "tf-acc-r53-resolver-sg2-%d"
+
+ tags = {
+ Name = "tf-acc-r53-resolver-sg2-%d"
+ }
+}
+`, rInt, rInt, rInt, rInt, rInt, rInt, rInt, rInt)
+}
+
+func testAccRoute53ResolverEndpointConfig_initial(rInt int, direction, name string) string {
+ return fmt.Sprintf(`
+%s
+
+resource "aws_route53_resolver_endpoint" "foo" {
+ direction = "%s"
+ name = "%s"
+
+ security_group_ids = [
+ "${aws_security_group.sg1.id}",
+ "${aws_security_group.sg2.id}",
+ ]
+
+ ip_address {
+ subnet_id = "${aws_subnet.sn1.id}"
+ }
+
+ ip_address {
+ subnet_id = "${aws_subnet.sn2.id}"
+ ip = "${cidrhost(aws_subnet.sn2.cidr_block, 8)}"
+ }
+
+ tags = {
+ Environment = "production"
+ Usage = "original"
+ }
+}
+`, testAccRoute53ResolverEndpointConfig_base(rInt), direction, name)
+}
+
+func testAccRoute53ResolverEndpointConfig_updated(rInt int, direction, name string) string {
+ return fmt.Sprintf(`
+%s
+
+resource "aws_route53_resolver_endpoint" "foo" {
+ direction = "%s"
+ name = "%s"
+
+ security_group_ids = [
+ "${aws_security_group.sg1.id}",
+ "${aws_security_group.sg2.id}",
+ ]
+
+ ip_address {
+ subnet_id = "${aws_subnet.sn1.id}"
+ }
+
+ ip_address {
+ subnet_id = "${aws_subnet.sn3.id}"
+ }
+
+ tags = {
+ Usage = "changed"
+ }
+}
+`, testAccRoute53ResolverEndpointConfig_base(rInt), direction, name)
+}
diff --git a/aws/resource_aws_route53_zone.go b/aws/resource_aws_route53_zone.go
index 2367c1fbcca..3df89ece3f8 100644
--- a/aws/resource_aws_route53_zone.go
+++ b/aws/resource_aws_route53_zone.go
@@ -41,12 +41,10 @@ func resourceAwsRoute53Zone() *schema.Resource {
},
"vpc": {
- Type: schema.TypeSet,
- Optional: true,
- // Deprecated: Remove Computed: true in next major version of the provider
- Computed: true,
+ Type: schema.TypeSet,
+ Optional: true,
MinItems: 1,
- ConflictsWith: []string{"delegation_set_id", "vpc_id", "vpc_region"},
+ ConflictsWith: []string{"delegation_set_id"},
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"vpc_id": {
@@ -65,21 +63,19 @@ func resourceAwsRoute53Zone() *schema.Resource {
},
"vpc_id": {
- Type: schema.TypeString,
- Optional: true,
- ForceNew: true,
- Computed: true,
- ConflictsWith: []string{"delegation_set_id", "vpc"},
- Deprecated: "use 'vpc' attribute instead",
+ Type: schema.TypeString,
+ Optional: true,
+ ForceNew: true,
+ Computed: true,
+ Removed: "use 'vpc' configuration block instead",
},
"vpc_region": {
- Type: schema.TypeString,
- Optional: true,
- ForceNew: true,
- Computed: true,
- ConflictsWith: []string{"delegation_set_id", "vpc"},
- Deprecated: "use 'vpc' attribute instead",
+ Type: schema.TypeString,
+ Optional: true,
+ ForceNew: true,
+ Computed: true,
+ Removed: "use 'vpc' configuration block instead",
},
"zone_id": {
@@ -91,7 +87,7 @@ func resourceAwsRoute53Zone() *schema.Resource {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
- ConflictsWith: []string{"vpc_id"},
+ ConflictsWith: []string{"vpc"},
},
"name_servers": {
@@ -132,20 +128,6 @@ func resourceAwsRoute53ZoneCreate(d *schema.ResourceData, meta interface{}) erro
var vpcs []*route53.VPC = expandRoute53VPCs(d.Get("vpc").(*schema.Set).List(), region)
- // Backwards compatibility
- if vpcID, ok := d.GetOk("vpc_id"); ok {
- vpc := &route53.VPC{
- VPCId: aws.String(vpcID.(string)),
- VPCRegion: aws.String(region),
- }
-
- if vpcRegion, ok := d.GetOk("vpc_region"); ok {
- vpc.VPCRegion = aws.String(vpcRegion.(string))
- }
-
- vpcs = []*route53.VPC{vpc}
- }
-
if len(vpcs) > 0 {
input.VPC = vpcs[0]
}
@@ -238,30 +220,6 @@ func resourceAwsRoute53ZoneRead(d *schema.ResourceData, meta interface{}) error
return fmt.Errorf("error setting name_servers: %s", err)
}
- // Backwards compatibility: only set vpc_id/vpc_region if either is true:
- // * Previously configured
- // * Only one VPC association
- existingVpcID := d.Get("vpc_id").(string)
-
- // Detect drift in configuration
- d.Set("vpc_id", "")
- d.Set("vpc_region", "")
-
- if len(output.VPCs) == 1 && output.VPCs[0] != nil {
- d.Set("vpc_id", output.VPCs[0].VPCId)
- d.Set("vpc_region", output.VPCs[0].VPCRegion)
- } else if len(output.VPCs) > 1 {
- for _, vpc := range output.VPCs {
- if vpc == nil {
- continue
- }
- if aws.StringValue(vpc.VPCId) == existingVpcID {
- d.Set("vpc_id", vpc.VPCId)
- d.Set("vpc_region", vpc.VPCRegion)
- }
- }
- }
-
if err := d.Set("vpc", flattenRoute53VPCs(output.VPCs)); err != nil {
return fmt.Errorf("error setting vpc: %s", err)
}
diff --git a/aws/resource_aws_route53_zone_association_test.go b/aws/resource_aws_route53_zone_association_test.go
index 6d4d73245e6..1257f4d9e7c 100644
--- a/aws/resource_aws_route53_zone_association_test.go
+++ b/aws/resource_aws_route53_zone_association_test.go
@@ -142,7 +142,12 @@ resource "aws_vpc" "bar" {
resource "aws_route53_zone" "foo" {
name = "foo.com"
- vpc_id = "${aws_vpc.foo.id}"
+ vpc {
+ vpc_id = "${aws_vpc.foo.id}"
+ }
+ lifecycle {
+ ignore_changes = ["vpc"]
+ }
}
resource "aws_route53_zone_association" "foobar" {
@@ -185,8 +190,13 @@ resource "aws_vpc" "bar" {
resource "aws_route53_zone" "foo" {
provider = "aws.west"
name = "foo.com"
- vpc_id = "${aws_vpc.foo.id}"
- vpc_region = "us-west-2"
+ vpc {
+ vpc_id = "${aws_vpc.foo.id}"
+ vpc_region = "us-west-2"
+ }
+ lifecycle {
+ ignore_changes = ["vpc"]
+ }
}
resource "aws_route53_zone_association" "foobar" {
diff --git a/aws/resource_aws_route53_zone_test.go b/aws/resource_aws_route53_zone_test.go
index 9d9d8bbde48..55941a0a76b 100644
--- a/aws/resource_aws_route53_zone_test.go
+++ b/aws/resource_aws_route53_zone_test.go
@@ -385,77 +385,6 @@ func TestAccAWSRoute53Zone_VPC_Updates(t *testing.T) {
})
}
-func TestAccAWSRoute53Zone_VPCID(t *testing.T) {
- var zone route53.GetHostedZoneOutput
-
- rString := acctest.RandString(8)
- resourceName := "aws_route53_zone.test"
- vpcResourceName := "aws_vpc.test"
- zoneName := fmt.Sprintf("%s.terraformtest.com", rString)
-
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- Providers: testAccProviders,
- CheckDestroy: testAccCheckRoute53ZoneDestroy,
- Steps: []resource.TestStep{
- {
- Config: testAccRoute53ZoneConfigVPCID(zoneName),
- Check: resource.ComposeTestCheckFunc(
- testAccCheckRoute53ZoneExists(resourceName, &zone),
- resource.TestCheckResourceAttr(resourceName, "vpc.#", "1"),
- resource.TestCheckResourceAttrPair(resourceName, "vpc_id", vpcResourceName, "id"),
- testAccCheckRoute53ZoneAssociatesWithVpc(vpcResourceName, &zone),
- ),
- },
- {
- ResourceName: resourceName,
- ImportState: true,
- ImportStateVerify: true,
- ImportStateVerifyIgnore: []string{"force_destroy"},
- },
- },
- })
-}
-
-func TestAccAWSRoute53Zone_VPCRegion(t *testing.T) {
- var zone route53.GetHostedZoneOutput
-
- rString := acctest.RandString(8)
- resourceName := "aws_route53_zone.test"
- vpcResourceName := "aws_vpc.test"
- zoneName := fmt.Sprintf("%s.terraformtest.com", rString)
-
- // record the initialized providers so that we can use them to
- // check for the instances in each region
- var providers []*schema.Provider
-
- resource.ParallelTest(t, resource.TestCase{
- PreCheck: func() { testAccPreCheck(t) },
- ProviderFactories: testAccProviderFactories(&providers),
- CheckDestroy: testAccCheckWithProviders(testAccCheckRoute53ZoneDestroyWithProvider, &providers),
- Steps: []resource.TestStep{
- {
- Config: testAccRoute53ZoneConfigVPCRegion(zoneName),
- Check: resource.ComposeTestCheckFunc(
- testAccCheckRoute53ZoneExistsWithProvider(resourceName, &zone,
- testAccAwsRegionProviderFunc("us-west-2", &providers)),
- resource.TestCheckResourceAttr(resourceName, "vpc.#", "1"),
- resource.TestCheckResourceAttrPair(resourceName, "vpc_id", vpcResourceName, "id"),
- testAccCheckRoute53ZoneAssociatesWithVpc(vpcResourceName, &zone),
- ),
- },
- {
- // Config must be provided for aliased provider
- Config: testAccRoute53ZoneConfigVPCRegion(zoneName),
- ResourceName: resourceName,
- ImportState: true,
- ImportStateVerify: true,
- ImportStateVerifyIgnore: []string{"force_destroy"},
- },
- },
- })
-}
-
func testAccCheckRoute53ZoneDestroy(s *terraform.State) error {
return testAccCheckRoute53ZoneDestroyWithProvider(s, testAccProvider)
}
@@ -705,55 +634,6 @@ resource "aws_route53_zone" "test" {
`, zoneName, tag1Key, tag1Value, tag2Key, tag2Value)
}
-func testAccRoute53ZoneConfigVPCID(zoneName string) string {
- return fmt.Sprintf(`
-resource "aws_vpc" "test" {
- cidr_block = "172.29.0.0/24"
-
- tags = {
- Name = "terraform-testacc-route53-zone-private"
- }
-}
-
-resource "aws_route53_zone" "test" {
- name = "%s."
- vpc_id = "${aws_vpc.test.id}"
-}
-`, zoneName)
-}
-
-func testAccRoute53ZoneConfigVPCRegion(zoneName string) string {
- return fmt.Sprintf(`
-provider "aws" {
- alias = "west"
- region = "us-west-2"
-}
-
-provider "aws" {
- alias = "east"
- region = "us-east-1"
-}
-
-resource "aws_vpc" "test" {
- provider = "aws.east"
-
- cidr_block = "172.29.0.0/24"
-
- tags = {
- Name = "terraform-testacc-route53-zone-private-region"
- }
-}
-
-resource "aws_route53_zone" "test" {
- provider = "aws.west"
-
- name = "%s."
- vpc_id = "${aws_vpc.test.id}"
- vpc_region = "us-east-1"
-}
-`, zoneName)
-}
-
func testAccRoute53ZoneConfigVPCSingle(rName, zoneName string) string {
return fmt.Sprintf(`
resource "aws_vpc" "test1" {
diff --git a/aws/resource_aws_route_table.go b/aws/resource_aws_route_table.go
index a2010ce09f9..81e1089a929 100644
--- a/aws/resource_aws_route_table.go
+++ b/aws/resource_aws_route_table.go
@@ -21,7 +21,7 @@ func resourceAwsRouteTable() *schema.Resource {
Update: resourceAwsRouteTableUpdate,
Delete: resourceAwsRouteTableDelete,
Importer: &schema.ResourceImporter{
- State: resourceAwsRouteTableImportState,
+ State: schema.ImportStatePassthrough,
},
Schema: map[string]*schema.Schema{
diff --git a/aws/resource_aws_s3_bucket.go b/aws/resource_aws_s3_bucket.go
index dc6a8ade9db..ae935d56baa 100644
--- a/aws/resource_aws_s3_bucket.go
+++ b/aws/resource_aws_s3_bucket.go
@@ -39,12 +39,14 @@ func resourceAwsS3Bucket() *schema.Resource {
Computed: true,
ForceNew: true,
ConflictsWith: []string{"bucket_prefix"},
+ ValidateFunc: validation.StringLenBetween(3, 63),
},
"bucket_prefix": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ConflictsWith: []string{"bucket"},
+ ValidateFunc: validation.StringLenBetween(0, 63-resource.UniqueIDSuffixLength),
},
"bucket_domain_name": {
diff --git a/aws/resource_aws_s3_bucket_notification.go b/aws/resource_aws_s3_bucket_notification.go
index 4e313b6e833..847762c599c 100644
--- a/aws/resource_aws_s3_bucket_notification.go
+++ b/aws/resource_aws_s3_bucket_notification.go
@@ -399,6 +399,10 @@ func resourceAwsS3BucketNotificationRead(d *schema.ResourceData, meta interface{
func flattenNotificationConfigurationFilter(filter *s3.NotificationConfigurationFilter) map[string]interface{} {
filterRules := map[string]interface{}{}
+ if filter.Key == nil || filter.Key.FilterRules == nil {
+ return filterRules
+ }
+
for _, f := range filter.Key.FilterRules {
if strings.ToLower(*f.Name) == s3.FilterRuleNamePrefix {
filterRules["filter_prefix"] = *f.Value
diff --git a/aws/resource_aws_s3_bucket_object.go b/aws/resource_aws_s3_bucket_object.go
index b320a4aa0b1..1cd5f188848 100644
--- a/aws/resource_aws_s3_bucket_object.go
+++ b/aws/resource_aws_s3_bucket_object.go
@@ -175,8 +175,6 @@ func resourceAwsS3BucketObject() *schema.Resource {
func resourceAwsS3BucketObjectPut(d *schema.ResourceData, meta interface{}) error {
s3conn := meta.(*AWSClient).s3conn
- restricted := meta.(*AWSClient).IsChinaCloud()
-
var body io.ReadSeeker
if v, ok := d.GetOk("source"); ok {
@@ -267,10 +265,6 @@ func resourceAwsS3BucketObjectPut(d *schema.ResourceData, meta interface{}) erro
}
if v, ok := d.GetOk("tags"); ok {
- if restricted {
- return fmt.Errorf("This region does not allow for tags on S3 objects")
- }
-
// The tag-set must be encoded as URL Query parameters.
values := url.Values{}
for k, v := range v.(map[string]interface{}) {
@@ -298,8 +292,6 @@ func resourceAwsS3BucketObjectCreate(d *schema.ResourceData, meta interface{}) e
func resourceAwsS3BucketObjectRead(d *schema.ResourceData, meta interface{}) error {
s3conn := meta.(*AWSClient).s3conn
- restricted := meta.(*AWSClient).IsChinaCloud()
-
bucket := d.Get("bucket").(string)
key := d.Get("key").(string)
@@ -367,10 +359,8 @@ func resourceAwsS3BucketObjectRead(d *schema.ResourceData, meta interface{}) err
d.Set("storage_class", resp.StorageClass)
}
- if !restricted {
- if err := getTagsS3Object(s3conn, d); err != nil {
- return fmt.Errorf("error getting S3 object tags (bucket: %s, key: %s): %s", bucket, key, err)
- }
+ if err := getTagsS3Object(s3conn, d); err != nil {
+ return fmt.Errorf("error getting S3 object tags (bucket: %s, key: %s): %s", bucket, key, err)
}
return nil
diff --git a/aws/resource_aws_s3_bucket_test.go b/aws/resource_aws_s3_bucket_test.go
index fc1c10545ce..87fb0809e02 100644
--- a/aws/resource_aws_s3_bucket_test.go
+++ b/aws/resource_aws_s3_bucket_test.go
@@ -1,7 +1,6 @@
package aws
import (
- "bytes"
"encoding/json"
"fmt"
"log"
@@ -11,7 +10,6 @@ import (
"strconv"
"strings"
"testing"
- "text/template"
"time"
"github.com/aws/aws-sdk-go/aws"
@@ -2021,74 +2019,68 @@ resource "aws_s3_bucket" "bucket" {
}
func testAccAWSS3MultiBucketConfigWithTags(randInt int) string {
- t := template.Must(template.New("t1").
- Parse(`
+ return fmt.Sprintf(`
resource "aws_s3_bucket" "bucket1" {
- bucket = "tf-test-bucket-1-{{.GUID}}"
+ bucket = "tf-test-bucket-1-%[1]d"
acl = "private"
force_destroy = true
tags = {
- Name = "tf-test-bucket-1-{{.GUID}}"
- Environment = "{{.GUID}}"
+ Name = "tf-test-bucket-1-%[1]d"
+ Environment = "%[1]d"
}
}
resource "aws_s3_bucket" "bucket2" {
- bucket = "tf-test-bucket-2-{{.GUID}}"
+ bucket = "tf-test-bucket-2-%[1]d"
acl = "private"
force_destroy = true
tags = {
- Name = "tf-test-bucket-2-{{.GUID}}"
- Environment = "{{.GUID}}"
+ Name = "tf-test-bucket-2-%[1]d"
+ Environment = "%[1]d"
}
}
resource "aws_s3_bucket" "bucket3" {
- bucket = "tf-test-bucket-3-{{.GUID}}"
+ bucket = "tf-test-bucket-3-%[1]d"
acl = "private"
force_destroy = true
tags = {
- Name = "tf-test-bucket-3-{{.GUID}}"
- Environment = "{{.GUID}}"
+ Name = "tf-test-bucket-3-%[1]d"
+ Environment = "%[1]d"
}
}
resource "aws_s3_bucket" "bucket4" {
- bucket = "tf-test-bucket-4-{{.GUID}}"
+ bucket = "tf-test-bucket-4-%[1]d"
acl = "private"
force_destroy = true
tags = {
- Name = "tf-test-bucket-4-{{.GUID}}"
- Environment = "{{.GUID}}"
+ Name = "tf-test-bucket-4-%[1]d"
+ Environment = "%[1]d"
}
}
resource "aws_s3_bucket" "bucket5" {
- bucket = "tf-test-bucket-5-{{.GUID}}"
+ bucket = "tf-test-bucket-5-%[1]d"
acl = "private"
force_destroy = true
tags = {
- Name = "tf-test-bucket-5-{{.GUID}}"
- Environment = "{{.GUID}}"
+ Name = "tf-test-bucket-5-%[1]d"
+ Environment = "%[1]d"
}
}
resource "aws_s3_bucket" "bucket6" {
- bucket = "tf-test-bucket-6-{{.GUID}}"
+ bucket = "tf-test-bucket-6-%[1]d"
acl = "private"
force_destroy = true
tags = {
- Name = "tf-test-bucket-6-{{.GUID}}"
- Environment = "{{.GUID}}"
+ Name = "tf-test-bucket-6-%[1]d"
+ Environment = "%[1]d"
}
}
-`))
- var doc bytes.Buffer
- // TODO: Convert to fmt.Sprintf() (https://github.com/terraform-providers/terraform-provider-aws/issues/7456)
- if err := t.Execute(&doc, struct{ GUID int }{GUID: randInt}); err != nil {
- panic(fmt.Sprintf("error executing template: %s", err))
- }
- return doc.String()
+
+`, randInt)
}
func testAccAWSS3BucketConfigWithRegion(bucketName, region string) string {
diff --git a/aws/resource_aws_sfn_state_machine_test.go b/aws/resource_aws_sfn_state_machine_test.go
index de649810ecf..7b8cacfef9d 100644
--- a/aws/resource_aws_sfn_state_machine_test.go
+++ b/aws/resource_aws_sfn_state_machine_test.go
@@ -137,9 +137,7 @@ func testAccCheckAWSSfnStateMachineDestroy(s *terraform.State) error {
func testAccAWSSfnStateMachineConfig(rName string, rMaxAttempts int) string {
return fmt.Sprintf(`
-data "aws_region" "current" {
- current = true
-}
+data "aws_region" "current" {}
resource "aws_iam_role_policy" "iam_policy_for_lambda" {
name = "iam_policy_for_lambda_%s"
@@ -256,9 +254,7 @@ EOF
func testAccAWSSfnStateMachineConfigTags1(rName string, tag1Key, tag1Value string) string {
return fmt.Sprintf(`
-data "aws_region" "current" {
- current = true
-}
+data "aws_region" "current" {}
resource "aws_iam_role_policy" "iam_policy_for_lambda" {
name = "iam_policy_for_lambda_%s"
@@ -377,9 +373,7 @@ tags = {
func testAccAWSSfnStateMachineConfigTags2(rName string, tag1Key, tag1Value, tag2Key, tag2Value string) string {
return fmt.Sprintf(`
-data "aws_region" "current" {
- current = true
-}
+data "aws_region" "current" {}
resource "aws_iam_role_policy" "iam_policy_for_lambda" {
name = "iam_policy_for_lambda_%s"
diff --git a/aws/resource_aws_spot_instance_request_test.go b/aws/resource_aws_spot_instance_request_test.go
index 9a4eb85ebda..1c61ecbae8b 100644
--- a/aws/resource_aws_spot_instance_request_test.go
+++ b/aws/resource_aws_spot_instance_request_test.go
@@ -756,11 +756,7 @@ func testAccAWSSpotInstanceRequestConfig_getPasswordData(rInt int) string {
# Find latest Microsoft Windows Server 2016 Core image (Amazon deletes old ones)
data "aws_ami" "win2016core" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
diff --git a/aws/resource_aws_storagegateway_gateway_test.go b/aws/resource_aws_storagegateway_gateway_test.go
index 27542061266..a8f26501411 100644
--- a/aws/resource_aws_storagegateway_gateway_test.go
+++ b/aws/resource_aws_storagegateway_gateway_test.go
@@ -464,11 +464,7 @@ func testAccAWSStorageGateway_FileGatewayBase(rName string) string {
return testAccAWSStorageGateway_VPCBase(rName) + fmt.Sprintf(`
data "aws_ami" "aws-thinstaller" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -499,11 +495,7 @@ func testAccAWSStorageGateway_TapeAndVolumeGatewayBase(rName string) string {
return testAccAWSStorageGateway_VPCBase(rName) + fmt.Sprintf(`
data "aws_ami" "aws-storage-gateway-2" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
@@ -688,11 +680,7 @@ resource "aws_vpc_dhcp_options_association" "test" {
data "aws_ami" "aws-thinstaller" {
most_recent = true
-
- filter {
- name = "owner-alias"
- values = ["amazon"]
- }
+ owners = ["amazon"]
filter {
name = "name"
diff --git a/aws/resource_aws_subnet_test.go b/aws/resource_aws_subnet_test.go
index cfa7b479e67..883fd44bbb3 100644
--- a/aws/resource_aws_subnet_test.go
+++ b/aws/resource_aws_subnet_test.go
@@ -37,6 +37,7 @@ func init() {
"aws_mq_broker",
"aws_network_interface",
"aws_redshift_cluster",
+ "aws_route53_resolver_endpoint",
"aws_spot_fleet_request",
"aws_vpc_endpoint",
},
diff --git a/aws/resource_aws_vpn_connection.go b/aws/resource_aws_vpn_connection.go
index 8b82cb99199..64e3461e7cb 100644
--- a/aws/resource_aws_vpn_connection.go
+++ b/aws/resource_aws_vpn_connection.go
@@ -144,7 +144,6 @@ func resourceAwsVpnConnection() *schema.Resource {
"customer_gateway_configuration": {
Type: schema.TypeString,
Computed: true,
- Optional: true,
},
"tunnel1_address": {
@@ -192,25 +191,21 @@ func resourceAwsVpnConnection() *schema.Resource {
"routes": {
Type: schema.TypeSet,
Computed: true,
- Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"destination_cidr_block": {
Type: schema.TypeString,
Computed: true,
- Optional: true,
},
"source": {
Type: schema.TypeString,
Computed: true,
- Optional: true,
},
"state": {
Type: schema.TypeString,
Computed: true,
- Optional: true,
},
},
},
@@ -227,37 +222,31 @@ func resourceAwsVpnConnection() *schema.Resource {
"vgw_telemetry": {
Type: schema.TypeSet,
Computed: true,
- Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"accepted_route_count": {
Type: schema.TypeInt,
Computed: true,
- Optional: true,
},
"last_status_change": {
Type: schema.TypeString,
Computed: true,
- Optional: true,
},
"outside_ip_address": {
Type: schema.TypeString,
Computed: true,
- Optional: true,
},
"status": {
Type: schema.TypeString,
Computed: true,
- Optional: true,
},
"status_message": {
Type: schema.TypeString,
Computed: true,
- Optional: true,
},
},
},
diff --git a/aws/resource_aws_wafregional_byte_match_set.go b/aws/resource_aws_wafregional_byte_match_set.go
index f2578764aba..4e24b08c01e 100644
--- a/aws/resource_aws_wafregional_byte_match_set.go
+++ b/aws/resource_aws_wafregional_byte_match_set.go
@@ -24,10 +24,9 @@ func resourceAwsWafRegionalByteMatchSet() *schema.Resource {
ForceNew: true,
},
"byte_match_tuple": {
- Type: schema.TypeSet,
- Optional: true,
- ConflictsWith: []string{"byte_match_tuples"},
- Deprecated: "use `byte_match_tuples` instead",
+ Type: schema.TypeSet,
+ Optional: true,
+ Removed: "use `byte_match_tuples` configuration block(s) instead",
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"field_to_match": {
@@ -155,15 +154,10 @@ func resourceAwsWafRegionalByteMatchSetRead(d *schema.ResourceData, meta interfa
return nil
}
- if _, ok := d.GetOk("byte_match_tuple"); ok {
- if err := d.Set("byte_match_tuple", flattenWafByteMatchTuplesWR(resp.ByteMatchSet.ByteMatchTuples)); err != nil {
- return fmt.Errorf("error setting byte_match_tuple: %s", err)
- }
- } else {
- if err := d.Set("byte_match_tuples", flattenWafByteMatchTuplesWR(resp.ByteMatchSet.ByteMatchTuples)); err != nil {
- return fmt.Errorf("error setting byte_match_tuples: %s", err)
- }
+ if err := d.Set("byte_match_tuples", flattenWafByteMatchTuplesWR(resp.ByteMatchSet.ByteMatchTuples)); err != nil {
+ return fmt.Errorf("error setting byte_match_tuples: %s", err)
}
+
d.Set("name", resp.ByteMatchSet.Name)
return nil
@@ -195,15 +189,7 @@ func resourceAwsWafRegionalByteMatchSetUpdate(d *schema.ResourceData, meta inter
region := meta.(*AWSClient).region
log.Printf("[INFO] Updating ByteMatchSet: %s", d.Get("name").(string))
- if d.HasChange("byte_match_tuple") {
- o, n := d.GetChange("byte_match_tuple")
- oldT, newT := o.(*schema.Set).List(), n.(*schema.Set).List()
-
- err := updateByteMatchSetResourceWR(d, oldT, newT, conn, region)
- if err != nil {
- return fmt.Errorf("Error updating ByteMatchSet: %s", err)
- }
- } else if d.HasChange("byte_match_tuples") {
+ if d.HasChange("byte_match_tuples") {
o, n := d.GetChange("byte_match_tuples")
oldT, newT := o.(*schema.Set).List(), n.(*schema.Set).List()
@@ -221,12 +207,7 @@ func resourceAwsWafRegionalByteMatchSetDelete(d *schema.ResourceData, meta inter
log.Printf("[INFO] Deleting ByteMatchSet: %s", d.Get("name").(string))
- var oldT []interface{}
- if _, ok := d.GetOk("byte_match_tuple"); ok {
- oldT = d.Get("byte_match_tuple").(*schema.Set).List()
- } else {
- oldT = d.Get("byte_match_tuples").(*schema.Set).List()
- }
+ oldT := d.Get("byte_match_tuples").(*schema.Set).List()
if len(oldT) > 0 {
var newT []interface{}
diff --git a/aws/resource_aws_wafregional_rate_based_rule_test.go b/aws/resource_aws_wafregional_rate_based_rule_test.go
index e014f78bb6f..39543c701d2 100644
--- a/aws/resource_aws_wafregional_rate_based_rule_test.go
+++ b/aws/resource_aws_wafregional_rate_based_rule_test.go
@@ -399,7 +399,7 @@ resource "aws_wafregional_ipset" "ipset" {
resource "aws_wafregional_byte_match_set" "set" {
name = "%s"
- byte_match_tuple {
+ byte_match_tuples {
text_transformation = "NONE"
target_string = "badrefer1"
positional_constraint = "CONTAINS"
diff --git a/aws/structure.go b/aws/structure.go
index e05a85109f9..c2ad948baa0 100644
--- a/aws/structure.go
+++ b/aws/structure.go
@@ -40,6 +40,7 @@ import (
"github.com/aws/aws-sdk-go/service/rds"
"github.com/aws/aws-sdk-go/service/redshift"
"github.com/aws/aws-sdk-go/service/route53"
+ "github.com/aws/aws-sdk-go/service/route53resolver"
"github.com/aws/aws-sdk-go/service/ssm"
"github.com/aws/aws-sdk-go/service/waf"
"github.com/aws/aws-sdk-go/service/worklink"
@@ -1643,36 +1644,6 @@ func flattenKinesisShardLevelMetrics(list []*kinesis.EnhancedMetrics) []string {
return strs
}
-func flattenApiGatewayStageKeys(keys []*string) []map[string]interface{} {
- stageKeys := make([]map[string]interface{}, 0, len(keys))
- for _, o := range keys {
- key := make(map[string]interface{})
- parts := strings.Split(*o, "/")
- key["stage_name"] = parts[1]
- key["rest_api_id"] = parts[0]
-
- stageKeys = append(stageKeys, key)
- }
- return stageKeys
-}
-
-func expandApiGatewayStageKeys(d *schema.ResourceData) []*apigateway.StageKey {
- var stageKeys []*apigateway.StageKey
-
- if stageKeyData, ok := d.GetOk("stage_key"); ok {
- params := stageKeyData.(*schema.Set).List()
- for k := range params {
- data := params[k].(map[string]interface{})
- stageKeys = append(stageKeys, &apigateway.StageKey{
- RestApiId: aws.String(data["rest_api_id"].(string)),
- StageName: aws.String(data["stage_name"].(string)),
- })
- }
- }
-
- return stageKeys
-}
-
func expandApiGatewayRequestResponseModelOperations(d *schema.ResourceData, key string, prefix string) []*apigateway.PatchOperation {
operations := make([]*apigateway.PatchOperation, 0)
@@ -1821,56 +1792,6 @@ func expandApiGatewayMethodParametersOperations(d *schema.ResourceData, key stri
return operations, nil
}
-func expandApiGatewayStageKeyOperations(d *schema.ResourceData) []*apigateway.PatchOperation {
- operations := make([]*apigateway.PatchOperation, 0)
-
- prev, curr := d.GetChange("stage_key")
- prevList := prev.(*schema.Set).List()
- currList := curr.(*schema.Set).List()
-
- for i := range prevList {
- p := prevList[i].(map[string]interface{})
- exists := false
-
- for j := range currList {
- c := currList[j].(map[string]interface{})
- if c["rest_api_id"].(string) == p["rest_api_id"].(string) && c["stage_name"].(string) == p["stage_name"].(string) {
- exists = true
- }
- }
-
- if !exists {
- operations = append(operations, &apigateway.PatchOperation{
- Op: aws.String("remove"),
- Path: aws.String("/stages"),
- Value: aws.String(fmt.Sprintf("%s/%s", p["rest_api_id"].(string), p["stage_name"].(string))),
- })
- }
- }
-
- for i := range currList {
- c := currList[i].(map[string]interface{})
- exists := false
-
- for j := range prevList {
- p := prevList[j].(map[string]interface{})
- if c["rest_api_id"].(string) == p["rest_api_id"].(string) && c["stage_name"].(string) == p["stage_name"].(string) {
- exists = true
- }
- }
-
- if !exists {
- operations = append(operations, &apigateway.PatchOperation{
- Op: aws.String("add"),
- Path: aws.String("/stages"),
- Value: aws.String(fmt.Sprintf("%s/%s", c["rest_api_id"].(string), c["stage_name"].(string))),
- })
- }
- }
-
- return operations
-}
-
func expandCloudWatchLogMetricTransformations(m map[string]interface{}) []*cloudwatchlogs.MetricTransformation {
transformation := cloudwatchlogs.MetricTransformation{
MetricName: aws.String(m["name"].(string)),
@@ -3916,7 +3837,7 @@ func flattenRedshiftLogging(ls *redshift.LoggingStatus) []interface{} {
}
cfg := make(map[string]interface{})
- cfg["enabled"] = *ls.LoggingEnabled
+ cfg["enable"] = aws.BoolValue(ls.LoggingEnabled)
if ls.BucketName != nil {
cfg["bucket_name"] = *ls.BucketName
}
@@ -4269,19 +4190,21 @@ func stripCapacityAttributes(in map[string]interface{}) (map[string]interface{},
// 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)
- }
+func flattenDynamoDbTtl(ttlOutput *dynamodb.DescribeTimeToLiveOutput) []interface{} {
+ m := map[string]interface{}{
+ "enabled": false,
}
- if len(m) > 0 {
+
+ if ttlOutput == nil || ttlOutput.TimeToLiveDescription == nil {
return []interface{}{m}
}
- return []interface{}{}
+ ttlDesc := ttlOutput.TimeToLiveDescription
+
+ m["attribute_name"] = aws.StringValue(ttlDesc.AttributeName)
+ m["enabled"] = (aws.StringValue(ttlDesc.TimeToLiveStatus) == dynamodb.TimeToLiveStatusEnabled)
+
+ return []interface{}{m}
}
func flattenDynamoDbPitr(pitrDesc *dynamodb.DescribeContinuousBackupsOutput) []interface{} {
@@ -4660,6 +4583,10 @@ func expandLaunchTemplateSpecification(specs []interface{}) (*autoscaling.Launch
}
func flattenLaunchTemplateSpecification(lt *autoscaling.LaunchTemplateSpecification) []map[string]interface{} {
+ if lt == nil {
+ return []map[string]interface{}{}
+ }
+
attrs := map[string]interface{}{}
result := make([]map[string]interface{}, 0)
@@ -5134,3 +5061,62 @@ func flattenAppmeshRouteSpec(spec *appmesh.RouteSpec) []interface{} {
return []interface{}{mSpec}
}
+
+func expandRoute53ResolverIpAddresses(vIpAddresses *schema.Set) []*route53resolver.IpAddressRequest {
+ ipAddressRequests := []*route53resolver.IpAddressRequest{}
+
+ for _, vIpAddress := range vIpAddresses.List() {
+ ipAddressRequest := &route53resolver.IpAddressRequest{}
+
+ mIpAddress := vIpAddress.(map[string]interface{})
+
+ if vSubnetId, ok := mIpAddress["subnet_id"].(string); ok && vSubnetId != "" {
+ ipAddressRequest.SubnetId = aws.String(vSubnetId)
+ }
+ if vIp, ok := mIpAddress["ip"].(string); ok && vIp != "" {
+ ipAddressRequest.Ip = aws.String(vIp)
+ }
+
+ ipAddressRequests = append(ipAddressRequests, ipAddressRequest)
+ }
+
+ return ipAddressRequests
+}
+
+func flattenRoute53ResolverIpAddresses(ipAddresses []*route53resolver.IpAddressResponse) []interface{} {
+ if ipAddresses == nil {
+ return []interface{}{}
+ }
+
+ vIpAddresses := []interface{}{}
+
+ for _, ipAddress := range ipAddresses {
+ mIpAddress := map[string]interface{}{}
+
+ mIpAddress["subnet_id"] = aws.StringValue(ipAddress.SubnetId)
+ mIpAddress["ip"] = aws.StringValue(ipAddress.Ip)
+ mIpAddress["ip_id"] = aws.StringValue(ipAddress.IpId)
+
+ vIpAddresses = append(vIpAddresses, mIpAddress)
+ }
+
+ return vIpAddresses
+}
+
+func expandRoute53ResolverIpAddressUpdate(vIpAddress interface{}) *route53resolver.IpAddressUpdate {
+ ipAddressUpdate := &route53resolver.IpAddressUpdate{}
+
+ mIpAddress := vIpAddress.(map[string]interface{})
+
+ if vSubnetId, ok := mIpAddress["subnet_id"].(string); ok && vSubnetId != "" {
+ ipAddressUpdate.SubnetId = aws.String(vSubnetId)
+ }
+ if vIp, ok := mIpAddress["ip"].(string); ok && vIp != "" {
+ ipAddressUpdate.Ip = aws.String(vIp)
+ }
+ if vIpId, ok := mIpAddress["ip_id"].(string); ok && vIpId != "" {
+ ipAddressUpdate.IpId = aws.String(vIpId)
+ }
+
+ return ipAddressUpdate
+}
diff --git a/aws/structure_test.go b/aws/structure_test.go
index b19f72f16fd..a3d5255f522 100644
--- a/aws/structure_test.go
+++ b/aws/structure_test.go
@@ -1065,37 +1065,6 @@ func TestFlattenApiGatewayThrottleSettings(t *testing.T) {
}
}
-func TestFlattenApiGatewayStageKeys(t *testing.T) {
- cases := []struct {
- Input []*string
- Output []map[string]interface{}
- }{
- {
- Input: []*string{
- aws.String("a1b2c3d4e5/dev"),
- aws.String("e5d4c3b2a1/test"),
- },
- Output: []map[string]interface{}{
- {
- "stage_name": "dev",
- "rest_api_id": "a1b2c3d4e5",
- },
- {
- "stage_name": "test",
- "rest_api_id": "e5d4c3b2a1",
- },
- },
- },
- }
-
- for _, tc := range cases {
- output := flattenApiGatewayStageKeys(tc.Input)
- if !reflect.DeepEqual(output, tc.Output) {
- t.Fatalf("Got:\n\n%#v\n\nExpected:\n\n%#v", output, tc.Output)
- }
- }
-}
-
func TestExpandPolicyAttributes(t *testing.T) {
expanded := []interface{}{
map[string]interface{}{
diff --git a/aws/tags.go b/aws/tags.go
index 05851126846..41dcddc8bd1 100644
--- a/aws/tags.go
+++ b/aws/tags.go
@@ -476,3 +476,17 @@ func tagsMapToRaw(m map[string]string) map[string]interface{} {
return raw
}
+
+// ec2TagSpecificationsFromMap returns the tag specifications for the given map of data m and resource type t.
+func ec2TagSpecificationsFromMap(m map[string]interface{}, t string) []*ec2.TagSpecification {
+ if len(m) == 0 {
+ return nil
+ }
+
+ return []*ec2.TagSpecification{
+ {
+ ResourceType: aws.String(t),
+ Tags: tagsFromMap(m),
+ },
+ }
+}
diff --git a/aws/tagsRoute53Resolver.go b/aws/tagsRoute53Resolver.go
new file mode 100644
index 00000000000..430ce1bb66f
--- /dev/null
+++ b/aws/tagsRoute53Resolver.go
@@ -0,0 +1,145 @@
+package aws
+
+import (
+ "log"
+ "regexp"
+
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/service/route53resolver"
+ "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" and the ARN field to be named "arn".
+func getTagsRoute53Resolver(conn *route53resolver.Route53Resolver, d *schema.ResourceData) error {
+ tags := make([]*route53resolver.Tag, 0)
+ req := &route53resolver.ListTagsForResourceInput{
+ ResourceArn: aws.String(d.Get("arn").(string)),
+ }
+ for {
+ resp, err := conn.ListTagsForResource(req)
+ if err != nil {
+ return err
+ }
+
+ tags = append(tags, resp.Tags...)
+
+ if resp.NextToken == nil {
+ break
+ }
+ req.NextToken = resp.NextToken
+ }
+
+ if err := d.Set("tags", tagsToMapRoute53Resolver(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" and the ARN field to be named "arn".
+func setTagsRoute53Resolver(conn *route53resolver.Route53Resolver, 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 := diffTagsRoute53Resolver(tagsFromMapRoute53Resolver(o), tagsFromMapRoute53Resolver(n))
+
+ // Set tags
+ if len(remove) > 0 {
+ log.Printf("[DEBUG] Removing tags: %#v", remove)
+ k := make([]*string, len(remove))
+ for i, t := range remove {
+ k[i] = t.Key
+ }
+
+ _, err := conn.UntagResource(&route53resolver.UntagResourceInput{
+ ResourceArn: aws.String(d.Get("arn").(string)),
+ TagKeys: k,
+ })
+ if err != nil {
+ return err
+ }
+ }
+ if len(create) > 0 {
+ log.Printf("[DEBUG] Creating tags: %#v", create)
+ _, err := conn.TagResource(&route53resolver.TagResourceInput{
+ ResourceArn: aws.String(d.Get("arn").(string)),
+ 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 diffTagsRoute53Resolver(oldTags, newTags []*route53resolver.Tag) ([]*route53resolver.Tag, []*route53resolver.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 []*route53resolver.Tag
+ for _, t := range oldTags {
+ old, ok := create[aws.StringValue(t.Key)]
+ if !ok || old != aws.StringValue(t.Value) {
+ remove = append(remove, t)
+ } else if ok {
+ // already present so remove from new
+ delete(create, aws.StringValue(t.Key))
+ }
+ }
+
+ return tagsFromMapRoute53Resolver(create), remove
+}
+
+// tagsFromMap returns the tags for the given map of data.
+func tagsFromMapRoute53Resolver(m map[string]interface{}) []*route53resolver.Tag {
+ result := make([]*route53resolver.Tag, 0, len(m))
+ for k, v := range m {
+ t := &route53resolver.Tag{
+ Key: aws.String(k),
+ Value: aws.String(v.(string)),
+ }
+ if !tagIgnoredRoute53Resolver(t) {
+ result = append(result, t)
+ }
+ }
+
+ return result
+}
+
+// tagsToMap turns the list of tags into a map.
+func tagsToMapRoute53Resolver(ts []*route53resolver.Tag) map[string]string {
+ result := make(map[string]string)
+ for _, t := range ts {
+ if !tagIgnoredRoute53Resolver(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 tagIgnoredRoute53Resolver(t *route53resolver.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 {
+ log.Printf("[DEBUG] Found AWS specific tag %s (val: %s), ignoring.\n", *t.Key, *t.Value)
+ return true
+ }
+ }
+ return false
+}
diff --git a/aws/tagsRoute53Resolver_test.go b/aws/tagsRoute53Resolver_test.go
new file mode 100644
index 00000000000..7a106bd8286
--- /dev/null
+++ b/aws/tagsRoute53Resolver_test.go
@@ -0,0 +1,111 @@
+package aws
+
+import (
+ "reflect"
+ "testing"
+
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/service/route53resolver"
+)
+
+// go test -v -run="TestDiffRoute53ResolverTags"
+func TestDiffRoute53ResolverTags(t *testing.T) {
+ cases := []struct {
+ Old, New map[string]interface{}
+ Create, Remove map[string]string
+ }{
+ // Add
+ {
+ Old: map[string]interface{}{
+ "foo": "bar",
+ },
+ New: map[string]interface{}{
+ "foo": "bar",
+ "bar": "baz",
+ },
+ Create: map[string]string{
+ "bar": "baz",
+ },
+ Remove: map[string]string{},
+ },
+
+ // Modify
+ {
+ Old: map[string]interface{}{
+ "foo": "bar",
+ },
+ New: map[string]interface{}{
+ "foo": "baz",
+ },
+ Create: map[string]string{
+ "foo": "baz",
+ },
+ Remove: map[string]string{
+ "foo": "bar",
+ },
+ },
+
+ // Overlap
+ {
+ Old: map[string]interface{}{
+ "foo": "bar",
+ "hello": "world",
+ },
+ New: map[string]interface{}{
+ "foo": "baz",
+ "hello": "world",
+ },
+ Create: map[string]string{
+ "foo": "baz",
+ },
+ Remove: map[string]string{
+ "foo": "bar",
+ },
+ },
+
+ // Remove
+ {
+ Old: map[string]interface{}{
+ "foo": "bar",
+ "bar": "baz",
+ },
+ New: map[string]interface{}{
+ "foo": "bar",
+ },
+ Create: map[string]string{},
+ Remove: map[string]string{
+ "bar": "baz",
+ },
+ },
+ }
+
+ for i, tc := range cases {
+ c, r := diffTagsRoute53Resolver(tagsFromMapRoute53Resolver(tc.Old), tagsFromMapRoute53Resolver(tc.New))
+ cm := tagsToMapRoute53Resolver(c)
+ rm := tagsToMapRoute53Resolver(r)
+ if !reflect.DeepEqual(cm, tc.Create) {
+ t.Fatalf("%d: bad create: %#v", i, cm)
+ }
+ if !reflect.DeepEqual(rm, tc.Remove) {
+ t.Fatalf("%d: bad remove: %#v", i, rm)
+ }
+ }
+}
+
+// go test -v -run="TestIgnoringTagsRoute53Resolver"
+func TestIgnoringTagsRoute53Resolver(t *testing.T) {
+ var ignoredTags []*route53resolver.Tag
+ ignoredTags = append(ignoredTags, &route53resolver.Tag{
+ Key: aws.String("aws:cloudformation:logical-id"),
+ Value: aws.String("foo"),
+ })
+ ignoredTags = append(ignoredTags, &route53resolver.Tag{
+ Key: aws.String("aws:foo:bar"),
+ Value: aws.String("baz"),
+ })
+ for _, tag := range ignoredTags {
+ if !tagIgnoredRoute53Resolver(tag) {
+ t.Fatalf("Tag %v with value %v not ignored, but should be!", *tag.Key, *tag.Value)
+ }
+ }
+}
diff --git a/aws/validators.go b/aws/validators.go
index ed82a5bba2b..12d3e09e271 100644
--- a/aws/validators.go
+++ b/aws/validators.go
@@ -2413,3 +2413,26 @@ func validateWorklinkFleetName(v interface{}, k string) (ws []string, errors []e
return
}
+
+func validateRoute53ResolverEndpointName(v interface{}, k string) (ws []string, errors []error) {
+ // Type: String
+ // Length Constraints: Maximum length of 64.
+ // Pattern: (?!^[0-9]+$)([a-zA-Z0-9-_' ']+)
+ value := v.(string)
+
+ // re2 doesn't support negative lookaheads so check for single numeric character explicitly.
+ if regexp.MustCompile(`^[0-9]$`).MatchString(value) {
+ errors = append(errors, fmt.Errorf(
+ "%q cannot be a single digit", k))
+ }
+ if !regexp.MustCompile(`^[a-zA-Z0-9-_' ']+$`).MatchString(value) {
+ errors = append(errors, fmt.Errorf(
+ "only alphanumeric characters, '-', '_' and ' ' are allowed in %q", k))
+ }
+ if len(value) > 64 {
+ errors = append(errors, fmt.Errorf(
+ "%q cannot be greater than 64 characters", k))
+ }
+
+ return
+}
diff --git a/aws/validators_test.go b/aws/validators_test.go
index 02ec45c78df..4b266e80a39 100644
--- a/aws/validators_test.go
+++ b/aws/validators_test.go
@@ -3098,3 +3098,41 @@ func TestValidateSecretManagerSecretNamePrefix(t *testing.T) {
}
}
}
+
+func TestValidateRoute53ResolverEndpointName(t *testing.T) {
+ cases := []struct {
+ Value string
+ ErrCount int
+ }{
+ {
+ Value: "testing123!",
+ ErrCount: 1,
+ },
+ {
+ Value: "testing - 123__",
+ ErrCount: 0,
+ },
+ {
+ Value: randomString(65),
+ ErrCount: 1,
+ },
+ {
+ Value: "1",
+ ErrCount: 1,
+ },
+ {
+ Value: "10",
+ ErrCount: 0,
+ },
+ {
+ Value: "A",
+ ErrCount: 0,
+ },
+ }
+ for _, tc := range cases {
+ _, errors := validateRoute53ResolverEndpointName(tc.Value, "aws_route53_resolver_endpoint")
+ if len(errors) != tc.ErrCount {
+ t.Fatalf("Expected the AWS Route 53 Resolver Endpoint Name to not trigger a validation error for %q", tc.Value)
+ }
+ }
+}
diff --git a/go.mod b/go.mod
index 55781aa3425..731c528caf5 100644
--- a/go.mod
+++ b/go.mod
@@ -6,18 +6,18 @@ require (
github.com/apparentlymart/go-cidr v1.0.0 // indirect
github.com/apparentlymart/go-textseg v1.0.0 // indirect
github.com/armon/go-radix v1.0.0 // indirect
- github.com/aws/aws-sdk-go v1.17.0
+ github.com/aws/aws-sdk-go v1.17.11
github.com/beevik/etree v1.0.1
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
github.com/bgentry/speakeasy v0.1.0 // indirect
github.com/blang/semver v3.5.1+incompatible // indirect
github.com/boombuler/barcode v0.0.0-20180809052337-34fff276c74e // indirect
- github.com/davecgh/go-spew v1.1.1
github.com/gogo/protobuf v1.2.0 // indirect
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect
github.com/golang/protobuf v0.0.0-20171113180720-1e59b77b52bf // indirect
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db // indirect
github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf // indirect
+ github.com/hashicorp/aws-sdk-go-base v0.3.0
github.com/hashicorp/go-cleanhttp v0.5.0
github.com/hashicorp/go-getter v0.0.0-20180327010114-90bb99a48d86 // indirect
github.com/hashicorp/go-hclog v0.0.0-20171005151751-ca137eb4b438 // indirect
@@ -50,16 +50,13 @@ require (
github.com/posener/complete v0.0.0-20170730193024-f4461a52b632 // indirect
github.com/pquerna/otp v0.0.0-20180813144649-be78767b3e39
github.com/spf13/pflag v1.0.3 // indirect
- github.com/stretchr/testify v1.3.0 // indirect
github.com/terraform-providers/terraform-provider-template v0.1.1
github.com/terraform-providers/terraform-provider-tls v0.1.0
github.com/ulikunitz/xz v0.5.4 // indirect
github.com/zclconf/go-cty v0.0.0-20180106055834-709e4033eeb0 // indirect
golang.org/x/crypto v0.0.0-20180110145155-b3c9a1d25cfb // indirect
- golang.org/x/net v0.0.0-20171024115130-4b14673ba32b // indirect
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 // indirect
golang.org/x/sys v0.0.0-20170803140359-d8f5ea21b929 // indirect
- golang.org/x/text v0.0.0-20171024115504-6eab0e8f74e8 // indirect
google.golang.org/genproto v0.0.0-20171002232614-f676e0f3ac63 // indirect
google.golang.org/grpc v0.0.0-20171025225919-b5eab4ccac6d // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
diff --git a/go.sum b/go.sum
index 0f1c8431aaa..b1c63ce8259 100644
--- a/go.sum
+++ b/go.sum
@@ -8,8 +8,9 @@ github.com/apparentlymart/go-textseg v1.0.0 h1:rRmlIsPEEhUTIKQb7T++Nz/A5Q6C9IuX2
github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk=
github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI=
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
-github.com/aws/aws-sdk-go v1.17.0 h1:+pbWEdKxH1qlLb07as1+auEVvx+IxkaDzQLwMzbK1tI=
-github.com/aws/aws-sdk-go v1.17.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.16.36/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.17.11 h1:VNDdZZ/kMGffSIMRR4qcZtdN6672MDc2LeD2V92rI8w=
+github.com/aws/aws-sdk-go v1.17.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/beevik/etree v1.0.1 h1:lWzdj5v/Pj1X360EV7bUudox5SRipy4qZLjY0rhb0ck=
github.com/beevik/etree v1.0.1/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A=
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas=
@@ -20,9 +21,8 @@ github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdn
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/boombuler/barcode v0.0.0-20180809052337-34fff276c74e h1:t/Q5KRXjT1Pl4aq5yLEF0O9LWKvUhWZ2l1ckJZruZrE=
github.com/boombuler/barcode v0.0.0-20180809052337-34fff276c74e/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
+github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gogo/protobuf v1.2.0 h1:xU6/SpYbvkNYiptHJYEDRseDLvYE7wSqhYYNy0QSUzI=
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
@@ -33,6 +33,8 @@ github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pO
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf h1:+RRA9JqSOZFfKrOeqr2z77+8R2RKyh8PG66dcu1V0ck=
github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
+github.com/hashicorp/aws-sdk-go-base v0.3.0 h1:CPWKWCuOwpIFNsy8FUI9IT2QI7mGwgVPc4hrXW9I4L4=
+github.com/hashicorp/aws-sdk-go-base v0.3.0/go.mod h1:ZIWACGGi0N7a4DZbf15yuE1JQORmWLtBcVM6F5SXNFU=
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-cleanhttp v0.5.0 h1:wvCrVc9TjDls6+YGAF2hAifE1E5U1+b4tH6KdvN3Gig=
@@ -120,14 +122,14 @@ github.com/zclconf/go-cty v0.0.0-20180106055834-709e4033eeb0 h1:xHRHIyTGBaOmmNAb
github.com/zclconf/go-cty v0.0.0-20180106055834-709e4033eeb0/go.mod h1:LnDKxj8gN4aatfXUqmUNooaDjvmDcLPbAN3hYBIVoJE=
golang.org/x/crypto v0.0.0-20180110145155-b3c9a1d25cfb h1:lexDMTenYWvxW3Jdsfw/G56ScdrDWVlfljIeYM6ZG60=
golang.org/x/crypto v0.0.0-20180110145155-b3c9a1d25cfb/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/net v0.0.0-20171024115130-4b14673ba32b h1:gLAd8PDHbxH9wEJTKja0iETNXqtTDcrjeSNA/4T8yb0=
-golang.org/x/net v0.0.0-20171024115130-4b14673ba32b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd h1:HuTn7WObtcDo9uEEU7rEqL0jYthdXAmZ6PP+meazmaU=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20170803140359-d8f5ea21b929 h1:M4VPQYSW/nB4Bcg1XMD4yW2sprnwerD3Kb6apRphtZw=
golang.org/x/sys v0.0.0-20170803140359-d8f5ea21b929/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/text v0.0.0-20171024115504-6eab0e8f74e8 h1:2gcGGuF4nEyr4ixGENyPhTZzb2uVF0Ehh9KfhqYcg6Q=
-golang.org/x/text v0.0.0-20171024115504-6eab0e8f74e8/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
google.golang.org/genproto v0.0.0-20171002232614-f676e0f3ac63 h1:yNBw5bwywOTguAu+h6SkCUaWdEZ7ZXgfiwb2YTN1eQw=
google.golang.org/genproto v0.0.0-20171002232614-f676e0f3ac63/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/grpc v0.0.0-20171025225919-b5eab4ccac6d h1:K+wEnjFjaXJFIWQDwduDh5V2TL0ajv+c6GYeOlhdktA=
diff --git a/staticcheck.conf b/staticcheck.conf
index f4b4c28a8ea..fe9142e9156 100644
--- a/staticcheck.conf
+++ b/staticcheck.conf
@@ -1,7 +1,6 @@
checks = [
"all",
"-SA1019",
- "-SA4006",
"-SA5007",
"-SA6000",
"-SA9003",
@@ -10,6 +9,5 @@ checks = [
"-ST1005",
"-ST1008",
"-ST1012",
- "-S1020",
"-S1034"
]
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/logger.go b/vendor/github.com/aws/aws-sdk-go/aws/client/logger.go
index ce9fb896d94..7b5e1276acf 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/client/logger.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/client/logger.go
@@ -118,6 +118,12 @@ var LogHTTPResponseHandler = request.NamedHandler{
func logResponse(r *request.Request) {
lw := &logWriter{r.Config.Logger, bytes.NewBuffer(nil)}
+ if r.HTTPResponse == nil {
+ lw.Logger.Log(fmt.Sprintf(logRespErrMsg,
+ r.ClientInfo.ServiceName, r.Operation.Name, "request's HTTPResponse is nil"))
+ return
+ }
+
logBody := r.Config.LogLevel.Matches(aws.LogDebugWithHTTPBody)
if logBody {
r.HTTPResponse.Body = &teeReaderCloser{
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
index 7d1f66e4e85..f4438eae9c9 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
@@ -92,6 +92,9 @@ func NewClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegio
svc.Handlers.Send.SwapNamed(request.NamedHandler{
Name: corehandlers.SendHandler.Name,
Fn: func(r *request.Request) {
+ r.HTTPResponse = &http.Response{
+ Header: http.Header{},
+ }
r.Error = awserr.New(
request.CanceledErrorCode,
"EC2 IMDS access disabled via "+disableServiceEnvVar+" env var",
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 96ddf8fcac2..5d024dc8fbc 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
@@ -968,6 +968,7 @@ var awsPartition = partition{
"ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
+ "eu-central-1": endpoint{},
"eu-west-1": endpoint{},
"sa-east-1": endpoint{},
"us-east-1": endpoint{},
@@ -2024,6 +2025,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -2145,11 +2147,18 @@ var awsPartition = partition{
},
Endpoints: endpoints{
"ap-northeast-1": endpoint{},
+ "ap-northeast-2": endpoint{},
+ "ap-south-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{},
+ "eu-west-3": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
+ "us-west-1": endpoint{},
"us-west-2": endpoint{},
},
},
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport.go b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport.go
new file mode 100644
index 00000000000..ea9ebb6f6a2
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport.go
@@ -0,0 +1,26 @@
+// +build go1.7
+
+package session
+
+import (
+ "net"
+ "net/http"
+ "time"
+)
+
+// Transport that should be used when a custom CA bundle is specified with the
+// SDK.
+func getCABundleTransport() *http.Transport {
+ return &http.Transport{
+ Proxy: http.ProxyFromEnvironment,
+ DialContext: (&net.Dialer{
+ Timeout: 30 * time.Second,
+ KeepAlive: 30 * time.Second,
+ DualStack: true,
+ }).DialContext,
+ MaxIdleConns: 100,
+ IdleConnTimeout: 90 * time.Second,
+ TLSHandshakeTimeout: 10 * time.Second,
+ ExpectContinueTimeout: 1 * time.Second,
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_5.go b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_5.go
new file mode 100644
index 00000000000..fec39dfc126
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_5.go
@@ -0,0 +1,22 @@
+// +build !go1.6,go1.5
+
+package session
+
+import (
+ "net"
+ "net/http"
+ "time"
+)
+
+// Transport that should be used when a custom CA bundle is specified with the
+// SDK.
+func getCABundleTransport() *http.Transport {
+ return &http.Transport{
+ Proxy: http.ProxyFromEnvironment,
+ Dial: (&net.Dialer{
+ Timeout: 30 * time.Second,
+ KeepAlive: 30 * time.Second,
+ }).Dial,
+ TLSHandshakeTimeout: 10 * time.Second,
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_6.go b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_6.go
new file mode 100644
index 00000000000..1c5a5391e65
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/cabundle_transport_1_6.go
@@ -0,0 +1,23 @@
+// +build !go1.7,go1.6
+
+package session
+
+import (
+ "net"
+ "net/http"
+ "time"
+)
+
+// Transport that should be used when a custom CA bundle is specified with the
+// SDK.
+func getCABundleTransport() *http.Transport {
+ return &http.Transport{
+ Proxy: http.ProxyFromEnvironment,
+ Dial: (&net.Dialer{
+ Timeout: 30 * time.Second,
+ KeepAlive: 30 * time.Second,
+ }).Dial,
+ TLSHandshakeTimeout: 10 * time.Second,
+ ExpectContinueTimeout: 1 * time.Second,
+ }
+}
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 9bdbafd65cc..be4b5f07772 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
@@ -407,7 +407,10 @@ func loadCustomCABundle(s *Session, bundle io.Reader) error {
}
}
if t == nil {
- t = &http.Transport{}
+ // Nil transport implies `http.DefaultTransport` should be used. Since
+ // the SDK cannot modify, nor copy the `DefaultTransport` specifying
+ // the values the next closest behavior.
+ t = getCABundleTransport()
}
p, err := loadCertPool(bundle)
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 ee3cd37cbcb..b8cb7140a99 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.17.0"
+const SDKVersion = "1.17.11"
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go
index b34f5258a4c..b80f84fbb86 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go
@@ -155,6 +155,9 @@ func buildHeader(header *http.Header, v reflect.Value, name string, tag reflect.
return awserr.New("SerializationError", "failed to encode REST request", err)
}
+ name = strings.TrimSpace(name)
+ str = strings.TrimSpace(str)
+
header.Add(name, str)
return nil
@@ -170,8 +173,10 @@ func buildHeaderMap(header *http.Header, v reflect.Value, tag reflect.StructTag)
return awserr.New("SerializationError", "failed to encode REST request", err)
}
+ keyStr := strings.TrimSpace(key.String())
+ str = strings.TrimSpace(str)
- header.Add(prefix+key.String(), str)
+ header.Add(prefix+keyStr, str)
}
return nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/apigatewayv2/api.go b/vendor/github.com/aws/aws-sdk-go/service/apigatewayv2/api.go
index 801a7ee1f74..b1acb962162 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/apigatewayv2/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/apigatewayv2/api.go
@@ -4984,7 +4984,7 @@ type Api struct {
// Name is a required field
Name *string `locationName:"name" type:"string" required:"true"`
- // The API protocol: HTTP or WEBSOCKET.
+ // The API protocol: Currently only WEBSOCKET is supported.
//
// ProtocolType is a required field
ProtocolType *string `locationName:"protocolType" type:"string" required:"true" enum:"ProtocolType"`
@@ -5078,6 +5078,61 @@ func (s *Api) SetWarnings(v []*string) *Api {
return s
}
+// Represents an API mapping.
+type ApiMapping struct {
+ _ struct{} `type:"structure"`
+
+ // The API identifier.
+ //
+ // ApiId is a required field
+ ApiId *string `locationName:"apiId" type:"string" required:"true"`
+
+ // The API mapping identifier.
+ ApiMappingId *string `locationName:"apiMappingId" type:"string"`
+
+ // The API mapping key.
+ ApiMappingKey *string `locationName:"apiMappingKey" type:"string"`
+
+ // The API stage.
+ //
+ // Stage is a required field
+ Stage *string `locationName:"stage" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s ApiMapping) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ApiMapping) GoString() string {
+ return s.String()
+}
+
+// SetApiId sets the ApiId field's value.
+func (s *ApiMapping) SetApiId(v string) *ApiMapping {
+ s.ApiId = &v
+ return s
+}
+
+// SetApiMappingId sets the ApiMappingId field's value.
+func (s *ApiMapping) SetApiMappingId(v string) *ApiMapping {
+ s.ApiMappingId = &v
+ return s
+}
+
+// SetApiMappingKey sets the ApiMappingKey field's value.
+func (s *ApiMapping) SetApiMappingKey(v string) *ApiMapping {
+ s.ApiMappingKey = &v
+ return s
+}
+
+// SetStage sets the Stage field's value.
+func (s *ApiMapping) SetStage(v string) *ApiMapping {
+ s.Stage = &v
+ return s
+}
+
// Represents an authorizer.
type Authorizer struct {
_ struct{} `type:"structure"`
@@ -5207,7 +5262,7 @@ type CreateApiInput struct {
_ struct{} `type:"structure"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"`
@@ -5225,7 +5280,7 @@ type CreateApiInput struct {
ProtocolType *string `locationName:"protocolType" type:"string" required:"true" enum:"ProtocolType"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
//
// RouteSelectionExpression is a required field
@@ -5309,14 +5364,14 @@ func (s *CreateApiInput) SetVersion(v string) *CreateApiInput {
type CreateApiMappingInput struct {
_ struct{} `type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
//
// ApiId is a required field
ApiId *string `locationName:"apiId" type:"string" required:"true"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
ApiMappingKey *string `locationName:"apiMappingKey" type:"string"`
@@ -5389,15 +5444,15 @@ func (s *CreateApiMappingInput) SetStage(v string) *CreateApiMappingInput {
type CreateApiMappingOutput struct {
_ struct{} `type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ApiId *string `locationName:"apiId" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ApiMappingId *string `locationName:"apiMappingId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
ApiMappingKey *string `locationName:"apiMappingKey" type:"string"`
@@ -5445,11 +5500,11 @@ type CreateApiOutput struct {
ApiEndpoint *string `locationName:"apiEndpoint" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ApiId *string `locationName:"apiId" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"`
@@ -5466,7 +5521,7 @@ type CreateApiOutput struct {
ProtocolType *string `locationName:"protocolType" type:"string" enum:"ProtocolType"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string"`
@@ -5575,12 +5630,11 @@ type CreateAuthorizerInput struct {
// AuthorizerUri is a required field
AuthorizerUri *string `locationName:"authorizerUri" type:"string" required:"true"`
- // The identity source for which authorization is requested.
- //
- // For the REQUEST authorizer, this is required when authorization caching is
- // enabled. The value is a comma-separated string of one or more mapping expressions
- // of the specified request parameters. For example, if an Auth header, a Name
- // query string parameter are defined as identity sources, this value is $method.request.header.Auth,
+ // The identity source for which authorization is requested. For the REQUEST
+ // authorizer, this is required when authorization caching is enabled. The value
+ // is a comma-separated string of one or more mapping expressions of the specified
+ // request parameters. For example, if an Auth header, a Name query string parameter
+ // are defined as identity sources, this value is $method.request.header.Auth,
// $method.request.querystring.Name. These parameters will be used to derive
// the authorization caching key and to perform runtime validation of the REQUEST
// authorizer by verifying all of the identity-related request parameters are
@@ -5703,7 +5757,7 @@ type CreateAuthorizerOutput struct {
// Represents an Amazon Resource Name (ARN).
AuthorizerCredentialsArn *string `locationName:"authorizerCredentialsArn" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
AuthorizerId *string `locationName:"authorizerId" type:"string"`
// An integer with a value between [0-3600].
@@ -5716,12 +5770,11 @@ type CreateAuthorizerOutput struct {
// A string representation of a URI with a length between [1-2048].
AuthorizerUri *string `locationName:"authorizerUri" type:"string"`
- // The identity source for which authorization is requested.
- //
- // For the REQUEST authorizer, this is required when authorization caching is
- // enabled. The value is a comma-separated string of one or more mapping expressions
- // of the specified request parameters. For example, if an Auth header, a Name
- // query string parameter are defined as identity sources, this value is $method.request.header.Auth,
+ // The identity source for which authorization is requested. For the REQUEST
+ // authorizer, this is required when authorization caching is enabled. The value
+ // is a comma-separated string of one or more mapping expressions of the specified
+ // request parameters. For example, if an Auth header, a Name query string parameter
+ // are defined as identity sources, this value is $method.request.header.Auth,
// $method.request.querystring.Name. These parameters will be used to derive
// the authorization caching key and to perform runtime validation of the REQUEST
// authorizer by verifying all of the identity-related request parameters are
@@ -5868,7 +5921,7 @@ type CreateDeploymentOutput struct {
CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
DeploymentId *string `locationName:"deploymentId" type:"string"`
// Represents a deployment status.
@@ -5971,7 +6024,7 @@ type CreateDomainNameOutput struct {
_ struct{} `type:"structure"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ApiMappingSelectionExpression *string `locationName:"apiMappingSelectionExpression" type:"string"`
@@ -6035,7 +6088,9 @@ type CreateIntegrationInput struct {
IntegrationMethod *string `locationName:"integrationMethod" type:"string"`
// Represents an API method integration type.
- IntegrationType *string `locationName:"integrationType" type:"string" enum:"IntegrationType"`
+ //
+ // IntegrationType is a required field
+ IntegrationType *string `locationName:"integrationType" type:"string" required:"true" enum:"IntegrationType"`
// A string representation of a URI with a length between [1-2048].
IntegrationUri *string `locationName:"integrationUri" type:"string"`
@@ -6061,7 +6116,7 @@ type CreateIntegrationInput struct {
RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
TemplateSelectionExpression *string `locationName:"templateSelectionExpression" type:"string"`
@@ -6088,6 +6143,9 @@ func (s *CreateIntegrationInput) Validate() error {
if s.ApiId != nil && len(*s.ApiId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("ApiId", 1))
}
+ if s.IntegrationType == nil {
+ invalidParams.Add(request.NewErrParamRequired("IntegrationType"))
+ }
if s.TimeoutInMillis != nil && *s.TimeoutInMillis < 50 {
invalidParams.Add(request.NewErrParamMinValue("TimeoutInMillis", 50))
}
@@ -6200,14 +6258,14 @@ type CreateIntegrationOutput struct {
// A string with a length between [0-1024].
Description *string `locationName:"description" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
IntegrationId *string `locationName:"integrationId" type:"string"`
// A string with a length between [1-64].
IntegrationMethod *string `locationName:"integrationMethod" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
IntegrationResponseSelectionExpression *string `locationName:"integrationResponseSelectionExpression" type:"string"`
@@ -6238,7 +6296,7 @@ type CreateIntegrationOutput struct {
RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
TemplateSelectionExpression *string `locationName:"templateSelectionExpression" type:"string"`
@@ -6360,7 +6418,7 @@ type CreateIntegrationResponseInput struct {
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
//
@@ -6385,7 +6443,7 @@ type CreateIntegrationResponseInput struct {
ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
TemplateSelectionExpression *string `locationName:"templateSelectionExpression" type:"string"`
}
@@ -6473,12 +6531,12 @@ type CreateIntegrationResponseOutput struct {
// Specifies how to handle response payload content type conversions.
ContentHandlingStrategy *string `locationName:"contentHandlingStrategy" type:"string" enum:"ContentHandlingStrategy"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
IntegrationResponseId *string `locationName:"integrationResponseId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
IntegrationResponseKey *string `locationName:"integrationResponseKey" type:"string"`
@@ -6501,7 +6559,7 @@ type CreateIntegrationResponseOutput struct {
ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
TemplateSelectionExpression *string `locationName:"templateSelectionExpression" type:"string"`
}
@@ -6570,7 +6628,9 @@ type CreateModelInput struct {
Name *string `locationName:"name" type:"string" required:"true"`
// A string with a length between [0-32768].
- Schema *string `locationName:"schema" type:"string"`
+ //
+ // Schema is a required field
+ Schema *string `locationName:"schema" type:"string" required:"true"`
}
// String returns the string representation
@@ -6595,6 +6655,9 @@ func (s *CreateModelInput) Validate() error {
if s.Name == nil {
invalidParams.Add(request.NewErrParamRequired("Name"))
}
+ if s.Schema == nil {
+ invalidParams.Add(request.NewErrParamRequired("Schema"))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -6641,7 +6704,7 @@ type CreateModelOutput struct {
// A string with a length between [0-1024].
Description *string `locationName:"description" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ModelId *string `locationName:"modelId" type:"string"`
// A string with a length between [1-128].
@@ -6713,11 +6776,11 @@ type CreateRouteInput struct {
// using AWS IAM permissions, and CUSTOM for using a Lambda authorizer.
AuthorizationType *string `locationName:"authorizationType" type:"string" enum:"AuthorizationType"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
AuthorizerId *string `locationName:"authorizerId" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"`
@@ -6732,7 +6795,7 @@ type CreateRouteInput struct {
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
//
@@ -6740,7 +6803,7 @@ type CreateRouteInput struct {
RouteKey *string `locationName:"routeKey" type:"string" required:"true"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
RouteResponseSelectionExpression *string `locationName:"routeResponseSelectionExpression" type:"string"`
@@ -6868,11 +6931,11 @@ type CreateRouteOutput struct {
// using AWS IAM permissions, and CUSTOM for using a Lambda authorizer.
AuthorizationType *string `locationName:"authorizationType" type:"string" enum:"AuthorizationType"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
AuthorizerId *string `locationName:"authorizerId" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"`
@@ -6885,18 +6948,18 @@ type CreateRouteOutput struct {
// The route parameters.
RequestParameters map[string]*ParameterConstraints `locationName:"requestParameters" type:"map"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
RouteId *string `locationName:"routeId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
RouteKey *string `locationName:"routeKey" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
RouteResponseSelectionExpression *string `locationName:"routeResponseSelectionExpression" type:"string"`
@@ -6993,7 +7056,7 @@ type CreateRouteResponseInput struct {
ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"`
@@ -7008,7 +7071,7 @@ type CreateRouteResponseInput struct {
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
//
@@ -7091,7 +7154,7 @@ type CreateRouteResponseOutput struct {
_ struct{} `type:"structure"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"`
@@ -7101,12 +7164,12 @@ type CreateRouteResponseOutput struct {
// The route parameters.
ResponseParameters map[string]*ParameterConstraints `locationName:"responseParameters" type:"map"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
RouteResponseId *string `locationName:"routeResponseId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
RouteResponseKey *string `locationName:"routeResponseKey" type:"string"`
@@ -7161,13 +7224,13 @@ type CreateStageInput struct {
// ApiId is a required field
ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
// Represents a collection of route settings.
DefaultRouteSettings *RouteSettings `locationName:"defaultRouteSettings" type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
DeploymentId *string `locationName:"deploymentId" type:"string"`
// A string with a length between [0-1024].
@@ -7274,7 +7337,7 @@ type CreateStageOutput struct {
// Settings for logging access in a stage.
AccessLogSettings *AccessLogSettings `locationName:"accessLogSettings" type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"`
@@ -7282,7 +7345,7 @@ type CreateStageOutput struct {
// Represents a collection of route settings.
DefaultRouteSettings *RouteSettings `locationName:"defaultRouteSettings" type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
DeploymentId *string `locationName:"deploymentId" type:"string"`
// A string with a length between [0-1024].
@@ -7412,9 +7475,6 @@ func (s *DeleteApiInput) SetApiId(v string) *DeleteApiInput {
type DeleteApiMappingInput struct {
_ struct{} `type:"structure"`
- // ApiId is a required field
- ApiId *string `location:"querystring" locationName:"apiId" type:"string" required:"true"`
-
// ApiMappingId is a required field
ApiMappingId *string `location:"uri" locationName:"apiMappingId" type:"string" required:"true"`
@@ -7435,9 +7495,6 @@ func (s DeleteApiMappingInput) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteApiMappingInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "DeleteApiMappingInput"}
- if s.ApiId == nil {
- invalidParams.Add(request.NewErrParamRequired("ApiId"))
- }
if s.ApiMappingId == nil {
invalidParams.Add(request.NewErrParamRequired("ApiMappingId"))
}
@@ -7457,12 +7514,6 @@ func (s *DeleteApiMappingInput) Validate() error {
return nil
}
-// SetApiId sets the ApiId field's value.
-func (s *DeleteApiMappingInput) SetApiId(v string) *DeleteApiMappingInput {
- s.ApiId = &v
- return s
-}
-
// SetApiMappingId sets the ApiMappingId field's value.
func (s *DeleteApiMappingInput) SetApiMappingId(v string) *DeleteApiMappingInput {
s.ApiMappingId = &v
@@ -8257,8 +8308,7 @@ type DomainNameConfiguration struct {
// The endpoint type.
EndpointType *string `locationName:"endpointType" type:"string" enum:"EndpointType"`
- // The Amazon Route 53 Hosted Zone ID of the endpoint. See AWS Regions and Endpoints
- // for API Gateway (docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region).
+ // The Amazon Route 53 Hosted Zone ID of the endpoint.
HostedZoneId *string `locationName:"hostedZoneId" type:"string"`
}
@@ -8350,9 +8400,6 @@ func (s *GetApiInput) SetApiId(v string) *GetApiInput {
type GetApiMappingInput struct {
_ struct{} `type:"structure"`
- // ApiId is a required field
- ApiId *string `location:"querystring" locationName:"apiId" type:"string" required:"true"`
-
// ApiMappingId is a required field
ApiMappingId *string `location:"uri" locationName:"apiMappingId" type:"string" required:"true"`
@@ -8373,9 +8420,6 @@ func (s GetApiMappingInput) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *GetApiMappingInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "GetApiMappingInput"}
- if s.ApiId == nil {
- invalidParams.Add(request.NewErrParamRequired("ApiId"))
- }
if s.ApiMappingId == nil {
invalidParams.Add(request.NewErrParamRequired("ApiMappingId"))
}
@@ -8395,12 +8439,6 @@ func (s *GetApiMappingInput) Validate() error {
return nil
}
-// SetApiId sets the ApiId field's value.
-func (s *GetApiMappingInput) SetApiId(v string) *GetApiMappingInput {
- s.ApiId = &v
- return s
-}
-
// SetApiMappingId sets the ApiMappingId field's value.
func (s *GetApiMappingInput) SetApiMappingId(v string) *GetApiMappingInput {
s.ApiMappingId = &v
@@ -8416,15 +8454,15 @@ func (s *GetApiMappingInput) SetDomainName(v string) *GetApiMappingInput {
type GetApiMappingOutput struct {
_ struct{} `type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ApiId *string `locationName:"apiId" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ApiMappingId *string `locationName:"apiMappingId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
ApiMappingKey *string `locationName:"apiMappingKey" type:"string"`
@@ -8525,21 +8563,11 @@ func (s *GetApiMappingsInput) SetNextToken(v string) *GetApiMappingsInput {
type GetApiMappingsOutput struct {
_ struct{} `type:"structure"`
- // An API Gateway-generated, unique identifier.
- ApiId *string `locationName:"apiId" type:"string"`
-
- // An API Gateway-generated, unique identifier.
- ApiMappingId *string `locationName:"apiMappingId" type:"string"`
+ Items []*ApiMapping `locationName:"items" type:"list"`
- // After evaulating a selection expression, the result is compared against one
- // or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
- // for a list of expressions and each expression's associated selection key
- // type.
- ApiMappingKey *string `locationName:"apiMappingKey" type:"string"`
-
- // A string with a length between [1-128].
- Stage *string `locationName:"stage" type:"string"`
+ // The next page of elements from this collection. Not valid for the last element
+ // of the collection.
+ NextToken *string `locationName:"nextToken" type:"string"`
}
// String returns the string representation
@@ -8552,27 +8580,15 @@ func (s GetApiMappingsOutput) GoString() string {
return s.String()
}
-// SetApiId sets the ApiId field's value.
-func (s *GetApiMappingsOutput) SetApiId(v string) *GetApiMappingsOutput {
- s.ApiId = &v
- return s
-}
-
-// SetApiMappingId sets the ApiMappingId field's value.
-func (s *GetApiMappingsOutput) SetApiMappingId(v string) *GetApiMappingsOutput {
- s.ApiMappingId = &v
- return s
-}
-
-// SetApiMappingKey sets the ApiMappingKey field's value.
-func (s *GetApiMappingsOutput) SetApiMappingKey(v string) *GetApiMappingsOutput {
- s.ApiMappingKey = &v
+// SetItems sets the Items field's value.
+func (s *GetApiMappingsOutput) SetItems(v []*ApiMapping) *GetApiMappingsOutput {
+ s.Items = v
return s
}
-// SetStage sets the Stage field's value.
-func (s *GetApiMappingsOutput) SetStage(v string) *GetApiMappingsOutput {
- s.Stage = &v
+// SetNextToken sets the NextToken field's value.
+func (s *GetApiMappingsOutput) SetNextToken(v string) *GetApiMappingsOutput {
+ s.NextToken = &v
return s
}
@@ -8581,11 +8597,11 @@ type GetApiOutput struct {
ApiEndpoint *string `locationName:"apiEndpoint" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ApiId *string `locationName:"apiId" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"`
@@ -8602,7 +8618,7 @@ type GetApiOutput struct {
ProtocolType *string `locationName:"protocolType" type:"string" enum:"ProtocolType"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string"`
@@ -8810,7 +8826,7 @@ type GetAuthorizerOutput struct {
// Represents an Amazon Resource Name (ARN).
AuthorizerCredentialsArn *string `locationName:"authorizerCredentialsArn" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
AuthorizerId *string `locationName:"authorizerId" type:"string"`
// An integer with a value between [0-3600].
@@ -8823,12 +8839,11 @@ type GetAuthorizerOutput struct {
// A string representation of a URI with a length between [1-2048].
AuthorizerUri *string `locationName:"authorizerUri" type:"string"`
- // The identity source for which authorization is requested.
- //
- // For the REQUEST authorizer, this is required when authorization caching is
- // enabled. The value is a comma-separated string of one or more mapping expressions
- // of the specified request parameters. For example, if an Auth header, a Name
- // query string parameter are defined as identity sources, this value is $method.request.header.Auth,
+ // The identity source for which authorization is requested. For the REQUEST
+ // authorizer, this is required when authorization caching is enabled. The value
+ // is a comma-separated string of one or more mapping expressions of the specified
+ // request parameters. For example, if an Auth header, a Name query string parameter
+ // are defined as identity sources, this value is $method.request.header.Auth,
// $method.request.querystring.Name. These parameters will be used to derive
// the authorization caching key and to perform runtime validation of the REQUEST
// authorizer by verifying all of the identity-related request parameters are
@@ -9059,7 +9074,7 @@ type GetDeploymentOutput struct {
CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
DeploymentId *string `locationName:"deploymentId" type:"string"`
// Represents a deployment status.
@@ -9241,7 +9256,7 @@ type GetDomainNameOutput struct {
_ struct{} `type:"structure"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ApiMappingSelectionExpression *string `locationName:"apiMappingSelectionExpression" type:"string"`
@@ -9414,14 +9429,14 @@ type GetIntegrationOutput struct {
// A string with a length between [0-1024].
Description *string `locationName:"description" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
IntegrationId *string `locationName:"integrationId" type:"string"`
// A string with a length between [1-64].
IntegrationMethod *string `locationName:"integrationMethod" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
IntegrationResponseSelectionExpression *string `locationName:"integrationResponseSelectionExpression" type:"string"`
@@ -9452,7 +9467,7 @@ type GetIntegrationOutput struct {
RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
TemplateSelectionExpression *string `locationName:"templateSelectionExpression" type:"string"`
@@ -9635,12 +9650,12 @@ type GetIntegrationResponseOutput struct {
// Specifies how to handle response payload content type conversions.
ContentHandlingStrategy *string `locationName:"contentHandlingStrategy" type:"string" enum:"ContentHandlingStrategy"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
IntegrationResponseId *string `locationName:"integrationResponseId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
IntegrationResponseKey *string `locationName:"integrationResponseKey" type:"string"`
@@ -9663,7 +9678,7 @@ type GetIntegrationResponseOutput struct {
ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
TemplateSelectionExpression *string `locationName:"templateSelectionExpression" type:"string"`
}
@@ -9966,7 +9981,7 @@ type GetModelOutput struct {
// A string with a length between [0-1024].
Description *string `locationName:"description" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ModelId *string `locationName:"modelId" type:"string"`
// A string with a length between [1-128].
@@ -10252,11 +10267,11 @@ type GetRouteOutput struct {
// using AWS IAM permissions, and CUSTOM for using a Lambda authorizer.
AuthorizationType *string `locationName:"authorizationType" type:"string" enum:"AuthorizationType"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
AuthorizerId *string `locationName:"authorizerId" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"`
@@ -10269,18 +10284,18 @@ type GetRouteOutput struct {
// The route parameters.
RequestParameters map[string]*ParameterConstraints `locationName:"requestParameters" type:"map"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
RouteId *string `locationName:"routeId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
RouteKey *string `locationName:"routeKey" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
RouteResponseSelectionExpression *string `locationName:"routeResponseSelectionExpression" type:"string"`
@@ -10443,7 +10458,7 @@ type GetRouteResponseOutput struct {
_ struct{} `type:"structure"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"`
@@ -10453,12 +10468,12 @@ type GetRouteResponseOutput struct {
// The route parameters.
ResponseParameters map[string]*ParameterConstraints `locationName:"responseParameters" type:"map"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
RouteResponseId *string `locationName:"routeResponseId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
RouteResponseKey *string `locationName:"routeResponseKey" type:"string"`
@@ -10753,7 +10768,7 @@ type GetStageOutput struct {
// Settings for logging access in a stage.
AccessLogSettings *AccessLogSettings `locationName:"accessLogSettings" type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"`
@@ -10761,7 +10776,7 @@ type GetStageOutput struct {
// Represents a collection of route settings.
DefaultRouteSettings *RouteSettings `locationName:"defaultRouteSettings" type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
DeploymentId *string `locationName:"deploymentId" type:"string"`
// A string with a length between [0-1024].
@@ -10940,14 +10955,12 @@ func (s *GetStagesOutput) SetNextToken(v string) *GetStagesOutput {
type Integration struct {
_ struct{} `type:"structure"`
- // The identifier of the VpcLink used for the integration when the connectionType
- // is VPC_LINK; otherwise undefined.
+ // The connection ID.
ConnectionId *string `locationName:"connectionId" type:"string"`
- // The type of the network connection to the integration endpoint. The valid
- // value is INTERNET for connections through the public routable internet or
- // VPC_LINK for private connections between API Gateway and a network load balancer
- // in a VPC. The default value is INTERNET.
+ // The type of the network connection to the integration endpoint. Currently
+ // the only valid value is INTERNET, for connections through the public routable
+ // internet.
ConnectionType *string `locationName:"connectionType" type:"string" enum:"ConnectionType"`
// Specifies how to handle response payload content type conversions. Supported
@@ -10980,9 +10993,8 @@ type Integration struct {
// Specifies the integration's HTTP method type.
IntegrationMethod *string `locationName:"integrationMethod" type:"string"`
- // An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
- // for more information.
+ // The integration response selection expression for the integration. See Integration
+ // Response Selection Expressions (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions).
IntegrationResponseSelectionExpression *string `locationName:"integrationResponseSelectionExpression" type:"string"`
// The integration type of an integration. One of the following:
@@ -10996,38 +11008,18 @@ type Integration struct {
// action with the client request passed through as-is. This integration is
// also referred to as Lambda proxy integration.
//
- // HTTP: for integrating the route or method request with an HTTP endpoint,
- // including a private HTTP endpoint within a VPC. This integration is also
- // referred to as the HTTP custom integration.
+ // HTTP: for integrating the route or method request with an HTTP endpoint.
+ // This integration is also referred to as the HTTP custom integration.
//
// HTTP_PROXY: for integrating route or method request with an HTTP endpoint,
- // including a private HTTP endpoint within a VPC, with the client request passed
- // through as-is. This is also referred to as HTTP proxy integration.
+ // with the client request passed through as-is. This is also referred to as
+ // HTTP proxy integration.
//
// MOCK: for integrating the route or method request with API Gateway as a "loopback"
// endpoint without invoking any backend.
IntegrationType *string `locationName:"integrationType" type:"string" enum:"IntegrationType"`
- // Specifies the Uniform Resource Identifier (URI) of the integration endpoint.
- //
- // For HTTP or HTTP_PROXY integrations, the URI must be a fully formed, encoded
- // HTTP(S) URL according to the RFC-3986 specification (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier),
- // for either standard integration, where connectionType is not VPC_LINK, or
- // private integration, where connectionType is VPC_LINK. For a private HTTP
- // integration, the URI is not used for routing.
- //
- // For AWS or AWS_PROXY integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}.
- // Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is
- // the name of the integrated AWS service (e.g., s3); and {subdomain} is a designated
- // subdomain supported by certain AWS service for fast host-name lookup. action
- // can be used for an AWS service action-based API, using an Action={name}&{p1}={v1}&p2={v2}...
- // query string. The ensuing {service_api} refers to a supported action {name}
- // plus any required input parameters. Alternatively, path can be used for an
- // AWS service path-based API. The ensuing service_api refers to the path to
- // an AWS service resource, including the region of the integrated AWS service,
- // if applicable. For example, for integration with the S3 API of GetObject,
- // the URI can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}
- // or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}
+ // For a Lambda proxy integration, this is the URI of the Lambda function.
IntegrationUri *string `locationName:"integrationUri" type:"string"`
// Specifies the pass-through behavior for incoming requests based on the Content-Type
@@ -11360,14 +11352,23 @@ type Route struct {
// Specifies whether an API key is required for this route.
ApiKeyRequired *bool `locationName:"apiKeyRequired" type:"boolean"`
- // The authorization scopes supported by this route.
+ // A list of authorization scopes configured on a route. The scopes are used
+ // with a COGNITO_USER_POOLS authorizer to authorize the method invocation.
+ // The authorization works by matching the route scopes against the scopes parsed
+ // from the access token in the incoming request. The method invocation is authorized
+ // if any route scope matches a claimed scope in the access token. Otherwise,
+ // the invocation is not authorized. When the route scope is configured, the
+ // client must provide an access token instead of an identity token for authorization
+ // purposes.
AuthorizationScopes []*string `locationName:"authorizationScopes" type:"list"`
// The authorization type for the route. Valid values are NONE for open access,
- // AWS_IAM for using AWS IAM permissions.
+ // AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer
AuthorizationType *string `locationName:"authorizationType" type:"string" enum:"AuthorizationType"`
- // The identifier of the Authorizer resource to be associated with this route.
+ // The identifier of the Authorizer resource to be associated with this route,
+ // if the authorizationType is CUSTOM . The authorizer identifier is generated
+ // by API Gateway when you created the authorizer.
AuthorizerId *string `locationName:"authorizerId" type:"string"`
// The model selection expression for the route.
@@ -11720,7 +11721,7 @@ type UpdateApiInput struct {
ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"`
@@ -11733,7 +11734,7 @@ type UpdateApiInput struct {
Name *string `locationName:"name" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string"`
@@ -11812,7 +11813,7 @@ func (s *UpdateApiInput) SetVersion(v string) *UpdateApiInput {
type UpdateApiMappingInput struct {
_ struct{} `type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
//
// ApiId is a required field
ApiId *string `locationName:"apiId" type:"string" required:"true"`
@@ -11822,7 +11823,7 @@ type UpdateApiMappingInput struct {
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
ApiMappingKey *string `locationName:"apiMappingKey" type:"string"`
@@ -11902,15 +11903,15 @@ func (s *UpdateApiMappingInput) SetStage(v string) *UpdateApiMappingInput {
type UpdateApiMappingOutput struct {
_ struct{} `type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ApiId *string `locationName:"apiId" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ApiMappingId *string `locationName:"apiMappingId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
ApiMappingKey *string `locationName:"apiMappingKey" type:"string"`
@@ -11958,11 +11959,11 @@ type UpdateApiOutput struct {
ApiEndpoint *string `locationName:"apiEndpoint" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ApiId *string `locationName:"apiId" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ApiKeySelectionExpression *string `locationName:"apiKeySelectionExpression" type:"string"`
@@ -11979,7 +11980,7 @@ type UpdateApiOutput struct {
ProtocolType *string `locationName:"protocolType" type:"string" enum:"ProtocolType"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
RouteSelectionExpression *string `locationName:"routeSelectionExpression" type:"string"`
@@ -12087,12 +12088,11 @@ type UpdateAuthorizerInput struct {
// A string representation of a URI with a length between [1-2048].
AuthorizerUri *string `locationName:"authorizerUri" type:"string"`
- // The identity source for which authorization is requested.
- //
- // For the REQUEST authorizer, this is required when authorization caching is
- // enabled. The value is a comma-separated string of one or more mapping expressions
- // of the specified request parameters. For example, if an Auth header, a Name
- // query string parameter are defined as identity sources, this value is $method.request.header.Auth,
+ // The identity source for which authorization is requested. For the REQUEST
+ // authorizer, this is required when authorization caching is enabled. The value
+ // is a comma-separated string of one or more mapping expressions of the specified
+ // request parameters. For example, if an Auth header, a Name query string parameter
+ // are defined as identity sources, this value is $method.request.header.Auth,
// $method.request.querystring.Name. These parameters will be used to derive
// the authorization caching key and to perform runtime validation of the REQUEST
// authorizer by verifying all of the identity-related request parameters are
@@ -12211,7 +12211,7 @@ type UpdateAuthorizerOutput struct {
// Represents an Amazon Resource Name (ARN).
AuthorizerCredentialsArn *string `locationName:"authorizerCredentialsArn" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
AuthorizerId *string `locationName:"authorizerId" type:"string"`
// An integer with a value between [0-3600].
@@ -12224,12 +12224,11 @@ type UpdateAuthorizerOutput struct {
// A string representation of a URI with a length between [1-2048].
AuthorizerUri *string `locationName:"authorizerUri" type:"string"`
- // The identity source for which authorization is requested.
- //
- // For the REQUEST authorizer, this is required when authorization caching is
- // enabled. The value is a comma-separated string of one or more mapping expressions
- // of the specified request parameters. For example, if an Auth header, a Name
- // query string parameter are defined as identity sources, this value is $method.request.header.Auth,
+ // The identity source for which authorization is requested. For the REQUEST
+ // authorizer, this is required when authorization caching is enabled. The value
+ // is a comma-separated string of one or more mapping expressions of the specified
+ // request parameters. For example, if an Auth header, a Name query string parameter
+ // are defined as identity sources, this value is $method.request.header.Auth,
// $method.request.querystring.Name. These parameters will be used to derive
// the authorization caching key and to perform runtime validation of the REQUEST
// authorizer by verifying all of the identity-related request parameters are
@@ -12382,7 +12381,7 @@ type UpdateDeploymentOutput struct {
CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
DeploymentId *string `locationName:"deploymentId" type:"string"`
// Represents a deployment status.
@@ -12486,7 +12485,7 @@ type UpdateDomainNameOutput struct {
_ struct{} `type:"structure"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ApiMappingSelectionExpression *string `locationName:"apiMappingSelectionExpression" type:"string"`
@@ -12579,7 +12578,7 @@ type UpdateIntegrationInput struct {
RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
TemplateSelectionExpression *string `locationName:"templateSelectionExpression" type:"string"`
@@ -12730,14 +12729,14 @@ type UpdateIntegrationOutput struct {
// A string with a length between [0-1024].
Description *string `locationName:"description" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
IntegrationId *string `locationName:"integrationId" type:"string"`
// A string with a length between [1-64].
IntegrationMethod *string `locationName:"integrationMethod" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
IntegrationResponseSelectionExpression *string `locationName:"integrationResponseSelectionExpression" type:"string"`
@@ -12768,7 +12767,7 @@ type UpdateIntegrationOutput struct {
RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
TemplateSelectionExpression *string `locationName:"templateSelectionExpression" type:"string"`
@@ -12893,7 +12892,7 @@ type UpdateIntegrationResponseInput struct {
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
IntegrationResponseKey *string `locationName:"integrationResponseKey" type:"string"`
@@ -12916,7 +12915,7 @@ type UpdateIntegrationResponseInput struct {
ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
TemplateSelectionExpression *string `locationName:"templateSelectionExpression" type:"string"`
}
@@ -13013,12 +13012,12 @@ type UpdateIntegrationResponseOutput struct {
// Specifies how to handle response payload content type conversions.
ContentHandlingStrategy *string `locationName:"contentHandlingStrategy" type:"string" enum:"ContentHandlingStrategy"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
IntegrationResponseId *string `locationName:"integrationResponseId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
IntegrationResponseKey *string `locationName:"integrationResponseKey" type:"string"`
@@ -13041,7 +13040,7 @@ type UpdateIntegrationResponseOutput struct {
ResponseTemplates map[string]*string `locationName:"responseTemplates" type:"map"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
TemplateSelectionExpression *string `locationName:"templateSelectionExpression" type:"string"`
}
@@ -13191,7 +13190,7 @@ type UpdateModelOutput struct {
// A string with a length between [0-1024].
Description *string `locationName:"description" type:"string"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ModelId *string `locationName:"modelId" type:"string"`
// A string with a length between [1-128].
@@ -13263,11 +13262,11 @@ type UpdateRouteInput struct {
// using AWS IAM permissions, and CUSTOM for using a Lambda authorizer.
AuthorizationType *string `locationName:"authorizationType" type:"string" enum:"AuthorizationType"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
AuthorizerId *string `locationName:"authorizerId" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"`
@@ -13285,13 +13284,13 @@ type UpdateRouteInput struct {
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
RouteKey *string `locationName:"routeKey" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
RouteResponseSelectionExpression *string `locationName:"routeResponseSelectionExpression" type:"string"`
@@ -13428,11 +13427,11 @@ type UpdateRouteOutput struct {
// using AWS IAM permissions, and CUSTOM for using a Lambda authorizer.
AuthorizationType *string `locationName:"authorizationType" type:"string" enum:"AuthorizationType"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
AuthorizerId *string `locationName:"authorizerId" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"`
@@ -13445,18 +13444,18 @@ type UpdateRouteOutput struct {
// The route parameters.
RequestParameters map[string]*ParameterConstraints `locationName:"requestParameters" type:"map"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
RouteId *string `locationName:"routeId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
RouteKey *string `locationName:"routeKey" type:"string"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
RouteResponseSelectionExpression *string `locationName:"routeResponseSelectionExpression" type:"string"`
@@ -13553,7 +13552,7 @@ type UpdateRouteResponseInput struct {
ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"`
@@ -13571,7 +13570,7 @@ type UpdateRouteResponseInput struct {
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
RouteResponseKey *string `locationName:"routeResponseKey" type:"string"`
@@ -13661,7 +13660,7 @@ type UpdateRouteResponseOutput struct {
_ struct{} `type:"structure"`
// An expression used to extract information at runtime. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for more information.
ModelSelectionExpression *string `locationName:"modelSelectionExpression" type:"string"`
@@ -13671,12 +13670,12 @@ type UpdateRouteResponseOutput struct {
// The route parameters.
ResponseParameters map[string]*ParameterConstraints `locationName:"responseParameters" type:"map"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
RouteResponseId *string `locationName:"routeResponseId" type:"string"`
// After evaulating a selection expression, the result is compared against one
// or more selection keys to find a matching key. See Selection Expressions
- // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html)
+ // (https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)
// for a list of expressions and each expression's associated selection key
// type.
RouteResponseKey *string `locationName:"routeResponseKey" type:"string"`
@@ -13731,13 +13730,13 @@ type UpdateStageInput struct {
// ApiId is a required field
ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
// Represents a collection of route settings.
DefaultRouteSettings *RouteSettings `locationName:"defaultRouteSettings" type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
DeploymentId *string `locationName:"deploymentId" type:"string"`
// A string with a length between [0-1024].
@@ -13845,7 +13844,7 @@ type UpdateStageOutput struct {
// Settings for logging access in a stage.
AccessLogSettings *AccessLogSettings `locationName:"accessLogSettings" type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
ClientCertificateId *string `locationName:"clientCertificateId" type:"string"`
CreatedDate *time.Time `locationName:"createdDate" type:"timestamp" timestampFormat:"iso8601"`
@@ -13853,7 +13852,7 @@ type UpdateStageOutput struct {
// Represents a collection of route settings.
DefaultRouteSettings *RouteSettings `locationName:"defaultRouteSettings" type:"structure"`
- // An API Gateway-generated, unique identifier.
+ // The identifier.
DeploymentId *string `locationName:"deploymentId" type:"string"`
// A string with a length between [0-1024].
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 f0df4d35aef..87e230ce880 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
@@ -1456,7 +1456,7 @@ type DeleteScalingPolicyInput struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -1623,7 +1623,7 @@ type DeleteScheduledActionInput struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -1785,7 +1785,7 @@ type DeregisterScalableTargetInput struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -1945,7 +1945,7 @@ type DescribeScalableTargetsInput struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -2127,7 +2127,7 @@ type DescribeScalingActivitiesInput struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -2315,7 +2315,7 @@ type DescribeScalingPoliciesInput struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -2509,7 +2509,7 @@ type DescribeScheduledActionsInput struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -2740,8 +2740,8 @@ type PutScalingPolicyInput struct {
// policy.
//
// For information on which services do not support StepScaling or TargetTrackingScaling,
- // see Step Scaling Policies for Application Auto Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html)
- // and Target Tracking Scaling Policies for Application Auto Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)
+ // see the information about Limits in Step Scaling Policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html)
+ // and Target Tracking Scaling Policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)
// in the Application Auto Scaling User Guide.
PolicyType *string `type:"string" enum:"PolicyType"`
@@ -2821,7 +2821,7 @@ type PutScalingPolicyInput struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -3076,7 +3076,7 @@ type PutScheduledActionInput struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -3285,7 +3285,7 @@ type RegisterScalableTargetInput struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -3478,7 +3478,7 @@ type ScalableTarget struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -3671,7 +3671,7 @@ type ScalingActivity struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -3870,7 +3870,7 @@ type ScalingPolicy struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
@@ -4075,7 +4075,7 @@ type ScheduledAction struct {
// The namespace of the AWS service that provides the resource or custom-resource
// for a resource provided by your own application or service. For more information,
- // see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
+ // see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces)
// in the Amazon Web Services General Reference.
//
// ServiceNamespace is a required field
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 e6ac63059e8..a05d7b4f8ad 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
@@ -3,6 +3,7 @@
package athena
import (
+ "fmt"
"time"
"github.com/aws/aws-sdk-go/aws"
@@ -901,7 +902,7 @@ func (c *Athena) GetWorkGroupRequest(input *GetWorkGroupInput) (req *request.Req
// GetWorkGroup API operation for Amazon Athena.
//
-// Returns information about the workgroup with the speficied name.
+// Returns information about the workgroup with the specified name.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1232,6 +1233,93 @@ func (c *Athena) ListQueryExecutionsPagesWithContext(ctx aws.Context, input *Lis
return p.Err()
}
+const opListTagsForResource = "ListTagsForResource"
+
+// ListTagsForResourceRequest generates a "aws/request.Request" representing the
+// client's request for the ListTagsForResource operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ListTagsForResource for more information on using the ListTagsForResource
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ListTagsForResourceRequest method.
+// req, resp := client.ListTagsForResourceRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListTagsForResource
+func (c *Athena) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
+ op := &request.Operation{
+ Name: opListTagsForResource,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ListTagsForResourceInput{}
+ }
+
+ output = &ListTagsForResourceOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ListTagsForResource API operation for Amazon Athena.
+//
+// Lists the tags associated with this workgroup.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 Athena's
+// API operation ListTagsForResource for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInternalServerException "InternalServerException"
+// Indicates a platform issue, which may be due to a transient condition or
+// outage.
+//
+// * ErrCodeInvalidRequestException "InvalidRequestException"
+// Indicates that something is wrong with the input to the request. For example,
+// a required parameter may be missing or out of range.
+//
+// * ErrCodeResourceNotFoundException "ResourceNotFoundException"
+// A resource, such as a workgroup, was not found.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListTagsForResource
+func (c *Athena) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
+ req, out := c.ListTagsForResourceRequest(input)
+ return out, req.Send()
+}
+
+// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ListTagsForResource for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *Athena) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
+ req, out := c.ListTagsForResourceRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opListWorkGroups = "ListWorkGroups"
// ListWorkGroupsRequest generates a "aws/request.Request" representing the
@@ -1554,6 +1642,196 @@ func (c *Athena) StopQueryExecutionWithContext(ctx aws.Context, input *StopQuery
return out, req.Send()
}
+const opTagResource = "TagResource"
+
+// TagResourceRequest generates a "aws/request.Request" representing the
+// client's request for the TagResource operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See TagResource for more information on using the TagResource
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the TagResourceRequest method.
+// req, resp := client.TagResourceRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/TagResource
+func (c *Athena) 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)
+ req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// TagResource API operation for Amazon Athena.
+//
+// Adds one or more tags to the resource, such as a workgroup. A tag is a label
+// that you assign to an AWS Athena resource (a workgroup). Each tag consists
+// of a key and an optional value, both of which you define. Tags enable you
+// to categorize resources (workgroups) in Athena, for example, by purpose,
+// owner, or environment. Use a consistent set of tag keys to make it easier
+// to search and filter workgroups in your account. For best practices, see
+// AWS Tagging Strategies (https://aws.amazon.com/answers/account-management/aws-tagging-strategies/).
+// The key length is from 1 (minimum) to 128 (maximum) Unicode characters in
+// UTF-8. The tag value length is from 0 (minimum) to 256 (maximum) Unicode
+// characters in UTF-8. You can use letters and numbers representable in UTF-8,
+// and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive.
+// Tag keys must be unique per resource. If you specify more than one, separate
+// them by commas.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 Athena's
+// API operation TagResource for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInternalServerException "InternalServerException"
+// Indicates a platform issue, which may be due to a transient condition or
+// outage.
+//
+// * ErrCodeInvalidRequestException "InvalidRequestException"
+// Indicates that something is wrong with the input to the request. For example,
+// a required parameter may be missing or out of range.
+//
+// * ErrCodeResourceNotFoundException "ResourceNotFoundException"
+// A resource, such as a workgroup, was not found.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/TagResource
+func (c *Athena) 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 *Athena) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
+ req, out := c.TagResourceRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opUntagResource = "UntagResource"
+
+// UntagResourceRequest generates a "aws/request.Request" representing the
+// client's request for the UntagResource operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See UntagResource for more information on using the UntagResource
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the UntagResourceRequest method.
+// req, resp := client.UntagResourceRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UntagResource
+func (c *Athena) 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)
+ req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// UntagResource API operation for Amazon Athena.
+//
+// Removes one or more tags from the workgroup resource. Takes as an input a
+// list of TagKey Strings separated by commas, and removes their tags at the
+// same time.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 Athena's
+// API operation UntagResource for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInternalServerException "InternalServerException"
+// Indicates a platform issue, which may be due to a transient condition or
+// outage.
+//
+// * ErrCodeInvalidRequestException "InvalidRequestException"
+// Indicates that something is wrong with the input to the request. For example,
+// a required parameter may be missing or out of range.
+//
+// * ErrCodeResourceNotFoundException "ResourceNotFoundException"
+// A resource, such as a workgroup, was not found.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UntagResource
+func (c *Athena) 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 *Athena) 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 opUpdateWorkGroup = "UpdateWorkGroup"
// UpdateWorkGroupRequest generates a "aws/request.Request" representing the
@@ -2054,6 +2332,10 @@ type CreateWorkGroupInput struct {
//
// Name is a required field
Name *string `type:"string" required:"true"`
+
+ // One or more tags, separated by commas, that you want to attach to the workgroup
+ // as you create it.
+ Tags []*Tag `type:"list"`
}
// String returns the string representation
@@ -2077,6 +2359,16 @@ func (s *CreateWorkGroupInput) Validate() error {
invalidParams.AddNested("Configuration", 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
@@ -2102,6 +2394,12 @@ func (s *CreateWorkGroupInput) SetName(v string) *CreateWorkGroupInput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateWorkGroupInput) SetTags(v []*Tag) *CreateWorkGroupInput {
+ s.Tags = v
+ return s
+}
+
type CreateWorkGroupOutput struct {
_ struct{} `type:"structure"`
}
@@ -2752,6 +3050,106 @@ func (s *ListQueryExecutionsOutput) SetQueryExecutionIds(v []*string) *ListQuery
return s
}
+type ListTagsForResourceInput struct {
+ _ struct{} `type:"structure"`
+
+ // The maximum number of results to be returned per request that lists the tags
+ // for the workgroup resource.
+ MaxResults *int64 `min:"75" type:"integer"`
+
+ // The token for the next set of results, or null if there are no additional
+ // results for this request, where the request lists the tags for the workgroup
+ // resource with the specified ARN.
+ NextToken *string `min:"1" type:"string"`
+
+ // Lists the tags for the workgroup resource with the specified ARN.
+ //
+ // ResourceARN is a required field
+ ResourceARN *string `min:"1" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s ListTagsForResourceInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ListTagsForResourceInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ListTagsForResourceInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
+ if s.MaxResults != nil && *s.MaxResults < 75 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 75))
+ }
+ if s.NextToken != nil && len(*s.NextToken) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
+ }
+ if s.ResourceARN == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
+ }
+ if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
+ s.NextToken = &v
+ return s
+}
+
+// SetResourceARN sets the ResourceARN field's value.
+func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
+ s.ResourceARN = &v
+ return s
+}
+
+type ListTagsForResourceOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A token to be used by the next request if this request is truncated.
+ NextToken *string `min:"1" type:"string"`
+
+ // The list of tags associated with this workgroup.
+ Tags []*Tag `type:"list"`
+}
+
+// String returns the string representation
+func (s ListTagsForResourceOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ListTagsForResourceOutput) GoString() string {
+ return s.String()
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
+ s.Tags = v
+ return s
+}
+
type ListWorkGroupsInput struct {
_ struct{} `type:"structure"`
@@ -3527,6 +3925,147 @@ func (s StopQueryExecutionOutput) GoString() string {
return s.String()
}
+// A tag that you can add to a resource. A tag is a label that you assign to
+// an AWS Athena resource (a workgroup). Each tag consists of a key and an optional
+// value, both of which you define. Tags enable you to categorize workgroups
+// in Athena, for example, by purpose, owner, or environment. Use a consistent
+// set of tag keys to make it easier to search and filter workgroups in your
+// account. The maximum tag key length is 128 Unicode characters in UTF-8. The
+// maximum tag value length is 256 Unicode characters in UTF-8. You can use
+// letters and numbers representable in UTF-8, and the following characters:
+// + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be
+// unique per resource.
+type Tag struct {
+ _ struct{} `type:"structure"`
+
+ // A tag key. The tag key length is from 1 to 128 Unicode characters in UTF-8.
+ // You can use letters and numbers representable in UTF-8, and the following
+ // characters: + - = . _ : / @. Tag keys are case-sensitive and must be unique
+ // per resource.
+ Key *string `min:"1" type:"string"`
+
+ // A tag value. The tag value length is from 0 to 256 Unicode characters in
+ // UTF-8. You can use letters and numbers representable in UTF-8, and the following
+ // characters: + - = . _ : / @. Tag values are case-sensitive.
+ 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()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *Tag) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "Tag"}
+ if s.Key != nil && len(*s.Key) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Key", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetKey sets the Key field's value.
+func (s *Tag) SetKey(v string) *Tag {
+ s.Key = &v
+ return s
+}
+
+// SetValue sets the Value field's value.
+func (s *Tag) SetValue(v string) *Tag {
+ s.Value = &v
+ return s
+}
+
+type TagResourceInput struct {
+ _ struct{} `type:"structure"`
+
+ // Requests that one or more tags are added to the resource (such as a workgroup)
+ // for the specified ARN.
+ //
+ // ResourceARN is a required field
+ ResourceARN *string `min:"1" type:"string" required:"true"`
+
+ // One or more tags, separated by commas, to be added to the resource, such
+ // as a workgroup.
+ //
+ // 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.ResourceARN == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
+ }
+ if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
+ }
+ if s.Tags == nil {
+ invalidParams.Add(request.NewErrParamRequired("Tags"))
+ }
+ if s.Tags != nil {
+ for i, v := range s.Tags {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceARN sets the ResourceARN field's value.
+func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
+ s.ResourceARN = &v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
+ s.Tags = v
+ return s
+}
+
+type TagResourceOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s TagResourceOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TagResourceOutput) GoString() string {
+ return s.String()
+}
+
// Information about a named query ID that could not be processed.
type UnprocessedNamedQueryId struct {
_ struct{} `type:"structure"`
@@ -3614,6 +4153,76 @@ func (s *UnprocessedQueryExecutionId) SetQueryExecutionId(v string) *Unprocessed
return s
}
+type UntagResourceInput struct {
+ _ struct{} `type:"structure"`
+
+ // Removes one or more tags from the workgroup resource for the specified ARN.
+ //
+ // ResourceARN is a required field
+ ResourceARN *string `min:"1" type:"string" required:"true"`
+
+ // Removes the tags associated with one or more tag keys from the workgroup
+ // resource.
+ //
+ // 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.ResourceARN == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
+ }
+ if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
+ }
+ if s.TagKeys == nil {
+ invalidParams.Add(request.NewErrParamRequired("TagKeys"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceARN sets the ResourceARN field's value.
+func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
+ s.ResourceARN = &v
+ return s
+}
+
+// SetTagKeys sets the TagKeys field's value.
+func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
+ s.TagKeys = v
+ return s
+}
+
+type UntagResourceOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s UntagResourceOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s UntagResourceOutput) GoString() string {
+ return s.String()
+}
+
type UpdateWorkGroupInput struct {
_ struct{} `type:"structure"`
diff --git a/vendor/github.com/aws/aws-sdk-go/service/athena/errors.go b/vendor/github.com/aws/aws-sdk-go/service/athena/errors.go
index 4060e744e36..1d280db2b20 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/athena/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/athena/errors.go
@@ -18,6 +18,12 @@ const (
// a required parameter may be missing or out of range.
ErrCodeInvalidRequestException = "InvalidRequestException"
+ // ErrCodeResourceNotFoundException for service response error code
+ // "ResourceNotFoundException".
+ //
+ // A resource, such as a workgroup, was not found.
+ ErrCodeResourceNotFoundException = "ResourceNotFoundException"
+
// ErrCodeTooManyRequestsException for service response error code
// "TooManyRequestsException".
//
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 2a822a5fb87..870a060560e 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
@@ -161,8 +161,10 @@ func (c *AutoScaling) AttachLoadBalancerTargetGroupsRequest(input *AttachLoadBal
// To describe the target groups for an Auto Scaling group, use DescribeLoadBalancerTargetGroups.
// To detach the target group from the Auto Scaling group, use DetachLoadBalancerTargetGroups.
//
-// For more information, see Attach a Load Balancer to Your Auto Scaling Group
-// (http://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)
+// With Application Load Balancers and Network Load Balancers, instances are
+// registered as targets with a target group. With Classic Load Balancers, instances
+// are registered with the load balancer. For more information, see Attaching
+// a Load Balancer to Your Auto Scaling Group (http://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)
// in the Amazon EC2 Auto Scaling User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -250,13 +252,14 @@ func (c *AutoScaling) AttachLoadBalancersRequest(input *AttachLoadBalancersInput
// Attaches one or more Classic Load Balancers to the specified Auto Scaling
// group.
//
-// To attach an Application Load Balancer instead, see AttachLoadBalancerTargetGroups.
+// To attach an Application Load Balancer or a Network Load Balancer instead,
+// see AttachLoadBalancerTargetGroups.
//
// To describe the load balancers for an Auto Scaling group, use DescribeLoadBalancers.
// To detach the load balancer from the Auto Scaling group, use DetachLoadBalancers.
//
-// For more information, see Attach a Load Balancer to Your Auto Scaling Group
-// (http://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)
+// For more information, see Attaching a Load Balancer to Your Auto Scaling
+// Group (http://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)
// in the Amazon EC2 Auto Scaling User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -620,7 +623,8 @@ func (c *AutoScaling) CreateAutoScalingGroupRequest(input *CreateAutoScalingGrou
//
// If you exceed your maximum limit of Auto Scaling groups, the call fails.
// For information about viewing this limit, see DescribeAccountLimits. For
-// information about updating this limit, see Auto Scaling Limits (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html)
+// information about updating this limit, see Amazon EC2 Auto Scaling Limits
+// (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html)
// in the Amazon EC2 Auto Scaling User Guide.
//
// For more information, see Auto Scaling Groups (http://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html)
@@ -721,7 +725,8 @@ func (c *AutoScaling) CreateLaunchConfigurationRequest(input *CreateLaunchConfig
//
// If you exceed your maximum limit of launch configurations, the call fails.
// For information about viewing this limit, see DescribeAccountLimits. For
-// information about updating this limit, see Auto Scaling Limits (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html)
+// information about updating this limit, see Amazon EC2 Auto Scaling Limits
+// (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html)
// in the Amazon EC2 Auto Scaling User Guide.
//
// For more information, see Launch Configurations (http://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchConfiguration.html)
@@ -1523,8 +1528,8 @@ func (c *AutoScaling) DescribeAccountLimitsRequest(input *DescribeAccountLimitsI
//
// Describes the current Auto Scaling resource limits for your AWS account.
//
-// For information about requesting an increase in these limits, see Auto Scaling
-// Limits (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html)
+// For information about requesting an increase in these limits, see Amazon
+// EC2 Auto Scaling Limits (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html)
// in the Amazon EC2 Auto Scaling User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -2431,7 +2436,8 @@ func (c *AutoScaling) DescribeLoadBalancersRequest(input *DescribeLoadBalancersI
// Describes the load balancers for the specified Auto Scaling group.
//
// This operation describes only Classic Load Balancers. If you have Application
-// Load Balancers, use DescribeLoadBalancerTargetGroups instead.
+// Load Balancers or Network Load Balancers, use DescribeLoadBalancerTargetGroups
+// 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
@@ -3648,7 +3654,8 @@ func (c *AutoScaling) DetachLoadBalancersRequest(input *DetachLoadBalancersInput
// group.
//
// This operation detaches only Classic Load Balancers. If you have Application
-// Load Balancers, use DetachLoadBalancerTargetGroups instead.
+// Load Balancers or Network Load Balancers, use DetachLoadBalancerTargetGroups
+// instead.
//
// When you detach a load balancer, it enters the Removing state while deregistering
// the instances in the group. When all instances are deregistered, then you
@@ -4176,13 +4183,11 @@ func (c *AutoScaling) PutLifecycleHookRequest(input *PutLifecycleHookInput) (req
//
// If you finish before the timeout period ends, complete the lifecycle action.
//
-// For more information, see Auto Scaling Lifecycle Hooks (http://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
+// For more information, see Amazon EC2 Auto Scaling Lifecycle Hooks (http://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
// in the Amazon EC2 Auto Scaling User Guide.
//
// If you exceed your maximum limit of lifecycle hooks, which by default is
-// 50 per Auto Scaling group, the call fails. For information about updating
-// this limit, see AWS Service Limits (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)
-// in the Amazon Web Services General Reference.
+// 50 per Auto Scaling group, the call fails.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -4274,9 +4279,9 @@ func (c *AutoScaling) PutNotificationConfigurationRequest(input *PutNotification
//
// This configuration overwrites any existing configuration.
//
-// For more information, see Getting SNS Notifications When Your Auto Scaling
-// Group Scales (http://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html)
-// in the Auto Scaling User Guide.
+// For more information, see Getting Amazon SNS Notifications When Your Auto
+// Scaling Group Scales (http://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html)
+// in the Amazon EC2 Auto Scaling User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -4369,11 +4374,6 @@ func (c *AutoScaling) PutScalingPolicyRequest(input *PutScalingPolicyInput) (req
// existing parameter not changed in an update to an existing policy is not
// changed in this update request.
//
-// If you exceed your maximum limit of step adjustments, which by default is
-// 20 per region, the call fails. For information about updating this limit,
-// see AWS Service Limits (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)
-// in the Amazon Web Services General Reference.
-//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
@@ -4752,7 +4752,7 @@ func (c *AutoScaling) SetDesiredCapacityRequest(input *SetDesiredCapacityInput)
// Sets the size of the specified Auto Scaling group.
//
// For more information about desired capacity, see What Is Amazon EC2 Auto
-// Scaling? (http://docs.aws.amazon.com/autoscaling/ec2/userguide/WhatIsAutoScaling.html)
+// Scaling? (http://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html)
// in the Amazon EC2 Auto Scaling User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -4924,7 +4924,8 @@ func (c *AutoScaling) SetInstanceProtectionRequest(input *SetInstanceProtectionI
//
// Updates the instance protection settings of the specified instances.
//
-// For more information, see Instance Protection (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
+// For more information about preventing instances that are part of an Auto
+// Scaling group from terminating on scale in, see Instance Protection (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
// in the Amazon EC2 Auto Scaling User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -5375,9 +5376,6 @@ func (s *Activity) SetStatusMessage(v string) *Activity {
}
// Describes a policy adjustment type.
-//
-// For more information, see Dynamic Scaling (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html)
-// in the Amazon EC2 Auto Scaling User Guide.
type AdjustmentType struct {
_ struct{} `type:"structure"`
@@ -6070,11 +6068,11 @@ type CreateAutoScalingGroupInput struct {
// One or more lifecycle hooks.
LifecycleHookSpecificationList []*LifecycleHookSpecification `type:"list"`
- // One or more Classic Load Balancers. To specify an Application Load Balancer,
- // use TargetGroupARNs instead.
+ // One or more Classic Load Balancers. To specify an Application Load Balancer
+ // or a Network Load Balancer, use TargetGroupARNs instead.
//
// For more information, see Using a Load Balancer With an Auto Scaling Group
- // (http://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-from-instance.html)
+ // (http://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html)
// in the Amazon EC2 Auto Scaling User Guide.
LoadBalancerNames []*string `type:"list"`
@@ -6094,11 +6092,15 @@ type CreateAutoScalingGroupInput struct {
// Indicates whether newly launched instances are protected from termination
// by Auto Scaling when scaling in.
+ //
+ // For more information about preventing instances from terminating on scale
+ // in, see Instance Protection (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
+ // in the Amazon EC2 Auto Scaling User Guide.
NewInstancesProtectedFromScaleIn *bool `type:"boolean"`
// The name of the placement group into which to launch your instances, if any.
// For more information, see Placement Groups (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances.
PlacementGroup *string `min:"1" type:"string"`
// The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling
@@ -6121,7 +6123,7 @@ type CreateAutoScalingGroupInput struct {
//
// For more information, see Controlling Which Instances Auto Scaling Terminates
// During Scale In (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html)
- // in the Auto Scaling User Guide.
+ // in the Amazon EC2 Auto Scaling User Guide.
TerminationPolicies []*string `type:"list"`
// A comma-separated list of subnet identifiers for your virtual private cloud
@@ -6376,19 +6378,23 @@ type CreateLaunchConfigurationInput struct {
// One or more mappings that specify how block devices are exposed to the instance.
// For more information, see Block Device Mapping (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances.
BlockDeviceMappings []*BlockDeviceMapping `type:"list"`
// The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to.
// This parameter is supported only if you are launching EC2-Classic instances.
// For more information, see ClassicLink (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic
+ // Instances to a VPC (http://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink)
+ // in the Amazon EC2 Auto Scaling User Guide.
ClassicLinkVPCId *string `min:"1" type:"string"`
// The IDs of one or more security groups for the specified ClassicLink-enabled
// VPC. This parameter is required if you specify a ClassicLink-enabled VPC,
// and is not supported otherwise. For more information, see ClassicLink (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic
+ // Instances to a VPC (http://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink)
+ // in the Amazon EC2 Auto Scaling User Guide.
ClassicLinkVPCSecurityGroups []*string `type:"list"`
// Indicates whether the instance is optimized for Amazon EBS I/O. By default,
@@ -6397,7 +6403,7 @@ type CreateLaunchConfigurationInput struct {
// optimal I/O performance. This optimization is not available with all instance
// types. Additional usage charges apply. For more information, see Amazon EBS-Optimized
// Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances.
EbsOptimized *bool `type:"boolean"`
// The name or the Amazon Resource Name (ARN) of the instance profile associated
@@ -6406,8 +6412,8 @@ type CreateLaunchConfigurationInput struct {
// EC2 instances launched with an IAM role automatically have AWS security credentials
// available. You can use IAM roles with Amazon EC2 Auto Scaling to automatically
// enable applications running on your EC2 instances to securely access other
- // AWS resources. For more information, see Launch Auto Scaling Instances with
- // an IAM Role (http://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html)
+ // AWS resources. For more information, see Use an IAM Role for Applications
+ // That Run on Amazon EC2 Instances (http://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html)
// in the Amazon EC2 Auto Scaling User Guide.
IamInstanceProfile *string `min:"1" type:"string"`
@@ -6416,7 +6422,7 @@ type CreateLaunchConfigurationInput struct {
// If you do not specify InstanceId, you must specify ImageId.
//
// For more information, see Finding an AMI (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances.
ImageId *string `min:"1" type:"string"`
// The ID of the instance to use to create the launch configuration. The new
@@ -6443,7 +6449,7 @@ type CreateLaunchConfigurationInput struct {
//
// For information about available instance types, see Available Instance Types
// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances.
InstanceType *string `min:"1" type:"string"`
// The ID of the kernel associated with the AMI.
@@ -6451,7 +6457,7 @@ type CreateLaunchConfigurationInput struct {
// The name of the key pair. For more information, see Amazon EC2 Key Pairs
// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in
- // the Amazon Elastic Compute Cloud User Guide.
+ // the Amazon EC2 User Guide for Linux Instances.
KeyName *string `min:"1" type:"string"`
// The name of the launch configuration. This name must be unique within the
@@ -6484,7 +6490,7 @@ type CreateLaunchConfigurationInput struct {
// If your instances are launched in EC2-Classic, you can either specify security
// group names or the security group IDs. For more information, see Amazon EC2
// Security Groups (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances.
//
// If your instances are launched into a VPC, specify security group IDs. For
// more information, see Security Groups for Your VPC (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html)
@@ -6500,7 +6506,7 @@ type CreateLaunchConfigurationInput struct {
// The user data to make available to the launched EC2 instances. For more information,
// see Instance Metadata and User Data (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances.
UserData *string `type:"string"`
}
@@ -6754,7 +6760,8 @@ func (s CreateOrUpdateTagsOutput) GoString() string {
return s.String()
}
-// Configures a customized metric for a target tracking policy.
+// Configures a customized metric for a target tracking policy to use with Amazon
+// EC2 Auto Scaling.
type CustomizedMetricSpecification struct {
_ struct{} `type:"structure"`
@@ -7334,11 +7341,11 @@ type DescribeAccountLimitsOutput struct {
_ struct{} `type:"structure"`
// The maximum number of groups allowed for your AWS account. The default limit
- // is 20 per region.
+ // is 200 per region.
MaxNumberOfAutoScalingGroups *int64 `type:"integer"`
// The maximum number of launch configurations allowed for your AWS account.
- // The default limit is 100 per region.
+ // The default limit is 200 per region.
MaxNumberOfLaunchConfigurations *int64 `type:"integer"`
// The current number of groups for your AWS account.
@@ -7422,7 +7429,10 @@ func (s *DescribeAdjustmentTypesOutput) SetAdjustmentTypes(v []*AdjustmentType)
type DescribeAutoScalingGroupsInput struct {
_ struct{} `type:"structure"`
- // The names of the Auto Scaling groups. You can specify up to MaxRecords names.
+ // The names of the Auto Scaling groups. Each name can be a maximum of 1600
+ // characters. By default, you can only specify up to 50 names. You can optionally
+ // increase this limit using the MaxRecords parameter.
+ //
// If you omit this parameter, all Auto Scaling groups are described.
AutoScalingGroupNames []*string `type:"list"`
@@ -8927,7 +8937,7 @@ type Ebs struct {
// no way to create an encrypted volume from an unencrypted snapshot or an unencrypted
// volume from an encrypted snapshot. For more information, see Amazon EBS Encryption
// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) in
- // the Amazon Elastic Compute Cloud User Guide.
+ // the Amazon EC2 User Guide for Linux Instances.
Encrypted *bool `type:"boolean"`
// The number of I/O operations per second (IOPS) to provision for the volume.
@@ -8948,7 +8958,7 @@ type Ebs struct {
VolumeSize *int64 `min:"1" type:"integer"`
// The volume type. For more information, see Amazon EBS Volume Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances.
//
// Valid values: standard | io1 | gp2
VolumeType *string `min:"1" type:"string"`
@@ -9594,11 +9604,14 @@ type Group struct {
// Indicates whether newly launched instances are protected from termination
// by Auto Scaling when scaling in.
+ //
+ // For more information, see Instance Protection (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
+ // in the Amazon EC2 Auto Scaling User Guide.
NewInstancesProtectedFromScaleIn *bool `type:"boolean"`
// The name of the placement group into which to launch your instances, if any.
// For more information, see Placement Groups (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances.
PlacementGroup *string `min:"1" type:"string"`
// The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling
@@ -9824,6 +9837,9 @@ type Instance struct {
// Indicates whether the instance is protected from termination by Amazon EC2
// Auto Scaling when scaling in.
//
+ // For more information, see Instance Protection (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
+ // in the Amazon EC2 Auto Scaling User Guide.
+ //
// ProtectedFromScaleIn is a required field
ProtectedFromScaleIn *bool `type:"boolean" required:"true"`
}
@@ -9924,6 +9940,9 @@ type InstanceDetails struct {
// Indicates whether the instance is protected from termination by Amazon EC2
// Auto Scaling when scaling in.
//
+ // For more information, see Instance Protection (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
+ // in the Amazon EC2 Auto Scaling User Guide.
+ //
// ProtectedFromScaleIn is a required field
ProtectedFromScaleIn *bool `type:"boolean" required:"true"`
}
@@ -10061,9 +10080,12 @@ type InstancesDistribution struct {
SpotInstancePools *int64 `type:"integer"`
// The maximum price per unit hour that you are willing to pay for a Spot Instance.
- // If you leave this value blank (which is the default), the maximum Spot price
- // is set at the On-Demand price.
- SpotMaxPrice *string `min:"1" type:"string"`
+ // If you leave the value of this parameter blank (which is the default), the
+ // maximum Spot price is set at the On-Demand price.
+ //
+ // To remove a value that you previously set, include the parameter but leave
+ // the value blank.
+ SpotMaxPrice *string `type:"string"`
}
// String returns the string representation
@@ -10076,19 +10098,6 @@ func (s InstancesDistribution) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *InstancesDistribution) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "InstancesDistribution"}
- if s.SpotMaxPrice != nil && len(*s.SpotMaxPrice) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SpotMaxPrice", 1))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-
// SetOnDemandAllocationStrategy sets the OnDemandAllocationStrategy field's value.
func (s *InstancesDistribution) SetOnDemandAllocationStrategy(v string) *InstancesDistribution {
s.OnDemandAllocationStrategy = &v
@@ -10138,13 +10147,17 @@ type LaunchConfiguration struct {
// The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to.
// This parameter can only be used if you are launching EC2-Classic instances.
// For more information, see ClassicLink (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic
+ // Instances to a VPC (http://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink)
+ // in the Amazon EC2 Auto Scaling User Guide.
ClassicLinkVPCId *string `min:"1" type:"string"`
// The IDs of one or more security groups for the VPC specified in ClassicLinkVPCId.
// This parameter is required if you specify a ClassicLink-enabled VPC, and
// cannot be used otherwise. For more information, see ClassicLink (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic
+ // Instances to a VPC (http://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink)
+ // in the Amazon EC2 Auto Scaling User Guide.
ClassicLinkVPCSecurityGroups []*string `type:"list"`
// The creation date and time for the launch configuration.
@@ -10512,7 +10525,7 @@ func (s *LaunchTemplateSpecification) SetVersion(v string) *LaunchTemplateSpecif
// want to perform an action whenever it launches instances or whenever it terminates
// instances.
//
-// For more information, see Lifecycle Hooks (http://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
+// For more information, see Amazon EC2 Auto Scaling Lifecycle Hooks (http://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
// in the Amazon EC2 Auto Scaling User Guide.
type LifecycleHook struct {
_ struct{} `type:"structure"`
@@ -10629,7 +10642,7 @@ func (s *LifecycleHook) SetRoleARN(v string) *LifecycleHook {
// want to perform an action whenever it launches instances or whenever it terminates
// instances.
//
-// For more information, see Lifecycle Hooks (http://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
+// For more information, see Amazon EC2 Auto Scaling Lifecycle Hooks (http://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
// in the Amazon EC2 Auto Scaling User Guide.
type LifecycleHookSpecification struct {
_ struct{} `type:"structure"`
@@ -11020,11 +11033,6 @@ func (s MixedInstancesPolicy) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *MixedInstancesPolicy) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "MixedInstancesPolicy"}
- if s.InstancesDistribution != nil {
- if err := s.InstancesDistribution.Validate(); err != nil {
- invalidParams.AddNested("InstancesDistribution", err.(request.ErrInvalidParams))
- }
- }
if s.LaunchTemplate != nil {
if err := s.LaunchTemplate.Validate(); err != nil {
invalidParams.AddNested("LaunchTemplate", err.(request.ErrInvalidParams))
@@ -11124,7 +11132,7 @@ type PredefinedMetricSpecification struct {
// interfaces by the Auto Scaling group.
//
// * ALBRequestCountPerTarget - Number of requests completed per target in
- // an Application Load Balancer target group.
+ // an Application Load Balancer or a Network Load Balancer target group.
//
// For predefined metric types ASGAverageCPUUtilization, ASGAverageNetworkIn,
// and ASGAverageNetworkOut, the parameter must not be specified as the resource
@@ -11737,8 +11745,10 @@ type PutScheduledUpdateGroupActionInput struct {
// The minimum size for the Auto Scaling group.
MinSize *int64 `type:"integer"`
- // The recurring schedule for this action, in Unix cron syntax format. For more
- // information about this format, see Crontab (http://crontab.org).
+ // The recurring schedule for this action, in Unix cron syntax format. This
+ // format consists of five fields separated by white spaces: [Minute] [Hour]
+ // [Day_of_Month] [Month_of_Year] [Day_of_Week]. For more information about
+ // this format, see Crontab (http://crontab.org).
Recurrence *string `min:"1" type:"string"`
// The name of this scaling action.
@@ -12325,8 +12335,10 @@ type ScheduledUpdateGroupActionRequest struct {
// The minimum size of the group.
MinSize *int64 `type:"integer"`
- // The recurring schedule for the action, in Unix cron syntax format. For more
- // information about this format, see Crontab (http://crontab.org).
+ // The recurring schedule for the action, in Unix cron syntax format. This format
+ // consists of five fields separated by white spaces: [Minute] [Hour] [Day_of_Month]
+ // [Month_of_Year] [Day_of_Week]. For more information about this format, see
+ // Crontab (http://crontab.org).
Recurrence *string `min:"1" type:"string"`
// The name of the scaling action.
@@ -12955,7 +12967,8 @@ func (s *TagDescription) SetValue(v string) *TagDescription {
return s
}
-// Represents a target tracking policy configuration.
+// Represents a target tracking policy configuration to use with Amazon EC2
+// Auto Scaling.
type TargetTrackingConfiguration struct {
_ struct{} `type:"structure"`
@@ -13169,11 +13182,15 @@ type UpdateAutoScalingGroupInput struct {
// Indicates whether newly launched instances are protected from termination
// by Auto Scaling when scaling in.
+ //
+ // For more information about preventing instances from terminating on scale
+ // in, see Instance Protection (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
+ // in the Amazon EC2 Auto Scaling User Guide.
NewInstancesProtectedFromScaleIn *bool `type:"boolean"`
// The name of the placement group into which to launch your instances, if any.
// For more information, see Placement Groups (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // in the Amazon EC2 User Guide for Linux Instances.
PlacementGroup *string `min:"1" type:"string"`
// The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling
@@ -13186,7 +13203,7 @@ type UpdateAutoScalingGroupInput struct {
//
// For more information, see Controlling Which Instances Auto Scaling Terminates
// During Scale In (http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html)
- // in the Auto Scaling User Guide.
+ // in the Amazon EC2 Auto Scaling User Guide.
TerminationPolicies []*string `type:"list"`
// The ID of the subnet, if you are launching into a VPC. You can specify several
diff --git a/vendor/github.com/aws/aws-sdk-go/service/autoscaling/doc.go b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/doc.go
index 32d9594c7ad..cbfe2b8a76c 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/autoscaling/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/doc.go
@@ -8,7 +8,9 @@
// Use this service with AWS Auto Scaling, Amazon CloudWatch, and Elastic Load
// Balancing.
//
-// For more information, see the Amazon EC2 Auto Scaling User Guide (http://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html).
+// For more information, including information about granting IAM users required
+// permissions for Amazon EC2 Auto Scaling actions, see the Amazon EC2 Auto
+// Scaling User Guide (http://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html).
//
// See https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01 for more information on this service.
//
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
index abc4ea41532..9b1020df463 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/cloud9/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/cloud9/api.go
@@ -1117,7 +1117,7 @@ type CreateEnvironmentEC2Input struct {
ClientRequestToken *string `locationName:"clientRequestToken" type:"string"`
// The description of the environment to create.
- Description *string `locationName:"description" type:"string"`
+ Description *string `locationName:"description" type:"string" sensitive:"true"`
// The type of instance to connect to the environment (for example, t2.micro).
//
@@ -1721,11 +1721,14 @@ type Environment struct {
Arn *string `locationName:"arn" type:"string"`
// The description for the environment.
- Description *string `locationName:"description" type:"string"`
+ Description *string `locationName:"description" type:"string" sensitive:"true"`
// The ID of the environment.
Id *string `locationName:"id" type:"string"`
+ // The state of the environment in its creation or deletion lifecycle.
+ Lifecycle *EnvironmentLifecycle `locationName:"lifecycle" type:"structure"`
+
// The name of the environment.
Name *string `locationName:"name" min:"1" type:"string"`
@@ -1769,6 +1772,12 @@ func (s *Environment) SetId(v string) *Environment {
return s
}
+// SetLifecycle sets the Lifecycle field's value.
+func (s *Environment) SetLifecycle(v *EnvironmentLifecycle) *Environment {
+ s.Lifecycle = v
+ return s
+}
+
// SetName sets the Name field's value.
func (s *Environment) SetName(v string) *Environment {
s.Name = &v
@@ -1787,6 +1796,56 @@ func (s *Environment) SetType(v string) *Environment {
return s
}
+// Information about the current creation or deletion lifecycle state of an
+// AWS Cloud9 development environment.
+type EnvironmentLifecycle struct {
+ _ struct{} `type:"structure"`
+
+ // If the environment failed to delete, the Amazon Resource Name (ARN) of the
+ // related AWS resource.
+ FailureResource *string `locationName:"failureResource" type:"string"`
+
+ // Any informational message about the lifecycle state of the environment.
+ Reason *string `locationName:"reason" type:"string"`
+
+ // The current creation or deletion lifecycle state of the environment.
+ //
+ // * CREATED: The environment was successfully created.
+ //
+ // * DELETE_FAILED: The environment failed to delete.
+ //
+ // * DELETING: The environment is in the process of being deleted.
+ Status *string `locationName:"status" type:"string" enum:"EnvironmentLifecycleStatus"`
+}
+
+// String returns the string representation
+func (s EnvironmentLifecycle) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s EnvironmentLifecycle) GoString() string {
+ return s.String()
+}
+
+// SetFailureResource sets the FailureResource field's value.
+func (s *EnvironmentLifecycle) SetFailureResource(v string) *EnvironmentLifecycle {
+ s.FailureResource = &v
+ return s
+}
+
+// SetReason sets the Reason field's value.
+func (s *EnvironmentLifecycle) SetReason(v string) *EnvironmentLifecycle {
+ s.Reason = &v
+ return s
+}
+
+// SetStatus sets the Status field's value.
+func (s *EnvironmentLifecycle) SetStatus(v string) *EnvironmentLifecycle {
+ s.Status = &v
+ return s
+}
+
// Information about an environment member for an AWS Cloud9 development environment.
type EnvironmentMember struct {
_ struct{} `type:"structure"`
@@ -1932,7 +1991,7 @@ type UpdateEnvironmentInput struct {
_ struct{} `type:"structure"`
// Any new or replacement description for the environment.
- Description *string `locationName:"description" type:"string"`
+ Description *string `locationName:"description" type:"string" sensitive:"true"`
// The ID of the environment to change settings.
//
@@ -2097,6 +2156,17 @@ func (s UpdateEnvironmentOutput) GoString() string {
return s.String()
}
+const (
+ // EnvironmentLifecycleStatusCreated is a EnvironmentLifecycleStatus enum value
+ EnvironmentLifecycleStatusCreated = "CREATED"
+
+ // EnvironmentLifecycleStatusDeleting is a EnvironmentLifecycleStatus enum value
+ EnvironmentLifecycleStatusDeleting = "DELETING"
+
+ // EnvironmentLifecycleStatusDeleteFailed is a EnvironmentLifecycleStatus enum value
+ EnvironmentLifecycleStatusDeleteFailed = "DELETE_FAILED"
+)
+
const (
// EnvironmentStatusError is a EnvironmentStatus enum value
EnvironmentStatusError = "error"
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 b7be8d6a161..2159c69a4dc 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
@@ -821,7 +821,7 @@ func (c *CloudWatch) GetMetricDataRequest(input *GetMetricDataInput) (req *reque
// to create new time series that represent new insights into your data. For
// example, using Lambda metrics, you could divide the Errors metric by the
// Invocations metric to get an error rate time series. For more information
-// about metric math expressions, see Metric Math Syntax and Functions (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
+// about metric math expressions, see Metric Math Syntax and Functions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
// in the Amazon CloudWatch User Guide.
//
// Calls to the GetMetricData API have a different pricing structure than calls
@@ -980,7 +980,7 @@ func (c *CloudWatch) GetMetricStatisticsRequest(input *GetMetricStatisticsInput)
// 2016.
//
// For information about metrics and dimensions supported by AWS services, see
-// the Amazon CloudWatch Metrics and Dimensions Reference (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html)
+// the Amazon CloudWatch Metrics and Dimensions Reference (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html)
// in the Amazon CloudWatch User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -1533,7 +1533,7 @@ func (c *CloudWatch) PutMetricAlarmRequest(input *PutMetricAlarmInput) (req *req
// The first time you create an alarm in the AWS Management Console, the CLI,
// or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked
// role for you. The service-linked role is called AWSServiceRoleForCloudWatchEvents.
-// For more information, see AWS service-linked role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role).
+// For more information, see AWS service-linked role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1636,8 +1636,8 @@ func (c *CloudWatch) PutMetricDataRequest(input *PutMetricDataInput) (req *reque
// not supported.
//
// You can use up to 10 dimensions per metric to further clarify what data the
-// metric collects. For more information about specifying dimensions, see Publishing
-// Metrics (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)
+// metric collects. Each dimension consists of a Name and Value pair. For more
+// information about specifying dimensions, see Publishing Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)
// in the Amazon CloudWatch User Guide.
//
// Data points with time stamps from 24 hours ago or longer can take at least
@@ -2809,7 +2809,7 @@ type GetMetricDataInput struct {
// For better performance, specify StartTime and EndTime values that align with
// the value of the metric's Period and sync up with the beginning and end of
// an hour. For example, if the Period of a metric is 5 minutes, specifying
- // 12:05 or 12:30 as EndTime can get a faster response from CloudWatch then
+ // 12:05 or 12:30 as EndTime can get a faster response from CloudWatch than
// setting 12:07 or 12:29 as the EndTime.
//
// EndTime is a required field
@@ -2842,7 +2842,7 @@ type GetMetricDataInput struct {
// For better performance, specify StartTime and EndTime values that align with
// the value of the metric's Period and sync up with the beginning and end of
// an hour. For example, if the Period of a metric is 5 minutes, specifying
- // 12:05 or 12:30 as StartTime can get a faster response from CloudWatch then
+ // 12:05 or 12:30 as StartTime can get a faster response from CloudWatch than
// setting 12:07 or 12:29 as the StartTime.
//
// StartTime is a required field
@@ -2965,9 +2965,9 @@ type GetMetricStatisticsInput struct {
// dimensions as a separate metric. If a specific combination of dimensions
// was not published, you can't retrieve statistics for it. You must specify
// the same dimensions that were used when the metrics were created. For an
- // example, see Dimension Combinations (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#dimension-combinations)
+ // example, see Dimension Combinations (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#dimension-combinations)
// in the Amazon CloudWatch User Guide. For more information about specifying
- // dimensions, see Publishing Metrics (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)
+ // dimensions, see Publishing Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)
// in the Amazon CloudWatch User Guide.
Dimensions []*Dimension `type:"list"`
@@ -3225,7 +3225,7 @@ type GetMetricWidgetImageInput struct {
// with the content-type set to text/xml. The image data is in a MetricWidgetImage
// field. For example:
//
- //
+ // >
//
//
//
@@ -3863,9 +3863,12 @@ func (s *MetricAlarm) SetUnit(v string) *MetricAlarm {
// A single PutMetricAlarm call can include up to 20 MetricDataQuery structures
// in the array. The 20 structures can include as many as 10 structures that
// contain a MetricStat parameter to retrieve a metric, and as many as 10 structures
-// that contain the Expression parameter to perform a math expression. Any expression
-// used in a PutMetricAlarm operation must return a single time series. For
-// more information, see Metric Math Syntax and Functions (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
+// that contain the Expression parameter to perform a math expression. Of those
+// Expression structures, one must have True as the value for ReturnData. The
+// result of this expression is the value the alarm watches.
+//
+// Any expression used in a PutMetricAlarm operation must return a single time
+// series. For more information, see Metric Math Syntax and Functions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
// in the Amazon CloudWatch User Guide.
//
// Some of the parameters of this structure also have different uses whether
@@ -3878,7 +3881,7 @@ type MetricDataQuery struct {
// is performing a math expression. This expression can use the Id of the other
// metrics to refer to those metrics, and can also use the Id of other expressions
// to use the result of those expressions. For more information about metric
- // math expressions, see Metric Math Syntax and Functions (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
+ // math expressions, see Metric Math Syntax and Functions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
// in the Amazon CloudWatch User Guide.
//
// Within each MetricDataQuery object, you must specify either Expression or
@@ -4094,7 +4097,7 @@ type MetricDatum struct {
// to one second. Setting this to 60 specifies this metric as a regular-resolution
// metric, which CloudWatch stores at 1-minute resolution. Currently, high resolution
// is available only for custom metrics. For more information about high-resolution
- // metrics, see High-Resolution Metrics (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html#high-resolution-metrics)
+ // metrics, see High-Resolution Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html#high-resolution-metrics)
// in the Amazon CloudWatch User Guide.
//
// This field is optional, if you do not specify it the default of 60 is used.
@@ -4415,8 +4418,8 @@ type PutMetricAlarmInput struct {
// any other state. Each action is specified as an Amazon Resource Name (ARN).
//
// Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate
- // | arn:aws:automate:region:ec2:recover | arn:aws:sns:region:account-id:sns-topic-name
- // | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-idautoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
+ // | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot
+ // | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-idautoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
//
// Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0
// | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0
@@ -4439,7 +4442,7 @@ type PutMetricAlarmInput struct {
// The number of datapoints that must be breaching to trigger the alarm. This
// is used only if you are setting an "M out of N" alarm. In that case, this
- // value is the M. For more information, see Evaluating an Alarm (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)
+ // value is the M. For more information, see Evaluating an Alarm (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)
// in the Amazon CloudWatch User Guide.
DatapointsToAlarm *int64 `min:"1" type:"integer"`
@@ -4451,7 +4454,7 @@ type PutMetricAlarmInput struct {
// significant. If you specify evaluate or omit this parameter, the alarm is
// always evaluated and possibly changes state no matter how many data points
// are available. For more information, see Percentile-Based CloudWatch Alarms
- // and Low Data Samples (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#percentiles-with-low-samples).
+ // and Low Data Samples (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#percentiles-with-low-samples).
//
// Valid Values: evaluate | ignore
EvaluateLowSampleCountPercentile *string `min:"1" type:"string"`
@@ -4478,8 +4481,8 @@ type PutMetricAlarmInput struct {
// Name (ARN).
//
// Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate
- // | arn:aws:automate:region:ec2:recover | arn:aws:sns:region:account-id:sns-topic-name
- // | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-idautoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
+ // | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot
+ // | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-idautoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
//
// Valid Values (for use with IAM roles): >arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0
// | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0
@@ -4498,6 +4501,10 @@ type PutMetricAlarmInput struct {
// based on the result of a metric math expression. Each item in the Metrics
// array either retrieves a metric or performs a math expression.
//
+ // One item in the Metrics array is the expression that the alarm watches. You
+ // designate this expression by setting ReturnValue to true for this object
+ // in the array. For more information, see MetricDataQuery.
+ //
// If you use the Metrics parameter, you cannot include the MetricName, Dimensions,
// Period, Namespace, Statistic, or ExtendedStatistic parameters of PutMetricAlarm
// in the same operation. Instead, you retrieve the metrics you are using in
@@ -4549,7 +4556,7 @@ type PutMetricAlarmInput struct {
// Sets how this alarm is to handle missing data points. If TreatMissingData
// is omitted, the default behavior of missing is used. For more information,
- // see Configuring How CloudWatch Alarms Treats Missing Data (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data).
+ // see Configuring How CloudWatch Alarms Treats Missing Data (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data).
//
// Valid Values: breaching | notBreaching | ignore | missing
TreatMissingData *string `min:"1" type:"string"`
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 fc8621d1e67..64869f8d544 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
@@ -1834,11 +1834,8 @@ type Build struct {
// The AWS Key Management Service (AWS KMS) customer master key (CMK) to be
// used for encrypting the build output artifacts.
//
- // You can use a cross-account KMS key to encrypt the build output artifacts
- // if your service role has permission to that key.
- //
- // You can specify either the Amazon Resource Name (ARN) of the CMK or, if available,
- // the CMK's alias (using the format alias/alias-name).
+ // This is expressed either as the Amazon Resource Name (ARN) of the CMK or,
+ // if specified, the CMK's alias (using the format alias/alias-name).
EncryptionKey *string `locationName:"encryptionKey" min:"1" type:"string"`
// When the build process ended, expressed in Unix time format.
@@ -2418,9 +2415,6 @@ type CreateProjectInput struct {
// The AWS Key Management Service (AWS KMS) customer master key (CMK) to be
// used for encrypting the build output artifacts.
//
- // You can use a cross-account KMS key to encrypt the build output artifacts
- // if your service role has permission to that key.
- //
// You can specify either the Amazon Resource Name (ARN) of the CMK or, if available,
// the CMK's alias (using the format alias/alias-name).
EncryptionKey *string `locationName:"encryptionKey" min:"1" type:"string"`
@@ -3905,11 +3899,8 @@ type Project struct {
// The AWS Key Management Service (AWS KMS) customer master key (CMK) to be
// used for encrypting the build output artifacts.
//
- // You can use a cross-account KMS key to encrypt the build output artifacts
- // if your service role has permission to that key.
- //
- // You can specify either the Amazon Resource Name (ARN) of the CMK or, if available,
- // the CMK's alias (using the format alias/alias-name).
+ // This is expressed either as the Amazon Resource Name (ARN) of the CMK or,
+ // if specified, the CMK's alias (using the format alias/alias-name).
EncryptionKey *string `locationName:"encryptionKey" min:"1" type:"string"`
// Information about the build environment for this build project.
@@ -4342,17 +4333,58 @@ type ProjectCache struct {
// Information about the cache location:
//
- // * NO_CACHE: This value is ignored.
+ // * NO_CACHE or LOCAL: This value is ignored.
//
// * S3: This is the S3 bucket name/prefix.
Location *string `locationName:"location" type:"string"`
+ // If you use a LOCAL cache, the local cache mode. You can use one or more local
+ // cache modes at the same time.
+ //
+ // * LOCAL_SOURCE_CACHE mode caches Git metadata for primary and secondary
+ // sources. After the cache is created, subsequent builds pull only the change
+ // between commits. This mode is a good choice for projects with a clean
+ // working directory and a source that is a large Git repository. If your
+ // project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket)
+ // and you choose this option, then it is ignored.
+ //
+ // * LOCAL_DOCKER_LAYER_CACHE mode caches existing Docker layers. This mode
+ // is a good choice for projects that build or pull large Docker images.
+ // It can prevent the performance hit that would be caused by pulling large
+ // Docker images down from the network.
+ //
+ // You can only use a Docker layer cache in the Linux enviornment.
+ //
+ // The privileged flag must be set so that your project has the necessary Docker
+ // privileges.
+ //
+ // You should consider the security implications before using a Docker layer
+ // cache.
+ //
+ // * LOCAL_CUSTOM_CACHE mode caches directories you specify in the buildspec
+ // file. This mode is a good choice if your build scenario does not match
+ // one that works well with one of the other three local cache modes. If
+ // you use a custom cache:
+ //
+ // Only directories can be specified for caching. You cannot specify individual
+ // files.
+ //
+ // Symlinks are used to reference cached directories.
+ //
+ // Cached directories are linked to your build before it downloads its project
+ // sources. Cached items are overriden if a source item has the same name.
+ // Directories are specified using cache paths in the buildspec file.
+ Modes []*string `locationName:"modes" type:"list"`
+
// The type of cache used by the build project. Valid values include:
//
// * NO_CACHE: The build project does not use any cache.
//
// * S3: The build project reads and writes from and to S3.
//
+ // * LOCAL: The build project stores a cache locally on a build host that
+ // is only available to that build host.
+ //
// Type is a required field
Type *string `locationName:"type" type:"string" required:"true" enum:"CacheType"`
}
@@ -4386,6 +4418,12 @@ func (s *ProjectCache) SetLocation(v string) *ProjectCache {
return s
}
+// SetModes sets the Modes field's value.
+func (s *ProjectCache) SetModes(v []*string) *ProjectCache {
+ s.Modes = v
+ return s
+}
+
// SetType sets the Type field's value.
func (s *ProjectCache) SetType(v string) *ProjectCache {
s.Type = &v
@@ -5604,13 +5642,10 @@ type UpdateProjectInput struct {
// A new or replacement description of the build project.
Description *string `locationName:"description" type:"string"`
- // The AWS Key Management Service (AWS KMS) customer master key (CMK) to be
- // used for encrypting the build output artifacts.
- //
- // You can use a cross-account KMS key to encrypt the build output artifacts
- // if your service role has permission to that key.
+ // The replacement AWS Key Management Service (AWS KMS) customer master key
+ // (CMK) to be used for encrypting the build output artifacts.
//
- // You can specify either the Amazon Resource Name (ARN) of the CMK or, if available,
+ // You can specify either the Amazon Resource Name (ARN)of the CMK or, if available,
// the CMK's alias (using the format alias/alias-name).
EncryptionKey *string `locationName:"encryptionKey" min:"1" type:"string"`
@@ -6273,12 +6308,26 @@ const (
BuildPhaseTypeCompleted = "COMPLETED"
)
+const (
+ // CacheModeLocalDockerLayerCache is a CacheMode enum value
+ CacheModeLocalDockerLayerCache = "LOCAL_DOCKER_LAYER_CACHE"
+
+ // CacheModeLocalSourceCache is a CacheMode enum value
+ CacheModeLocalSourceCache = "LOCAL_SOURCE_CACHE"
+
+ // CacheModeLocalCustomCache is a CacheMode enum value
+ CacheModeLocalCustomCache = "LOCAL_CUSTOM_CACHE"
+)
+
const (
// CacheTypeNoCache is a CacheType enum value
CacheTypeNoCache = "NO_CACHE"
// CacheTypeS3 is a CacheType enum value
CacheTypeS3 = "S3"
+
+ // CacheTypeLocal is a CacheType enum value
+ CacheTypeLocal = "LOCAL"
)
const (
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 ec2c3489c7e..bd901e84aef 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
@@ -251,6 +251,241 @@ func (c *CodeCommit) CreateBranchWithContext(ctx aws.Context, input *CreateBranc
return out, req.Send()
}
+const opCreateCommit = "CreateCommit"
+
+// CreateCommitRequest generates a "aws/request.Request" representing the
+// client's request for the CreateCommit operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See CreateCommit for more information on using the CreateCommit
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the CreateCommitRequest method.
+// req, resp := client.CreateCommitRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/CreateCommit
+func (c *CodeCommit) CreateCommitRequest(input *CreateCommitInput) (req *request.Request, output *CreateCommitOutput) {
+ op := &request.Operation{
+ Name: opCreateCommit,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &CreateCommitInput{}
+ }
+
+ output = &CreateCommitOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// CreateCommit API operation for AWS CodeCommit.
+//
+// Creates a commit for a repository on the tip of a specified branch.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeCommit's
+// API operation CreateCommit for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeRepositoryNameRequiredException "RepositoryNameRequiredException"
+// A repository name is required but was not specified.
+//
+// * ErrCodeInvalidRepositoryNameException "InvalidRepositoryNameException"
+// At least one specified repository name is not valid.
+//
+// This exception only occurs when a specified repository name is not valid.
+// Other exceptions occur when a required repository parameter is missing, or
+// when a specified repository does not exist.
+//
+// * ErrCodeRepositoryDoesNotExistException "RepositoryDoesNotExistException"
+// The specified repository does not exist.
+//
+// * ErrCodeParentCommitIdRequiredException "ParentCommitIdRequiredException"
+// A parent commit ID is required. To view the full commit ID of a branch in
+// a repository, use GetBranch or a Git command (for example, git pull or git
+// log).
+//
+// * ErrCodeInvalidParentCommitIdException "InvalidParentCommitIdException"
+// The parent commit ID is not valid. The commit ID cannot be empty, and must
+// match the head commit ID for the branch of the repository where you want
+// to add or update a file.
+//
+// * ErrCodeParentCommitDoesNotExistException "ParentCommitDoesNotExistException"
+// The parent commit ID is not valid because it does not exist. The specified
+// parent commit ID does not exist in the specified branch of the repository.
+//
+// * ErrCodeParentCommitIdOutdatedException "ParentCommitIdOutdatedException"
+// The file could not be added because the provided parent commit ID is not
+// the current tip of the specified branch. To view the full commit ID of the
+// current head of the branch, use GetBranch.
+//
+// * ErrCodeBranchNameRequiredException "BranchNameRequiredException"
+// A branch name is required but was not specified.
+//
+// * ErrCodeInvalidBranchNameException "InvalidBranchNameException"
+// The specified reference name is not valid.
+//
+// * ErrCodeBranchDoesNotExistException "BranchDoesNotExistException"
+// The specified branch does not exist.
+//
+// * ErrCodeBranchNameIsTagNameException "BranchNameIsTagNameException"
+// The specified branch name is not valid because it is a tag name. Type the
+// name of a current branch in the repository. For a list of valid branch names,
+// use ListBranches.
+//
+// * ErrCodeFileEntryRequiredException "FileEntryRequiredException"
+// The commit cannot be created because no files have been specified as added,
+// updated, or changed (PutFile or DeleteFile) for the commit.
+//
+// * ErrCodeMaximumFileEntriesExceededException "MaximumFileEntriesExceededException"
+// The number of specified files to change as part of this commit exceeds the
+// maximum number of files that can be changed in a single commit. Consider
+// using a Git client for these changes.
+//
+// * ErrCodePutFileEntryConflictException "PutFileEntryConflictException"
+// The commit cannot be created because one or more files specified in the commit
+// reference both a file and a folder.
+//
+// * ErrCodeSourceFileOrContentRequiredException "SourceFileOrContentRequiredException"
+// The commit cannot be created because no source files or file content have
+// been specified for the commit.
+//
+// * ErrCodeFileContentAndSourceFileSpecifiedException "FileContentAndSourceFileSpecifiedException"
+// The commit cannot be created because both a source file and file content
+// have been specified for the same file. You cannot provide both. Either specify
+// a source file, or provide the file content directly.
+//
+// * ErrCodePathRequiredException "PathRequiredException"
+// The folderPath for a location cannot be null.
+//
+// * ErrCodeInvalidPathException "InvalidPathException"
+// The specified path is not valid.
+//
+// * ErrCodeSamePathRequestException "SamePathRequestException"
+// The commit cannot be created because one or more changes in this commit duplicate
+// actions in the same file path. For example, you cannot make the same delete
+// request to the same file in the same file path twice, or make a delete request
+// and a move request to the same file as part of the same commit.
+//
+// * ErrCodeFileDoesNotExistException "FileDoesNotExistException"
+// The specified file does not exist. Verify that you have provided the correct
+// name of the file, including its full path and extension.
+//
+// * ErrCodeFileContentSizeLimitExceededException "FileContentSizeLimitExceededException"
+// The file cannot be added because it is too large. The maximum file size that
+// can be added using PutFile is 6 MB, and the combined file content change
+// size is 7 MB. Consider making these changes using a Git client.
+//
+// * ErrCodeFolderContentSizeLimitExceededException "FolderContentSizeLimitExceededException"
+// The commit cannot be created because at least one of the overall changes
+// in the commit result in a folder contents exceeding the limit of 6 MB. Either
+// reduce the number and size of your changes, or split the changes across multiple
+// folders.
+//
+// * ErrCodeInvalidDeletionParameterException "InvalidDeletionParameterException"
+// The specified deletion parameter is not valid.
+//
+// * ErrCodeRestrictedSourceFileException "RestrictedSourceFileException"
+// The commit cannot be created because one of the changes specifies copying
+// or moving a .gitkeep file.
+//
+// * ErrCodeFileModeRequiredException "FileModeRequiredException"
+// The commit cannot be created because a file mode is required to update mode
+// permissions for an existing file, but no file mode has been specified.
+//
+// * ErrCodeInvalidFileModeException "InvalidFileModeException"
+// The specified file mode permission is not valid. For a list of valid file
+// mode permissions, see PutFile.
+//
+// * ErrCodeNameLengthExceededException "NameLengthExceededException"
+// The user name is not valid because it has exceeded the character limit for
+// file names. File names, including the path to the file, cannot exceed the
+// character limit.
+//
+// * ErrCodeInvalidEmailException "InvalidEmailException"
+// The specified email address either contains one or more characters that are
+// not allowed, or it exceeds the maximum number of characters allowed for an
+// email address.
+//
+// * ErrCodeCommitMessageLengthExceededException "CommitMessageLengthExceededException"
+// The commit message is too long. Provide a shorter string.
+//
+// * ErrCodeEncryptionIntegrityChecksFailedException "EncryptionIntegrityChecksFailedException"
+// An encryption integrity check failed.
+//
+// * ErrCodeEncryptionKeyAccessDeniedException "EncryptionKeyAccessDeniedException"
+// An encryption key could not be accessed.
+//
+// * ErrCodeEncryptionKeyDisabledException "EncryptionKeyDisabledException"
+// The encryption key is disabled.
+//
+// * ErrCodeEncryptionKeyNotFoundException "EncryptionKeyNotFoundException"
+// No encryption key was found.
+//
+// * ErrCodeEncryptionKeyUnavailableException "EncryptionKeyUnavailableException"
+// The encryption key is not available.
+//
+// * ErrCodeNoChangeException "NoChangeException"
+// The commit cannot be created because no changes will be made to the repository
+// as a result of this commit. A commit must contain at least one change.
+//
+// * ErrCodeFileNameConflictsWithDirectoryNameException "FileNameConflictsWithDirectoryNameException"
+// A file cannot be added to the repository because the specified file name
+// has the same name as a directory in this repository. Either provide another
+// name for the file, or add the file in a directory that does not match the
+// file name.
+//
+// * ErrCodeDirectoryNameConflictsWithFileNameException "DirectoryNameConflictsWithFileNameException"
+// A file cannot be added to the repository because the specified path name
+// has the same name as a file that already exists in this repository. Either
+// provide a different name for the file, or specify a different path for the
+// file.
+//
+// * ErrCodeFilePathConflictsWithSubmodulePathException "FilePathConflictsWithSubmodulePathException"
+// The commit cannot be created because a specified file path points to a submodule.
+// Verify that the destination files have valid file paths that do not point
+// to a submodule.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/CreateCommit
+func (c *CodeCommit) CreateCommit(input *CreateCommitInput) (*CreateCommitOutput, error) {
+ req, out := c.CreateCommitRequest(input)
+ return out, req.Send()
+}
+
+// CreateCommitWithContext is the same as CreateCommit with the addition of
+// the ability to pass a context and additional request options.
+//
+// See CreateCommit for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *CodeCommit) CreateCommitWithContext(ctx aws.Context, input *CreateCommitInput, opts ...request.Option) (*CreateCommitOutput, error) {
+ req, out := c.CreateCommitRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opCreatePullRequest = "CreatePullRequest"
// CreatePullRequestRequest generates a "aws/request.Request" representing the
@@ -1791,8 +2026,8 @@ func (c *CodeCommit) GetCommentsForPullRequestRequest(input *GetCommentsForPullR
//
// * ErrCodeRepositoryNotAssociatedWithPullRequestException "RepositoryNotAssociatedWithPullRequestException"
// The repository does not contain any pull requests with that pull request
-// ID. Check to make sure you have provided the correct repository name for
-// the pull request.
+// ID. Use GetPullRequest to verify the correct repository name for the pull
+// request ID.
//
// * ErrCodeEncryptionIntegrityChecksFailedException "EncryptionIntegrityChecksFailedException"
// An encryption integrity check failed.
@@ -3448,11 +3683,6 @@ func (c *CodeCommit) MergePullRequestByFastForwardRequest(input *MergePullReques
// * ErrCodeInvalidCommitIdException "InvalidCommitIdException"
// The specified commit ID is not valid.
//
-// * ErrCodeRepositoryNotAssociatedWithPullRequestException "RepositoryNotAssociatedWithPullRequestException"
-// The repository does not contain any pull requests with that pull request
-// ID. Check to make sure you have provided the correct repository name for
-// the pull request.
-//
// * ErrCodeRepositoryNameRequiredException "RepositoryNameRequiredException"
// A repository name is required but was not specified.
//
@@ -3731,8 +3961,8 @@ func (c *CodeCommit) PostCommentForPullRequestRequest(input *PostCommentForPullR
//
// * ErrCodeRepositoryNotAssociatedWithPullRequestException "RepositoryNotAssociatedWithPullRequestException"
// The repository does not contain any pull requests with that pull request
-// ID. Check to make sure you have provided the correct repository name for
-// the pull request.
+// ID. Use GetPullRequest to verify the correct repository name for the pull
+// request ID.
//
// * ErrCodeRepositoryNameRequiredException "RepositoryNameRequiredException"
// A repository name is required but was not specified.
@@ -4045,15 +4275,14 @@ func (c *CodeCommit) PutFileRequest(input *PutFileInput) (req *request.Request,
//
// * ErrCodeFileContentSizeLimitExceededException "FileContentSizeLimitExceededException"
// The file cannot be added because it is too large. The maximum file size that
-// can be added using PutFile is 6 MB. For files larger than 6 MB but smaller
-// than 2 GB, add them using a Git client.
+// can be added using PutFile is 6 MB, and the combined file content change
+// size is 7 MB. Consider making these changes using a Git client.
//
// * ErrCodeFolderContentSizeLimitExceededException "FolderContentSizeLimitExceededException"
-// The specified file is in a folder that exceeds the folder content size limit.
-// Either save the file in a folder that has less content, or remove files or
-// subfolders from the folder so it does not exceed the size limit. For more
-// information about limits in AWS CodeCommit, see AWS CodeCommit User Guide
-// (http://docs.aws.amazon.com/codecommit/latest/userguide/limits.html).
+// The commit cannot be created because at least one of the overall changes
+// in the commit result in a folder contents exceeding the limit of 6 MB. Either
+// reduce the number and size of your changes, or split the changes across multiple
+// folders.
//
// * ErrCodePathRequiredException "PathRequiredException"
// The folderPath for a location cannot be null.
@@ -4128,9 +4357,9 @@ func (c *CodeCommit) PutFileRequest(input *PutFileInput) (req *request.Request,
// file.
//
// * ErrCodeFilePathConflictsWithSubmodulePathException "FilePathConflictsWithSubmodulePathException"
-// The specified file path or folder has the same path as a submodule in this
-// repository. Either provide a different name for the file, or save the file
-// in a directory that does not conflict with the submodule path.
+// The commit cannot be created because a specified file path points to a submodule.
+// Verify that the destination files have valid file paths that do not point
+// to a submodule.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PutFile
func (c *CodeCommit) PutFile(input *PutFileInput) (*PutFileOutput, error) {
@@ -5791,62 +6020,103 @@ func (s CreateBranchOutput) GoString() string {
return s.String()
}
-type CreatePullRequestInput struct {
+type CreateCommitInput struct {
_ struct{} `type:"structure"`
- // A unique, client-generated idempotency token that when provided in a request,
- // ensures the request cannot be repeated with a changed parameter. If a request
- // is received with the same parameters and a token is included, the request
- // will return information about the initial request that used that token.
+ // The name of the author who created the commit. This information will be used
+ // as both the author and committer for the commit.
+ AuthorName *string `locationName:"authorName" type:"string"`
+
+ // The name of the branch where you will create the commit.
//
- // The AWS SDKs prepopulate client request tokens. If using an AWS SDK, you
- // do not have to generate an idempotency token, as this will be done for you.
- ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
+ // BranchName is a required field
+ BranchName *string `locationName:"branchName" min:"1" type:"string" required:"true"`
- // A description of the pull request.
- Description *string `locationName:"description" type:"string"`
+ // The commit message you want to include as part of creating the commit. Commit
+ // messages are limited to 256 KB. If no message is specified, a default message
+ // will be used.
+ CommitMessage *string `locationName:"commitMessage" type:"string"`
- // The targets for the pull request, including the source of the code to be
- // reviewed (the source branch), and the destination where the creator of the
- // pull request intends the code to be merged after the pull request is closed
- // (the destination branch).
- //
- // Targets is a required field
- Targets []*Target `locationName:"targets" type:"list" required:"true"`
+ // The files to delete in this commit. These files will still exist in prior
+ // commits.
+ DeleteFiles []*DeleteFileEntry `locationName:"deleteFiles" type:"list"`
- // The title of the pull request. This title will be used to identify the pull
- // request to other users in the repository.
+ // The email address of the person who created the commit.
+ Email *string `locationName:"email" type:"string"`
+
+ // If the commit contains deletions, whether to keep a folder or folder structure
+ // if the changes leave the folders empty. If this is specified as true, a .gitkeep
+ // file will be created for empty folders.
+ KeepEmptyFolders *bool `locationName:"keepEmptyFolders" type:"boolean"`
+
+ // The ID of the commit that is the parent of the commit you will create. If
+ // this is an empty repository, this is not required.
+ ParentCommitId *string `locationName:"parentCommitId" type:"string"`
+
+ // The files to add or update in this commit.
+ PutFiles []*PutFileEntry `locationName:"putFiles" type:"list"`
+
+ // The name of the repository where you will create the commit.
//
- // Title is a required field
- Title *string `locationName:"title" type:"string" required:"true"`
+ // RepositoryName is a required field
+ RepositoryName *string `locationName:"repositoryName" min:"1" type:"string" required:"true"`
+
+ // The file modes to update for files in this commit.
+ SetFileModes []*SetFileModeEntry `locationName:"setFileModes" type:"list"`
}
// String returns the string representation
-func (s CreatePullRequestInput) String() string {
+func (s CreateCommitInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreatePullRequestInput) GoString() string {
+func (s CreateCommitInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreatePullRequestInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreatePullRequestInput"}
- if s.Targets == nil {
- invalidParams.Add(request.NewErrParamRequired("Targets"))
+func (s *CreateCommitInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateCommitInput"}
+ if s.BranchName == nil {
+ invalidParams.Add(request.NewErrParamRequired("BranchName"))
}
- if s.Title == nil {
- invalidParams.Add(request.NewErrParamRequired("Title"))
+ if s.BranchName != nil && len(*s.BranchName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("BranchName", 1))
}
- if s.Targets != nil {
- for i, v := range s.Targets {
+ if s.RepositoryName == nil {
+ invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
+ }
+ if s.RepositoryName != nil && len(*s.RepositoryName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 1))
+ }
+ if s.DeleteFiles != nil {
+ for i, v := range s.DeleteFiles {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams))
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DeleteFiles", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+ if s.PutFiles != nil {
+ for i, v := range s.PutFiles {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PutFiles", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+ if s.SetFileModes != nil {
+ for i, v := range s.SetFileModes {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SetFileModes", i), err.(request.ErrInvalidParams))
}
}
}
@@ -5857,7 +6127,193 @@ func (s *CreatePullRequestInput) Validate() error {
return nil
}
-// SetClientRequestToken sets the ClientRequestToken field's value.
+// SetAuthorName sets the AuthorName field's value.
+func (s *CreateCommitInput) SetAuthorName(v string) *CreateCommitInput {
+ s.AuthorName = &v
+ return s
+}
+
+// SetBranchName sets the BranchName field's value.
+func (s *CreateCommitInput) SetBranchName(v string) *CreateCommitInput {
+ s.BranchName = &v
+ return s
+}
+
+// SetCommitMessage sets the CommitMessage field's value.
+func (s *CreateCommitInput) SetCommitMessage(v string) *CreateCommitInput {
+ s.CommitMessage = &v
+ return s
+}
+
+// SetDeleteFiles sets the DeleteFiles field's value.
+func (s *CreateCommitInput) SetDeleteFiles(v []*DeleteFileEntry) *CreateCommitInput {
+ s.DeleteFiles = v
+ return s
+}
+
+// SetEmail sets the Email field's value.
+func (s *CreateCommitInput) SetEmail(v string) *CreateCommitInput {
+ s.Email = &v
+ return s
+}
+
+// SetKeepEmptyFolders sets the KeepEmptyFolders field's value.
+func (s *CreateCommitInput) SetKeepEmptyFolders(v bool) *CreateCommitInput {
+ s.KeepEmptyFolders = &v
+ return s
+}
+
+// SetParentCommitId sets the ParentCommitId field's value.
+func (s *CreateCommitInput) SetParentCommitId(v string) *CreateCommitInput {
+ s.ParentCommitId = &v
+ return s
+}
+
+// SetPutFiles sets the PutFiles field's value.
+func (s *CreateCommitInput) SetPutFiles(v []*PutFileEntry) *CreateCommitInput {
+ s.PutFiles = v
+ return s
+}
+
+// SetRepositoryName sets the RepositoryName field's value.
+func (s *CreateCommitInput) SetRepositoryName(v string) *CreateCommitInput {
+ s.RepositoryName = &v
+ return s
+}
+
+// SetSetFileModes sets the SetFileModes field's value.
+func (s *CreateCommitInput) SetSetFileModes(v []*SetFileModeEntry) *CreateCommitInput {
+ s.SetFileModes = v
+ return s
+}
+
+type CreateCommitOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The full commit ID of the commit that contains your committed file changes.
+ CommitId *string `locationName:"commitId" type:"string"`
+
+ // The files added as part of the committed file changes.
+ FilesAdded []*FileMetadata `locationName:"filesAdded" type:"list"`
+
+ // The files deleted as part of the committed file changes.
+ FilesDeleted []*FileMetadata `locationName:"filesDeleted" type:"list"`
+
+ // The files updated as part of the commited file changes.
+ FilesUpdated []*FileMetadata `locationName:"filesUpdated" type:"list"`
+
+ // The full SHA-1 pointer of the tree information for the commit that contains
+ // the commited file changes.
+ TreeId *string `locationName:"treeId" type:"string"`
+}
+
+// String returns the string representation
+func (s CreateCommitOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateCommitOutput) GoString() string {
+ return s.String()
+}
+
+// SetCommitId sets the CommitId field's value.
+func (s *CreateCommitOutput) SetCommitId(v string) *CreateCommitOutput {
+ s.CommitId = &v
+ return s
+}
+
+// SetFilesAdded sets the FilesAdded field's value.
+func (s *CreateCommitOutput) SetFilesAdded(v []*FileMetadata) *CreateCommitOutput {
+ s.FilesAdded = v
+ return s
+}
+
+// SetFilesDeleted sets the FilesDeleted field's value.
+func (s *CreateCommitOutput) SetFilesDeleted(v []*FileMetadata) *CreateCommitOutput {
+ s.FilesDeleted = v
+ return s
+}
+
+// SetFilesUpdated sets the FilesUpdated field's value.
+func (s *CreateCommitOutput) SetFilesUpdated(v []*FileMetadata) *CreateCommitOutput {
+ s.FilesUpdated = v
+ return s
+}
+
+// SetTreeId sets the TreeId field's value.
+func (s *CreateCommitOutput) SetTreeId(v string) *CreateCommitOutput {
+ s.TreeId = &v
+ return s
+}
+
+type CreatePullRequestInput struct {
+ _ struct{} `type:"structure"`
+
+ // A unique, client-generated idempotency token that when provided in a request,
+ // ensures the request cannot be repeated with a changed parameter. If a request
+ // is received with the same parameters and a token is included, the request
+ // will return information about the initial request that used that token.
+ //
+ // The AWS SDKs prepopulate client request tokens. If using an AWS SDK, you
+ // do not have to generate an idempotency token, as this will be done for you.
+ ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`
+
+ // A description of the pull request.
+ Description *string `locationName:"description" type:"string"`
+
+ // The targets for the pull request, including the source of the code to be
+ // reviewed (the source branch), and the destination where the creator of the
+ // pull request intends the code to be merged after the pull request is closed
+ // (the destination branch).
+ //
+ // Targets is a required field
+ Targets []*Target `locationName:"targets" type:"list" required:"true"`
+
+ // The title of the pull request. This title will be used to identify the pull
+ // request to other users in the repository.
+ //
+ // Title is a required field
+ Title *string `locationName:"title" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s CreatePullRequestInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreatePullRequestInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreatePullRequestInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreatePullRequestInput"}
+ if s.Targets == nil {
+ invalidParams.Add(request.NewErrParamRequired("Targets"))
+ }
+ if s.Title == nil {
+ invalidParams.Add(request.NewErrParamRequired("Title"))
+ }
+ if s.Targets != nil {
+ for i, v := range s.Targets {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientRequestToken sets the ClientRequestToken field's value.
func (s *CreatePullRequestInput) SetClientRequestToken(v string) *CreatePullRequestInput {
s.ClientRequestToken = &v
return s
@@ -6139,6 +6595,46 @@ func (s *DeleteCommentContentOutput) SetComment(v *Comment) *DeleteCommentConten
return s
}
+// A file that will be deleted as part of a commit.
+type DeleteFileEntry struct {
+ _ struct{} `type:"structure"`
+
+ // The full path of the file that will be deleted, including the name of the
+ // file.
+ //
+ // FilePath is a required field
+ FilePath *string `locationName:"filePath" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s DeleteFileEntry) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteFileEntry) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeleteFileEntry) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteFileEntry"}
+ if s.FilePath == nil {
+ invalidParams.Add(request.NewErrParamRequired("FilePath"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetFilePath sets the FilePath field's value.
+func (s *DeleteFileEntry) SetFilePath(v string) *DeleteFileEntry {
+ s.FilePath = &v
+ return s
+}
+
type DeleteFileInput struct {
_ struct{} `type:"structure"`
@@ -6613,6 +7109,50 @@ func (s *File) SetRelativePath(v string) *File {
return s
}
+// A file that will be added, updated, or deleted as part of a commit.
+type FileMetadata struct {
+ _ struct{} `type:"structure"`
+
+ // The full path to the file that will be added or updated, including the name
+ // of the file.
+ AbsolutePath *string `locationName:"absolutePath" type:"string"`
+
+ // The blob ID that contains the file information.
+ BlobId *string `locationName:"blobId" type:"string"`
+
+ // The extrapolated file mode permissions for the file. Valid values include
+ // EXECUTABLE and NORMAL.
+ FileMode *string `locationName:"fileMode" type:"string" enum:"FileModeTypeEnum"`
+}
+
+// String returns the string representation
+func (s FileMetadata) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s FileMetadata) GoString() string {
+ return s.String()
+}
+
+// SetAbsolutePath sets the AbsolutePath field's value.
+func (s *FileMetadata) SetAbsolutePath(v string) *FileMetadata {
+ s.AbsolutePath = &v
+ return s
+}
+
+// SetBlobId sets the BlobId field's value.
+func (s *FileMetadata) SetBlobId(v string) *FileMetadata {
+ s.BlobId = &v
+ return s
+}
+
+// SetFileMode sets the FileMode field's value.
+func (s *FileMetadata) SetFileMode(v string) *FileMetadata {
+ s.FileMode = &v
+ return s
+}
+
// Returns information about a folder in a repository.
type Folder struct {
_ struct{} `type:"structure"`
@@ -9383,6 +9923,81 @@ func (s *PullRequestTarget) SetSourceReference(v string) *PullRequestTarget {
return s
}
+// Information about a file that will be added or updated as part of a commit.
+type PutFileEntry struct {
+ _ struct{} `type:"structure"`
+
+ // The content of the file, if a source file is not specified.
+ //
+ // FileContent is automatically base64 encoded/decoded by the SDK.
+ FileContent []byte `locationName:"fileContent" type:"blob"`
+
+ // The extrapolated file mode permissions for the file. Valid values include
+ // EXECUTABLE and NORMAL.
+ FileMode *string `locationName:"fileMode" type:"string" enum:"FileModeTypeEnum"`
+
+ // The full path to the file in the repository, including the name of the file.
+ //
+ // FilePath is a required field
+ FilePath *string `locationName:"filePath" type:"string" required:"true"`
+
+ // The name and full path of the file that contains the changes you want to
+ // make as part of the commit, if you are not providing the file content directly.
+ SourceFile *SourceFileSpecifier `locationName:"sourceFile" type:"structure"`
+}
+
+// String returns the string representation
+func (s PutFileEntry) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PutFileEntry) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *PutFileEntry) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "PutFileEntry"}
+ if s.FilePath == nil {
+ invalidParams.Add(request.NewErrParamRequired("FilePath"))
+ }
+ if s.SourceFile != nil {
+ if err := s.SourceFile.Validate(); err != nil {
+ invalidParams.AddNested("SourceFile", err.(request.ErrInvalidParams))
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetFileContent sets the FileContent field's value.
+func (s *PutFileEntry) SetFileContent(v []byte) *PutFileEntry {
+ s.FileContent = v
+ return s
+}
+
+// SetFileMode sets the FileMode field's value.
+func (s *PutFileEntry) SetFileMode(v string) *PutFileEntry {
+ s.FileMode = &v
+ return s
+}
+
+// SetFilePath sets the FilePath field's value.
+func (s *PutFileEntry) SetFilePath(v string) *PutFileEntry {
+ s.FilePath = &v
+ return s
+}
+
+// SetSourceFile sets the SourceFile field's value.
+func (s *PutFileEntry) SetSourceFile(v *SourceFileSpecifier) *PutFileEntry {
+ s.SourceFile = v
+ return s
+}
+
type PutFileInput struct {
_ struct{} `type:"structure"`
@@ -9934,6 +10549,107 @@ func (s *RepositoryTriggerExecutionFailure) SetTrigger(v string) *RepositoryTrig
return s
}
+// Information about the file mode changes.
+type SetFileModeEntry struct {
+ _ struct{} `type:"structure"`
+
+ // The file mode for the file.
+ //
+ // FileMode is a required field
+ FileMode *string `locationName:"fileMode" type:"string" required:"true" enum:"FileModeTypeEnum"`
+
+ // The full path to the file, including the name of the file.
+ //
+ // FilePath is a required field
+ FilePath *string `locationName:"filePath" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s SetFileModeEntry) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s SetFileModeEntry) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *SetFileModeEntry) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "SetFileModeEntry"}
+ if s.FileMode == nil {
+ invalidParams.Add(request.NewErrParamRequired("FileMode"))
+ }
+ if s.FilePath == nil {
+ invalidParams.Add(request.NewErrParamRequired("FilePath"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetFileMode sets the FileMode field's value.
+func (s *SetFileModeEntry) SetFileMode(v string) *SetFileModeEntry {
+ s.FileMode = &v
+ return s
+}
+
+// SetFilePath sets the FilePath field's value.
+func (s *SetFileModeEntry) SetFilePath(v string) *SetFileModeEntry {
+ s.FilePath = &v
+ return s
+}
+
+// Information about a source file that is part of changes made in a commit.
+type SourceFileSpecifier struct {
+ _ struct{} `type:"structure"`
+
+ // The full path to the file, including the name of the file.
+ //
+ // FilePath is a required field
+ FilePath *string `locationName:"filePath" type:"string" required:"true"`
+
+ // Whether to remove the source file from the parent commit.
+ IsMove *bool `locationName:"isMove" type:"boolean"`
+}
+
+// String returns the string representation
+func (s SourceFileSpecifier) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s SourceFileSpecifier) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *SourceFileSpecifier) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "SourceFileSpecifier"}
+ if s.FilePath == nil {
+ invalidParams.Add(request.NewErrParamRequired("FilePath"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetFilePath sets the FilePath field's value.
+func (s *SourceFileSpecifier) SetFilePath(v string) *SourceFileSpecifier {
+ s.FilePath = &v
+ return s
+}
+
+// SetIsMove sets the IsMove field's value.
+func (s *SourceFileSpecifier) SetIsMove(v bool) *SourceFileSpecifier {
+ s.IsMove = &v
+ return s
+}
+
// Returns information about a submodule reference in a repository folder.
type SubModule struct {
_ struct{} `type:"structure"`
diff --git a/vendor/github.com/aws/aws-sdk-go/service/codecommit/doc.go b/vendor/github.com/aws/aws-sdk-go/service/codecommit/doc.go
index 604881e7441..71abd772b8b 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/codecommit/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/codecommit/doc.go
@@ -57,6 +57,8 @@
//
// Information about committed code in a repository, by calling the following:
//
+// * CreateCommit, which creates a commit for changes to a repository.
+//
// * GetBlob, which returns the base-64 encoded content of an individual
// Git blob object within a repository.
//
diff --git a/vendor/github.com/aws/aws-sdk-go/service/codecommit/errors.go b/vendor/github.com/aws/aws-sdk-go/service/codecommit/errors.go
index f0db5077f5a..e97adeb7d6c 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/codecommit/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/codecommit/errors.go
@@ -189,6 +189,14 @@ const (
// The encryption key is not available.
ErrCodeEncryptionKeyUnavailableException = "EncryptionKeyUnavailableException"
+ // ErrCodeFileContentAndSourceFileSpecifiedException for service response error code
+ // "FileContentAndSourceFileSpecifiedException".
+ //
+ // The commit cannot be created because both a source file and file content
+ // have been specified for the same file. You cannot provide both. Either specify
+ // a source file, or provide the file content directly.
+ ErrCodeFileContentAndSourceFileSpecifiedException = "FileContentAndSourceFileSpecifiedException"
+
// ErrCodeFileContentRequiredException for service response error code
// "FileContentRequiredException".
//
@@ -200,8 +208,8 @@ const (
// "FileContentSizeLimitExceededException".
//
// The file cannot be added because it is too large. The maximum file size that
- // can be added using PutFile is 6 MB. For files larger than 6 MB but smaller
- // than 2 GB, add them using a Git client.
+ // can be added using PutFile is 6 MB, and the combined file content change
+ // size is 7 MB. Consider making these changes using a Git client.
ErrCodeFileContentSizeLimitExceededException = "FileContentSizeLimitExceededException"
// ErrCodeFileDoesNotExistException for service response error code
@@ -211,6 +219,20 @@ const (
// name of the file, including its full path and extension.
ErrCodeFileDoesNotExistException = "FileDoesNotExistException"
+ // ErrCodeFileEntryRequiredException for service response error code
+ // "FileEntryRequiredException".
+ //
+ // The commit cannot be created because no files have been specified as added,
+ // updated, or changed (PutFile or DeleteFile) for the commit.
+ ErrCodeFileEntryRequiredException = "FileEntryRequiredException"
+
+ // ErrCodeFileModeRequiredException for service response error code
+ // "FileModeRequiredException".
+ //
+ // The commit cannot be created because a file mode is required to update mode
+ // permissions for an existing file, but no file mode has been specified.
+ ErrCodeFileModeRequiredException = "FileModeRequiredException"
+
// ErrCodeFileNameConflictsWithDirectoryNameException for service response error code
// "FileNameConflictsWithDirectoryNameException".
//
@@ -223,9 +245,9 @@ const (
// ErrCodeFilePathConflictsWithSubmodulePathException for service response error code
// "FilePathConflictsWithSubmodulePathException".
//
- // The specified file path or folder has the same path as a submodule in this
- // repository. Either provide a different name for the file, or save the file
- // in a directory that does not conflict with the submodule path.
+ // The commit cannot be created because a specified file path points to a submodule.
+ // Verify that the destination files have valid file paths that do not point
+ // to a submodule.
ErrCodeFilePathConflictsWithSubmodulePathException = "FilePathConflictsWithSubmodulePathException"
// ErrCodeFileTooLargeException for service response error code
@@ -239,11 +261,10 @@ const (
// ErrCodeFolderContentSizeLimitExceededException for service response error code
// "FolderContentSizeLimitExceededException".
//
- // The specified file is in a folder that exceeds the folder content size limit.
- // Either save the file in a folder that has less content, or remove files or
- // subfolders from the folder so it does not exceed the size limit. For more
- // information about limits in AWS CodeCommit, see AWS CodeCommit User Guide
- // (http://docs.aws.amazon.com/codecommit/latest/userguide/limits.html).
+ // The commit cannot be created because at least one of the overall changes
+ // in the commit result in a folder contents exceeding the limit of 6 MB. Either
+ // reduce the number and size of your changes, or split the changes across multiple
+ // folders.
ErrCodeFolderContentSizeLimitExceededException = "FolderContentSizeLimitExceededException"
// ErrCodeFolderDoesNotExistException for service response error code
@@ -549,6 +570,14 @@ const (
// The number of branches for the trigger was exceeded.
ErrCodeMaximumBranchesExceededException = "MaximumBranchesExceededException"
+ // ErrCodeMaximumFileEntriesExceededException for service response error code
+ // "MaximumFileEntriesExceededException".
+ //
+ // The number of specified files to change as part of this commit exceeds the
+ // maximum number of files that can be changed in a single commit. Consider
+ // using a Git client for these changes.
+ ErrCodeMaximumFileEntriesExceededException = "MaximumFileEntriesExceededException"
+
// ErrCodeMaximumOpenPullRequestsExceededException for service response error code
// "MaximumOpenPullRequestsExceededException".
//
@@ -592,6 +621,13 @@ const (
// character limit.
ErrCodeNameLengthExceededException = "NameLengthExceededException"
+ // ErrCodeNoChangeException for service response error code
+ // "NoChangeException".
+ //
+ // The commit cannot be created because no changes will be made to the repository
+ // as a result of this commit. A commit must contain at least one change.
+ ErrCodeNoChangeException = "NoChangeException"
+
// ErrCodeParentCommitDoesNotExistException for service response error code
// "ParentCommitDoesNotExistException".
//
@@ -652,6 +688,13 @@ const (
// A pull request status is required, but none was provided.
ErrCodePullRequestStatusRequiredException = "PullRequestStatusRequiredException"
+ // ErrCodePutFileEntryConflictException for service response error code
+ // "PutFileEntryConflictException".
+ //
+ // The commit cannot be created because one or more files specified in the commit
+ // reference both a file and a folder.
+ ErrCodePutFileEntryConflictException = "PutFileEntryConflictException"
+
// ErrCodeReferenceDoesNotExistException for service response error code
// "ReferenceDoesNotExistException".
//
@@ -704,8 +747,8 @@ const (
// "RepositoryNotAssociatedWithPullRequestException".
//
// The repository does not contain any pull requests with that pull request
- // ID. Check to make sure you have provided the correct repository name for
- // the pull request.
+ // ID. Use GetPullRequest to verify the correct repository name for the pull
+ // request ID.
ErrCodeRepositoryNotAssociatedWithPullRequestException = "RepositoryNotAssociatedWithPullRequestException"
// ErrCodeRepositoryTriggerBranchNameListRequiredException for service response error code
@@ -740,6 +783,13 @@ const (
// The list of triggers for the repository is required but was not specified.
ErrCodeRepositoryTriggersListRequiredException = "RepositoryTriggersListRequiredException"
+ // ErrCodeRestrictedSourceFileException for service response error code
+ // "RestrictedSourceFileException".
+ //
+ // The commit cannot be created because one of the changes specifies copying
+ // or moving a .gitkeep file.
+ ErrCodeRestrictedSourceFileException = "RestrictedSourceFileException"
+
// ErrCodeSameFileContentException for service response error code
// "SameFileContentException".
//
@@ -748,6 +798,15 @@ const (
// specified.
ErrCodeSameFileContentException = "SameFileContentException"
+ // ErrCodeSamePathRequestException for service response error code
+ // "SamePathRequestException".
+ //
+ // The commit cannot be created because one or more changes in this commit duplicate
+ // actions in the same file path. For example, you cannot make the same delete
+ // request to the same file in the same file path twice, or make a delete request
+ // and a move request to the same file as part of the same commit.
+ ErrCodeSamePathRequestException = "SamePathRequestException"
+
// ErrCodeSourceAndDestinationAreSameException for service response error code
// "SourceAndDestinationAreSameException".
//
@@ -755,6 +814,13 @@ const (
// same. You must specify different branches for the source and destination.
ErrCodeSourceAndDestinationAreSameException = "SourceAndDestinationAreSameException"
+ // ErrCodeSourceFileOrContentRequiredException for service response error code
+ // "SourceFileOrContentRequiredException".
+ //
+ // The commit cannot be created because no source files or file content have
+ // been specified for the commit.
+ ErrCodeSourceFileOrContentRequiredException = "SourceFileOrContentRequiredException"
+
// ErrCodeTargetRequiredException for service response error code
// "TargetRequiredException".
//
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 8c469f5afa3..600ee9d78fb 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
@@ -2098,6 +2098,11 @@ func (c *CodeDeploy) GetDeploymentRequest(input *GetDeploymentInput) (req *reque
//
// Gets information about a deployment.
//
+// The content property of the appSpecContent object in the returned revision
+// is always null. Use GetApplicationRevision and the sha256 property of the
+// returned appSpecContent object to get the content of the deployment’s AppSpec
+// file.
+//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
@@ -5920,7 +5925,7 @@ type CreateDeploymentGroupInput struct {
// group.
//
// For more information about the predefined deployment configurations in AWS
- // CodeDeploy, see Working with Deployment Groups in AWS CodeDeploy (http://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html)
+ // CodeDeploy, see Working with Deployment Groups in AWS CodeDeploy (https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html)
// in the AWS CodeDeploy User Guide.
DeploymentConfigName *string `locationName:"deploymentConfigName" min:"1" type:"string"`
@@ -5969,7 +5974,7 @@ type CreateDeploymentGroupInput struct {
ServiceRoleArn *string `locationName:"serviceRoleArn" type:"string" required:"true"`
// Information about triggers to create when the deployment group is created.
- // For examples, see Create a Trigger for an AWS CodeDeploy Event (http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-sns.html)
+ // For examples, see Create a Trigger for an AWS CodeDeploy Event (https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-sns.html)
// in the AWS CodeDeploy User Guide.
TriggerConfigurations []*TriggerConfig `locationName:"triggerConfigurations" type:"list"`
}
@@ -6176,15 +6181,29 @@ type CreateDeploymentInput struct {
// used as part of the new deployment.
FileExistsBehavior *string `locationName:"fileExistsBehavior" type:"string" enum:"FileExistsBehavior"`
- // If set to true, then if the deployment causes the ApplicationStop deployment
- // lifecycle event to an instance to fail, the deployment to that instance is
- // considered to have failed at that point and continues on to the BeforeInstall
- // deployment lifecycle event.
- //
- // If set to false or not specified, then if the deployment causes the ApplicationStop
- // deployment lifecycle event to fail to an instance, the deployment to that
- // instance stops, and the deployment to that instance is considered to have
- // failed.
+ // If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic
+ // deployment lifecycle event to an instance fails, then the deployment continues
+ // to the next deployment lifecycle event. For example, if ApplicationStop fails,
+ // the deployment continues with DownloadBundle. If BeforeBlockTraffic fails,
+ // the deployment continues with BlockTraffic. If AfterBlockTraffic fails, the
+ // deployment continues with ApplicationStop.
+ //
+ // If false or not specified, then if a lifecycle event fails during a deployment
+ // to an instance, that deployment fails. If deployment to that instance is
+ // part of an overall deployment and the number of healthy hosts is not less
+ // than the minimum number of healthy hosts, then a deployment to the next instance
+ // is attempted.
+ //
+ // During a deployment, the AWS CodeDeploy agent runs the scripts specified
+ // for ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic in the AppSpec
+ // file from the previous successful deployment. (All other scripts are run
+ // from the AppSpec file in the current deployment.) If one of these scripts
+ // contains an error and does not run successfully, the deployment can fail.
+ //
+ // If the cause of the failure is a script from the last successful deployment
+ // that will never run successfully, create a new deployment and use ignoreApplicationStopFailures
+ // to specify that the ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic
+ // failures should be ignored.
IgnoreApplicationStopFailures *bool `locationName:"ignoreApplicationStopFailures" type:"boolean"`
// The type and location of the revision to deploy.
@@ -6929,15 +6948,29 @@ type DeploymentInfo struct {
// used as part of the new deployment.
FileExistsBehavior *string `locationName:"fileExistsBehavior" type:"string" enum:"FileExistsBehavior"`
- // If true, then if the deployment causes the ApplicationStop deployment lifecycle
- // event to an instance to fail, the deployment to that instance is not considered
- // to have failed at that point and continues on to the BeforeInstall deployment
- // lifecycle event.
- //
- // If false or not specified, then if the deployment causes the ApplicationStop
- // deployment lifecycle event to an instance to fail, the deployment to that
- // instance stops, and the deployment to that instance is considered to have
- // failed.
+ // If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic
+ // deployment lifecycle event to an instance fails, then the deployment continues
+ // to the next deployment lifecycle event. For example, if ApplicationStop fails,
+ // the deployment continues with DownloadBundle. If BeforeBlockTraffic fails,
+ // the deployment continues with BlockTraffic. If AfterBlockTraffic fails, the
+ // deployment continues with ApplicationStop.
+ //
+ // If false or not specified, then if a lifecycle event fails during a deployment
+ // to an instance, that deployment fails. If deployment to that instance is
+ // part of an overall deployment and the number of healthy hosts is not less
+ // than the minimum number of healthy hosts, then a deployment to the next instance
+ // is attempted.
+ //
+ // During a deployment, the AWS CodeDeploy agent runs the scripts specified
+ // for ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic in the AppSpec
+ // file from the previous successful deployment. (All other scripts are run
+ // from the AppSpec file in the current deployment.) If one of these scripts
+ // contains an error and does not run successfully, the deployment can fail.
+ //
+ // If the cause of the failure is a script from the last successful deployment
+ // that will never run successfully, create a new deployment and use ignoreApplicationStopFailures
+ // to specify that the ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic
+ // failures should be ignored.
IgnoreApplicationStopFailures *bool `locationName:"ignoreApplicationStopFailures" type:"boolean"`
// Indicates whether the wait period set for the termination of instances in
@@ -7807,8 +7840,8 @@ func (s *ELBInfo) SetName(v string) *ELBInfo {
type ErrorInformation struct {
_ struct{} `type:"structure"`
- // For more information, see Error Codes for AWS CodeDeploy (http://docs.aws.amazon.com/codedeploy/latest/userguide/error-codes.html)
- // in the AWS CodeDeploy User Guide (http://docs.aws.amazon.com/codedeploy/latest/userguide).
+ // For more information, see Error Codes for AWS CodeDeploy (https://docs.aws.amazon.com/codedeploy/latest/userguide/error-codes.html)
+ // in the AWS CodeDeploy User Guide (https://docs.aws.amazon.com/codedeploy/latest/userguide).
//
// The error code:
//
@@ -9944,7 +9977,7 @@ type MinimumHealthyHosts struct {
// deployment, it also means that if the deployment to the last instance fails,
// the overall deployment is still successful.
//
- // For more information, see AWS CodeDeploy Instance Health (http://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html)
+ // For more information, see AWS CodeDeploy Instance Health (https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html)
// in the AWS CodeDeploy User Guide.
Type *string `locationName:"type" type:"string" enum:"MinimumHealthyHostsType"`
@@ -11250,7 +11283,7 @@ type UpdateDeploymentGroupInput struct {
ServiceRoleArn *string `locationName:"serviceRoleArn" type:"string"`
// Information about triggers to change when the deployment group is updated.
- // For examples, see Modify Triggers in an AWS CodeDeploy Deployment Group (http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-edit.html)
+ // For examples, see Modify Triggers in an AWS CodeDeploy Deployment Group (https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-edit.html)
// in the AWS CodeDeploy User Guide.
TriggerConfigurations []*TriggerConfig `locationName:"triggerConfigurations" type:"list"`
}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/codedeploy/doc.go b/vendor/github.com/aws/aws-sdk-go/service/codedeploy/doc.go
index 472970920c1..788d421da49 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/codedeploy/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/codedeploy/doc.go
@@ -65,11 +65,11 @@
//
// AWS CodeDeploy Information Resources
//
-// * AWS CodeDeploy User Guide (http://docs.aws.amazon.com/codedeploy/latest/userguide)
+// * AWS CodeDeploy User Guide (https://docs.aws.amazon.com/codedeploy/latest/userguide)
//
-// * AWS CodeDeploy API Reference Guide (http://docs.aws.amazon.com/codedeploy/latest/APIReference/)
+// * AWS CodeDeploy API Reference Guide (https://docs.aws.amazon.com/codedeploy/latest/APIReference/)
//
-// * AWS CLI Reference for AWS CodeDeploy (http://docs.aws.amazon.com/cli/latest/reference/deploy/index.html)
+// * AWS CLI Reference for AWS CodeDeploy (https://docs.aws.amazon.com/cli/latest/reference/deploy/index.html)
//
// * AWS CodeDeploy Developer Forum (https://forums.aws.amazon.com/forum.jspa?forumID=179)
//
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 782226a7f41..ec0339b1ceb 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
@@ -8,6 +8,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awsutil"
+ "github.com/aws/aws-sdk-go/aws/credentials"
"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"
@@ -535,6 +536,7 @@ func (c *CognitoIdentity) GetCredentialsForIdentityRequest(input *GetCredentials
output = &GetCredentialsForIdentityOutput{}
req = c.newRequest(op, input, output)
+ req.Config.Credentials = credentials.AnonymousCredentials
return
}
@@ -644,6 +646,7 @@ func (c *CognitoIdentity) GetIdRequest(input *GetIdInput) (req *request.Request,
output = &GetIdOutput{}
req = c.newRequest(op, input, output)
+ req.Config.Credentials = credentials.AnonymousCredentials
return
}
@@ -848,6 +851,7 @@ func (c *CognitoIdentity) GetOpenIdTokenRequest(input *GetOpenIdTokenInput) (req
output = &GetOpenIdTokenOutput{}
req = c.newRequest(op, input, output)
+ req.Config.Credentials = credentials.AnonymousCredentials
return
}
@@ -1667,6 +1671,7 @@ func (c *CognitoIdentity) UnlinkIdentityRequest(input *UnlinkIdentityInput) (req
output = &UnlinkIdentityOutput{}
req = c.newRequest(op, input, output)
+ req.Config.Credentials = credentials.AnonymousCredentials
req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentity/customizations.go b/vendor/github.com/aws/aws-sdk-go/service/cognitoidentity/customizations.go
deleted file mode 100644
index 4bf243c35d6..00000000000
--- a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentity/customizations.go
+++ /dev/null
@@ -1,12 +0,0 @@
-package cognitoidentity
-
-import "github.com/aws/aws-sdk-go/aws/request"
-
-func init() {
- initRequest = func(r *request.Request) {
- switch r.Operation.Name {
- case opGetOpenIdToken, opGetId, opGetCredentialsForIdentity:
- r.Handlers.Sign.Clear() // these operations are unsigned
- }
- }
-}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/api.go b/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/api.go
index a8e52b67712..9c6b8ecd77f 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/api.go
@@ -54,7 +54,7 @@ func (c *CostandUsageReportService) DeleteReportDefinitionRequest(input *DeleteR
// DeleteReportDefinition API operation for AWS Cost and Usage Report Service.
//
-// Delete a specified report definition
+// Deletes the specified report.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -65,12 +65,11 @@ func (c *CostandUsageReportService) DeleteReportDefinitionRequest(input *DeleteR
//
// Returned Error Codes:
// * ErrCodeInternalErrorException "InternalErrorException"
-// This exception is thrown on a known dependency failure.
+// An error on the server occurred during the processing of your request. Try
+// again later.
//
// * ErrCodeValidationException "ValidationException"
-// This exception is thrown when providing an invalid input. eg. Put a report
-// preference with an invalid report name, or Delete a report preference with
-// an empty report name.
+// The input fails to satisfy the constraints specified by an AWS service.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/DeleteReportDefinition
func (c *CostandUsageReportService) DeleteReportDefinition(input *DeleteReportDefinitionInput) (*DeleteReportDefinitionOutput, error) {
@@ -144,7 +143,7 @@ func (c *CostandUsageReportService) DescribeReportDefinitionsRequest(input *Desc
// DescribeReportDefinitions API operation for AWS Cost and Usage Report Service.
//
-// Describe a list of report definitions owned by the account
+// Lists the AWS Cost and Usage reports available to this 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
@@ -155,7 +154,8 @@ func (c *CostandUsageReportService) DescribeReportDefinitionsRequest(input *Desc
//
// Returned Error Codes:
// * ErrCodeInternalErrorException "InternalErrorException"
-// This exception is thrown on a known dependency failure.
+// An error on the server occurred during the processing of your request. Try
+// again later.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/DescribeReportDefinitions
func (c *CostandUsageReportService) DescribeReportDefinitions(input *DescribeReportDefinitionsInput) (*DescribeReportDefinitionsOutput, error) {
@@ -274,7 +274,7 @@ func (c *CostandUsageReportService) PutReportDefinitionRequest(input *PutReportD
// PutReportDefinition API operation for AWS Cost and Usage Report Service.
//
-// Create a new report definition
+// Creates a new report using the description that you provide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -285,20 +285,19 @@ func (c *CostandUsageReportService) PutReportDefinitionRequest(input *PutReportD
//
// Returned Error Codes:
// * ErrCodeDuplicateReportNameException "DuplicateReportNameException"
-// This exception is thrown when putting a report preference with a name that
-// already exists.
+// A report with the specified name already exists in the account. Specify a
+// different report name.
//
// * ErrCodeReportLimitReachedException "ReportLimitReachedException"
-// This exception is thrown when the number of report preference reaches max
-// limit. The max number is 5.
+// This account already has five reports defined. To define a new report, you
+// must delete an existing report.
//
// * ErrCodeInternalErrorException "InternalErrorException"
-// This exception is thrown on a known dependency failure.
+// An error on the server occurred during the processing of your request. Try
+// again later.
//
// * ErrCodeValidationException "ValidationException"
-// This exception is thrown when providing an invalid input. eg. Put a report
-// preference with an invalid report name, or Delete a report preference with
-// an empty report name.
+// The input fails to satisfy the constraints specified by an AWS service.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/PutReportDefinition
func (c *CostandUsageReportService) PutReportDefinition(input *PutReportDefinitionInput) (*PutReportDefinitionOutput, error) {
@@ -322,12 +321,12 @@ func (c *CostandUsageReportService) PutReportDefinitionWithContext(ctx aws.Conte
return out, req.Send()
}
-// Request of DeleteReportDefinition
+// Deletes the specified report.
type DeleteReportDefinitionInput struct {
_ struct{} `type:"structure"`
- // Preferred name for a report, it has to be unique. Must starts with a number/letter,
- // case sensitive. Limited to 256 characters.
+ // The name of the report that you want to create. The name must be unique,
+ // is case sensitive, and can't include spaces.
ReportName *string `type:"string"`
}
@@ -347,11 +346,11 @@ func (s *DeleteReportDefinitionInput) SetReportName(v string) *DeleteReportDefin
return s
}
-// Response of DeleteReportDefinition
+// If the action is successful, the service sends back an HTTP 200 response.
type DeleteReportDefinitionOutput struct {
_ struct{} `type:"structure"`
- // A message indicates if the deletion is successful.
+ // Whether the deletion was successful or not.
ResponseMessage *string `type:"string"`
}
@@ -371,11 +370,11 @@ func (s *DeleteReportDefinitionOutput) SetResponseMessage(v string) *DeleteRepor
return s
}
-// Request of DescribeReportDefinitions
+// Requests a list of AWS Cost and Usage reports owned by the account.
type DescribeReportDefinitionsInput struct {
_ struct{} `type:"structure"`
- // The max number of results returned by the operation.
+ // The maximum number of results that AWS returns for the operation.
MaxResults *int64 `min:"5" type:"integer"`
// A generic string.
@@ -417,14 +416,14 @@ func (s *DescribeReportDefinitionsInput) SetNextToken(v string) *DescribeReportD
return s
}
-// Response of DescribeReportDefinitions
+// If the action is successful, the service sends back an HTTP 200 response.
type DescribeReportDefinitionsOutput struct {
_ struct{} `type:"structure"`
// A generic string.
NextToken *string `type:"string"`
- // A list of report definitions.
+ // A list of AWS Cost and Usage reports owned by the account.
ReportDefinitions []*ReportDefinition `type:"list"`
}
@@ -450,13 +449,12 @@ func (s *DescribeReportDefinitionsOutput) SetReportDefinitions(v []*ReportDefini
return s
}
-// Request of PutReportDefinition
+// Creates a Cost and Usage Report.
type PutReportDefinitionInput struct {
_ struct{} `type:"structure"`
- // The definition of AWS Cost and Usage Report. Customer can specify the report
- // name, time unit, report format, compression format, S3 bucket and additional
- // artifacts and schema elements in the definition.
+ // Represents the output of the PutReportDefinition operation. The content consists
+ // of the detailed metadata and data file information.
//
// ReportDefinition is a required field
ReportDefinition *ReportDefinition `type:"structure" required:"true"`
@@ -496,7 +494,8 @@ func (s *PutReportDefinitionInput) SetReportDefinition(v *ReportDefinition) *Put
return s
}
-// Response of PutReportDefinition
+// If the action is successful, the service sends back an HTTP 200 response
+// with an empty HTTP body.
type PutReportDefinitionOutput struct {
_ struct{} `type:"structure"`
}
@@ -511,52 +510,64 @@ func (s PutReportDefinitionOutput) GoString() string {
return s.String()
}
-// The definition of AWS Cost and Usage Report. Customer can specify the report
-// name, time unit, report format, compression format, S3 bucket and additional
-// artifacts and schema elements in the definition.
+// The definition of AWS Cost and Usage Report. You can specify the report name,
+// time unit, report format, compression format, S3 bucket, additional artifacts,
+// and schema elements in the definition.
type ReportDefinition struct {
_ struct{} `type:"structure"`
- // A list of additional artifacts.
+ // A list of manifests that you want Amazon Web Services to create for this
+ // report.
AdditionalArtifacts []*string `type:"list"`
- // A list of schema elements.
+ // A list of strings that indicate additional content that Amazon Web Services
+ // includes in the report, such as individual resource IDs.
//
// AdditionalSchemaElements is a required field
AdditionalSchemaElements []*string `type:"list" required:"true"`
- // Preferred compression format for report.
+ // The compression format that AWS uses for the report.
//
// Compression is a required field
Compression *string `type:"string" required:"true" enum:"CompressionFormat"`
- // Preferred format for report.
+ // The format that AWS saves the report in.
//
// Format is a required field
Format *string `type:"string" required:"true" enum:"ReportFormat"`
- // Preferred name for a report, it has to be unique. Must starts with a number/letter,
- // case sensitive. Limited to 256 characters.
+ // Whether you want Amazon Web Services to update your reports after they have
+ // been finalized if Amazon Web Services detects charges related to previous
+ // months. These charges can include refunds, credits, or support fees.
+ RefreshClosedReports *bool `type:"boolean"`
+
+ // The name of the report that you want to create. The name must be unique,
+ // is case sensitive, and can't include spaces.
//
// ReportName is a required field
ReportName *string `type:"string" required:"true"`
- // Name of customer S3 bucket.
+ // Whether you want Amazon Web Services to overwrite the previous version of
+ // each report or to deliver the report in addition to the previous versions.
+ ReportVersioning *string `type:"string" enum:"ReportVersioning"`
+
+ // The S3 bucket where AWS delivers the report.
//
// S3Bucket is a required field
S3Bucket *string `type:"string" required:"true"`
- // Preferred report path prefix. Limited to 256 characters.
+ // The prefix that AWS adds to the report name when AWS delivers the report.
+ // Your prefix can't include spaces.
//
// S3Prefix is a required field
S3Prefix *string `type:"string" required:"true"`
- // Region of customer S3 bucket.
+ // The region of the S3 bucket that AWS delivers the report into.
//
// S3Region is a required field
S3Region *string `type:"string" required:"true" enum:"AWSRegion"`
- // The frequency on which report data are measured and displayed.
+ // The length of time covered by the report.
//
// TimeUnit is a required field
TimeUnit *string `type:"string" required:"true" enum:"TimeUnit"`
@@ -630,12 +641,24 @@ func (s *ReportDefinition) SetFormat(v string) *ReportDefinition {
return s
}
+// SetRefreshClosedReports sets the RefreshClosedReports field's value.
+func (s *ReportDefinition) SetRefreshClosedReports(v bool) *ReportDefinition {
+ s.RefreshClosedReports = &v
+ return s
+}
+
// SetReportName sets the ReportName field's value.
func (s *ReportDefinition) SetReportName(v string) *ReportDefinition {
s.ReportName = &v
return s
}
+// SetReportVersioning sets the ReportVersioning field's value.
+func (s *ReportDefinition) SetReportVersioning(v string) *ReportDefinition {
+ s.ReportVersioning = &v
+ return s
+}
+
// SetS3Bucket sets the S3Bucket field's value.
func (s *ReportDefinition) SetS3Bucket(v string) *ReportDefinition {
s.S3Bucket = &v
@@ -660,7 +683,7 @@ func (s *ReportDefinition) SetTimeUnit(v string) *ReportDefinition {
return s
}
-// Region of customer S3 bucket.
+// The region of the S3 bucket that AWS delivers the report into.
const (
// AWSRegionUsEast1 is a AWSRegion enum value
AWSRegionUsEast1 = "us-east-1"
@@ -685,40 +708,62 @@ const (
// AWSRegionApNortheast1 is a AWSRegion enum value
AWSRegionApNortheast1 = "ap-northeast-1"
+
+ // AWSRegionEuNorth1 is a AWSRegion enum value
+ AWSRegionEuNorth1 = "eu-north-1"
+
+ // AWSRegionApNortheast3 is a AWSRegion enum value
+ AWSRegionApNortheast3 = "ap-northeast-3"
)
-// Enable support for Redshift and/or QuickSight.
+// The types of manifest that you want AWS to create for this report.
const (
// AdditionalArtifactRedshift is a AdditionalArtifact enum value
AdditionalArtifactRedshift = "REDSHIFT"
// AdditionalArtifactQuicksight is a AdditionalArtifact enum value
AdditionalArtifactQuicksight = "QUICKSIGHT"
+
+ // AdditionalArtifactAthena is a AdditionalArtifact enum value
+ AdditionalArtifactAthena = "ATHENA"
)
-// Preferred compression format for report.
+// The compression format that AWS uses for the report.
const (
// CompressionFormatZip is a CompressionFormat enum value
CompressionFormatZip = "ZIP"
// CompressionFormatGzip is a CompressionFormat enum value
CompressionFormatGzip = "GZIP"
+
+ // CompressionFormatParquet is a CompressionFormat enum value
+ CompressionFormatParquet = "Parquet"
)
-// Preferred format for report.
+// The format that AWS saves the report in.
const (
// ReportFormatTextOrcsv is a ReportFormat enum value
ReportFormatTextOrcsv = "textORcsv"
+
+ // ReportFormatParquet is a ReportFormat enum value
+ ReportFormatParquet = "Parquet"
+)
+
+const (
+ // ReportVersioningCreateNewReport is a ReportVersioning enum value
+ ReportVersioningCreateNewReport = "CREATE_NEW_REPORT"
+
+ // ReportVersioningOverwriteReport is a ReportVersioning enum value
+ ReportVersioningOverwriteReport = "OVERWRITE_REPORT"
)
-// Preference of including Resource IDs. You can include additional details
-// about individual resource IDs in your report.
+// Whether or not AWS includes resource IDs in the report.
const (
// SchemaElementResources is a SchemaElement enum value
SchemaElementResources = "RESOURCES"
)
-// The frequency on which report data are measured and displayed.
+// The length of time covered by the report.
const (
// TimeUnitHourly is a TimeUnit enum value
TimeUnitHourly = "HOURLY"
diff --git a/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/doc.go b/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/doc.go
index 5a3a4609872..f25420cb612 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/doc.go
@@ -3,7 +3,20 @@
// Package costandusagereportservice provides the client and types for making API
// requests to AWS Cost and Usage Report Service.
//
-// All public APIs for AWS Cost and Usage Report service
+// The AWS Cost and Usage Report API enables you to programmatically create,
+// query, and delete AWS Cost and Usage report definitions.
+//
+// AWS Cost and Usage reports track the monthly AWS costs and usage associated
+// with your AWS account. The report contains line items for each unique combination
+// of AWS product, usage type, and operation that your AWS account uses. You
+// can configure the AWS Cost and Usage report to show only the data that you
+// want, using the AWS Cost and Usage API.
+//
+// Service Endpoint
+//
+// The AWS Cost and Usage Report API provides the following endpoint:
+//
+// * cur.us-east-1.amazonaws.com
//
// See https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06 for more information on this service.
//
diff --git a/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/errors.go b/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/errors.go
index 11a8d52097d..0602538036c 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/costandusagereportservice/errors.go
@@ -7,28 +7,27 @@ const (
// ErrCodeDuplicateReportNameException for service response error code
// "DuplicateReportNameException".
//
- // This exception is thrown when putting a report preference with a name that
- // already exists.
+ // A report with the specified name already exists in the account. Specify a
+ // different report name.
ErrCodeDuplicateReportNameException = "DuplicateReportNameException"
// ErrCodeInternalErrorException for service response error code
// "InternalErrorException".
//
- // This exception is thrown on a known dependency failure.
+ // An error on the server occurred during the processing of your request. Try
+ // again later.
ErrCodeInternalErrorException = "InternalErrorException"
// ErrCodeReportLimitReachedException for service response error code
// "ReportLimitReachedException".
//
- // This exception is thrown when the number of report preference reaches max
- // limit. The max number is 5.
+ // This account already has five reports defined. To define a new report, you
+ // must delete an existing report.
ErrCodeReportLimitReachedException = "ReportLimitReachedException"
// ErrCodeValidationException for service response error code
// "ValidationException".
//
- // This exception is thrown when providing an invalid input. eg. Put a report
- // preference with an invalid report name, or Delete a report preference with
- // an empty report name.
+ // The input fails to satisfy the constraints specified by an AWS service.
ErrCodeValidationException = "ValidationException"
)
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 244425bd46b..76d66c684b2 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
@@ -2311,7 +2311,7 @@ func (c *DirectConnect) DescribeConnectionLoaRequest(input *DescribeConnectionLo
// The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is
// a document that your APN partner or service provider uses when establishing
// your cross connect to AWS at the colocation facility. For more information,
-// see Requesting Cross Connects at AWS Direct Connect Locations (http://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html)
+// see Requesting Cross Connects at AWS Direct Connect Locations (https://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html)
// in the AWS Direct Connect User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -2932,7 +2932,7 @@ func (c *DirectConnect) DescribeInterconnectLoaRequest(input *DescribeInterconne
// The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is
// a document that is used when establishing your cross connect to AWS at the
// colocation facility. For more information, see Requesting Cross Connects
-// at AWS Direct Connect Locations (http://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html)
+// at AWS Direct Connect Locations (https://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html)
// in the AWS Direct Connect User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -3189,7 +3189,7 @@ func (c *DirectConnect) DescribeLoaRequest(input *DescribeLoaInput) (req *reques
// The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is
// a document that is used when establishing your cross connect to AWS at the
// colocation facility. For more information, see Requesting Cross Connects
-// at AWS Direct Connect Locations (http://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html)
+// at AWS Direct Connect Locations (https://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html)
// in the AWS Direct Connect User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -4556,7 +4556,7 @@ type BGPPeer struct {
//
// * down: The BGP peer is down.
//
- // * unknown: The BGP peer status is unknown.
+ // * unknown: The BGP peer status is not available.
BgpStatus *string `locationName:"bgpStatus" type:"string" enum:"BGPStatus"`
// The IP address assigned to the customer interface.
@@ -4690,6 +4690,8 @@ type ConfirmConnectionOutput struct {
//
// * rejected: A hosted connection in the ordering state enters the rejected
// state if it is deleted by the customer.
+ //
+ // * unknown: The state of the connection is not available.
ConnectionState *string `locationName:"connectionState" type:"string" enum:"ConnectionState"`
}
@@ -4796,6 +4798,8 @@ type ConfirmPrivateVirtualInterfaceOutput struct {
// interface. If a virtual interface in the Confirming state is deleted by
// the virtual interface owner, the virtual interface enters the Rejected
// state.
+ //
+ // * unknown: The state of the virtual interface is not available.
VirtualInterfaceState *string `locationName:"virtualInterfaceState" type:"string" enum:"VirtualInterfaceState"`
}
@@ -4884,6 +4888,8 @@ type ConfirmPublicVirtualInterfaceOutput struct {
// interface. If a virtual interface in the Confirming state is deleted by
// the virtual interface owner, the virtual interface enters the Rejected
// state.
+ //
+ // * unknown: The state of the virtual interface is not available.
VirtualInterfaceState *string `locationName:"virtualInterfaceState" type:"string" enum:"VirtualInterfaceState"`
}
@@ -4944,6 +4950,8 @@ type Connection struct {
//
// * rejected: A hosted connection in the ordering state enters the rejected
// state if it is deleted by the customer.
+ //
+ // * unknown: The state of the connection is not available.
ConnectionState *string `locationName:"connectionState" type:"string" enum:"ConnectionState"`
// Indicates whether the connection supports a secondary BGP peer in the same
@@ -5960,6 +5968,8 @@ type DeleteInterconnectOutput struct {
// * deleting: The interconnect is being deleted.
//
// * deleted: The interconnect is deleted.
+ //
+ // * unknown: The state of the interconnect is not available.
InterconnectState *string `locationName:"interconnectState" type:"string" enum:"InterconnectState"`
}
@@ -6086,6 +6096,8 @@ type DeleteVirtualInterfaceOutput struct {
// interface. If a virtual interface in the Confirming state is deleted by
// the virtual interface owner, the virtual interface enters the Rejected
// state.
+ //
+ // * unknown: The state of the virtual interface is not available.
VirtualInterfaceState *string `locationName:"virtualInterfaceState" type:"string" enum:"VirtualInterfaceState"`
}
@@ -7278,6 +7290,8 @@ type Interconnect struct {
// * deleting: The interconnect is being deleted.
//
// * deleted: The interconnect is deleted.
+ //
+ // * unknown: The state of the interconnect is not available.
InterconnectState *string `locationName:"interconnectState" type:"string" enum:"InterconnectState"`
// Indicates whether jumbo frames (9001 MTU) are supported.
@@ -7426,6 +7440,8 @@ type Lag struct {
// * deleting: The LAG is being deleted.
//
// * deleted: The LAG is deleted.
+ //
+ // * unknown: The state of the LAG is not available.
LagState *string `locationName:"lagState" type:"string" enum:"LagState"`
// The location of the LAG.
@@ -8610,6 +8626,8 @@ type UpdateVirtualInterfaceAttributesOutput struct {
// interface. If a virtual interface in the Confirming state is deleted by
// the virtual interface owner, the virtual interface enters the Rejected
// state.
+ //
+ // * unknown: The state of the virtual interface is not available.
VirtualInterfaceState *string `locationName:"virtualInterfaceState" type:"string" enum:"VirtualInterfaceState"`
// The type of virtual interface. The possible values are private and public.
@@ -8904,6 +8922,8 @@ type VirtualInterface struct {
// interface. If a virtual interface in the Confirming state is deleted by
// the virtual interface owner, the virtual interface enters the Rejected
// state.
+ //
+ // * unknown: The state of the virtual interface is not available.
VirtualInterfaceState *string `locationName:"virtualInterfaceState" type:"string" enum:"VirtualInterfaceState"`
// The type of virtual interface. The possible values are private and public.
@@ -9092,6 +9112,9 @@ const (
// BGPStatusDown is a BGPStatus enum value
BGPStatusDown = "down"
+
+ // BGPStatusUnknown is a BGPStatus enum value
+ BGPStatusUnknown = "unknown"
)
const (
@@ -9118,6 +9141,9 @@ const (
// ConnectionStateRejected is a ConnectionState enum value
ConnectionStateRejected = "rejected"
+
+ // ConnectionStateUnknown is a ConnectionState enum value
+ ConnectionStateUnknown = "unknown"
)
const (
@@ -9191,6 +9217,9 @@ const (
// InterconnectStateDeleted is a InterconnectState enum value
InterconnectStateDeleted = "deleted"
+
+ // InterconnectStateUnknown is a InterconnectState enum value
+ InterconnectStateUnknown = "unknown"
)
const (
@@ -9211,6 +9240,9 @@ const (
// LagStateDeleted is a LagState enum value
LagStateDeleted = "deleted"
+
+ // LagStateUnknown is a LagState enum value
+ LagStateUnknown = "unknown"
)
const (
@@ -9242,4 +9274,7 @@ const (
// VirtualInterfaceStateRejected is a VirtualInterfaceState enum value
VirtualInterfaceStateRejected = "rejected"
+
+ // VirtualInterfaceStateUnknown is a VirtualInterfaceState enum value
+ VirtualInterfaceStateUnknown = "unknown"
)
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 c14ce177c00..72b454d6b97 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
@@ -5279,6 +5279,9 @@ type ConnectDirectoryInput struct {
//
// Size is a required field
Size *string `type:"string" required:"true" enum:"DirectorySize"`
+
+ // The tags to be assigned to AD Connector.
+ Tags []*Tag `type:"list"`
}
// String returns the string representation
@@ -5314,6 +5317,16 @@ func (s *ConnectDirectoryInput) Validate() error {
invalidParams.AddNested("ConnectSettings", 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
@@ -5357,6 +5370,12 @@ func (s *ConnectDirectoryInput) SetSize(v string) *ConnectDirectoryInput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *ConnectDirectoryInput) SetTags(v []*Tag) *ConnectDirectoryInput {
+ s.Tags = v
+ return s
+}
+
// Contains the results of the ConnectDirectory operation.
type ConnectDirectoryOutput struct {
_ struct{} `type:"structure"`
@@ -5717,6 +5736,9 @@ type CreateDirectoryInput struct {
// Size is a required field
Size *string `type:"string" required:"true" enum:"DirectorySize"`
+ // The tags to be assigned to the Simple AD directory.
+ Tags []*Tag `type:"list"`
+
// A DirectoryVpcSettings object that contains additional information for the
// operation.
VpcSettings *DirectoryVpcSettings `type:"structure"`
@@ -5744,6 +5766,16 @@ func (s *CreateDirectoryInput) Validate() error {
if s.Size == nil {
invalidParams.Add(request.NewErrParamRequired("Size"))
}
+ 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 s.VpcSettings != nil {
if err := s.VpcSettings.Validate(); err != nil {
invalidParams.AddNested("VpcSettings", err.(request.ErrInvalidParams))
@@ -5786,6 +5818,12 @@ func (s *CreateDirectoryInput) SetSize(v string) *CreateDirectoryInput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateDirectoryInput) SetTags(v []*Tag) *CreateDirectoryInput {
+ s.Tags = v
+ return s
+}
+
// SetVpcSettings sets the VpcSettings field's value.
func (s *CreateDirectoryInput) SetVpcSettings(v *DirectoryVpcSettings) *CreateDirectoryInput {
s.VpcSettings = v
@@ -5916,6 +5954,9 @@ type CreateMicrosoftADInput struct {
// part of your directory DNS. For example, CORP for the directory DNS corp.example.com.
ShortName *string `type:"string"`
+ // The tags to be assigned to the AWS Managed Microsoft AD directory.
+ Tags []*Tag `type:"list"`
+
// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
//
// VpcSettings is a required field
@@ -5944,6 +5985,16 @@ func (s *CreateMicrosoftADInput) Validate() error {
if s.VpcSettings == nil {
invalidParams.Add(request.NewErrParamRequired("VpcSettings"))
}
+ 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 s.VpcSettings != nil {
if err := s.VpcSettings.Validate(); err != nil {
invalidParams.AddNested("VpcSettings", err.(request.ErrInvalidParams))
@@ -5986,6 +6037,12 @@ func (s *CreateMicrosoftADInput) SetShortName(v string) *CreateMicrosoftADInput
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateMicrosoftADInput) SetTags(v []*Tag) *CreateMicrosoftADInput {
+ s.Tags = v
+ return s
+}
+
// SetVpcSettings sets the VpcSettings field's value.
func (s *CreateMicrosoftADInput) SetVpcSettings(v *DirectoryVpcSettings) *CreateMicrosoftADInput {
s.VpcSettings = v
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 ecc3fa772ee..7b68164ea9f 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
@@ -3142,7 +3142,7 @@ func (c *EC2) CopySnapshotRequest(input *CopySnapshotInput) (req *request.Reques
// CopySnapshot API operation for Amazon Elastic Compute Cloud.
//
// Copies a point-in-time snapshot of an EBS volume and stores it in Amazon
-// S3. You can copy the snapshot within the same region or from one region to
+// S3. You can copy the snapshot within the same Region or from one Region to
// another. You can use the snapshot to create EBS volumes or Amazon Machine
// Images (AMIs). The snapshot is copied to the regional endpoint that you send
// the HTTP request to.
@@ -5160,9 +5160,8 @@ func (c *EC2) CreateReservedInstancesListingRequest(input *CreateReservedInstanc
// listing at a time. To get a list of your Standard Reserved Instances, you
// can use the DescribeReservedInstances operation.
//
-// Only Standard Reserved Instances with a capacity reservation can be sold
-// in the Reserved Instance Marketplace. Convertible Reserved Instances and
-// Standard Reserved Instances with a regional benefit cannot be sold.
+// Only Standard Reserved Instances can be sold in the Reserved Instance Marketplace.
+// Convertible Reserved Instances cannot be sold.
//
// The Reserved Instance Marketplace matches sellers who want to resell Standard
// Reserved Instance capacity that they no longer need with buyers who want
@@ -15558,9 +15557,9 @@ func (c *EC2) DescribeSnapshotsRequest(input *DescribeSnapshotsInput) (req *requ
// DescribeSnapshots API operation for Amazon Elastic Compute Cloud.
//
// Describes one or more of the EBS snapshots available to you. Available snapshots
-// include public snapshots available for any AWS account to launch, private
-// snapshots that you own, and private snapshots owned by another AWS account
-// but for which you've been given explicit create volume permissions.
+// include public snapshots available for use by any AWS account, private snapshots
+// that you own, and private snapshots owned by another AWS account for which
+// you've been given explicit create volume permissions.
//
// The create volume permissions fall into the following categories:
//
@@ -22263,6 +22262,80 @@ func (c *EC2) ModifyInstanceCreditSpecificationWithContext(ctx aws.Context, inpu
return out, req.Send()
}
+const opModifyInstanceEventStartTime = "ModifyInstanceEventStartTime"
+
+// ModifyInstanceEventStartTimeRequest generates a "aws/request.Request" representing the
+// client's request for the ModifyInstanceEventStartTime operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ModifyInstanceEventStartTime for more information on using the ModifyInstanceEventStartTime
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ModifyInstanceEventStartTimeRequest method.
+// req, resp := client.ModifyInstanceEventStartTimeRequest(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/ModifyInstanceEventStartTime
+func (c *EC2) ModifyInstanceEventStartTimeRequest(input *ModifyInstanceEventStartTimeInput) (req *request.Request, output *ModifyInstanceEventStartTimeOutput) {
+ op := &request.Operation{
+ Name: opModifyInstanceEventStartTime,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ModifyInstanceEventStartTimeInput{}
+ }
+
+ output = &ModifyInstanceEventStartTimeOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ModifyInstanceEventStartTime API operation for Amazon Elastic Compute Cloud.
+//
+// Modifies the start time for a scheduled Amazon EC2 instance event.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 ModifyInstanceEventStartTime for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceEventStartTime
+func (c *EC2) ModifyInstanceEventStartTime(input *ModifyInstanceEventStartTimeInput) (*ModifyInstanceEventStartTimeOutput, error) {
+ req, out := c.ModifyInstanceEventStartTimeRequest(input)
+ return out, req.Send()
+}
+
+// ModifyInstanceEventStartTimeWithContext is the same as ModifyInstanceEventStartTime with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ModifyInstanceEventStartTime for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) ModifyInstanceEventStartTimeWithContext(ctx aws.Context, input *ModifyInstanceEventStartTimeInput, opts ...request.Option) (*ModifyInstanceEventStartTimeOutput, error) {
+ req, out := c.ModifyInstanceEventStartTimeRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opModifyInstancePlacement = "ModifyInstancePlacement"
// ModifyInstancePlacementRequest generates a "aws/request.Request" representing the
@@ -32178,8 +32251,8 @@ func (s *ClientData) SetUploadStart(v time.Time) *ClientData {
// Describes the authentication methods used by a Client VPN endpoint. Client
// VPN supports Active Directory and mutual authentication. For more information,
-// see Authentication (vpn/latest/clientvpn-admin/authentication-authrization.html#client-authentication)
-// in the AWS Client VPN Admin Guide.
+// see Authentication (https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/authentication-authrization.html#client-authentication)
+// in the AWS Client VPN Administrator Guide.
type ClientVpnAuthentication struct {
_ struct{} `type:"structure"`
@@ -32223,8 +32296,8 @@ func (s *ClientVpnAuthentication) SetType(v string) *ClientVpnAuthentication {
// Describes the authentication method to be used by a Client VPN endpoint.
// Client VPN supports Active Directory and mutual authentication. For more
-// information, see Authentication (vpn/latest/clientvpn-admin/authentication-authrization.html#client-authentication)
-// in the AWS Client VPN Admin Guide.
+// information, see Authentication (https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/authentication-authrization.html#client-authentication)
+// in the AWS Client VPN Administrator Guide.
type ClientVpnAuthenticationRequest struct {
_ struct{} `type:"structure"`
@@ -33437,13 +33510,13 @@ type CopySnapshotInput struct {
// A description for the EBS snapshot.
Description *string `type:"string"`
- // The destination region to use in the PresignedUrl parameter of a snapshot
+ // The destination Region to use in the PresignedUrl parameter of a snapshot
// copy operation. This parameter is only valid for specifying the destination
- // region in a PresignedUrl parameter, where it is required.
+ // Region in a PresignedUrl parameter, where it is required.
//
// The snapshot copy is sent to the regional endpoint that you sent the HTTP
// request to (for example, ec2.us-east-1.amazonaws.com). With the AWS CLI,
- // this is specified using the --region parameter or the default region in your
+ // this is specified using the --region parameter or the default Region in your
// AWS configuration file.
DestinationRegion *string `locationName:"destinationRegion" type:"string"`
@@ -33503,7 +33576,7 @@ type CopySnapshotInput struct {
// and the snapshot will move to an error state.
PresignedUrl *string `locationName:"presignedUrl" type:"string"`
- // The ID of the region that contains the snapshot to be copied.
+ // The ID of the Region that contains the snapshot to be copied.
//
// SourceRegion is a required field
SourceRegion *string `type:"string" required:"true"`
@@ -33970,7 +34043,7 @@ type CreateClientVpnEndpointInput struct {
DryRun *bool `type:"boolean"`
// The ARN of the server certificate. For more information, see the AWS Certificate
- // Manager User Guide (acm/latest/userguide/acm-overview.html) .
+ // Manager User Guide (https://docs.aws.amazon.com/acm/latest/userguide/).
//
// ServerCertificateArn is a required field
ServerCertificateArn *string `type:"string" required:"true"`
@@ -34752,7 +34825,7 @@ type CreateFleetInput struct {
// The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
// At this point, no new EC2 Fleet requests are placed or able to fulfill the
- // request. The default end date is 7 days from the current date.
+ // request. If no value is specified, the request remains until you cancel it.
ValidUntil *time.Time `type:"timestamp"`
}
@@ -37818,8 +37891,8 @@ type CreateVolumeInput struct {
// The number of I/O operations per second (IOPS) to provision for the volume,
// with a maximum ratio of 50 IOPS/GiB. Range is 100 to 64,000 IOPS for volumes
- // in most regions. Maximum IOPS of 64,000 is guaranteed only on Nitro-based
- // instances (AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances).
+ // in most Regions. Maximum IOPS of 64,000 is guaranteed only on Nitro-based
+ // instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances).
// Other instance families guarantee performance up to 32,000 IOPS. For more
// information, see Amazon EBS Volume Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
// in the Amazon Elastic Compute Cloud User Guide.
@@ -37881,7 +37954,7 @@ type CreateVolumeInput struct {
// Defaults: If no volume type is specified, the default is standard in us-east-1,
// eu-west-1, eu-central-1, us-west-2, us-west-1, sa-east-1, ap-northeast-1,
// ap-northeast-2, ap-southeast-1, ap-southeast-2, ap-south-1, us-gov-west-1,
- // and cn-north-1. In all other regions, EBS defaults to gp2.
+ // and cn-north-1. In all other Regions, EBS defaults to gp2.
VolumeType *string `type:"string" enum:"VolumeType"`
}
@@ -37962,17 +38035,15 @@ func (s *CreateVolumeInput) SetVolumeType(v string) *CreateVolumeInput {
return s
}
-// Describes the user or group to be added or removed from the permissions for
-// a volume.
+// Describes the user or group to be added or removed from the list of create
+// volume permissions for a volume.
type CreateVolumePermission struct {
_ struct{} `type:"structure"`
- // The specific group that is to be added or removed from a volume's list of
- // create volume permissions.
+ // The group to be added or removed. The possible value is all.
Group *string `locationName:"group" type:"string" enum:"PermissionGroup"`
- // The specific AWS account ID that is to be added or removed from a volume's
- // list of create volume permissions.
+ // The AWS account ID to be added or removed.
UserId *string `locationName:"userId" type:"string"`
}
@@ -37998,16 +38069,14 @@ func (s *CreateVolumePermission) SetUserId(v string) *CreateVolumePermission {
return s
}
-// Describes modifications to the permissions for a volume.
+// Describes modifications to the list of create volume permissions for a volume.
type CreateVolumePermissionModifications struct {
_ struct{} `type:"structure"`
- // Adds a specific AWS account ID or group to a volume's list of create volume
- // permissions.
+ // Adds the specified AWS account ID or group to the list.
Add []*CreateVolumePermission `locationNameList:"item" type:"list"`
- // Removes a specific AWS account ID or group from a volume's list of create
- // volume permissions.
+ // Removes the specified AWS account ID or group from the list.
Remove []*CreateVolumePermission `locationNameList:"item" type:"list"`
}
@@ -38173,10 +38242,9 @@ type CreateVpcEndpointInput struct {
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
- // (Gateway endpoint) A policy to attach to the endpoint that controls access
- // to the service. The policy must be in valid JSON format. If this parameter
- // is not specified, we attach a default policy that allows full access to the
- // service.
+ // A policy to attach to the endpoint that controls access to the service. The
+ // policy must be in valid JSON format. If this parameter is not specified,
+ // we attach a default policy that allows full access to the service.
PolicyDocument *string `type:"string"`
// (Interface endpoint) Indicate whether to associate a private hosted zone
@@ -46146,7 +46214,7 @@ type DescribeInstanceCreditSpecificationsInput struct {
// remaining results, make another call with the returned NextToken value. This
// value can be between 5 and 1000. You cannot specify this parameter and the
// instance IDs parameter in the same call.
- MaxResults *int64 `type:"integer"`
+ MaxResults *int64 `min:"5" type:"integer"`
// The token to retrieve the next page of results.
NextToken *string `type:"string"`
@@ -46162,6 +46230,19 @@ func (s DescribeInstanceCreditSpecificationsInput) GoString() string {
return s.String()
}
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribeInstanceCreditSpecificationsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribeInstanceCreditSpecificationsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
// SetDryRun sets the DryRun field's value.
func (s *DescribeInstanceCreditSpecificationsInput) SetDryRun(v bool) *DescribeInstanceCreditSpecificationsInput {
s.DryRun = &v
@@ -46243,12 +46324,18 @@ type DescribeInstanceStatusInput struct {
//
// * event.description - A description of the event.
//
+ // * event.instance-event-id - The ID of the event whose date and time you
+ // are modifying.
+ //
// * event.not-after - The latest end time for the scheduled event (for example,
// 2014-09-15T17:15:20.000Z).
//
// * event.not-before - The earliest start time for the scheduled event (for
// example, 2014-09-15T17:15:20.000Z).
//
+ // * event.not-before-deadline - The deadline for starting the event (for
+ // example, 2014-09-15T17:15:20.000Z).
+ //
// * instance-state-code - The code for the instance state, as a 16-bit unsigned
// integer. The high byte is used for internal purposes and should be ignored.
// The low byte is set based on the state represented. The valid values are
@@ -49687,10 +49774,11 @@ func (s *DescribeSnapshotAttributeInput) SetSnapshotId(v string) *DescribeSnapsh
type DescribeSnapshotAttributeOutput struct {
_ struct{} `type:"structure"`
- // A list of permissions for creating volumes from the snapshot.
+ // The users and groups that have the permissions for creating volumes from
+ // the snapshot.
CreateVolumePermissions []*CreateVolumePermission `locationName:"createVolumePermission" locationNameList:"item" type:"list"`
- // A list of product codes.
+ // The product codes.
ProductCodes []*ProductCode `locationName:"productCodes" locationNameList:"item" type:"list"`
// The ID of the EBS snapshot.
@@ -49787,8 +49875,7 @@ type DescribeSnapshotsInput struct {
// to return.
NextToken *string `type:"string"`
- // Returns the snapshots owned by the specified owner. Multiple owners can be
- // specified.
+ // Describes the snapshots owned by one or more owners.
OwnerIds []*string `locationName:"Owner" locationNameList:"Owner" type:"list"`
// One or more AWS accounts IDs that can create volumes from the snapshot.
@@ -49796,7 +49883,7 @@ type DescribeSnapshotsInput struct {
// One or more snapshot IDs.
//
- // Default: Describes snapshots for which you have launch permissions.
+ // Default: Describes the snapshots for which you have create volume permissions.
SnapshotIds []*string `locationName:"SnapshotId" locationNameList:"SnapshotId" type:"list"`
}
@@ -55045,19 +55132,16 @@ type EbsBlockDevice struct {
Encrypted *bool `locationName:"encrypted" type:"boolean"`
// The number of I/O operations per second (IOPS) that the volume supports.
- // For io1, this represents the number of IOPS that are provisioned for the
- // volume. For gp2, this represents the baseline performance of the volume and
- // the rate at which the volume accumulates I/O credits for bursting. For more
- // information about General Purpose SSD baseline performance, I/O credits,
- // and bursting, see Amazon EBS Volume Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
+ // For io1 volumes, this represents the number of IOPS that are provisioned
+ // for the volume. For gp2 volumes, this represents the baseline performance
+ // of the volume and the rate at which the volume accumulates I/O credits for
+ // bursting. For more information, see Amazon EBS Volume Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
// Constraints: Range is 100-16,000 IOPS for gp2 volumes and 100 to 64,000IOPS
- // for io1 volumes in most Regions. Maximum io1IOPS of 64,000 is guaranteed
- // only on Nitro-based instances (AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances).
- // Other instance families guarantee performance up to 32,000 IOPS. For more
- // information, see Amazon EBS Volume Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // for io1 volumes, in most Regions. The maximum IOPS for io1 of 64,000 is guaranteed
+ // only on Nitro-based instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances).
+ // Other instance families guarantee performance up to 32,000 IOPS.
//
// Condition: This parameter is required for requests to create io1 volumes;
// it is not used in requests to create gp2, st1, sc1, or standard volumes.
@@ -55915,10 +55999,6 @@ type EventInformation struct {
// * iamFleetRoleInvalid - The Spot Fleet did not have the required permissions
// either to launch or terminate an instance.
//
- // * launchSpecTemporarilyBlacklisted - The configuration is not valid and
- // several attempts to launch instances have failed. For more information,
- // see the description of the event.
- //
// * spotFleetRequestConfigurationInvalid - The configuration is not valid.
// For more information, see the description of the event.
//
@@ -55963,6 +56043,10 @@ type EventInformation struct {
//
// The following are the Information events:
//
+ // * launchSpecTemporarilyBlacklisted - The configuration is not valid and
+ // several attempts to launch instances have failed. For more information,
+ // see the description of the event.
+ //
// * launchSpecUnusable - The price in a launch specification is not valid
// because it is below the Spot price or the Spot price is above the On-Demand
// price.
@@ -59583,8 +59667,8 @@ type ImportClientVpnClientCertificateRevocationListInput struct {
_ struct{} `type:"structure"`
// The client certificate revocation list file. For more information, see Generate
- // a Client Certificate Revocation List (vpn/latest/clientvpn-admin/cvpn-working-certificates.html#cvpn-working-certificates-generate)
- // in the AWS Client VPN Admin Guide.
+ // a Client Certificate Revocation List (https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-certificates.html#cvpn-working-certificates-generate)
+ // in the AWS Client VPN Administrator Guide.
//
// CertificateRevocationList is a required field
CertificateRevocationList *string `type:"string" required:"true"`
@@ -62235,8 +62319,17 @@ func (s *InstancePrivateIpAddress) SetPrivateIpAddress(v string) *InstancePrivat
type InstanceState struct {
_ struct{} `type:"structure"`
- // The low byte represents the state. The high byte is used for internal purposes
- // and should be ignored.
+ // The state of the instance as a 16-bit unsigned integer.
+ //
+ // The high byte is all of the bits between 2^8 and (2^16)-1, which equals decimal
+ // values between 256 and 65,535. These numerical values are used for internal
+ // purposes and should be ignored.
+ //
+ // The low byte is all of the bits between 2^0 and (2^8)-1, which equals decimal
+ // values between 0 and 255.
+ //
+ // The valid values for instance-state-code will all be in the range of the
+ // low byte and they are:
//
// * 0 : pending
//
@@ -62249,6 +62342,9 @@ type InstanceState struct {
// * 64 : stopping
//
// * 80 : stopped
+ //
+ // You can ignore the high byte value by zeroing out all of the bits above 2^8
+ // or 256 in decimal.
Code *int64 `locationName:"code" type:"integer"`
// The current state of the instance.
@@ -62449,11 +62545,17 @@ type InstanceStatusEvent struct {
// following text: [Completed].
Description *string `locationName:"description" type:"string"`
+ // The ID of the event.
+ InstanceEventId *string `locationName:"instanceEventId" type:"string"`
+
// The latest scheduled end time for the event.
NotAfter *time.Time `locationName:"notAfter" type:"timestamp"`
// The earliest scheduled start time for the event.
NotBefore *time.Time `locationName:"notBefore" type:"timestamp"`
+
+ // The deadline for starting the event.
+ NotBeforeDeadline *time.Time `locationName:"notBeforeDeadline" type:"timestamp"`
}
// String returns the string representation
@@ -62478,6 +62580,12 @@ func (s *InstanceStatusEvent) SetDescription(v string) *InstanceStatusEvent {
return s
}
+// SetInstanceEventId sets the InstanceEventId field's value.
+func (s *InstanceStatusEvent) SetInstanceEventId(v string) *InstanceStatusEvent {
+ s.InstanceEventId = &v
+ return s
+}
+
// SetNotAfter sets the NotAfter field's value.
func (s *InstanceStatusEvent) SetNotAfter(v time.Time) *InstanceStatusEvent {
s.NotAfter = &v
@@ -62490,6 +62598,12 @@ func (s *InstanceStatusEvent) SetNotBefore(v time.Time) *InstanceStatusEvent {
return s
}
+// SetNotBeforeDeadline sets the NotBeforeDeadline field's value.
+func (s *InstanceStatusEvent) SetNotBeforeDeadline(v time.Time) *InstanceStatusEvent {
+ s.NotBeforeDeadline = &v
+ return s
+}
+
// Describes the status of an instance.
type InstanceStatusSummary struct {
_ struct{} `type:"structure"`
@@ -66296,6 +66410,107 @@ func (s *ModifyInstanceCreditSpecificationOutput) SetUnsuccessfulInstanceCreditS
return s
}
+type ModifyInstanceEventStartTimeInput 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 ID of the event whose date and time you are modifying.
+ //
+ // InstanceEventId is a required field
+ InstanceEventId *string `type:"string" required:"true"`
+
+ // The ID of the instance with the scheduled event.
+ //
+ // InstanceId is a required field
+ InstanceId *string `type:"string" required:"true"`
+
+ // The new date and time when the event will take place.
+ //
+ // NotBefore is a required field
+ NotBefore *time.Time `type:"timestamp" required:"true"`
+}
+
+// String returns the string representation
+func (s ModifyInstanceEventStartTimeInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ModifyInstanceEventStartTimeInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ModifyInstanceEventStartTimeInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceEventStartTimeInput"}
+ if s.InstanceEventId == nil {
+ invalidParams.Add(request.NewErrParamRequired("InstanceEventId"))
+ }
+ if s.InstanceId == nil {
+ invalidParams.Add(request.NewErrParamRequired("InstanceId"))
+ }
+ if s.NotBefore == nil {
+ invalidParams.Add(request.NewErrParamRequired("NotBefore"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ModifyInstanceEventStartTimeInput) SetDryRun(v bool) *ModifyInstanceEventStartTimeInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetInstanceEventId sets the InstanceEventId field's value.
+func (s *ModifyInstanceEventStartTimeInput) SetInstanceEventId(v string) *ModifyInstanceEventStartTimeInput {
+ s.InstanceEventId = &v
+ return s
+}
+
+// SetInstanceId sets the InstanceId field's value.
+func (s *ModifyInstanceEventStartTimeInput) SetInstanceId(v string) *ModifyInstanceEventStartTimeInput {
+ s.InstanceId = &v
+ return s
+}
+
+// SetNotBefore sets the NotBefore field's value.
+func (s *ModifyInstanceEventStartTimeInput) SetNotBefore(v time.Time) *ModifyInstanceEventStartTimeInput {
+ s.NotBefore = &v
+ return s
+}
+
+type ModifyInstanceEventStartTimeOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Describes a scheduled event for an instance.
+ Event *InstanceStatusEvent `locationName:"event" type:"structure"`
+}
+
+// String returns the string representation
+func (s ModifyInstanceEventStartTimeOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ModifyInstanceEventStartTimeOutput) GoString() string {
+ return s.String()
+}
+
+// SetEvent sets the Event field's value.
+func (s *ModifyInstanceEventStartTimeOutput) SetEvent(v *InstanceStatusEvent) *ModifyInstanceEventStartTimeOutput {
+ s.Event = v
+ return s
+}
+
type ModifyInstancePlacementInput struct {
_ struct{} `type:"structure"`
@@ -67493,8 +67708,9 @@ type ModifyVpcEndpointInput struct {
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
- // (Gateway endpoint) A policy document to attach to the endpoint. The policy
- // must be in valid JSON format.
+ // A policy to attach to the endpoint that controls access to the service. The
+ // policy must be in valid JSON format. If this parameter is not specified,
+ // we attach a default policy that allows full access to the service.
PolicyDocument *string `type:"string"`
// (Interface endpoint) Indicate whether a private hosted zone is associated
@@ -78536,7 +78752,8 @@ type SpotFleetRequestConfigData struct {
// The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
// At this point, no new Spot Instance requests are placed or able to fulfill
- // the request. The default end date is 7 days from the current date.
+ // the request. If no value is specified, the Spot Fleet request remains until
+ // you cancel it.
ValidUntil *time.Time `locationName:"validUntil" type:"timestamp"`
}
@@ -82531,17 +82748,14 @@ type Volume struct {
// For Provisioned IOPS SSD volumes, this represents the number of IOPS that
// are provisioned for the volume. For General Purpose SSD volumes, this represents
// the baseline performance of the volume and the rate at which the volume accumulates
- // I/O credits for bursting. For more information about General Purpose SSD
- // baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types
+ // I/O credits for bursting. For more information, see Amazon EBS Volume Types
// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
// Constraints: Range is 100-16,000 IOPS for gp2 volumes and 100 to 64,000IOPS
- // for io1 volumes in most regions. Maximum io1IOPS of 64,000 is guaranteed
- // only on Nitro-based instances (AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances).
- // Other instance families guarantee performance up to 32,000 IOPS. For more
- // information, see Amazon EBS Volume Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // for io1 volumes, in most Regions. The maximum IOPS for io1 of 64,000 is guaranteed
+ // only on Nitro-based instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances).
+ // Other instance families guarantee performance up to 32,000 IOPS.
//
// Condition: This parameter is required for requests to create io1 volumes;
// it is not used in requests to create gp2, st1, sc1, or standard volumes.
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 ebfa615c98a..73af29445db 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
@@ -93,14 +93,14 @@ func (c *EFS) CreateFileSystemRequest(input *CreateFileSystemInput) (req *reques
// scale to higher levels of aggregate throughput and operations per second
// with a tradeoff of slightly higher latencies for most file operations. The
// performance mode can't be changed after the file system has been created.
-// For more information, see Amazon EFS: Performance Modes (http://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes.html).
+// For more information, see Amazon EFS: Performance Modes (https://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes.html).
//
// After the file system is fully created, Amazon EFS sets its lifecycle state
// to available, at which point you can create one or more mount targets for
// the file system in your VPC. For more information, see CreateMountTarget.
// You mount your Amazon EFS file system on an EC2 instances in your VPC by
// using the mount target. For more information, see Amazon EFS: How it Works
-// (http://docs.aws.amazon.com/efs/latest/ug/how-it-works.html).
+// (https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html).
//
// This operation requires permissions for the elasticfilesystem:CreateFileSystem
// action.
@@ -213,7 +213,7 @@ func (c *EFS) CreateMountTargetRequest(input *CreateMountTargetInput) (req *requ
// target for a given file system. If you have multiple subnets in an Availability
// Zone, you create a mount target in one of the subnets. EC2 instances do not
// need to be in the same subnet as the mount target in order to access their
-// file system. For more information, see Amazon EFS: How it Works (http://docs.aws.amazon.com/efs/latest/ug/how-it-works.html).
+// file system. For more information, see Amazon EFS: How it Works (https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html).
//
// In the request, you also specify a file system ID for which you are creating
// the mount target and the file system's lifecycle state must be available.
@@ -234,7 +234,7 @@ func (c *EFS) CreateMountTargetRequest(input *CreateMountTargetInput) (req *requ
// when mounting the file system. The EC2 instance on which you mount the file
// system by using the mount target can resolve the mount target's DNS name
// to its IP address. For more information, see How it Works: Implementation
-// Overview (http://docs.aws.amazon.com/efs/latest/ug/how-it-works.html#how-it-works-implementation).
+// Overview (https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html#how-it-works-implementation).
//
// Note that you can create mount targets for a file system in only one VPC,
// and there can be only one mount target per Availability Zone. That is, if
@@ -285,8 +285,8 @@ func (c *EFS) CreateMountTargetRequest(input *CreateMountTargetInput) (req *requ
// information, see Amazon EFS (http://aws.amazon.com/efs/). In addition, by
// always using a mount target local to the instance's Availability Zone, you
// eliminate a partial failure scenario. If the Availability Zone in which your
-// mount target is created goes down, then you won't be able to access your
-// file system through that mount target.
+// mount target is created goes down, then you can't access your file system
+// through that mount target.
//
// This operation requires permissions for the following action on the file
// system:
@@ -342,7 +342,7 @@ func (c *EFS) CreateMountTargetRequest(input *CreateMountTargetInput) (req *requ
// The calling account has reached the limit for elastic network interfaces
// for the specific AWS Region. The client should try to delete some elastic
// network interfaces or get the account limit raised. For more information,
-// see Amazon VPC Limits (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html)
+// see Amazon VPC Limits (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html)
// in the Amazon VPC User Guide (see the Network interfaces per VPC entry in
// the table).
//
@@ -740,9 +740,9 @@ func (c *EFS) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, o
// DeleteTags API operation for Amazon Elastic File System.
//
// Deletes the specified tags from a file system. If the DeleteTags request
-// includes a tag key that does not exist, Amazon EFS ignores it and doesn't
+// includes a tag key that doesn't exist, Amazon EFS ignores it and doesn't
// cause an error. For more information about tags and related restrictions,
-// see Tag Restrictions (http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
+// see Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
// in the AWS Billing and Cost Management User Guide.
//
// This operation requires permissions for the elasticfilesystem:DeleteTags
@@ -945,9 +945,9 @@ func (c *EFS) DescribeLifecycleConfigurationRequest(input *DescribeLifecycleConf
//
// Returns the current LifecycleConfiguration object for the specified Amazon
// EFS file system. EFS lifecycle management uses the LifecycleConfiguration
-// to identify which files to move to the EFS Infrequent Access (IA) storage
-// class. For a file system without a LifecycleConfiguration, the call returns
-// an empty array in the response.
+// object to identify which files to move to the EFS Infrequent Access (IA)
+// storage class. For a file system without a LifecycleConfiguration object,
+// the call returns an empty array in the response.
//
// This operation requires permissions for the elasticfilesystem:DescribeLifecycleConfiguration
// operation.
@@ -1236,7 +1236,7 @@ func (c *EFS) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Reques
//
// Returns the tags associated with a file system. The order of tags returned
// in the response of one DescribeTags call and the order of tags returned across
-// the responses of a multi-call iteration (when using pagination) is unspecified.
+// the responses of a multiple-call iteration (when using pagination) is unspecified.
//
// This operation requires permissions for the elasticfilesystem:DescribeTags
// action.
@@ -1441,13 +1441,14 @@ func (c *EFS) PutLifecycleConfigurationRequest(input *PutLifecycleConfigurationI
// PutLifecycleConfiguration API operation for Amazon Elastic File System.
//
// Enables lifecycle management by creating a new LifecycleConfiguration object.
-// A LifecycleConfiguration defines when files in an Amazon EFS file system
-// are automatically transitioned to the lower-cost EFS Infrequent Access (IA)
-// storage class. A LifecycleConfiguration applies to all files in a file system.
+// A LifecycleConfiguration object defines when files in an Amazon EFS file
+// system are automatically transitioned to the lower-cost EFS Infrequent Access
+// (IA) storage class. A LifecycleConfiguration applies to all files in a file
+// system.
//
// Each Amazon EFS file system supports one lifecycle configuration, which applies
-// to all files in the file system. If a LifecycleConfiguration already exists
-// for the specified file system, a PutLifecycleConfiguration call modifies
+// to all files in the file system. If a LifecycleConfiguration object already
+// exists for the specified file system, a PutLifecycleConfiguration call modifies
// the existing configuration. A PutLifecycleConfiguration call with an empty
// LifecyclePolicies array in the request body deletes any existing LifecycleConfiguration
// and disables lifecycle management.
@@ -1462,7 +1463,7 @@ func (c *EFS) PutLifecycleConfigurationRequest(input *PutLifecycleConfigurationI
//
// * A LifecyclePolicies array of LifecyclePolicy objects that define when
// files are moved to the IA storage class. The array can contain only one
-// "TransitionToIA": "AFTER_30_DAYS"LifecyclePolicy object.
+// "TransitionToIA": "AFTER_30_DAYS"LifecyclePolicy item.
//
// This operation requires permissions for the elasticfilesystem:PutLifecycleConfiguration
// operation.
@@ -1624,51 +1625,56 @@ func (c *EFS) UpdateFileSystemWithContext(ctx aws.Context, input *UpdateFileSyst
type CreateFileSystemInput struct {
_ struct{} `type:"structure"`
- // String of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent
+ // A string of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent
// creation.
//
// CreationToken is a required field
CreationToken *string `min:"1" type:"string" required:"true"`
// A Boolean value that, if true, creates an encrypted file system. When creating
- // an encrypted file system, you have the option of specifying a CreateFileSystemRequest$KmsKeyId
+ // an encrypted file system, you have the option of specifying CreateFileSystemRequest$KmsKeyId
// for an existing AWS Key Management Service (AWS KMS) customer master key
// (CMK). If you don't specify a CMK, then the default CMK for Amazon EFS, /aws/elasticfilesystem,
// is used to protect the encrypted file system.
Encrypted *bool `type:"boolean"`
// The ID of the AWS KMS CMK to be used to protect the encrypted file system.
- // This parameter is only required if you want to use a non-default CMK. If
- // this parameter is not specified, the default CMK for Amazon EFS is used.
- // This ID can be in one of the following formats:
+ // This parameter is only required if you want to use a nondefault CMK. If this
+ // parameter is not specified, the default CMK for Amazon EFS is used. This
+ // ID can be in one of the following formats:
//
- // * Key ID - A unique identifier of the key, for example, 1234abcd-12ab-34cd-56ef-1234567890ab.
+ // * Key ID - A unique identifier of the key, for example 1234abcd-12ab-34cd-56ef-1234567890ab.
//
- // * ARN - An Amazon Resource Name (ARN) for the key, for example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.
+ // * ARN - An Amazon Resource Name (ARN) for the key, for example arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.
//
- // * Key alias - A previously created display name for a key. For example,
+ // * Key alias - A previously created display name for a key, for example
// alias/projectKey1.
//
- // * Key alias ARN - An ARN for a key alias, for example, arn:aws:kms:us-west-2:444455556666:alias/projectKey1.
+ // * Key alias ARN - An ARN for a key alias, for example arn:aws:kms:us-west-2:444455556666:alias/projectKey1.
//
// If KmsKeyId is specified, the CreateFileSystemRequest$Encrypted parameter
// must be set to true.
KmsKeyId *string `min:"1" type:"string"`
- // The PerformanceMode of the file system. We recommend generalPurpose performance
+ // The performance mode of the file system. We recommend generalPurpose performance
// mode for most file systems. File systems using the maxIO performance mode
// can scale to higher levels of aggregate throughput and operations per second
- // with a tradeoff of slightly higher latencies for most file operations. This
- // can't be changed after the file system has been created.
+ // with a tradeoff of slightly higher latencies for most file operations. The
+ // performance mode can't be changed after the file system has been created.
PerformanceMode *string `type:"string" enum:"PerformanceMode"`
// The throughput, measured in MiB/s, that you want to provision for a file
// system that you're creating. The limit on throughput is 1024 MiB/s. You can
// get these limits increased by contacting AWS Support. For more information,
- // see Amazon EFS Limits That You Can Increase (http://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits)
+ // see Amazon EFS Limits That You Can Increase (https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits)
// in the Amazon EFS User Guide.
ProvisionedThroughputInMibps *float64 `type:"double"`
+ // A value that specifies to create one or more tags associated with the file
+ // system. Each tag is a user-defined key-value pair. Name your file system
+ // on creation by including a "Key":"Name","Value":"{value}" key-value pair.
+ Tags []*Tag `type:"list"`
+
// The throughput mode for the file system to be created. There are two throughput
// modes to choose from for your file system: bursting and provisioned. You
// can decrease your file system's throughput in Provisioned Throughput mode
@@ -1699,6 +1705,16 @@ func (s *CreateFileSystemInput) Validate() error {
if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("KmsKeyId", 1))
}
+ if s.Tags != nil {
+ for i, v := range s.Tags {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -1736,6 +1752,12 @@ func (s *CreateFileSystemInput) SetProvisionedThroughputInMibps(v float64) *Crea
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateFileSystemInput) SetTags(v []*Tag) *CreateFileSystemInput {
+ s.Tags = v
+ return s
+}
+
// SetThroughputMode sets the ThroughputMode field's value.
func (s *CreateFileSystemInput) SetThroughputMode(v string) *CreateFileSystemInput {
s.ThroughputMode = &v
@@ -1745,7 +1767,7 @@ func (s *CreateFileSystemInput) SetThroughputMode(v string) *CreateFileSystemInp
type CreateMountTargetInput struct {
_ struct{} `type:"structure"`
- // ID of the file system for which to create the mount target.
+ // The ID of the file system for which to create the mount target.
//
// FileSystemId is a required field
FileSystemId *string `type:"string" required:"true"`
@@ -1757,7 +1779,7 @@ type CreateMountTargetInput struct {
// for the same VPC as subnet specified.
SecurityGroups []*string `type:"list"`
- // ID of the subnet to add the mount target in.
+ // The ID of the subnet to add the mount target in.
//
// SubnetId is a required field
SubnetId *string `type:"string" required:"true"`
@@ -1816,13 +1838,13 @@ func (s *CreateMountTargetInput) SetSubnetId(v string) *CreateMountTargetInput {
type CreateTagsInput struct {
_ struct{} `type:"structure"`
- // ID of the file system whose tags you want to modify (String). This operation
+ // The ID of the file system whose tags you want to modify (String). This operation
// modifies the tags only, not the file system.
//
// FileSystemId is a required field
FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
- // Array of Tag objects to add. Each Tag object is a key-value pair.
+ // An array of Tag objects to add. Each Tag object is a key-value pair.
//
// Tags is a required field
Tags []*Tag `type:"list" required:"true"`
@@ -1896,7 +1918,7 @@ func (s CreateTagsOutput) GoString() string {
type DeleteFileSystemInput struct {
_ struct{} `type:"structure"`
- // ID of the file system you want to delete.
+ // The ID of the file system you want to delete.
//
// FileSystemId is a required field
FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
@@ -1951,7 +1973,7 @@ func (s DeleteFileSystemOutput) GoString() string {
type DeleteMountTargetInput struct {
_ struct{} `type:"structure"`
- // ID of the mount target to delete (String).
+ // The ID of the mount target to delete (String).
//
// MountTargetId is a required field
MountTargetId *string `location:"uri" locationName:"MountTargetId" type:"string" required:"true"`
@@ -2006,12 +2028,12 @@ func (s DeleteMountTargetOutput) GoString() string {
type DeleteTagsInput struct {
_ struct{} `type:"structure"`
- // ID of the file system whose tags you want to delete (String).
+ // The ID of the file system whose tags you want to delete (String).
//
// FileSystemId is a required field
FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
- // List of tag keys to delete.
+ // A list of tag keys to delete.
//
// TagKeys is a required field
TagKeys []*string `type:"list" required:"true"`
@@ -2146,7 +2168,7 @@ func (s *DescribeFileSystemsInput) SetMaxItems(v int64) *DescribeFileSystemsInpu
type DescribeFileSystemsOutput struct {
_ struct{} `type:"structure"`
- // Array of file system descriptions.
+ // An array of file system descriptions.
FileSystems []*FileSystemDescription `type:"list"`
// Present if provided by caller in the request (String).
@@ -2254,7 +2276,7 @@ func (s *DescribeLifecycleConfigurationOutput) SetLifecyclePolicies(v []*Lifecyc
type DescribeMountTargetSecurityGroupsInput struct {
_ struct{} `type:"structure"`
- // ID of the mount target whose security groups you want to retrieve.
+ // The ID of the mount target whose security groups you want to retrieve.
//
// MountTargetId is a required field
MountTargetId *string `location:"uri" locationName:"MountTargetId" type:"string" required:"true"`
@@ -2295,7 +2317,7 @@ func (s *DescribeMountTargetSecurityGroupsInput) SetMountTargetId(v string) *Des
type DescribeMountTargetSecurityGroupsOutput struct {
_ struct{} `type:"structure"`
- // Array of security groups.
+ // An array of security groups.
//
// SecurityGroups is a required field
SecurityGroups []*string `type:"list" required:"true"`
@@ -2433,17 +2455,17 @@ func (s *DescribeMountTargetsOutput) SetNextMarker(v string) *DescribeMountTarge
type DescribeTagsInput struct {
_ struct{} `type:"structure"`
- // ID of the file system whose tag set you want to retrieve.
+ // The ID of the file system whose tag set you want to retrieve.
//
// FileSystemId is a required field
FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
- // (Optional) Opaque pagination token returned from a previous DescribeTags
+ // (Optional) An opaque pagination token returned from a previous DescribeTags
// operation (String). If present, it specifies to continue the list from where
// the previous call left off.
Marker *string `location:"querystring" locationName:"Marker" type:"string"`
- // (Optional) Maximum number of file system tags to return in the response.
+ // (Optional) The maximum number of file system tags to return in the response.
// Currently, this number is automatically set to 10.
MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}
@@ -2541,16 +2563,16 @@ func (s *DescribeTagsOutput) SetTags(v []*Tag) *DescribeTagsOutput {
return s
}
-// Description of the file system.
+// A description of the file system.
type FileSystemDescription struct {
_ struct{} `type:"structure"`
- // Time that the file system was created, in seconds (since 1970-01-01T00:00:00Z).
+ // The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z).
//
// CreationTime is a required field
CreationTime *time.Time `type:"timestamp" required:"true"`
- // Opaque string specified in the request.
+ // The opaque string specified in the request.
//
// CreationToken is a required field
CreationToken *string `min:"1" type:"string" required:"true"`
@@ -2558,7 +2580,7 @@ type FileSystemDescription struct {
// A Boolean value that, if true, indicates that the file system is encrypted.
Encrypted *bool `type:"boolean"`
- // ID of the file system, assigned by Amazon EFS.
+ // The ID of the file system, assigned by Amazon EFS.
//
// FileSystemId is a required field
FileSystemId *string `type:"string" required:"true"`
@@ -2567,29 +2589,29 @@ type FileSystemDescription struct {
// that was used to protect the encrypted file system.
KmsKeyId *string `min:"1" type:"string"`
- // Lifecycle phase of the file system.
+ // The lifecycle phase of the file system.
//
// LifeCycleState is a required field
LifeCycleState *string `type:"string" required:"true" enum:"LifeCycleState"`
// You can add tags to a file system, including a Name tag. For more information,
- // see CreateTags. If the file system has a Name tag, Amazon EFS returns the
- // value in this field.
+ // see CreateFileSystem. If the file system has a Name tag, Amazon EFS returns
+ // the value in this field.
Name *string `type:"string"`
- // Current number of mount targets that the file system has. For more information,
+ // The current number of mount targets that the file system has. For more information,
// see CreateMountTarget.
//
// NumberOfMountTargets is a required field
NumberOfMountTargets *int64 `type:"integer" required:"true"`
- // AWS account that created the file system. If the file system was created
+ // The AWS account that created the file system. If the file system was created
// by an IAM user, the parent account to which the user belongs is the owner.
//
// OwnerId is a required field
OwnerId *string `type:"string" required:"true"`
- // The PerformanceMode of the file system.
+ // The performance mode of the file system.
//
// PerformanceMode is a required field
PerformanceMode *string `type:"string" required:"true" enum:"PerformanceMode"`
@@ -2597,23 +2619,28 @@ type FileSystemDescription struct {
// The throughput, measured in MiB/s, that you want to provision for a file
// system. The limit on throughput is 1024 MiB/s. You can get these limits increased
// by contacting AWS Support. For more information, see Amazon EFS Limits That
- // You Can Increase (http://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits)
+ // You Can Increase (https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits)
// in the Amazon EFS User Guide.
ProvisionedThroughputInMibps *float64 `type:"double"`
- // Latest known metered size (in bytes) of data stored in the file system, in
- // its Value field, and the time at which that size was determined in its Timestamp
- // field. The Timestamp value is the integer number of seconds since 1970-01-01T00:00:00Z.
- // The SizeInBytes value doesn't represent the size of a consistent snapshot
- // of the file system, but it is eventually consistent when there are no writes
- // to the file system. That is, SizeInBytes represents actual size only if the
- // file system is not modified for a period longer than a couple of hours. Otherwise,
- // the value is not the exact size that the file system was at any point in
- // time.
+ // The latest known metered size (in bytes) of data stored in the file system,
+ // in its Value field, and the time at which that size was determined in its
+ // Timestamp field. The Timestamp value is the integer number of seconds since
+ // 1970-01-01T00:00:00Z. The SizeInBytes value doesn't represent the size of
+ // a consistent snapshot of the file system, but it is eventually consistent
+ // when there are no writes to the file system. That is, SizeInBytes represents
+ // actual size only if the file system is not modified for a period longer than
+ // a couple of hours. Otherwise, the value is not the exact size that the file
+ // system was at any point in time.
//
// SizeInBytes is a required field
SizeInBytes *FileSystemSize `type:"structure" required:"true"`
+ // The tags associated with the file system, presented as an array of Tag objects.
+ //
+ // Tags is a required field
+ Tags []*Tag `type:"list" required:"true"`
+
// The throughput mode for a file system. There are two throughput modes to
// choose from for your file system: bursting and provisioned. You can decrease
// your file system's throughput in Provisioned Throughput mode or change between
@@ -2704,28 +2731,34 @@ func (s *FileSystemDescription) SetSizeInBytes(v *FileSystemSize) *FileSystemDes
return s
}
+// SetTags sets the Tags field's value.
+func (s *FileSystemDescription) SetTags(v []*Tag) *FileSystemDescription {
+ s.Tags = v
+ return s
+}
+
// SetThroughputMode sets the ThroughputMode field's value.
func (s *FileSystemDescription) SetThroughputMode(v string) *FileSystemDescription {
s.ThroughputMode = &v
return s
}
-// Latest known metered size (in bytes) of data stored in the file system, in
-// its Value field, and the time at which that size was determined in its Timestamp
-// field. Note that the value does not represent the size of a consistent snapshot
+// The latest known metered size (in bytes) of data stored in the file system,
+// in its Value field, and the time at which that size was determined in its
+// Timestamp field. The value doesn't represent the size of a consistent snapshot
// of the file system, but it is eventually consistent when there are no writes
-// to the file system. That is, the value will represent the actual size only
-// if the file system is not modified for a period longer than a couple of hours.
+// to the file system. That is, the value represents the actual size only 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.
type FileSystemSize struct {
_ struct{} `type:"structure"`
- // Time at which the size of data, returned in the Value field, was determined.
+ // The time at which the size of data, returned in the Value field, was determined.
// The value is the integer number of seconds since 1970-01-01T00:00:00Z.
Timestamp *time.Time `type:"timestamp"`
- // Latest known metered size (in bytes) of data stored in the file system.
+ // The latest known metered size (in bytes) of data stored in the file system.
//
// Value is a required field
Value *int64 `type:"long" required:"true"`
@@ -2778,8 +2811,8 @@ func (s *FileSystemSize) SetValueInStandard(v int64) *FileSystemSize {
type LifecyclePolicy struct {
_ struct{} `type:"structure"`
- // A value that indicates how long it takes to transition to the IA storage
- // class. Currently, the only possible value is AFTER_30_DAYS.
+ // A value that indicates how long it takes to transition files to the IA storage
+ // class. Currently, the only valid value is AFTER_30_DAYS.
//
// AFTER_30_DAYS indicates files that have not been read from or written to
// for 30 days are transitioned from the Standard storage class to the IA storage
@@ -2807,12 +2840,12 @@ func (s *LifecyclePolicy) SetTransitionToIA(v string) *LifecyclePolicy {
type ModifyMountTargetSecurityGroupsInput struct {
_ struct{} `type:"structure"`
- // ID of the mount target whose security groups you want to modify.
+ // The ID of the mount target whose security groups you want to modify.
//
// MountTargetId is a required field
MountTargetId *string `location:"uri" locationName:"MountTargetId" type:"string" required:"true"`
- // Array of up to five VPC security group IDs.
+ // An array of up to five VPC security group IDs.
SecurityGroups []*string `type:"list"`
}
@@ -2872,7 +2905,7 @@ func (s ModifyMountTargetSecurityGroupsOutput) GoString() string {
type MountTargetDescription struct {
_ struct{} `type:"structure"`
- // ID of the file system for which the mount target is intended.
+ // The ID of the file system for which the mount target is intended.
//
// FileSystemId is a required field
FileSystemId *string `type:"string" required:"true"`
@@ -2890,14 +2923,14 @@ type MountTargetDescription struct {
// MountTargetId is a required field
MountTargetId *string `type:"string" required:"true"`
- // ID of the network interface that Amazon EFS created when it created the mount
- // target.
+ // The ID of the network interface that Amazon EFS created when it created the
+ // mount target.
NetworkInterfaceId *string `type:"string"`
// AWS account ID that owns the resource.
OwnerId *string `type:"string"`
- // ID of the mount target's subnet.
+ // The ID of the mount target's subnet.
//
// SubnetId is a required field
SubnetId *string `type:"string" required:"true"`
@@ -3038,18 +3071,18 @@ func (s *PutLifecycleConfigurationOutput) SetLifecyclePolicies(v []*LifecyclePol
return s
}
-// A tag is a key-value pair. Allowed characters: letters, white space, and
-// numbers, representable in UTF-8, and the following characters: + - = . _
-// : /
+// A tag is a key-value pair. Allowed characters are letters, white space, and
+// numbers that can be represented in UTF-8, and the following characters: +
+// - = . _ : /
type Tag struct {
_ struct{} `type:"structure"`
- // Tag key (String). The key can't start with aws:.
+ // The tag key (String). The key can't start with aws:.
//
// Key is a required field
Key *string `min:"1" type:"string" required:"true"`
- // Value of the tag key.
+ // The value of the tag key.
//
// Value is a required field
Value *string `type:"string" required:"true"`
@@ -3159,16 +3192,16 @@ func (s *UpdateFileSystemInput) SetThroughputMode(v string) *UpdateFileSystemInp
return s
}
-// Description of the file system.
+// A description of the file system.
type UpdateFileSystemOutput struct {
_ struct{} `type:"structure"`
- // Time that the file system was created, in seconds (since 1970-01-01T00:00:00Z).
+ // The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z).
//
// CreationTime is a required field
CreationTime *time.Time `type:"timestamp" required:"true"`
- // Opaque string specified in the request.
+ // The opaque string specified in the request.
//
// CreationToken is a required field
CreationToken *string `min:"1" type:"string" required:"true"`
@@ -3176,7 +3209,7 @@ type UpdateFileSystemOutput struct {
// A Boolean value that, if true, indicates that the file system is encrypted.
Encrypted *bool `type:"boolean"`
- // ID of the file system, assigned by Amazon EFS.
+ // The ID of the file system, assigned by Amazon EFS.
//
// FileSystemId is a required field
FileSystemId *string `type:"string" required:"true"`
@@ -3185,29 +3218,29 @@ type UpdateFileSystemOutput struct {
// that was used to protect the encrypted file system.
KmsKeyId *string `min:"1" type:"string"`
- // Lifecycle phase of the file system.
+ // The lifecycle phase of the file system.
//
// LifeCycleState is a required field
LifeCycleState *string `type:"string" required:"true" enum:"LifeCycleState"`
// You can add tags to a file system, including a Name tag. For more information,
- // see CreateTags. If the file system has a Name tag, Amazon EFS returns the
- // value in this field.
+ // see CreateFileSystem. If the file system has a Name tag, Amazon EFS returns
+ // the value in this field.
Name *string `type:"string"`
- // Current number of mount targets that the file system has. For more information,
+ // The current number of mount targets that the file system has. For more information,
// see CreateMountTarget.
//
// NumberOfMountTargets is a required field
NumberOfMountTargets *int64 `type:"integer" required:"true"`
- // AWS account that created the file system. If the file system was created
+ // The AWS account that created the file system. If the file system was created
// by an IAM user, the parent account to which the user belongs is the owner.
//
// OwnerId is a required field
OwnerId *string `type:"string" required:"true"`
- // The PerformanceMode of the file system.
+ // The performance mode of the file system.
//
// PerformanceMode is a required field
PerformanceMode *string `type:"string" required:"true" enum:"PerformanceMode"`
@@ -3215,23 +3248,28 @@ type UpdateFileSystemOutput struct {
// The throughput, measured in MiB/s, that you want to provision for a file
// system. The limit on throughput is 1024 MiB/s. You can get these limits increased
// by contacting AWS Support. For more information, see Amazon EFS Limits That
- // You Can Increase (http://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits)
+ // You Can Increase (https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits)
// in the Amazon EFS User Guide.
ProvisionedThroughputInMibps *float64 `type:"double"`
- // Latest known metered size (in bytes) of data stored in the file system, in
- // its Value field, and the time at which that size was determined in its Timestamp
- // field. The Timestamp value is the integer number of seconds since 1970-01-01T00:00:00Z.
- // The SizeInBytes value doesn't represent the size of a consistent snapshot
- // of the file system, but it is eventually consistent when there are no writes
- // to the file system. That is, SizeInBytes represents actual size only if the
- // file system is not modified for a period longer than a couple of hours. Otherwise,
- // the value is not the exact size that the file system was at any point in
- // time.
+ // The latest known metered size (in bytes) of data stored in the file system,
+ // in its Value field, and the time at which that size was determined in its
+ // Timestamp field. The Timestamp value is the integer number of seconds since
+ // 1970-01-01T00:00:00Z. The SizeInBytes value doesn't represent the size of
+ // a consistent snapshot of the file system, but it is eventually consistent
+ // when there are no writes to the file system. That is, SizeInBytes represents
+ // actual size only if the file system is not modified for a period longer than
+ // a couple of hours. Otherwise, the value is not the exact size that the file
+ // system was at any point in time.
//
// SizeInBytes is a required field
SizeInBytes *FileSystemSize `type:"structure" required:"true"`
+ // The tags associated with the file system, presented as an array of Tag objects.
+ //
+ // Tags is a required field
+ Tags []*Tag `type:"list" required:"true"`
+
// The throughput mode for a file system. There are two throughput modes to
// choose from for your file system: bursting and provisioned. You can decrease
// your file system's throughput in Provisioned Throughput mode or change between
@@ -3322,6 +3360,12 @@ func (s *UpdateFileSystemOutput) SetSizeInBytes(v *FileSystemSize) *UpdateFileSy
return s
}
+// SetTags sets the Tags field's value.
+func (s *UpdateFileSystemOutput) SetTags(v []*Tag) *UpdateFileSystemOutput {
+ s.Tags = v
+ return s
+}
+
// SetThroughputMode sets the ThroughputMode field's value.
func (s *UpdateFileSystemOutput) SetThroughputMode(v string) *UpdateFileSystemOutput {
s.ThroughputMode = &v
diff --git a/vendor/github.com/aws/aws-sdk-go/service/efs/doc.go b/vendor/github.com/aws/aws-sdk-go/service/efs/doc.go
index 606891eab2f..ce6c5159449 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/efs/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/efs/doc.go
@@ -7,7 +7,7 @@
// for use with Amazon EC2 instances in the AWS Cloud. With Amazon EFS, storage
// capacity is elastic, growing and shrinking automatically as you add and remove
// files, so your applications have the storage they need, when they need it.
-// For more information, see the User Guide (http://docs.aws.amazon.com/efs/latest/ug/api-reference.html).
+// For more information, see the User Guide (https://docs.aws.amazon.com/efs/latest/ug/api-reference.html).
//
// See https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01 for more information on this service.
//
diff --git a/vendor/github.com/aws/aws-sdk-go/service/efs/errors.go b/vendor/github.com/aws/aws-sdk-go/service/efs/errors.go
index b616a864c7d..85406d92d5f 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/efs/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/efs/errors.go
@@ -100,7 +100,7 @@ const (
// The calling account has reached the limit for elastic network interfaces
// for the specific AWS Region. The client should try to delete some elastic
// network interfaces or get the account limit raised. For more information,
- // see Amazon VPC Limits (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html)
+ // see Amazon VPC Limits (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html)
// in the Amazon VPC User Guide (see the Network interfaces per VPC entry in
// the table).
ErrCodeNetworkInterfaceLimitExceeded = "NetworkInterfaceLimitExceeded"
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 89d85401b10..5d3fe096c42 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
@@ -257,9 +257,9 @@ func (c *ELBV2) CreateListenerRequest(input *CreateListenerInput) (req *request.
// 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)
+// For more information, see Listeners for Your Application Load Balancers (https://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)
+// Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html)
// in the Network Load Balancers Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -392,17 +392,17 @@ 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)
+// For limit information, see Limits for Your Application Load Balancer (https://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)
+// Balancer (https://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)
+// For more information, see Application Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html)
+// in the Application Load Balancers Guide and Network Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html)
// in the Network Load Balancers Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -524,7 +524,7 @@ func (c *ELBV2) CreateRuleRequest(input *CreateRuleInput) (req *request.Request,
// Rules are evaluated in priority order, from the lowest value to the highest
// value. When the conditions for a rule are met, its actions are performed.
// If the conditions for no rules are met, the actions for the default rule
-// are performed. For more information, see Listener Rules (http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#listener-rules)
+// are performed. For more information, see Listener Rules (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#listener-rules)
// in the Application Load Balancers Guide.
//
// To view your current rules, use DescribeRules. To update a rule, use ModifyRule.
@@ -661,9 +661,9 @@ func (c *ELBV2) CreateTargetGroupRequest(input *CreateTargetGroupInput) (req *re
// 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)
+// (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html)
// in the Application Load Balancers Guide or Target Groups for Your Network
-// Load Balancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html)
+// Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html)
// in the Network Load Balancers Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -1182,9 +1182,9 @@ func (c *ELBV2) DescribeAccountLimitsRequest(input *DescribeAccountLimitsInput)
// Describes the current Elastic Load Balancing resource limits for your AWS
// account.
//
-// For more information, see Limits for Your Application Load Balancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html)
+// For more information, see Limits for Your Application Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html)
// in the Application Load Balancer Guide or Limits for Your Network Load Balancers
-// (http://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-limits.html)
+// (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-limits.html)
// in the Network Load Balancers Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -1484,8 +1484,8 @@ func (c *ELBV2) DescribeLoadBalancerAttributesRequest(input *DescribeLoadBalance
// Describes the attributes for the specified Application Load Balancer or Network
// Load Balancer.
//
-// For more information, see Load Balancer Attributes (http://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes)
-// in the Application Load Balancers Guide or Load Balancer Attributes (http://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#load-balancer-attributes)
+// For more information, see Load Balancer Attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes)
+// in the Application Load Balancers Guide or Load Balancer Attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#load-balancer-attributes)
// in the Network Load Balancers Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -1791,7 +1791,7 @@ func (c *ELBV2) DescribeSSLPoliciesRequest(input *DescribeSSLPoliciesInput) (req
//
// Describes the specified policies or all policies used for SSL negotiation.
//
-// For more information, see Security Policies (http://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies)
+// For more information, see Security Policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies)
// in the Application Load Balancers Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -1963,8 +1963,8 @@ func (c *ELBV2) DescribeTargetGroupAttributesRequest(input *DescribeTargetGroupA
//
// Describes the attributes for the specified target group.
//
-// For more information, see Target Group Attributes (http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes)
-// in the Application Load Balancers Guide or Target Group Attributes (http://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#target-group-attributes)
+// For more information, see Target Group Attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes)
+// in the Application Load Balancers Guide or Target Group Attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#target-group-attributes)
// in the Network Load Balancers Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -3802,10 +3802,10 @@ type AuthenticateOidcActionConfig struct {
// ClientId is a required field
ClientId *string `type:"string" required:"true"`
- // The OAuth 2.0 client secret.
- //
- // ClientSecret is a required field
- ClientSecret *string `type:"string" required:"true"`
+ // The OAuth 2.0 client secret. This parameter is required if you are creating
+ // a rule. If you are modifying a rule, you can omit this parameter if you set
+ // UseExistingClientSecret to true.
+ ClientSecret *string `type:"string"`
// The OIDC issuer identifier of the IdP. This must be a full URL, including
// the HTTPS protocol, the domain, and the path.
@@ -3843,6 +3843,10 @@ type AuthenticateOidcActionConfig struct {
// TokenEndpoint is a required field
TokenEndpoint *string `type:"string" required:"true"`
+ // Indicates whether to use the existing client secret when modifying a rule.
+ // If you are creating a rule, you can omit this parameter or set it to false.
+ UseExistingClientSecret *bool `type:"boolean"`
+
// The user info endpoint of the IdP. This must be a full URL, including the
// HTTPS protocol, the domain, and the path.
//
@@ -3869,9 +3873,6 @@ func (s *AuthenticateOidcActionConfig) Validate() error {
if s.ClientId == nil {
invalidParams.Add(request.NewErrParamRequired("ClientId"))
}
- if s.ClientSecret == nil {
- invalidParams.Add(request.NewErrParamRequired("ClientSecret"))
- }
if s.Issuer == nil {
invalidParams.Add(request.NewErrParamRequired("Issuer"))
}
@@ -3948,6 +3949,12 @@ func (s *AuthenticateOidcActionConfig) SetTokenEndpoint(v string) *AuthenticateO
return s
}
+// SetUseExistingClientSecret sets the UseExistingClientSecret field's value.
+func (s *AuthenticateOidcActionConfig) SetUseExistingClientSecret(v bool) *AuthenticateOidcActionConfig {
+ s.UseExistingClientSecret = &v
+ return s
+}
+
// SetUserInfoEndpoint sets the UserInfoEndpoint field's value.
func (s *AuthenticateOidcActionConfig) SetUserInfoEndpoint(v string) *AuthenticateOidcActionConfig {
s.UserInfoEndpoint = &v
@@ -6372,11 +6379,6 @@ type LoadBalancerAttribute struct {
// The following attributes are supported by both Application Load Balancers
// and Network Load Balancers:
//
- // * deletion_protection.enabled - Indicates whether deletion protection
- // is enabled. The value is true or false. The default is false.
- //
- // The following attributes are supported by only Application Load Balancers:
- //
// * access_logs.s3.enabled - Indicates whether access logs are enabled.
// The value is true or false. The default is false.
//
@@ -6388,6 +6390,11 @@ type LoadBalancerAttribute struct {
// * access_logs.s3.prefix - The prefix for the location in the S3 bucket
// for the access logs.
//
+ // * deletion_protection.enabled - Indicates whether deletion protection
+ // is enabled. The value is true or false. The default is false.
+ //
+ // The following attributes are supported by only Application Load Balancers:
+ //
// * idle_timeout.timeout_seconds - The idle timeout value, in seconds. The
// valid range is 1-4000 seconds. The default is 60 seconds.
//
@@ -6550,7 +6557,7 @@ type ModifyListenerInput struct {
Protocol *string `type:"string" enum:"ProtocolEnum"`
// [HTTPS and TLS listeners] The security policy that defines which protocols
- // and ciphers are supported. For more information, see Security Policies (http://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies)
+ // and ciphers are supported. For more information, see Security Policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies)
// in the Application Load Balancers Guide.
SslPolicy *string `type:"string"`
}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/elbv2/doc.go b/vendor/github.com/aws/aws-sdk-go/service/elbv2/doc.go
index cae80a9514d..ef3e971c654 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/elbv2/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/elbv2/doc.go
@@ -27,7 +27,7 @@
// 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. For more information, see the Elastic
-// Load Balancing User Guide (http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/).
+// Load Balancing User Guide (https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/).
//
// This reference covers the 2015-12-01 API, which supports Application Load
// Balancers and Network Load Balancers. The 2012-06-01 API supports Classic
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 165c29bab96..235bd7e6a26 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
@@ -465,6 +465,269 @@ func (c *Glue) BatchDeleteTableVersionWithContext(ctx aws.Context, input *BatchD
return out, req.Send()
}
+const opBatchGetCrawlers = "BatchGetCrawlers"
+
+// BatchGetCrawlersRequest generates a "aws/request.Request" representing the
+// client's request for the BatchGetCrawlers operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See BatchGetCrawlers for more information on using the BatchGetCrawlers
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the BatchGetCrawlersRequest method.
+// req, resp := client.BatchGetCrawlersRequest(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/BatchGetCrawlers
+func (c *Glue) BatchGetCrawlersRequest(input *BatchGetCrawlersInput) (req *request.Request, output *BatchGetCrawlersOutput) {
+ op := &request.Operation{
+ Name: opBatchGetCrawlers,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &BatchGetCrawlersInput{}
+ }
+
+ output = &BatchGetCrawlersOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// BatchGetCrawlers API operation for AWS Glue.
+//
+// Returns a list of resource metadata for a given list of crawler names. After
+// calling the ListCrawlers operation, you can call this operation to access
+// the data to which you have been granted permissions to based on tags.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 BatchGetCrawlers for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
+//
+// * ErrCodeOperationTimeoutException "OperationTimeoutException"
+// The operation timed out.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchGetCrawlers
+func (c *Glue) BatchGetCrawlers(input *BatchGetCrawlersInput) (*BatchGetCrawlersOutput, error) {
+ req, out := c.BatchGetCrawlersRequest(input)
+ return out, req.Send()
+}
+
+// BatchGetCrawlersWithContext is the same as BatchGetCrawlers with the addition of
+// the ability to pass a context and additional request options.
+//
+// See BatchGetCrawlers for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) BatchGetCrawlersWithContext(ctx aws.Context, input *BatchGetCrawlersInput, opts ...request.Option) (*BatchGetCrawlersOutput, error) {
+ req, out := c.BatchGetCrawlersRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opBatchGetDevEndpoints = "BatchGetDevEndpoints"
+
+// BatchGetDevEndpointsRequest generates a "aws/request.Request" representing the
+// client's request for the BatchGetDevEndpoints operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See BatchGetDevEndpoints for more information on using the BatchGetDevEndpoints
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the BatchGetDevEndpointsRequest method.
+// req, resp := client.BatchGetDevEndpointsRequest(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/BatchGetDevEndpoints
+func (c *Glue) BatchGetDevEndpointsRequest(input *BatchGetDevEndpointsInput) (req *request.Request, output *BatchGetDevEndpointsOutput) {
+ op := &request.Operation{
+ Name: opBatchGetDevEndpoints,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &BatchGetDevEndpointsInput{}
+ }
+
+ output = &BatchGetDevEndpointsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// BatchGetDevEndpoints API operation for AWS Glue.
+//
+// Returns a list of resource metadata for a given list of DevEndpoint names.
+// After calling the ListDevEndpoints operation, you can call this operation
+// to access the data to which you have been granted permissions. This operation
+// supports all IAM permissions, including permission conditions that uses tags.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 BatchGetDevEndpoints for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeAccessDeniedException "AccessDeniedException"
+// Access to a resource was denied.
+//
+// * ErrCodeInternalServiceException "InternalServiceException"
+// An internal service error occurred.
+//
+// * ErrCodeOperationTimeoutException "OperationTimeoutException"
+// The operation timed out.
+//
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchGetDevEndpoints
+func (c *Glue) BatchGetDevEndpoints(input *BatchGetDevEndpointsInput) (*BatchGetDevEndpointsOutput, error) {
+ req, out := c.BatchGetDevEndpointsRequest(input)
+ return out, req.Send()
+}
+
+// BatchGetDevEndpointsWithContext is the same as BatchGetDevEndpoints with the addition of
+// the ability to pass a context and additional request options.
+//
+// See BatchGetDevEndpoints for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) BatchGetDevEndpointsWithContext(ctx aws.Context, input *BatchGetDevEndpointsInput, opts ...request.Option) (*BatchGetDevEndpointsOutput, error) {
+ req, out := c.BatchGetDevEndpointsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opBatchGetJobs = "BatchGetJobs"
+
+// BatchGetJobsRequest generates a "aws/request.Request" representing the
+// client's request for the BatchGetJobs operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See BatchGetJobs for more information on using the BatchGetJobs
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the BatchGetJobsRequest method.
+// req, resp := client.BatchGetJobsRequest(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/BatchGetJobs
+func (c *Glue) BatchGetJobsRequest(input *BatchGetJobsInput) (req *request.Request, output *BatchGetJobsOutput) {
+ op := &request.Operation{
+ Name: opBatchGetJobs,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &BatchGetJobsInput{}
+ }
+
+ output = &BatchGetJobsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// BatchGetJobs API operation for AWS Glue.
+//
+// Returns a list of resource metadata for a given list of job names. After
+// calling the ListJobs operation, you can call this operation to access the
+// data to which you have been granted permissions. This operation supports
+// all IAM permissions, including permission conditions that uses tags.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 BatchGetJobs for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInternalServiceException "InternalServiceException"
+// An internal service error occurred.
+//
+// * ErrCodeOperationTimeoutException "OperationTimeoutException"
+// The operation timed out.
+//
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchGetJobs
+func (c *Glue) BatchGetJobs(input *BatchGetJobsInput) (*BatchGetJobsOutput, error) {
+ req, out := c.BatchGetJobsRequest(input)
+ return out, req.Send()
+}
+
+// BatchGetJobsWithContext is the same as BatchGetJobs with the addition of
+// the ability to pass a context and additional request options.
+//
+// See BatchGetJobs for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) BatchGetJobsWithContext(ctx aws.Context, input *BatchGetJobsInput, opts ...request.Option) (*BatchGetJobsOutput, error) {
+ req, out := c.BatchGetJobsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opBatchGetPartition = "BatchGetPartition"
// BatchGetPartitionRequest generates a "aws/request.Request" representing the
@@ -556,6 +819,94 @@ func (c *Glue) BatchGetPartitionWithContext(ctx aws.Context, input *BatchGetPart
return out, req.Send()
}
+const opBatchGetTriggers = "BatchGetTriggers"
+
+// BatchGetTriggersRequest generates a "aws/request.Request" representing the
+// client's request for the BatchGetTriggers operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See BatchGetTriggers for more information on using the BatchGetTriggers
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the BatchGetTriggersRequest method.
+// req, resp := client.BatchGetTriggersRequest(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/BatchGetTriggers
+func (c *Glue) BatchGetTriggersRequest(input *BatchGetTriggersInput) (req *request.Request, output *BatchGetTriggersOutput) {
+ op := &request.Operation{
+ Name: opBatchGetTriggers,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &BatchGetTriggersInput{}
+ }
+
+ output = &BatchGetTriggersOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// BatchGetTriggers API operation for AWS Glue.
+//
+// Returns a list of resource metadata for a given list of trigger names. After
+// calling the ListTriggers operation, you can call this operation to access
+// the data to which you have been granted permissions. This operation supports
+// all IAM permissions, including permission conditions that uses tags.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 BatchGetTriggers for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInternalServiceException "InternalServiceException"
+// An internal service error occurred.
+//
+// * ErrCodeOperationTimeoutException "OperationTimeoutException"
+// The operation timed out.
+//
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchGetTriggers
+func (c *Glue) BatchGetTriggers(input *BatchGetTriggersInput) (*BatchGetTriggersOutput, error) {
+ req, out := c.BatchGetTriggersRequest(input)
+ return out, req.Send()
+}
+
+// BatchGetTriggersWithContext is the same as BatchGetTriggers with the addition of
+// the ability to pass a context and additional request options.
+//
+// See BatchGetTriggers for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) BatchGetTriggersWithContext(ctx aws.Context, input *BatchGetTriggersInput, opts ...request.Option) (*BatchGetTriggersOutput, error) {
+ req, out := c.BatchGetTriggersRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opBatchStopJobRun = "BatchStopJobRun"
// BatchStopJobRunRequest generates a "aws/request.Request" representing the
@@ -5549,6 +5900,12 @@ func (c *Glue) GetSecurityConfigurationsRequest(input *GetSecurityConfigurations
Name: opGetSecurityConfigurations,
HTTPMethod: "POST",
HTTPPath: "/",
+ Paginator: &request.Paginator{
+ InputTokens: []string{"NextToken"},
+ OutputTokens: []string{"NextToken"},
+ LimitToken: "MaxResults",
+ TruncationToken: "",
+ },
}
if input == nil {
@@ -5606,6 +5963,56 @@ func (c *Glue) GetSecurityConfigurationsWithContext(ctx aws.Context, input *GetS
return out, req.Send()
}
+// GetSecurityConfigurationsPages iterates over the pages of a GetSecurityConfigurations operation,
+// calling the "fn" function with the response data for each page. To stop
+// iterating, return false from the fn function.
+//
+// See GetSecurityConfigurations 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 GetSecurityConfigurations operation.
+// pageNum := 0
+// err := client.GetSecurityConfigurationsPages(params,
+// func(page *GetSecurityConfigurationsOutput, lastPage bool) bool {
+// pageNum++
+// fmt.Println(page)
+// return pageNum <= 3
+// })
+//
+func (c *Glue) GetSecurityConfigurationsPages(input *GetSecurityConfigurationsInput, fn func(*GetSecurityConfigurationsOutput, bool) bool) error {
+ return c.GetSecurityConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
+}
+
+// GetSecurityConfigurationsPagesWithContext same as GetSecurityConfigurationsPages 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 *Glue) GetSecurityConfigurationsPagesWithContext(ctx aws.Context, input *GetSecurityConfigurationsInput, fn func(*GetSecurityConfigurationsOutput, bool) bool, opts ...request.Option) error {
+ p := request.Pagination{
+ NewRequest: func() (*request.Request, error) {
+ var inCpy *GetSecurityConfigurationsInput
+ if input != nil {
+ tmp := *input
+ inCpy = &tmp
+ }
+ req, _ := c.GetSecurityConfigurationsRequest(inCpy)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return req, nil
+ },
+ }
+
+ cont := true
+ for p.Next() && cont {
+ cont = fn(p.Page().(*GetSecurityConfigurationsOutput), !p.HasNextPage())
+ }
+ return p.Err()
+}
+
const opGetTable = "GetTable"
// GetTableRequest generates a "aws/request.Request" representing the
@@ -6083,6 +6490,94 @@ func (c *Glue) GetTablesPagesWithContext(ctx aws.Context, input *GetTablesInput,
return p.Err()
}
+const opGetTags = "GetTags"
+
+// GetTagsRequest generates a "aws/request.Request" representing the
+// client's request for the GetTags operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetTags for more information on using the GetTags
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetTagsRequest method.
+// req, resp := client.GetTagsRequest(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/GetTags
+func (c *Glue) GetTagsRequest(input *GetTagsInput) (req *request.Request, output *GetTagsOutput) {
+ op := &request.Operation{
+ Name: opGetTags,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &GetTagsInput{}
+ }
+
+ output = &GetTagsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetTags API operation for AWS Glue.
+//
+// Retrieves a list of tags associated with a resource.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for AWS Glue's
+// API operation GetTags for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
+//
+// * ErrCodeInternalServiceException "InternalServiceException"
+// An internal service error occurred.
+//
+// * ErrCodeOperationTimeoutException "OperationTimeoutException"
+// The operation timed out.
+//
+// * ErrCodeEntityNotFoundException "EntityNotFoundException"
+// A specified entity does not exist
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTags
+func (c *Glue) GetTags(input *GetTagsInput) (*GetTagsOutput, error) {
+ req, out := c.GetTagsRequest(input)
+ return out, req.Send()
+}
+
+// GetTagsWithContext is the same as GetTags with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetTags for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) GetTagsWithContext(ctx aws.Context, input *GetTagsInput, opts ...request.Option) (*GetTagsOutput, error) {
+ req, out := c.GetTagsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opGetTrigger = "GetTrigger"
// GetTriggerRequest generates a "aws/request.Request" representing the
@@ -6636,148 +7131,216 @@ func (c *Glue) ImportCatalogToGlueWithContext(ctx aws.Context, input *ImportCata
return out, req.Send()
}
-const opPutDataCatalogEncryptionSettings = "PutDataCatalogEncryptionSettings"
+const opListCrawlers = "ListCrawlers"
-// PutDataCatalogEncryptionSettingsRequest generates a "aws/request.Request" representing the
-// client's request for the PutDataCatalogEncryptionSettings operation. The "output" return
+// ListCrawlersRequest generates a "aws/request.Request" representing the
+// client's request for the ListCrawlers operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See PutDataCatalogEncryptionSettings for more information on using the PutDataCatalogEncryptionSettings
+// See ListCrawlers for more information on using the ListCrawlers
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the PutDataCatalogEncryptionSettingsRequest method.
-// req, resp := client.PutDataCatalogEncryptionSettingsRequest(params)
+// // Example sending a request using the ListCrawlersRequest method.
+// req, resp := client.ListCrawlersRequest(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/PutDataCatalogEncryptionSettings
-func (c *Glue) PutDataCatalogEncryptionSettingsRequest(input *PutDataCatalogEncryptionSettingsInput) (req *request.Request, output *PutDataCatalogEncryptionSettingsOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ListCrawlers
+func (c *Glue) ListCrawlersRequest(input *ListCrawlersInput) (req *request.Request, output *ListCrawlersOutput) {
op := &request.Operation{
- Name: opPutDataCatalogEncryptionSettings,
+ Name: opListCrawlers,
HTTPMethod: "POST",
HTTPPath: "/",
+ Paginator: &request.Paginator{
+ InputTokens: []string{"NextToken"},
+ OutputTokens: []string{"NextToken"},
+ LimitToken: "MaxResults",
+ TruncationToken: "",
+ },
}
if input == nil {
- input = &PutDataCatalogEncryptionSettingsInput{}
+ input = &ListCrawlersInput{}
}
- output = &PutDataCatalogEncryptionSettingsOutput{}
+ output = &ListCrawlersOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// PutDataCatalogEncryptionSettings API operation for AWS Glue.
+// ListCrawlers API operation for AWS Glue.
//
-// Sets the security configuration for a specified catalog. Once the configuration
-// has been set, the specified encryption is applied to every catalog write
-// thereafter.
+// Retrieves the names of all crawler resources in this AWS account, or the
+// resources with the specified tag. This operation allows you to see which
+// resources are available in your account, and their names.
+//
+// This operation takes the optional Tags field which you can use as a filter
+// on the response so that tagged resources can be retrieved as a group. If
+// you choose to use tags filtering, only resources with the tag will be retrieved.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 PutDataCatalogEncryptionSettings for usage and error information.
+// API operation ListCrawlers for usage and error information.
//
// Returned Error Codes:
-// * ErrCodeInternalServiceException "InternalServiceException"
-// An internal service error occurred.
-//
-// * ErrCodeInvalidInputException "InvalidInputException"
-// The input provided was not valid.
-//
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/PutDataCatalogEncryptionSettings
-func (c *Glue) PutDataCatalogEncryptionSettings(input *PutDataCatalogEncryptionSettingsInput) (*PutDataCatalogEncryptionSettingsOutput, error) {
- req, out := c.PutDataCatalogEncryptionSettingsRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ListCrawlers
+func (c *Glue) ListCrawlers(input *ListCrawlersInput) (*ListCrawlersOutput, error) {
+ req, out := c.ListCrawlersRequest(input)
return out, req.Send()
}
-// PutDataCatalogEncryptionSettingsWithContext is the same as PutDataCatalogEncryptionSettings with the addition of
+// ListCrawlersWithContext is the same as ListCrawlers with the addition of
// the ability to pass a context and additional request options.
//
-// See PutDataCatalogEncryptionSettings for details on how to use this API operation.
+// See ListCrawlers for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) PutDataCatalogEncryptionSettingsWithContext(ctx aws.Context, input *PutDataCatalogEncryptionSettingsInput, opts ...request.Option) (*PutDataCatalogEncryptionSettingsOutput, error) {
- req, out := c.PutDataCatalogEncryptionSettingsRequest(input)
+func (c *Glue) ListCrawlersWithContext(ctx aws.Context, input *ListCrawlersInput, opts ...request.Option) (*ListCrawlersOutput, error) {
+ req, out := c.ListCrawlersRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opPutResourcePolicy = "PutResourcePolicy"
+// ListCrawlersPages iterates over the pages of a ListCrawlers operation,
+// calling the "fn" function with the response data for each page. To stop
+// iterating, return false from the fn function.
+//
+// See ListCrawlers 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 ListCrawlers operation.
+// pageNum := 0
+// err := client.ListCrawlersPages(params,
+// func(page *ListCrawlersOutput, lastPage bool) bool {
+// pageNum++
+// fmt.Println(page)
+// return pageNum <= 3
+// })
+//
+func (c *Glue) ListCrawlersPages(input *ListCrawlersInput, fn func(*ListCrawlersOutput, bool) bool) error {
+ return c.ListCrawlersPagesWithContext(aws.BackgroundContext(), input, fn)
+}
-// PutResourcePolicyRequest generates a "aws/request.Request" representing the
-// client's request for the PutResourcePolicy operation. The "output" return
+// ListCrawlersPagesWithContext same as ListCrawlersPages 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 *Glue) ListCrawlersPagesWithContext(ctx aws.Context, input *ListCrawlersInput, fn func(*ListCrawlersOutput, bool) bool, opts ...request.Option) error {
+ p := request.Pagination{
+ NewRequest: func() (*request.Request, error) {
+ var inCpy *ListCrawlersInput
+ if input != nil {
+ tmp := *input
+ inCpy = &tmp
+ }
+ req, _ := c.ListCrawlersRequest(inCpy)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return req, nil
+ },
+ }
+
+ cont := true
+ for p.Next() && cont {
+ cont = fn(p.Page().(*ListCrawlersOutput), !p.HasNextPage())
+ }
+ return p.Err()
+}
+
+const opListDevEndpoints = "ListDevEndpoints"
+
+// ListDevEndpointsRequest generates a "aws/request.Request" representing the
+// client's request for the ListDevEndpoints operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See PutResourcePolicy for more information on using the PutResourcePolicy
+// See ListDevEndpoints for more information on using the ListDevEndpoints
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the PutResourcePolicyRequest method.
-// req, resp := client.PutResourcePolicyRequest(params)
+// // Example sending a request using the ListDevEndpointsRequest method.
+// req, resp := client.ListDevEndpointsRequest(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/PutResourcePolicy
-func (c *Glue) PutResourcePolicyRequest(input *PutResourcePolicyInput) (req *request.Request, output *PutResourcePolicyOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ListDevEndpoints
+func (c *Glue) ListDevEndpointsRequest(input *ListDevEndpointsInput) (req *request.Request, output *ListDevEndpointsOutput) {
op := &request.Operation{
- Name: opPutResourcePolicy,
+ Name: opListDevEndpoints,
HTTPMethod: "POST",
HTTPPath: "/",
+ Paginator: &request.Paginator{
+ InputTokens: []string{"NextToken"},
+ OutputTokens: []string{"NextToken"},
+ LimitToken: "MaxResults",
+ TruncationToken: "",
+ },
}
if input == nil {
- input = &PutResourcePolicyInput{}
+ input = &ListDevEndpointsInput{}
}
- output = &PutResourcePolicyOutput{}
+ output = &ListDevEndpointsOutput{}
req = c.newRequest(op, input, output)
return
}
-// PutResourcePolicy API operation for AWS Glue.
+// ListDevEndpoints API operation for AWS Glue.
//
-// Sets the Data Catalog resource policy for access control.
+// Retrieves the names of all DevEndpoint resources in this AWS account, or
+// the resources with the specified tag. This operation allows you to see which
+// resources are available in your account, and their names.
+//
+// This operation takes the optional Tags field which you can use as a filter
+// on the response so that tagged resources can be retrieved as a group. If
+// you choose to use tags filtering, only resources with the tag will be retrieved.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 PutResourcePolicy for usage and error information.
+// API operation ListDevEndpoints for usage and error information.
//
// Returned Error Codes:
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
+//
// * ErrCodeEntityNotFoundException "EntityNotFoundException"
// A specified entity does not exist
//
@@ -6787,359 +7350,520 @@ func (c *Glue) PutResourcePolicyRequest(input *PutResourcePolicyInput) (req *req
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// * ErrCodeInvalidInputException "InvalidInputException"
-// The input provided was not valid.
-//
-// * ErrCodeConditionCheckFailureException "ConditionCheckFailureException"
-// A specified condition was not satisfied.
-//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/PutResourcePolicy
-func (c *Glue) PutResourcePolicy(input *PutResourcePolicyInput) (*PutResourcePolicyOutput, error) {
- req, out := c.PutResourcePolicyRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ListDevEndpoints
+func (c *Glue) ListDevEndpoints(input *ListDevEndpointsInput) (*ListDevEndpointsOutput, error) {
+ req, out := c.ListDevEndpointsRequest(input)
return out, req.Send()
}
-// PutResourcePolicyWithContext is the same as PutResourcePolicy with the addition of
+// ListDevEndpointsWithContext is the same as ListDevEndpoints with the addition of
// the ability to pass a context and additional request options.
//
-// See PutResourcePolicy for details on how to use this API operation.
+// See ListDevEndpoints for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) PutResourcePolicyWithContext(ctx aws.Context, input *PutResourcePolicyInput, opts ...request.Option) (*PutResourcePolicyOutput, error) {
- req, out := c.PutResourcePolicyRequest(input)
+func (c *Glue) ListDevEndpointsWithContext(ctx aws.Context, input *ListDevEndpointsInput, opts ...request.Option) (*ListDevEndpointsOutput, error) {
+ req, out := c.ListDevEndpointsRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opResetJobBookmark = "ResetJobBookmark"
-
-// ResetJobBookmarkRequest generates a "aws/request.Request" representing the
-// client's request for the ResetJobBookmark operation. The "output" return
-// value will be populated with the request's response once the request completes
-// successfully.
-//
-// Use "Send" method on the returned Request to send the API call to the service.
-// the "output" return value is not valid until after Send returns without error.
-//
-// See ResetJobBookmark for more information on using the ResetJobBookmark
-// API call, and error handling.
+// ListDevEndpointsPages iterates over the pages of a ListDevEndpoints operation,
+// calling the "fn" function with the response data for each page. To stop
+// iterating, return false from the fn function.
//
-// This method is useful when you want to inject custom logic or configuration
-// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+// See ListDevEndpoints method for more information on how to use this operation.
//
+// Note: This operation can generate multiple requests to a service.
//
-// // Example sending a request using the ResetJobBookmarkRequest method.
-// req, resp := client.ResetJobBookmarkRequest(params)
+// // Example iterating over at most 3 pages of a ListDevEndpoints operation.
+// pageNum := 0
+// err := client.ListDevEndpointsPages(params,
+// func(page *ListDevEndpointsOutput, lastPage bool) bool {
+// pageNum++
+// fmt.Println(page)
+// return pageNum <= 3
+// })
//
-// err := req.Send()
-// if err == nil { // resp is now filled
-// fmt.Println(resp)
-// }
+func (c *Glue) ListDevEndpointsPages(input *ListDevEndpointsInput, fn func(*ListDevEndpointsOutput, bool) bool) error {
+ return c.ListDevEndpointsPagesWithContext(aws.BackgroundContext(), input, fn)
+}
+
+// ListDevEndpointsPagesWithContext same as ListDevEndpointsPages except
+// it takes a Context and allows setting request options on the pages.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ResetJobBookmark
-func (c *Glue) ResetJobBookmarkRequest(input *ResetJobBookmarkInput) (req *request.Request, output *ResetJobBookmarkOutput) {
- op := &request.Operation{
- Name: opResetJobBookmark,
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) ListDevEndpointsPagesWithContext(ctx aws.Context, input *ListDevEndpointsInput, fn func(*ListDevEndpointsOutput, bool) bool, opts ...request.Option) error {
+ p := request.Pagination{
+ NewRequest: func() (*request.Request, error) {
+ var inCpy *ListDevEndpointsInput
+ if input != nil {
+ tmp := *input
+ inCpy = &tmp
+ }
+ req, _ := c.ListDevEndpointsRequest(inCpy)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return req, nil
+ },
+ }
+
+ cont := true
+ for p.Next() && cont {
+ cont = fn(p.Page().(*ListDevEndpointsOutput), !p.HasNextPage())
+ }
+ return p.Err()
+}
+
+const opListJobs = "ListJobs"
+
+// ListJobsRequest generates a "aws/request.Request" representing the
+// client's request for the ListJobs operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ListJobs for more information on using the ListJobs
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ListJobsRequest method.
+// req, resp := client.ListJobsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ListJobs
+func (c *Glue) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
+ op := &request.Operation{
+ Name: opListJobs,
HTTPMethod: "POST",
HTTPPath: "/",
+ Paginator: &request.Paginator{
+ InputTokens: []string{"NextToken"},
+ OutputTokens: []string{"NextToken"},
+ LimitToken: "MaxResults",
+ TruncationToken: "",
+ },
}
if input == nil {
- input = &ResetJobBookmarkInput{}
+ input = &ListJobsInput{}
}
- output = &ResetJobBookmarkOutput{}
+ output = &ListJobsOutput{}
req = c.newRequest(op, input, output)
return
}
-// ResetJobBookmark API operation for AWS Glue.
+// ListJobs API operation for AWS Glue.
//
-// Resets a bookmark entry.
+// Retrieves the names of all job resources in this AWS account, or the resources
+// with the specified tag. This operation allows you to see which resources
+// are available in your account, and their names.
+//
+// This operation takes the optional Tags field which you can use as a filter
+// on the response so that tagged resources can be retrieved as a group. If
+// you choose to use tags filtering, only resources with the tag will be retrieved.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 ResetJobBookmark for usage and error information.
+// API operation ListJobs for usage and error information.
//
// Returned Error Codes:
-// * ErrCodeEntityNotFoundException "EntityNotFoundException"
-// A specified entity does not exist
-//
// * ErrCodeInvalidInputException "InvalidInputException"
// The input provided was not valid.
//
+// * ErrCodeEntityNotFoundException "EntityNotFoundException"
+// A specified entity does not exist
+//
// * 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/ResetJobBookmark
-func (c *Glue) ResetJobBookmark(input *ResetJobBookmarkInput) (*ResetJobBookmarkOutput, error) {
- req, out := c.ResetJobBookmarkRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ListJobs
+func (c *Glue) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
+ req, out := c.ListJobsRequest(input)
return out, req.Send()
}
-// ResetJobBookmarkWithContext is the same as ResetJobBookmark with the addition of
+// ListJobsWithContext is the same as ListJobs with the addition of
// the ability to pass a context and additional request options.
//
-// See ResetJobBookmark for details on how to use this API operation.
+// See ListJobs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
-func (c *Glue) ResetJobBookmarkWithContext(ctx aws.Context, input *ResetJobBookmarkInput, opts ...request.Option) (*ResetJobBookmarkOutput, error) {
- req, out := c.ResetJobBookmarkRequest(input)
+func (c *Glue) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
+ req, out := c.ListJobsRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opStartCrawler = "StartCrawler"
+// ListJobsPages iterates over the pages of a ListJobs operation,
+// calling the "fn" function with the response data for each page. To stop
+// iterating, return false from the fn function.
+//
+// See ListJobs method for more information on how to use this operation.
+//
+// Note: This operation can generate multiple requests to a service.
+//
+// // Example iterating over at most 3 pages of a ListJobs operation.
+// pageNum := 0
+// err := client.ListJobsPages(params,
+// func(page *ListJobsOutput, lastPage bool) bool {
+// pageNum++
+// fmt.Println(page)
+// return pageNum <= 3
+// })
+//
+func (c *Glue) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
+ return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
+}
-// StartCrawlerRequest generates a "aws/request.Request" representing the
-// client's request for the StartCrawler operation. The "output" return
+// ListJobsPagesWithContext same as ListJobsPages except
+// it takes a Context and allows setting request options on the pages.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *Glue) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
+ p := request.Pagination{
+ NewRequest: func() (*request.Request, error) {
+ var inCpy *ListJobsInput
+ if input != nil {
+ tmp := *input
+ inCpy = &tmp
+ }
+ req, _ := c.ListJobsRequest(inCpy)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return req, nil
+ },
+ }
+
+ cont := true
+ for p.Next() && cont {
+ cont = fn(p.Page().(*ListJobsOutput), !p.HasNextPage())
+ }
+ return p.Err()
+}
+
+const opListTriggers = "ListTriggers"
+
+// ListTriggersRequest generates a "aws/request.Request" representing the
+// client's request for the ListTriggers operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See StartCrawler for more information on using the StartCrawler
+// See ListTriggers for more information on using the ListTriggers
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the StartCrawlerRequest method.
-// req, resp := client.StartCrawlerRequest(params)
+// // Example sending a request using the ListTriggersRequest method.
+// req, resp := client.ListTriggersRequest(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/StartCrawler
-func (c *Glue) StartCrawlerRequest(input *StartCrawlerInput) (req *request.Request, output *StartCrawlerOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ListTriggers
+func (c *Glue) ListTriggersRequest(input *ListTriggersInput) (req *request.Request, output *ListTriggersOutput) {
op := &request.Operation{
- Name: opStartCrawler,
+ Name: opListTriggers,
HTTPMethod: "POST",
HTTPPath: "/",
+ Paginator: &request.Paginator{
+ InputTokens: []string{"NextToken"},
+ OutputTokens: []string{"NextToken"},
+ LimitToken: "MaxResults",
+ TruncationToken: "",
+ },
}
if input == nil {
- input = &StartCrawlerInput{}
+ input = &ListTriggersInput{}
}
- output = &StartCrawlerOutput{}
+ output = &ListTriggersOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// StartCrawler API operation for AWS Glue.
+// ListTriggers API operation for AWS Glue.
//
-// Starts a crawl using the specified crawler, regardless of what is scheduled.
-// If the crawler is already running, returns a CrawlerRunningException (https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-exceptions.html#aws-glue-api-exceptions-CrawlerRunningException).
+// Retrieves the names of all trigger resources in this AWS account, or the
+// resources with the specified tag. This operation allows you to see which
+// resources are available in your account, and their names.
+//
+// This operation takes the optional Tags field which you can use as a filter
+// on the response so that tagged resources can be retrieved as a group. If
+// you choose to use tags filtering, only resources with the tag will be retrieved.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 StartCrawler for usage and error information.
+// API operation ListTriggers for usage and error information.
//
// Returned Error Codes:
// * ErrCodeEntityNotFoundException "EntityNotFoundException"
// A specified entity does not exist
//
-// * ErrCodeCrawlerRunningException "CrawlerRunningException"
-// The operation cannot be performed because the crawler is already running.
+// * 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/StartCrawler
-func (c *Glue) StartCrawler(input *StartCrawlerInput) (*StartCrawlerOutput, error) {
- req, out := c.StartCrawlerRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ListTriggers
+func (c *Glue) ListTriggers(input *ListTriggersInput) (*ListTriggersOutput, error) {
+ req, out := c.ListTriggersRequest(input)
return out, req.Send()
}
-// StartCrawlerWithContext is the same as StartCrawler with the addition of
+// ListTriggersWithContext is the same as ListTriggers with the addition of
// the ability to pass a context and additional request options.
//
-// See StartCrawler for details on how to use this API operation.
+// See ListTriggers for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) StartCrawlerWithContext(ctx aws.Context, input *StartCrawlerInput, opts ...request.Option) (*StartCrawlerOutput, error) {
- req, out := c.StartCrawlerRequest(input)
+func (c *Glue) ListTriggersWithContext(ctx aws.Context, input *ListTriggersInput, opts ...request.Option) (*ListTriggersOutput, error) {
+ req, out := c.ListTriggersRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opStartCrawlerSchedule = "StartCrawlerSchedule"
+// ListTriggersPages iterates over the pages of a ListTriggers operation,
+// calling the "fn" function with the response data for each page. To stop
+// iterating, return false from the fn function.
+//
+// See ListTriggers 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 ListTriggers operation.
+// pageNum := 0
+// err := client.ListTriggersPages(params,
+// func(page *ListTriggersOutput, lastPage bool) bool {
+// pageNum++
+// fmt.Println(page)
+// return pageNum <= 3
+// })
+//
+func (c *Glue) ListTriggersPages(input *ListTriggersInput, fn func(*ListTriggersOutput, bool) bool) error {
+ return c.ListTriggersPagesWithContext(aws.BackgroundContext(), input, fn)
+}
-// StartCrawlerScheduleRequest generates a "aws/request.Request" representing the
-// client's request for the StartCrawlerSchedule operation. The "output" return
+// ListTriggersPagesWithContext same as ListTriggersPages 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 *Glue) ListTriggersPagesWithContext(ctx aws.Context, input *ListTriggersInput, fn func(*ListTriggersOutput, bool) bool, opts ...request.Option) error {
+ p := request.Pagination{
+ NewRequest: func() (*request.Request, error) {
+ var inCpy *ListTriggersInput
+ if input != nil {
+ tmp := *input
+ inCpy = &tmp
+ }
+ req, _ := c.ListTriggersRequest(inCpy)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return req, nil
+ },
+ }
+
+ cont := true
+ for p.Next() && cont {
+ cont = fn(p.Page().(*ListTriggersOutput), !p.HasNextPage())
+ }
+ return p.Err()
+}
+
+const opPutDataCatalogEncryptionSettings = "PutDataCatalogEncryptionSettings"
+
+// PutDataCatalogEncryptionSettingsRequest generates a "aws/request.Request" representing the
+// client's request for the PutDataCatalogEncryptionSettings operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See StartCrawlerSchedule for more information on using the StartCrawlerSchedule
+// See PutDataCatalogEncryptionSettings for more information on using the PutDataCatalogEncryptionSettings
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the StartCrawlerScheduleRequest method.
-// req, resp := client.StartCrawlerScheduleRequest(params)
+// // Example sending a request using the PutDataCatalogEncryptionSettingsRequest method.
+// req, resp := client.PutDataCatalogEncryptionSettingsRequest(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/StartCrawlerSchedule
-func (c *Glue) StartCrawlerScheduleRequest(input *StartCrawlerScheduleInput) (req *request.Request, output *StartCrawlerScheduleOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/PutDataCatalogEncryptionSettings
+func (c *Glue) PutDataCatalogEncryptionSettingsRequest(input *PutDataCatalogEncryptionSettingsInput) (req *request.Request, output *PutDataCatalogEncryptionSettingsOutput) {
op := &request.Operation{
- Name: opStartCrawlerSchedule,
+ Name: opPutDataCatalogEncryptionSettings,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &StartCrawlerScheduleInput{}
+ input = &PutDataCatalogEncryptionSettingsInput{}
}
- output = &StartCrawlerScheduleOutput{}
+ output = &PutDataCatalogEncryptionSettingsOutput{}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// StartCrawlerSchedule API operation for AWS Glue.
+// PutDataCatalogEncryptionSettings API operation for AWS Glue.
//
-// Changes the schedule state of the specified crawler to SCHEDULED, unless
-// the crawler is already running or the schedule state is already SCHEDULED.
+// Sets the security configuration for a specified catalog. After the configuration
+// has been set, the specified encryption is applied to every catalog write
+// thereafter.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 StartCrawlerSchedule for usage and error information.
+// API operation PutDataCatalogEncryptionSettings for usage and error information.
//
// Returned Error Codes:
-// * ErrCodeEntityNotFoundException "EntityNotFoundException"
-// A specified entity does not exist
-//
-// * ErrCodeSchedulerRunningException "SchedulerRunningException"
-// The specified scheduler is already running.
-//
-// * ErrCodeSchedulerTransitioningException "SchedulerTransitioningException"
-// The specified scheduler is transitioning.
+// * ErrCodeInternalServiceException "InternalServiceException"
+// An internal service error occurred.
//
-// * ErrCodeNoScheduleException "NoScheduleException"
-// There is no applicable schedule.
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
//
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartCrawlerSchedule
-func (c *Glue) StartCrawlerSchedule(input *StartCrawlerScheduleInput) (*StartCrawlerScheduleOutput, error) {
- req, out := c.StartCrawlerScheduleRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/PutDataCatalogEncryptionSettings
+func (c *Glue) PutDataCatalogEncryptionSettings(input *PutDataCatalogEncryptionSettingsInput) (*PutDataCatalogEncryptionSettingsOutput, error) {
+ req, out := c.PutDataCatalogEncryptionSettingsRequest(input)
return out, req.Send()
}
-// StartCrawlerScheduleWithContext is the same as StartCrawlerSchedule with the addition of
+// PutDataCatalogEncryptionSettingsWithContext is the same as PutDataCatalogEncryptionSettings with the addition of
// the ability to pass a context and additional request options.
//
-// See StartCrawlerSchedule for details on how to use this API operation.
+// See PutDataCatalogEncryptionSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) StartCrawlerScheduleWithContext(ctx aws.Context, input *StartCrawlerScheduleInput, opts ...request.Option) (*StartCrawlerScheduleOutput, error) {
- req, out := c.StartCrawlerScheduleRequest(input)
+func (c *Glue) PutDataCatalogEncryptionSettingsWithContext(ctx aws.Context, input *PutDataCatalogEncryptionSettingsInput, opts ...request.Option) (*PutDataCatalogEncryptionSettingsOutput, error) {
+ req, out := c.PutDataCatalogEncryptionSettingsRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opStartJobRun = "StartJobRun"
+const opPutResourcePolicy = "PutResourcePolicy"
-// StartJobRunRequest generates a "aws/request.Request" representing the
-// client's request for the StartJobRun operation. The "output" return
+// PutResourcePolicyRequest generates a "aws/request.Request" representing the
+// client's request for the PutResourcePolicy operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See StartJobRun for more information on using the StartJobRun
+// See PutResourcePolicy for more information on using the PutResourcePolicy
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the StartJobRunRequest method.
-// req, resp := client.StartJobRunRequest(params)
+// // Example sending a request using the PutResourcePolicyRequest method.
+// req, resp := client.PutResourcePolicyRequest(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/StartJobRun
-func (c *Glue) StartJobRunRequest(input *StartJobRunInput) (req *request.Request, output *StartJobRunOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/PutResourcePolicy
+func (c *Glue) PutResourcePolicyRequest(input *PutResourcePolicyInput) (req *request.Request, output *PutResourcePolicyOutput) {
op := &request.Operation{
- Name: opStartJobRun,
+ Name: opPutResourcePolicy,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &StartJobRunInput{}
+ input = &PutResourcePolicyInput{}
}
- output = &StartJobRunOutput{}
+ output = &PutResourcePolicyOutput{}
req = c.newRequest(op, input, output)
return
}
-// StartJobRun API operation for AWS Glue.
+// PutResourcePolicy API operation for AWS Glue.
//
-// Starts a job run using a job definition.
+// Sets the Data Catalog resource policy for access control.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 StartJobRun for usage and error information.
+// API operation PutResourcePolicy for usage and error information.
//
// Returned Error Codes:
-// * ErrCodeInvalidInputException "InvalidInputException"
-// The input provided was not valid.
-//
// * ErrCodeEntityNotFoundException "EntityNotFoundException"
// A specified entity does not exist
//
@@ -7149,460 +7873,456 @@ func (c *Glue) StartJobRunRequest(input *StartJobRunInput) (req *request.Request
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// * ErrCodeResourceNumberLimitExceededException "ResourceNumberLimitExceededException"
-// A resource numerical limit was exceeded.
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
//
-// * ErrCodeConcurrentRunsExceededException "ConcurrentRunsExceededException"
-// Too many jobs are being run concurrently.
+// * ErrCodeConditionCheckFailureException "ConditionCheckFailureException"
+// A specified condition was not satisfied.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartJobRun
-func (c *Glue) StartJobRun(input *StartJobRunInput) (*StartJobRunOutput, error) {
- req, out := c.StartJobRunRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/PutResourcePolicy
+func (c *Glue) PutResourcePolicy(input *PutResourcePolicyInput) (*PutResourcePolicyOutput, error) {
+ req, out := c.PutResourcePolicyRequest(input)
return out, req.Send()
}
-// StartJobRunWithContext is the same as StartJobRun with the addition of
+// PutResourcePolicyWithContext is the same as PutResourcePolicy with the addition of
// the ability to pass a context and additional request options.
//
-// See StartJobRun for details on how to use this API operation.
+// See PutResourcePolicy for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) StartJobRunWithContext(ctx aws.Context, input *StartJobRunInput, opts ...request.Option) (*StartJobRunOutput, error) {
- req, out := c.StartJobRunRequest(input)
+func (c *Glue) PutResourcePolicyWithContext(ctx aws.Context, input *PutResourcePolicyInput, opts ...request.Option) (*PutResourcePolicyOutput, error) {
+ req, out := c.PutResourcePolicyRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opStartTrigger = "StartTrigger"
+const opResetJobBookmark = "ResetJobBookmark"
-// StartTriggerRequest generates a "aws/request.Request" representing the
-// client's request for the StartTrigger operation. The "output" return
+// ResetJobBookmarkRequest generates a "aws/request.Request" representing the
+// client's request for the ResetJobBookmark operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See StartTrigger for more information on using the StartTrigger
+// See ResetJobBookmark for more information on using the ResetJobBookmark
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the StartTriggerRequest method.
-// req, resp := client.StartTriggerRequest(params)
+// // Example sending a request using the ResetJobBookmarkRequest method.
+// req, resp := client.ResetJobBookmarkRequest(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/StartTrigger
-func (c *Glue) StartTriggerRequest(input *StartTriggerInput) (req *request.Request, output *StartTriggerOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ResetJobBookmark
+func (c *Glue) ResetJobBookmarkRequest(input *ResetJobBookmarkInput) (req *request.Request, output *ResetJobBookmarkOutput) {
op := &request.Operation{
- Name: opStartTrigger,
+ Name: opResetJobBookmark,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &StartTriggerInput{}
+ input = &ResetJobBookmarkInput{}
}
- output = &StartTriggerOutput{}
+ output = &ResetJobBookmarkOutput{}
req = c.newRequest(op, input, output)
return
}
-// StartTrigger API operation for AWS Glue.
+// ResetJobBookmark API operation for AWS Glue.
//
-// 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.
+// Resets a bookmark entry.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 StartTrigger for usage and error information.
+// API operation ResetJobBookmark 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.
//
-// * ErrCodeEntityNotFoundException "EntityNotFoundException"
-// A specified entity does not exist
-//
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// * ErrCodeResourceNumberLimitExceededException "ResourceNumberLimitExceededException"
-// A resource numerical limit was exceeded.
-//
-// * ErrCodeConcurrentRunsExceededException "ConcurrentRunsExceededException"
-// Too many jobs are being run concurrently.
-//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartTrigger
-func (c *Glue) StartTrigger(input *StartTriggerInput) (*StartTriggerOutput, error) {
- req, out := c.StartTriggerRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ResetJobBookmark
+func (c *Glue) ResetJobBookmark(input *ResetJobBookmarkInput) (*ResetJobBookmarkOutput, error) {
+ req, out := c.ResetJobBookmarkRequest(input)
return out, req.Send()
}
-// StartTriggerWithContext is the same as StartTrigger with the addition of
+// ResetJobBookmarkWithContext is the same as ResetJobBookmark with the addition of
// the ability to pass a context and additional request options.
//
-// See StartTrigger for details on how to use this API operation.
+// See ResetJobBookmark for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) StartTriggerWithContext(ctx aws.Context, input *StartTriggerInput, opts ...request.Option) (*StartTriggerOutput, error) {
- req, out := c.StartTriggerRequest(input)
+func (c *Glue) ResetJobBookmarkWithContext(ctx aws.Context, input *ResetJobBookmarkInput, opts ...request.Option) (*ResetJobBookmarkOutput, error) {
+ req, out := c.ResetJobBookmarkRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opStopCrawler = "StopCrawler"
+const opStartCrawler = "StartCrawler"
-// StopCrawlerRequest generates a "aws/request.Request" representing the
-// client's request for the StopCrawler operation. The "output" return
+// StartCrawlerRequest generates a "aws/request.Request" representing the
+// client's request for the StartCrawler operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See StopCrawler for more information on using the StopCrawler
+// See StartCrawler for more information on using the StartCrawler
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the StopCrawlerRequest method.
-// req, resp := client.StopCrawlerRequest(params)
+// // Example sending a request using the StartCrawlerRequest method.
+// req, resp := client.StartCrawlerRequest(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/StopCrawler
-func (c *Glue) StopCrawlerRequest(input *StopCrawlerInput) (req *request.Request, output *StopCrawlerOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartCrawler
+func (c *Glue) StartCrawlerRequest(input *StartCrawlerInput) (req *request.Request, output *StartCrawlerOutput) {
op := &request.Operation{
- Name: opStopCrawler,
+ Name: opStartCrawler,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &StopCrawlerInput{}
+ input = &StartCrawlerInput{}
}
- output = &StopCrawlerOutput{}
+ output = &StartCrawlerOutput{}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// StopCrawler API operation for AWS Glue.
+// StartCrawler API operation for AWS Glue.
//
-// If the specified crawler is running, stops the crawl.
+// Starts a crawl using the specified crawler, regardless of what is scheduled.
+// If the crawler is already running, returns a CrawlerRunningException (https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-exceptions.html#aws-glue-api-exceptions-CrawlerRunningException).
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 StopCrawler for usage and error information.
+// API operation StartCrawler for usage and error information.
//
// Returned Error Codes:
// * ErrCodeEntityNotFoundException "EntityNotFoundException"
// A specified entity does not exist
//
-// * ErrCodeCrawlerNotRunningException "CrawlerNotRunningException"
-// The specified crawler is not running.
-//
-// * ErrCodeCrawlerStoppingException "CrawlerStoppingException"
-// The specified crawler is stopping.
+// * ErrCodeCrawlerRunningException "CrawlerRunningException"
+// The operation cannot be performed because the crawler is already running.
//
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopCrawler
-func (c *Glue) StopCrawler(input *StopCrawlerInput) (*StopCrawlerOutput, error) {
- req, out := c.StopCrawlerRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartCrawler
+func (c *Glue) StartCrawler(input *StartCrawlerInput) (*StartCrawlerOutput, error) {
+ req, out := c.StartCrawlerRequest(input)
return out, req.Send()
}
-// StopCrawlerWithContext is the same as StopCrawler with the addition of
+// StartCrawlerWithContext is the same as StartCrawler with the addition of
// the ability to pass a context and additional request options.
//
-// See StopCrawler for details on how to use this API operation.
+// See StartCrawler for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) StopCrawlerWithContext(ctx aws.Context, input *StopCrawlerInput, opts ...request.Option) (*StopCrawlerOutput, error) {
- req, out := c.StopCrawlerRequest(input)
+func (c *Glue) StartCrawlerWithContext(ctx aws.Context, input *StartCrawlerInput, opts ...request.Option) (*StartCrawlerOutput, error) {
+ req, out := c.StartCrawlerRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opStopCrawlerSchedule = "StopCrawlerSchedule"
+const opStartCrawlerSchedule = "StartCrawlerSchedule"
-// StopCrawlerScheduleRequest generates a "aws/request.Request" representing the
-// client's request for the StopCrawlerSchedule operation. The "output" return
+// StartCrawlerScheduleRequest generates a "aws/request.Request" representing the
+// client's request for the StartCrawlerSchedule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See StopCrawlerSchedule for more information on using the StopCrawlerSchedule
+// See StartCrawlerSchedule for more information on using the StartCrawlerSchedule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the StopCrawlerScheduleRequest method.
-// req, resp := client.StopCrawlerScheduleRequest(params)
+// // Example sending a request using the StartCrawlerScheduleRequest method.
+// req, resp := client.StartCrawlerScheduleRequest(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/StopCrawlerSchedule
-func (c *Glue) StopCrawlerScheduleRequest(input *StopCrawlerScheduleInput) (req *request.Request, output *StopCrawlerScheduleOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartCrawlerSchedule
+func (c *Glue) StartCrawlerScheduleRequest(input *StartCrawlerScheduleInput) (req *request.Request, output *StartCrawlerScheduleOutput) {
op := &request.Operation{
- Name: opStopCrawlerSchedule,
+ Name: opStartCrawlerSchedule,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &StopCrawlerScheduleInput{}
+ input = &StartCrawlerScheduleInput{}
}
- output = &StopCrawlerScheduleOutput{}
+ output = &StartCrawlerScheduleOutput{}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// StopCrawlerSchedule API operation for AWS Glue.
+// StartCrawlerSchedule API operation for AWS Glue.
//
-// Sets the schedule state of the specified crawler to NOT_SCHEDULED, but does
-// not stop the crawler if it is already running.
+// Changes the schedule state of the specified crawler to SCHEDULED, unless
+// the crawler is already running or the schedule state is already SCHEDULED.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 StopCrawlerSchedule for usage and error information.
+// API operation StartCrawlerSchedule for usage and error information.
//
// Returned Error Codes:
// * ErrCodeEntityNotFoundException "EntityNotFoundException"
// A specified entity does not exist
//
-// * ErrCodeSchedulerNotRunningException "SchedulerNotRunningException"
-// The specified scheduler is not running.
+// * ErrCodeSchedulerRunningException "SchedulerRunningException"
+// The specified scheduler is already running.
//
// * ErrCodeSchedulerTransitioningException "SchedulerTransitioningException"
// The specified scheduler is transitioning.
//
+// * ErrCodeNoScheduleException "NoScheduleException"
+// There is no applicable schedule.
+//
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopCrawlerSchedule
-func (c *Glue) StopCrawlerSchedule(input *StopCrawlerScheduleInput) (*StopCrawlerScheduleOutput, error) {
- req, out := c.StopCrawlerScheduleRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartCrawlerSchedule
+func (c *Glue) StartCrawlerSchedule(input *StartCrawlerScheduleInput) (*StartCrawlerScheduleOutput, error) {
+ req, out := c.StartCrawlerScheduleRequest(input)
return out, req.Send()
}
-// StopCrawlerScheduleWithContext is the same as StopCrawlerSchedule with the addition of
+// StartCrawlerScheduleWithContext is the same as StartCrawlerSchedule with the addition of
// the ability to pass a context and additional request options.
//
-// See StopCrawlerSchedule for details on how to use this API operation.
+// See StartCrawlerSchedule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) StopCrawlerScheduleWithContext(ctx aws.Context, input *StopCrawlerScheduleInput, opts ...request.Option) (*StopCrawlerScheduleOutput, error) {
- req, out := c.StopCrawlerScheduleRequest(input)
+func (c *Glue) StartCrawlerScheduleWithContext(ctx aws.Context, input *StartCrawlerScheduleInput, opts ...request.Option) (*StartCrawlerScheduleOutput, error) {
+ req, out := c.StartCrawlerScheduleRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opStopTrigger = "StopTrigger"
+const opStartJobRun = "StartJobRun"
-// StopTriggerRequest generates a "aws/request.Request" representing the
-// client's request for the StopTrigger operation. The "output" return
+// StartJobRunRequest generates a "aws/request.Request" representing the
+// client's request for the StartJobRun operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See StopTrigger for more information on using the StopTrigger
+// See StartJobRun for more information on using the StartJobRun
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the StopTriggerRequest method.
-// req, resp := client.StopTriggerRequest(params)
+// // Example sending a request using the StartJobRunRequest method.
+// req, resp := client.StartJobRunRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopTrigger
-func (c *Glue) StopTriggerRequest(input *StopTriggerInput) (req *request.Request, output *StopTriggerOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartJobRun
+func (c *Glue) StartJobRunRequest(input *StartJobRunInput) (req *request.Request, output *StartJobRunOutput) {
op := &request.Operation{
- Name: opStopTrigger,
+ Name: opStartJobRun,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &StopTriggerInput{}
+ input = &StartJobRunInput{}
}
- output = &StopTriggerOutput{}
+ output = &StartJobRunOutput{}
req = c.newRequest(op, input, output)
return
}
-// StopTrigger API operation for AWS Glue.
+// StartJobRun API operation for AWS Glue.
//
-// Stops a specified trigger.
+// Starts a job run using a job definition.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 StopTrigger for usage and error information.
+// API operation StartJobRun for usage and error information.
//
// Returned Error Codes:
// * ErrCodeInvalidInputException "InvalidInputException"
// The input provided was not valid.
//
-// * ErrCodeInternalServiceException "InternalServiceException"
-// An internal service error occurred.
-//
// * ErrCodeEntityNotFoundException "EntityNotFoundException"
// A specified entity does not exist
//
+// * ErrCodeInternalServiceException "InternalServiceException"
+// An internal service error occurred.
+//
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// * 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/StopTrigger
-func (c *Glue) StopTrigger(input *StopTriggerInput) (*StopTriggerOutput, error) {
- req, out := c.StopTriggerRequest(input)
+// * ErrCodeConcurrentRunsExceededException "ConcurrentRunsExceededException"
+// Too many jobs are being run concurrently.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartJobRun
+func (c *Glue) StartJobRun(input *StartJobRunInput) (*StartJobRunOutput, error) {
+ req, out := c.StartJobRunRequest(input)
return out, req.Send()
}
-// StopTriggerWithContext is the same as StopTrigger with the addition of
+// StartJobRunWithContext is the same as StartJobRun with the addition of
// the ability to pass a context and additional request options.
//
-// See StopTrigger for details on how to use this API operation.
+// See StartJobRun for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
-func (c *Glue) StopTriggerWithContext(ctx aws.Context, input *StopTriggerInput, opts ...request.Option) (*StopTriggerOutput, error) {
- req, out := c.StopTriggerRequest(input)
+func (c *Glue) StartJobRunWithContext(ctx aws.Context, input *StartJobRunInput, opts ...request.Option) (*StartJobRunOutput, error) {
+ req, out := c.StartJobRunRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opUpdateClassifier = "UpdateClassifier"
+const opStartTrigger = "StartTrigger"
-// UpdateClassifierRequest generates a "aws/request.Request" representing the
-// client's request for the UpdateClassifier operation. The "output" return
+// StartTriggerRequest generates a "aws/request.Request" representing the
+// client's request for the StartTrigger operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See UpdateClassifier for more information on using the UpdateClassifier
+// See StartTrigger for more information on using the StartTrigger
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the UpdateClassifierRequest method.
-// req, resp := client.UpdateClassifierRequest(params)
+// // Example sending a request using the StartTriggerRequest method.
+// req, resp := client.StartTriggerRequest(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/UpdateClassifier
-func (c *Glue) UpdateClassifierRequest(input *UpdateClassifierInput) (req *request.Request, output *UpdateClassifierOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartTrigger
+func (c *Glue) StartTriggerRequest(input *StartTriggerInput) (req *request.Request, output *StartTriggerOutput) {
op := &request.Operation{
- Name: opUpdateClassifier,
+ Name: opStartTrigger,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &UpdateClassifierInput{}
+ input = &StartTriggerInput{}
}
- output = &UpdateClassifierOutput{}
+ output = &StartTriggerOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// UpdateClassifier API operation for AWS Glue.
+// StartTrigger API operation for AWS Glue.
//
-// Modifies an existing classifier (a GrokClassifier, XMLClassifier, or JsonClassifier,
-// depending on which field is present).
+// 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
// the error.
//
// See the AWS API reference guide for AWS Glue's
-// API operation UpdateClassifier for usage and error information.
+// API operation StartTrigger for usage and error information.
//
// Returned Error Codes:
// * ErrCodeInvalidInputException "InvalidInputException"
// The input provided was not valid.
//
-// * ErrCodeVersionMismatchException "VersionMismatchException"
-// There was a version conflict.
+// * ErrCodeInternalServiceException "InternalServiceException"
+// An internal service error occurred.
//
// * ErrCodeEntityNotFoundException "EntityNotFoundException"
// A specified entity does not exist
@@ -7610,363 +8330,361 @@ func (c *Glue) UpdateClassifierRequest(input *UpdateClassifierInput) (req *reque
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateClassifier
-func (c *Glue) UpdateClassifier(input *UpdateClassifierInput) (*UpdateClassifierOutput, error) {
- req, out := c.UpdateClassifierRequest(input)
+// * ErrCodeResourceNumberLimitExceededException "ResourceNumberLimitExceededException"
+// A resource numerical limit was exceeded.
+//
+// * ErrCodeConcurrentRunsExceededException "ConcurrentRunsExceededException"
+// Too many jobs are being run concurrently.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartTrigger
+func (c *Glue) StartTrigger(input *StartTriggerInput) (*StartTriggerOutput, error) {
+ req, out := c.StartTriggerRequest(input)
return out, req.Send()
}
-// UpdateClassifierWithContext is the same as UpdateClassifier with the addition of
+// StartTriggerWithContext is the same as StartTrigger with the addition of
// the ability to pass a context and additional request options.
//
-// See UpdateClassifier for details on how to use this API operation.
+// See StartTrigger for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) UpdateClassifierWithContext(ctx aws.Context, input *UpdateClassifierInput, opts ...request.Option) (*UpdateClassifierOutput, error) {
- req, out := c.UpdateClassifierRequest(input)
+func (c *Glue) StartTriggerWithContext(ctx aws.Context, input *StartTriggerInput, opts ...request.Option) (*StartTriggerOutput, error) {
+ req, out := c.StartTriggerRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opUpdateConnection = "UpdateConnection"
+const opStopCrawler = "StopCrawler"
-// UpdateConnectionRequest generates a "aws/request.Request" representing the
-// client's request for the UpdateConnection operation. The "output" return
+// StopCrawlerRequest generates a "aws/request.Request" representing the
+// client's request for the StopCrawler operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See UpdateConnection for more information on using the UpdateConnection
+// See StopCrawler for more information on using the StopCrawler
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the UpdateConnectionRequest method.
-// req, resp := client.UpdateConnectionRequest(params)
+// // Example sending a request using the StopCrawlerRequest method.
+// req, resp := client.StopCrawlerRequest(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/UpdateConnection
-func (c *Glue) UpdateConnectionRequest(input *UpdateConnectionInput) (req *request.Request, output *UpdateConnectionOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopCrawler
+func (c *Glue) StopCrawlerRequest(input *StopCrawlerInput) (req *request.Request, output *StopCrawlerOutput) {
op := &request.Operation{
- Name: opUpdateConnection,
+ Name: opStopCrawler,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &UpdateConnectionInput{}
+ input = &StopCrawlerInput{}
}
- output = &UpdateConnectionOutput{}
+ output = &StopCrawlerOutput{}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// UpdateConnection API operation for AWS Glue.
+// StopCrawler API operation for AWS Glue.
//
-// Updates a connection definition in the Data Catalog.
+// If the specified crawler is running, stops the crawl.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 UpdateConnection for usage and error information.
+// API operation StopCrawler for usage and error information.
//
// Returned Error Codes:
-// * ErrCodeInvalidInputException "InvalidInputException"
-// The input provided was not valid.
-//
// * ErrCodeEntityNotFoundException "EntityNotFoundException"
// A specified entity does not exist
//
-// * ErrCodeOperationTimeoutException "OperationTimeoutException"
-// The operation timed out.
+// * ErrCodeCrawlerNotRunningException "CrawlerNotRunningException"
+// The specified crawler is not running.
//
-// * ErrCodeInvalidInputException "InvalidInputException"
-// The input provided was not valid.
+// * ErrCodeCrawlerStoppingException "CrawlerStoppingException"
+// The specified crawler is stopping.
//
-// * ErrCodeEncryptionException "GlueEncryptionException"
-// An encryption operation failed.
+// * ErrCodeOperationTimeoutException "OperationTimeoutException"
+// The operation timed out.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateConnection
-func (c *Glue) UpdateConnection(input *UpdateConnectionInput) (*UpdateConnectionOutput, error) {
- req, out := c.UpdateConnectionRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopCrawler
+func (c *Glue) StopCrawler(input *StopCrawlerInput) (*StopCrawlerOutput, error) {
+ req, out := c.StopCrawlerRequest(input)
return out, req.Send()
}
-// UpdateConnectionWithContext is the same as UpdateConnection with the addition of
+// StopCrawlerWithContext is the same as StopCrawler with the addition of
// the ability to pass a context and additional request options.
//
-// See UpdateConnection for details on how to use this API operation.
+// See StopCrawler for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) UpdateConnectionWithContext(ctx aws.Context, input *UpdateConnectionInput, opts ...request.Option) (*UpdateConnectionOutput, error) {
- req, out := c.UpdateConnectionRequest(input)
+func (c *Glue) StopCrawlerWithContext(ctx aws.Context, input *StopCrawlerInput, opts ...request.Option) (*StopCrawlerOutput, error) {
+ req, out := c.StopCrawlerRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opUpdateCrawler = "UpdateCrawler"
+const opStopCrawlerSchedule = "StopCrawlerSchedule"
-// UpdateCrawlerRequest generates a "aws/request.Request" representing the
-// client's request for the UpdateCrawler operation. The "output" return
+// StopCrawlerScheduleRequest generates a "aws/request.Request" representing the
+// client's request for the StopCrawlerSchedule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See UpdateCrawler for more information on using the UpdateCrawler
+// See StopCrawlerSchedule for more information on using the StopCrawlerSchedule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the UpdateCrawlerRequest method.
-// req, resp := client.UpdateCrawlerRequest(params)
+// // Example sending a request using the StopCrawlerScheduleRequest method.
+// req, resp := client.StopCrawlerScheduleRequest(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/UpdateCrawler
-func (c *Glue) UpdateCrawlerRequest(input *UpdateCrawlerInput) (req *request.Request, output *UpdateCrawlerOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopCrawlerSchedule
+func (c *Glue) StopCrawlerScheduleRequest(input *StopCrawlerScheduleInput) (req *request.Request, output *StopCrawlerScheduleOutput) {
op := &request.Operation{
- Name: opUpdateCrawler,
+ Name: opStopCrawlerSchedule,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &UpdateCrawlerInput{}
+ input = &StopCrawlerScheduleInput{}
}
- output = &UpdateCrawlerOutput{}
+ output = &StopCrawlerScheduleOutput{}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// UpdateCrawler API operation for AWS Glue.
+// StopCrawlerSchedule API operation for AWS Glue.
//
-// Updates a crawler. If a crawler is running, you must stop it using StopCrawler
-// before updating it.
+// Sets the schedule state of the specified crawler to NOT_SCHEDULED, but does
+// not stop the crawler if it is already running.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 UpdateCrawler for usage and error information.
+// API operation StopCrawlerSchedule for usage and error information.
//
// Returned Error Codes:
-// * ErrCodeInvalidInputException "InvalidInputException"
-// The input provided was not valid.
-//
-// * ErrCodeVersionMismatchException "VersionMismatchException"
-// There was a version conflict.
-//
// * ErrCodeEntityNotFoundException "EntityNotFoundException"
// A specified entity does not exist
//
-// * ErrCodeCrawlerRunningException "CrawlerRunningException"
-// The operation cannot be performed because the crawler is already running.
+// * ErrCodeSchedulerNotRunningException "SchedulerNotRunningException"
+// The specified scheduler is not running.
+//
+// * ErrCodeSchedulerTransitioningException "SchedulerTransitioningException"
+// The specified scheduler is transitioning.
//
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateCrawler
-func (c *Glue) UpdateCrawler(input *UpdateCrawlerInput) (*UpdateCrawlerOutput, error) {
- req, out := c.UpdateCrawlerRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopCrawlerSchedule
+func (c *Glue) StopCrawlerSchedule(input *StopCrawlerScheduleInput) (*StopCrawlerScheduleOutput, error) {
+ req, out := c.StopCrawlerScheduleRequest(input)
return out, req.Send()
}
-// UpdateCrawlerWithContext is the same as UpdateCrawler with the addition of
+// StopCrawlerScheduleWithContext is the same as StopCrawlerSchedule with the addition of
// the ability to pass a context and additional request options.
//
-// See UpdateCrawler for details on how to use this API operation.
+// See StopCrawlerSchedule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) UpdateCrawlerWithContext(ctx aws.Context, input *UpdateCrawlerInput, opts ...request.Option) (*UpdateCrawlerOutput, error) {
- req, out := c.UpdateCrawlerRequest(input)
+func (c *Glue) StopCrawlerScheduleWithContext(ctx aws.Context, input *StopCrawlerScheduleInput, opts ...request.Option) (*StopCrawlerScheduleOutput, error) {
+ req, out := c.StopCrawlerScheduleRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opUpdateCrawlerSchedule = "UpdateCrawlerSchedule"
+const opStopTrigger = "StopTrigger"
-// UpdateCrawlerScheduleRequest generates a "aws/request.Request" representing the
-// client's request for the UpdateCrawlerSchedule operation. The "output" return
+// StopTriggerRequest generates a "aws/request.Request" representing the
+// client's request for the StopTrigger operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See UpdateCrawlerSchedule for more information on using the UpdateCrawlerSchedule
+// See StopTrigger for more information on using the StopTrigger
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the UpdateCrawlerScheduleRequest method.
-// req, resp := client.UpdateCrawlerScheduleRequest(params)
+// // Example sending a request using the StopTriggerRequest method.
+// req, resp := client.StopTriggerRequest(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/UpdateCrawlerSchedule
-func (c *Glue) UpdateCrawlerScheduleRequest(input *UpdateCrawlerScheduleInput) (req *request.Request, output *UpdateCrawlerScheduleOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopTrigger
+func (c *Glue) StopTriggerRequest(input *StopTriggerInput) (req *request.Request, output *StopTriggerOutput) {
op := &request.Operation{
- Name: opUpdateCrawlerSchedule,
+ Name: opStopTrigger,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &UpdateCrawlerScheduleInput{}
+ input = &StopTriggerInput{}
}
- output = &UpdateCrawlerScheduleOutput{}
+ output = &StopTriggerOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// UpdateCrawlerSchedule API operation for AWS Glue.
+// StopTrigger API operation for AWS Glue.
//
-// Updates the schedule of a crawler using a cron expression.
+// Stops a specified trigger.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 UpdateCrawlerSchedule for usage and error information.
+// API operation StopTrigger for usage and error information.
//
// Returned Error Codes:
-// * ErrCodeEntityNotFoundException "EntityNotFoundException"
-// A specified entity does not exist
-//
// * ErrCodeInvalidInputException "InvalidInputException"
// The input provided was not valid.
//
-// * ErrCodeVersionMismatchException "VersionMismatchException"
-// There was a version conflict.
+// * ErrCodeInternalServiceException "InternalServiceException"
+// An internal service error occurred.
//
-// * ErrCodeSchedulerTransitioningException "SchedulerTransitioningException"
-// The specified scheduler is transitioning.
+// * ErrCodeEntityNotFoundException "EntityNotFoundException"
+// A specified entity does not exist
//
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateCrawlerSchedule
-func (c *Glue) UpdateCrawlerSchedule(input *UpdateCrawlerScheduleInput) (*UpdateCrawlerScheduleOutput, error) {
- req, out := c.UpdateCrawlerScheduleRequest(input)
+// * 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)
return out, req.Send()
}
-// UpdateCrawlerScheduleWithContext is the same as UpdateCrawlerSchedule with the addition of
+// StopTriggerWithContext is the same as StopTrigger with the addition of
// the ability to pass a context and additional request options.
//
-// See UpdateCrawlerSchedule for details on how to use this API operation.
+// See StopTrigger for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) UpdateCrawlerScheduleWithContext(ctx aws.Context, input *UpdateCrawlerScheduleInput, opts ...request.Option) (*UpdateCrawlerScheduleOutput, error) {
- req, out := c.UpdateCrawlerScheduleRequest(input)
+func (c *Glue) StopTriggerWithContext(ctx aws.Context, input *StopTriggerInput, opts ...request.Option) (*StopTriggerOutput, error) {
+ req, out := c.StopTriggerRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opUpdateDatabase = "UpdateDatabase"
+const opTagResource = "TagResource"
-// UpdateDatabaseRequest generates a "aws/request.Request" representing the
-// client's request for the UpdateDatabase operation. The "output" return
+// TagResourceRequest generates a "aws/request.Request" representing the
+// client's request for the TagResource operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See UpdateDatabase for more information on using the UpdateDatabase
+// 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 UpdateDatabaseRequest method.
-// req, resp := client.UpdateDatabaseRequest(params)
+// // 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/glue-2017-03-31/UpdateDatabase
-func (c *Glue) UpdateDatabaseRequest(input *UpdateDatabaseInput) (req *request.Request, output *UpdateDatabaseOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/TagResource
+func (c *Glue) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
op := &request.Operation{
- Name: opUpdateDatabase,
+ Name: opTagResource,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &UpdateDatabaseInput{}
+ input = &TagResourceInput{}
}
- output = &UpdateDatabaseOutput{}
+ output = &TagResourceOutput{}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// UpdateDatabase API operation for AWS Glue.
+// TagResource API operation for AWS Glue.
//
-// Updates an existing database definition in a Data Catalog.
+// Adds tags to a resource. A tag is a label you can assign to an AWS resource.
+// In AWS Glue, you can tag only certain resources. For information about what
+// resources you can tag, see AWS Tags in AWS Glue (http://docs.aws.amazon.com/glue/latest/dg/monitor-tags.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 AWS Glue's
-// API operation UpdateDatabase for usage and error information.
+// API operation TagResource for usage and error information.
//
// Returned Error Codes:
-// * ErrCodeEntityNotFoundException "EntityNotFoundException"
-// A specified entity does not exist
-//
// * ErrCodeInvalidInputException "InvalidInputException"
// The input provided was not valid.
//
@@ -7976,88 +8694,88 @@ func (c *Glue) UpdateDatabaseRequest(input *UpdateDatabaseInput) (req *request.R
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// * ErrCodeEncryptionException "GlueEncryptionException"
-// An encryption operation failed.
+// * ErrCodeEntityNotFoundException "EntityNotFoundException"
+// A specified entity does not exist
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateDatabase
-func (c *Glue) UpdateDatabase(input *UpdateDatabaseInput) (*UpdateDatabaseOutput, error) {
- req, out := c.UpdateDatabaseRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/TagResource
+func (c *Glue) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
+ req, out := c.TagResourceRequest(input)
return out, req.Send()
}
-// UpdateDatabaseWithContext is the same as UpdateDatabase with the addition of
+// TagResourceWithContext is the same as TagResource with the addition of
// the ability to pass a context and additional request options.
//
-// See UpdateDatabase for details on how to use this API operation.
+// 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 *Glue) UpdateDatabaseWithContext(ctx aws.Context, input *UpdateDatabaseInput, opts ...request.Option) (*UpdateDatabaseOutput, error) {
- req, out := c.UpdateDatabaseRequest(input)
+func (c *Glue) 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 opUpdateDevEndpoint = "UpdateDevEndpoint"
+const opUntagResource = "UntagResource"
-// UpdateDevEndpointRequest generates a "aws/request.Request" representing the
-// client's request for the UpdateDevEndpoint operation. The "output" return
+// UntagResourceRequest generates a "aws/request.Request" representing the
+// client's request for the UntagResource operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See UpdateDevEndpoint for more information on using the UpdateDevEndpoint
+// 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 UpdateDevEndpointRequest method.
-// req, resp := client.UpdateDevEndpointRequest(params)
+// // 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/glue-2017-03-31/UpdateDevEndpoint
-func (c *Glue) UpdateDevEndpointRequest(input *UpdateDevEndpointInput) (req *request.Request, output *UpdateDevEndpointOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UntagResource
+func (c *Glue) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
op := &request.Operation{
- Name: opUpdateDevEndpoint,
+ Name: opUntagResource,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &UpdateDevEndpointInput{}
+ input = &UntagResourceInput{}
}
- output = &UpdateDevEndpointOutput{}
+ output = &UntagResourceOutput{}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// UpdateDevEndpoint API operation for AWS Glue.
+// UntagResource API operation for AWS Glue.
//
-// Updates a specified DevEndpoint.
+// Removes tags from a resource.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue's
-// API operation UpdateDevEndpoint for usage and error information.
+// API operation UntagResource 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.
@@ -8065,459 +8783,451 @@ func (c *Glue) UpdateDevEndpointRequest(input *UpdateDevEndpointInput) (req *req
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
-// * ErrCodeInvalidInputException "InvalidInputException"
-// The input provided was not valid.
-//
-// * ErrCodeValidationException "ValidationException"
-// A value could not be validated.
+// * ErrCodeEntityNotFoundException "EntityNotFoundException"
+// A specified entity does not exist
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateDevEndpoint
-func (c *Glue) UpdateDevEndpoint(input *UpdateDevEndpointInput) (*UpdateDevEndpointOutput, error) {
- req, out := c.UpdateDevEndpointRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UntagResource
+func (c *Glue) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
+ req, out := c.UntagResourceRequest(input)
return out, req.Send()
}
-// UpdateDevEndpointWithContext is the same as UpdateDevEndpoint with the addition of
+// UntagResourceWithContext is the same as UntagResource with the addition of
// the ability to pass a context and additional request options.
//
-// See UpdateDevEndpoint for details on how to use this API operation.
+// 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 *Glue) UpdateDevEndpointWithContext(ctx aws.Context, input *UpdateDevEndpointInput, opts ...request.Option) (*UpdateDevEndpointOutput, error) {
- req, out := c.UpdateDevEndpointRequest(input)
+func (c *Glue) 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 opUpdateJob = "UpdateJob"
+const opUpdateClassifier = "UpdateClassifier"
-// UpdateJobRequest generates a "aws/request.Request" representing the
-// client's request for the UpdateJob operation. The "output" return
+// UpdateClassifierRequest generates a "aws/request.Request" representing the
+// client's request for the UpdateClassifier operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See UpdateJob for more information on using the UpdateJob
+// See UpdateClassifier for more information on using the UpdateClassifier
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the UpdateJobRequest method.
-// req, resp := client.UpdateJobRequest(params)
+// // Example sending a request using the UpdateClassifierRequest method.
+// req, resp := client.UpdateClassifierRequest(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/UpdateJob
-func (c *Glue) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, output *UpdateJobOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateClassifier
+func (c *Glue) UpdateClassifierRequest(input *UpdateClassifierInput) (req *request.Request, output *UpdateClassifierOutput) {
op := &request.Operation{
- Name: opUpdateJob,
+ Name: opUpdateClassifier,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &UpdateJobInput{}
+ input = &UpdateClassifierInput{}
}
- output = &UpdateJobOutput{}
+ output = &UpdateClassifierOutput{}
req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// UpdateJob API operation for AWS Glue.
+// UpdateClassifier API operation for AWS Glue.
//
-// Updates an existing job definition.
+// 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
// the error.
//
// See the AWS API reference guide for AWS Glue's
-// API operation UpdateJob for usage and error information.
+// API operation UpdateClassifier for usage and error information.
//
// Returned Error Codes:
// * ErrCodeInvalidInputException "InvalidInputException"
// The input provided was not valid.
//
+// * ErrCodeVersionMismatchException "VersionMismatchException"
+// There was a version conflict.
+//
// * ErrCodeEntityNotFoundException "EntityNotFoundException"
// A specified entity does not exist
//
-// * ErrCodeInternalServiceException "InternalServiceException"
-// An internal service error occurred.
-//
// * 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)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateClassifier
+func (c *Glue) UpdateClassifier(input *UpdateClassifierInput) (*UpdateClassifierOutput, error) {
+ req, out := c.UpdateClassifierRequest(input)
return out, req.Send()
}
-// UpdateJobWithContext is the same as UpdateJob with the addition of
+// UpdateClassifierWithContext is the same as UpdateClassifier with the addition of
// the ability to pass a context and additional request options.
//
-// See UpdateJob for details on how to use this API operation.
+// See UpdateClassifier for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) UpdateJobWithContext(ctx aws.Context, input *UpdateJobInput, opts ...request.Option) (*UpdateJobOutput, error) {
- req, out := c.UpdateJobRequest(input)
+func (c *Glue) UpdateClassifierWithContext(ctx aws.Context, input *UpdateClassifierInput, opts ...request.Option) (*UpdateClassifierOutput, error) {
+ req, out := c.UpdateClassifierRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opUpdatePartition = "UpdatePartition"
+const opUpdateConnection = "UpdateConnection"
-// UpdatePartitionRequest generates a "aws/request.Request" representing the
-// client's request for the UpdatePartition operation. The "output" return
+// UpdateConnectionRequest generates a "aws/request.Request" representing the
+// client's request for the UpdateConnection operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See UpdatePartition for more information on using the UpdatePartition
+// See UpdateConnection for more information on using the UpdateConnection
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the UpdatePartitionRequest method.
-// req, resp := client.UpdatePartitionRequest(params)
+// // Example sending a request using the UpdateConnectionRequest method.
+// req, resp := client.UpdateConnectionRequest(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/UpdatePartition
-func (c *Glue) UpdatePartitionRequest(input *UpdatePartitionInput) (req *request.Request, output *UpdatePartitionOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateConnection
+func (c *Glue) UpdateConnectionRequest(input *UpdateConnectionInput) (req *request.Request, output *UpdateConnectionOutput) {
op := &request.Operation{
- Name: opUpdatePartition,
+ Name: opUpdateConnection,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &UpdatePartitionInput{}
+ input = &UpdateConnectionInput{}
}
- output = &UpdatePartitionOutput{}
+ output = &UpdateConnectionOutput{}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// UpdatePartition API operation for AWS Glue.
+// UpdateConnection API operation for AWS Glue.
//
-// Updates a partition.
+// Updates a connection definition in the Data Catalog.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue's
-// API operation UpdatePartition for usage and error information.
+// API operation UpdateConnection 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.
+// * ErrCodeEntityNotFoundException "EntityNotFoundException"
+// A specified entity does not exist
//
// * ErrCodeOperationTimeoutException "OperationTimeoutException"
// The operation timed out.
//
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
+//
// * ErrCodeEncryptionException "GlueEncryptionException"
// An encryption operation failed.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdatePartition
-func (c *Glue) UpdatePartition(input *UpdatePartitionInput) (*UpdatePartitionOutput, error) {
- req, out := c.UpdatePartitionRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateConnection
+func (c *Glue) UpdateConnection(input *UpdateConnectionInput) (*UpdateConnectionOutput, error) {
+ req, out := c.UpdateConnectionRequest(input)
return out, req.Send()
}
-// UpdatePartitionWithContext is the same as UpdatePartition with the addition of
+// UpdateConnectionWithContext is the same as UpdateConnection with the addition of
// the ability to pass a context and additional request options.
//
-// See UpdatePartition for details on how to use this API operation.
+// See UpdateConnection for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) UpdatePartitionWithContext(ctx aws.Context, input *UpdatePartitionInput, opts ...request.Option) (*UpdatePartitionOutput, error) {
- req, out := c.UpdatePartitionRequest(input)
+func (c *Glue) UpdateConnectionWithContext(ctx aws.Context, input *UpdateConnectionInput, opts ...request.Option) (*UpdateConnectionOutput, error) {
+ req, out := c.UpdateConnectionRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opUpdateTable = "UpdateTable"
+const opUpdateCrawler = "UpdateCrawler"
-// UpdateTableRequest generates a "aws/request.Request" representing the
-// client's request for the UpdateTable operation. The "output" return
+// UpdateCrawlerRequest generates a "aws/request.Request" representing the
+// client's request for the UpdateCrawler operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See UpdateTable for more information on using the UpdateTable
+// See UpdateCrawler for more information on using the UpdateCrawler
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the UpdateTableRequest method.
-// req, resp := client.UpdateTableRequest(params)
+// // Example sending a request using the UpdateCrawlerRequest method.
+// req, resp := client.UpdateCrawlerRequest(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/UpdateTable
-func (c *Glue) UpdateTableRequest(input *UpdateTableInput) (req *request.Request, output *UpdateTableOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateCrawler
+func (c *Glue) UpdateCrawlerRequest(input *UpdateCrawlerInput) (req *request.Request, output *UpdateCrawlerOutput) {
op := &request.Operation{
- Name: opUpdateTable,
+ Name: opUpdateCrawler,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &UpdateTableInput{}
+ input = &UpdateCrawlerInput{}
}
- output = &UpdateTableOutput{}
+ output = &UpdateCrawlerOutput{}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// UpdateTable API operation for AWS Glue.
+// UpdateCrawler API operation for AWS Glue.
//
-// Updates a metadata table in the Data Catalog.
+// Updates a crawler. If a crawler is running, you must stop it using StopCrawler
+// before updating it.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 UpdateTable for usage and error information.
+// API operation UpdateCrawler 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.
+// * ErrCodeVersionMismatchException "VersionMismatchException"
+// There was a version conflict.
//
-// * ErrCodeConcurrentModificationException "ConcurrentModificationException"
-// Two processes are trying to modify a resource simultaneously.
+// * ErrCodeEntityNotFoundException "EntityNotFoundException"
+// A specified entity does not exist
//
-// * ErrCodeResourceNumberLimitExceededException "ResourceNumberLimitExceededException"
-// A resource numerical limit was exceeded.
+// * ErrCodeCrawlerRunningException "CrawlerRunningException"
+// The operation cannot be performed because the crawler is already running.
//
-// * ErrCodeEncryptionException "GlueEncryptionException"
-// An encryption operation failed.
+// * ErrCodeOperationTimeoutException "OperationTimeoutException"
+// The operation timed out.
//
-// 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)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateCrawler
+func (c *Glue) UpdateCrawler(input *UpdateCrawlerInput) (*UpdateCrawlerOutput, error) {
+ req, out := c.UpdateCrawlerRequest(input)
return out, req.Send()
}
-// UpdateTableWithContext is the same as UpdateTable with the addition of
+// UpdateCrawlerWithContext is the same as UpdateCrawler with the addition of
// the ability to pass a context and additional request options.
//
-// See UpdateTable for details on how to use this API operation.
+// See UpdateCrawler for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) UpdateTableWithContext(ctx aws.Context, input *UpdateTableInput, opts ...request.Option) (*UpdateTableOutput, error) {
- req, out := c.UpdateTableRequest(input)
+func (c *Glue) UpdateCrawlerWithContext(ctx aws.Context, input *UpdateCrawlerInput, opts ...request.Option) (*UpdateCrawlerOutput, error) {
+ req, out := c.UpdateCrawlerRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opUpdateTrigger = "UpdateTrigger"
+const opUpdateCrawlerSchedule = "UpdateCrawlerSchedule"
-// UpdateTriggerRequest generates a "aws/request.Request" representing the
-// client's request for the UpdateTrigger operation. The "output" return
+// UpdateCrawlerScheduleRequest generates a "aws/request.Request" representing the
+// client's request for the UpdateCrawlerSchedule operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See UpdateTrigger for more information on using the UpdateTrigger
+// See UpdateCrawlerSchedule for more information on using the UpdateCrawlerSchedule
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the UpdateTriggerRequest method.
-// req, resp := client.UpdateTriggerRequest(params)
+// // Example sending a request using the UpdateCrawlerScheduleRequest method.
+// req, resp := client.UpdateCrawlerScheduleRequest(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/UpdateTrigger
-func (c *Glue) UpdateTriggerRequest(input *UpdateTriggerInput) (req *request.Request, output *UpdateTriggerOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateCrawlerSchedule
+func (c *Glue) UpdateCrawlerScheduleRequest(input *UpdateCrawlerScheduleInput) (req *request.Request, output *UpdateCrawlerScheduleOutput) {
op := &request.Operation{
- Name: opUpdateTrigger,
+ Name: opUpdateCrawlerSchedule,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &UpdateTriggerInput{}
+ input = &UpdateCrawlerScheduleInput{}
}
- output = &UpdateTriggerOutput{}
+ output = &UpdateCrawlerScheduleOutput{}
req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// UpdateTrigger API operation for AWS Glue.
+// UpdateCrawlerSchedule API operation for AWS Glue.
//
-// Updates a trigger definition.
+// Updates the schedule of a crawler using a cron expression.
//
// Returns awserr.Error for service API and SDK errors. Use runtime 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 UpdateTrigger for usage and error information.
+// API operation UpdateCrawlerSchedule 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.
+// * ErrCodeVersionMismatchException "VersionMismatchException"
+// There was a version conflict.
//
-// * ErrCodeEntityNotFoundException "EntityNotFoundException"
-// A specified entity does not exist
+// * ErrCodeSchedulerTransitioningException "SchedulerTransitioningException"
+// The specified scheduler is transitioning.
//
// * 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)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateCrawlerSchedule
+func (c *Glue) UpdateCrawlerSchedule(input *UpdateCrawlerScheduleInput) (*UpdateCrawlerScheduleOutput, error) {
+ req, out := c.UpdateCrawlerScheduleRequest(input)
return out, req.Send()
}
-// UpdateTriggerWithContext is the same as UpdateTrigger with the addition of
+// UpdateCrawlerScheduleWithContext is the same as UpdateCrawlerSchedule with the addition of
// the ability to pass a context and additional request options.
//
-// See UpdateTrigger for details on how to use this API operation.
+// See UpdateCrawlerSchedule for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) UpdateTriggerWithContext(ctx aws.Context, input *UpdateTriggerInput, opts ...request.Option) (*UpdateTriggerOutput, error) {
- req, out := c.UpdateTriggerRequest(input)
+func (c *Glue) UpdateCrawlerScheduleWithContext(ctx aws.Context, input *UpdateCrawlerScheduleInput, opts ...request.Option) (*UpdateCrawlerScheduleOutput, error) {
+ req, out := c.UpdateCrawlerScheduleRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-const opUpdateUserDefinedFunction = "UpdateUserDefinedFunction"
+const opUpdateDatabase = "UpdateDatabase"
-// UpdateUserDefinedFunctionRequest generates a "aws/request.Request" representing the
-// client's request for the UpdateUserDefinedFunction operation. The "output" return
+// UpdateDatabaseRequest generates a "aws/request.Request" representing the
+// client's request for the UpdateDatabase operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
-// See UpdateUserDefinedFunction for more information on using the UpdateUserDefinedFunction
+// See UpdateDatabase for more information on using the UpdateDatabase
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//
-// // Example sending a request using the UpdateUserDefinedFunctionRequest method.
-// req, resp := client.UpdateUserDefinedFunctionRequest(params)
+// // Example sending a request using the UpdateDatabaseRequest method.
+// req, resp := client.UpdateDatabaseRequest(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/UpdateUserDefinedFunction
-func (c *Glue) UpdateUserDefinedFunctionRequest(input *UpdateUserDefinedFunctionInput) (req *request.Request, output *UpdateUserDefinedFunctionOutput) {
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateDatabase
+func (c *Glue) UpdateDatabaseRequest(input *UpdateDatabaseInput) (req *request.Request, output *UpdateDatabaseOutput) {
op := &request.Operation{
- Name: opUpdateUserDefinedFunction,
+ Name: opUpdateDatabase,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
- input = &UpdateUserDefinedFunctionInput{}
+ input = &UpdateDatabaseInput{}
}
- output = &UpdateUserDefinedFunctionOutput{}
+ output = &UpdateDatabaseOutput{}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
-// UpdateUserDefinedFunction API operation for AWS Glue.
+// UpdateDatabase API operation for AWS Glue.
//
-// Updates an existing function definition in the Data Catalog.
+// Updates an existing database definition in a Data Catalog.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue's
-// API operation UpdateUserDefinedFunction for usage and error information.
+// API operation UpdateDatabase for usage and error information.
//
// Returned Error Codes:
// * ErrCodeEntityNotFoundException "EntityNotFoundException"
@@ -8535,162 +9245,1133 @@ func (c *Glue) UpdateUserDefinedFunctionRequest(input *UpdateUserDefinedFunction
// * ErrCodeEncryptionException "GlueEncryptionException"
// An encryption operation failed.
//
-// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateUserDefinedFunction
-func (c *Glue) UpdateUserDefinedFunction(input *UpdateUserDefinedFunctionInput) (*UpdateUserDefinedFunctionOutput, error) {
- req, out := c.UpdateUserDefinedFunctionRequest(input)
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateDatabase
+func (c *Glue) UpdateDatabase(input *UpdateDatabaseInput) (*UpdateDatabaseOutput, error) {
+ req, out := c.UpdateDatabaseRequest(input)
return out, req.Send()
}
-// UpdateUserDefinedFunctionWithContext is the same as UpdateUserDefinedFunction with the addition of
+// UpdateDatabaseWithContext is the same as UpdateDatabase with the addition of
// the ability to pass a context and additional request options.
//
-// See UpdateUserDefinedFunction for details on how to use this API operation.
+// See UpdateDatabase for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the 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) UpdateUserDefinedFunctionWithContext(ctx aws.Context, input *UpdateUserDefinedFunctionInput, opts ...request.Option) (*UpdateUserDefinedFunctionOutput, error) {
- req, out := c.UpdateUserDefinedFunctionRequest(input)
+func (c *Glue) UpdateDatabaseWithContext(ctx aws.Context, input *UpdateDatabaseInput, opts ...request.Option) (*UpdateDatabaseOutput, error) {
+ req, out := c.UpdateDatabaseRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
-// Defines an action to be initiated by a trigger.
-type Action struct {
- _ struct{} `type:"structure"`
-
- // Arguments to be passed to the job run.
- //
- // 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-etl-glue-arguments.html)
- // topic in the developer guide.
- Arguments map[string]*string `type:"map"`
-
- // The name of a job to be executed.
- JobName *string `min:"1" type:"string"`
+const opUpdateDevEndpoint = "UpdateDevEndpoint"
- // Specifies configuration properties of a job run notification.
- NotificationProperty *NotificationProperty `type:"structure"`
+// UpdateDevEndpointRequest generates a "aws/request.Request" representing the
+// client's request for the UpdateDevEndpoint operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See UpdateDevEndpoint for more information on using the UpdateDevEndpoint
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the UpdateDevEndpointRequest method.
+// req, resp := client.UpdateDevEndpointRequest(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/UpdateDevEndpoint
+func (c *Glue) UpdateDevEndpointRequest(input *UpdateDevEndpointInput) (req *request.Request, output *UpdateDevEndpointOutput) {
+ op := &request.Operation{
+ Name: opUpdateDevEndpoint,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
- // The name of the SecurityConfiguration structure to be used with this action.
- SecurityConfiguration *string `min:"1" type:"string"`
+ if input == nil {
+ input = &UpdateDevEndpointInput{}
+ }
- // The JobRun timeout in minutes. This is the maximum time that a job run can
- // consume resources before it is terminated and enters TIMEOUT status. The
- // default is 2,880 minutes (48 hours). This overrides the timeout value set
- // in the parent job.
- Timeout *int64 `min:"1" type:"integer"`
+ output = &UpdateDevEndpointOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
}
-// String returns the string representation
-func (s Action) String() string {
- return awsutil.Prettify(s)
+// UpdateDevEndpoint API operation for AWS Glue.
+//
+// Updates a specified DevEndpoint.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 UpdateDevEndpoint for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeEntityNotFoundException "EntityNotFoundException"
+// A specified entity does not exist
+//
+// * ErrCodeInternalServiceException "InternalServiceException"
+// An internal service error occurred.
+//
+// * ErrCodeOperationTimeoutException "OperationTimeoutException"
+// The operation timed out.
+//
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
+//
+// * ErrCodeValidationException "ValidationException"
+// A value could not be validated.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateDevEndpoint
+func (c *Glue) UpdateDevEndpoint(input *UpdateDevEndpointInput) (*UpdateDevEndpointOutput, error) {
+ req, out := c.UpdateDevEndpointRequest(input)
+ return out, req.Send()
}
-// GoString returns the string representation
-func (s Action) GoString() string {
- return s.String()
+// UpdateDevEndpointWithContext is the same as UpdateDevEndpoint with the addition of
+// the ability to pass a context and additional request options.
+//
+// See UpdateDevEndpoint for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) UpdateDevEndpointWithContext(ctx aws.Context, input *UpdateDevEndpointInput, opts ...request.Option) (*UpdateDevEndpointOutput, error) {
+ req, out := c.UpdateDevEndpointRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *Action) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "Action"}
- if s.JobName != nil && len(*s.JobName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
- }
- if s.SecurityConfiguration != nil && len(*s.SecurityConfiguration) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecurityConfiguration", 1))
- }
- if s.Timeout != nil && *s.Timeout < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Timeout", 1))
- }
- if s.NotificationProperty != nil {
- if err := s.NotificationProperty.Validate(); err != nil {
- invalidParams.AddNested("NotificationProperty", err.(request.ErrInvalidParams))
- }
- }
+const opUpdateJob = "UpdateJob"
- if invalidParams.Len() > 0 {
- return invalidParams
+// UpdateJobRequest generates a "aws/request.Request" representing the
+// client's request for the UpdateJob operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See UpdateJob for more information on using the UpdateJob
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the UpdateJobRequest method.
+// req, resp := client.UpdateJobRequest(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/UpdateJob
+func (c *Glue) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, output *UpdateJobOutput) {
+ op := &request.Operation{
+ Name: opUpdateJob,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
}
- return nil
-}
-// SetArguments sets the Arguments field's value.
-func (s *Action) SetArguments(v map[string]*string) *Action {
- s.Arguments = v
- return s
-}
+ if input == nil {
+ input = &UpdateJobInput{}
+ }
-// SetJobName sets the JobName field's value.
-func (s *Action) SetJobName(v string) *Action {
- s.JobName = &v
- return s
+ output = &UpdateJobOutput{}
+ req = c.newRequest(op, input, output)
+ return
}
-// SetNotificationProperty sets the NotificationProperty field's value.
-func (s *Action) SetNotificationProperty(v *NotificationProperty) *Action {
- s.NotificationProperty = v
- return s
+// UpdateJob API operation for AWS Glue.
+//
+// Updates an existing job definition.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 UpdateJob for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
+//
+// * ErrCodeEntityNotFoundException "EntityNotFoundException"
+// A specified entity does not exist
+//
+// * ErrCodeInternalServiceException "InternalServiceException"
+// An internal service error occurred.
+//
+// * 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)
+ return out, req.Send()
}
-// SetSecurityConfiguration sets the SecurityConfiguration field's value.
-func (s *Action) SetSecurityConfiguration(v string) *Action {
- s.SecurityConfiguration = &v
- return s
+// UpdateJobWithContext is the same as UpdateJob with the addition of
+// the ability to pass a context and additional request options.
+//
+// See UpdateJob for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) UpdateJobWithContext(ctx aws.Context, input *UpdateJobInput, opts ...request.Option) (*UpdateJobOutput, error) {
+ req, out := c.UpdateJobRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opUpdatePartition = "UpdatePartition"
+
+// UpdatePartitionRequest generates a "aws/request.Request" representing the
+// client's request for the UpdatePartition operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See UpdatePartition for more information on using the UpdatePartition
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the UpdatePartitionRequest method.
+// req, resp := client.UpdatePartitionRequest(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/UpdatePartition
+func (c *Glue) UpdatePartitionRequest(input *UpdatePartitionInput) (req *request.Request, output *UpdatePartitionOutput) {
+ op := &request.Operation{
+ Name: opUpdatePartition,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &UpdatePartitionInput{}
+ }
+
+ output = &UpdatePartitionOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// UpdatePartition API operation for AWS Glue.
+//
+// Updates a partition.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 UpdatePartition 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.
+//
+// * ErrCodeEncryptionException "GlueEncryptionException"
+// An encryption operation failed.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdatePartition
+func (c *Glue) UpdatePartition(input *UpdatePartitionInput) (*UpdatePartitionOutput, error) {
+ req, out := c.UpdatePartitionRequest(input)
+ return out, req.Send()
+}
+
+// UpdatePartitionWithContext is the same as UpdatePartition with the addition of
+// the ability to pass a context and additional request options.
+//
+// See UpdatePartition for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) UpdatePartitionWithContext(ctx aws.Context, input *UpdatePartitionInput, opts ...request.Option) (*UpdatePartitionOutput, error) {
+ req, out := c.UpdatePartitionRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opUpdateTable = "UpdateTable"
+
+// UpdateTableRequest generates a "aws/request.Request" representing the
+// client's request for the UpdateTable operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See UpdateTable for more information on using the UpdateTable
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the UpdateTableRequest method.
+// req, resp := client.UpdateTableRequest(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/UpdateTable
+func (c *Glue) UpdateTableRequest(input *UpdateTableInput) (req *request.Request, output *UpdateTableOutput) {
+ op := &request.Operation{
+ Name: opUpdateTable,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &UpdateTableInput{}
+ }
+
+ output = &UpdateTableOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// UpdateTable API operation for AWS Glue.
+//
+// Updates a metadata table in the Data Catalog.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for AWS Glue's
+// API operation UpdateTable 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.
+//
+// * ErrCodeConcurrentModificationException "ConcurrentModificationException"
+// Two processes are trying to modify a resource simultaneously.
+//
+// * ErrCodeResourceNumberLimitExceededException "ResourceNumberLimitExceededException"
+// A resource numerical limit was exceeded.
+//
+// * ErrCodeEncryptionException "GlueEncryptionException"
+// An encryption operation failed.
+//
+// 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)
+ return out, req.Send()
+}
+
+// UpdateTableWithContext is the same as UpdateTable with the addition of
+// the ability to pass a context and additional request options.
+//
+// See UpdateTable for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) UpdateTableWithContext(ctx aws.Context, input *UpdateTableInput, opts ...request.Option) (*UpdateTableOutput, error) {
+ req, out := c.UpdateTableRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opUpdateTrigger = "UpdateTrigger"
+
+// UpdateTriggerRequest generates a "aws/request.Request" representing the
+// client's request for the UpdateTrigger operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See UpdateTrigger for more information on using the UpdateTrigger
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the UpdateTriggerRequest method.
+// req, resp := client.UpdateTriggerRequest(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/UpdateTrigger
+func (c *Glue) UpdateTriggerRequest(input *UpdateTriggerInput) (req *request.Request, output *UpdateTriggerOutput) {
+ op := &request.Operation{
+ Name: opUpdateTrigger,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &UpdateTriggerInput{}
+ }
+
+ output = &UpdateTriggerOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// UpdateTrigger API operation for AWS Glue.
+//
+// Updates a trigger definition.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 UpdateTrigger for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInvalidInputException "InvalidInputException"
+// The input provided was not valid.
+//
+// * ErrCodeInternalServiceException "InternalServiceException"
+// An internal service error occurred.
+//
+// * ErrCodeEntityNotFoundException "EntityNotFoundException"
+// A specified entity does not exist
+//
+// * 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)
+ return out, req.Send()
+}
+
+// UpdateTriggerWithContext is the same as UpdateTrigger with the addition of
+// the ability to pass a context and additional request options.
+//
+// See UpdateTrigger for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) UpdateTriggerWithContext(ctx aws.Context, input *UpdateTriggerInput, opts ...request.Option) (*UpdateTriggerOutput, error) {
+ req, out := c.UpdateTriggerRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opUpdateUserDefinedFunction = "UpdateUserDefinedFunction"
+
+// UpdateUserDefinedFunctionRequest generates a "aws/request.Request" representing the
+// client's request for the UpdateUserDefinedFunction operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See UpdateUserDefinedFunction for more information on using the UpdateUserDefinedFunction
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the UpdateUserDefinedFunctionRequest method.
+// req, resp := client.UpdateUserDefinedFunctionRequest(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/UpdateUserDefinedFunction
+func (c *Glue) UpdateUserDefinedFunctionRequest(input *UpdateUserDefinedFunctionInput) (req *request.Request, output *UpdateUserDefinedFunctionOutput) {
+ op := &request.Operation{
+ Name: opUpdateUserDefinedFunction,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &UpdateUserDefinedFunctionInput{}
+ }
+
+ output = &UpdateUserDefinedFunctionOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// UpdateUserDefinedFunction API operation for AWS Glue.
+//
+// Updates an existing function definition in the Data Catalog.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for AWS Glue's
+// API operation UpdateUserDefinedFunction 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.
+//
+// * ErrCodeEncryptionException "GlueEncryptionException"
+// An encryption operation failed.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateUserDefinedFunction
+func (c *Glue) UpdateUserDefinedFunction(input *UpdateUserDefinedFunctionInput) (*UpdateUserDefinedFunctionOutput, error) {
+ req, out := c.UpdateUserDefinedFunctionRequest(input)
+ return out, req.Send()
+}
+
+// UpdateUserDefinedFunctionWithContext is the same as UpdateUserDefinedFunction with the addition of
+// the ability to pass a context and additional request options.
+//
+// See UpdateUserDefinedFunction for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) UpdateUserDefinedFunctionWithContext(ctx aws.Context, input *UpdateUserDefinedFunctionInput, opts ...request.Option) (*UpdateUserDefinedFunctionOutput, error) {
+ req, out := c.UpdateUserDefinedFunctionRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+// Defines an action to be initiated by a trigger.
+type Action struct {
+ _ struct{} `type:"structure"`
+
+ // The job arguments used when this trigger fires. For this job run, they replace
+ // the default arguments set in the job definition 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-etl-glue-arguments.html)
+ // topic in the developer guide.
+ Arguments map[string]*string `type:"map"`
+
+ // The name of a job to be executed.
+ JobName *string `min:"1" type:"string"`
+
+ // Specifies configuration properties of a job run notification.
+ NotificationProperty *NotificationProperty `type:"structure"`
+
+ // The name of the SecurityConfiguration structure to be used with this action.
+ SecurityConfiguration *string `min:"1" type:"string"`
+
+ // The JobRun timeout in minutes. This is the maximum time that a job run can
+ // consume resources before it is terminated and enters TIMEOUT status. The
+ // default is 2,880 minutes (48 hours). This overrides the timeout value set
+ // in the parent job.
+ Timeout *int64 `min:"1" type:"integer"`
+}
+
+// String returns the string representation
+func (s Action) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s Action) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *Action) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "Action"}
+ if s.JobName != nil && len(*s.JobName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
+ }
+ if s.SecurityConfiguration != nil && len(*s.SecurityConfiguration) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("SecurityConfiguration", 1))
+ }
+ if s.Timeout != nil && *s.Timeout < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("Timeout", 1))
+ }
+ if s.NotificationProperty != nil {
+ if err := s.NotificationProperty.Validate(); err != nil {
+ invalidParams.AddNested("NotificationProperty", err.(request.ErrInvalidParams))
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetArguments sets the Arguments field's value.
+func (s *Action) SetArguments(v map[string]*string) *Action {
+ s.Arguments = v
+ return s
+}
+
+// SetJobName sets the JobName field's value.
+func (s *Action) SetJobName(v string) *Action {
+ s.JobName = &v
+ return s
+}
+
+// SetNotificationProperty sets the NotificationProperty field's value.
+func (s *Action) SetNotificationProperty(v *NotificationProperty) *Action {
+ s.NotificationProperty = v
+ return s
+}
+
+// SetSecurityConfiguration sets the SecurityConfiguration field's value.
+func (s *Action) SetSecurityConfiguration(v string) *Action {
+ s.SecurityConfiguration = &v
+ return s
+}
+
+// SetTimeout sets the Timeout field's value.
+func (s *Action) SetTimeout(v int64) *Action {
+ s.Timeout = &v
+ return s
+}
+
+type BatchCreatePartitionInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the catalog in which the partion is to be created. Currently, this
+ // should be the AWS account ID.
+ CatalogId *string `min:"1" type:"string"`
+
+ // The name of the metadata database in which the partition is to be created.
+ //
+ // DatabaseName is a required field
+ DatabaseName *string `min:"1" type:"string" required:"true"`
+
+ // A list of PartitionInput structures that define the partitions to be created.
+ //
+ // PartitionInputList is a required field
+ PartitionInputList []*PartitionInput `type:"list" required:"true"`
+
+ // The name of the metadata table in which the partition is to be created.
+ //
+ // TableName is a required field
+ TableName *string `min:"1" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s BatchCreatePartitionInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchCreatePartitionInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *BatchCreatePartitionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BatchCreatePartitionInput"}
+ 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.PartitionInputList == nil {
+ invalidParams.Add(request.NewErrParamRequired("PartitionInputList"))
+ }
+ 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.PartitionInputList != nil {
+ for i, v := range s.PartitionInputList {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PartitionInputList", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCatalogId sets the CatalogId field's value.
+func (s *BatchCreatePartitionInput) SetCatalogId(v string) *BatchCreatePartitionInput {
+ s.CatalogId = &v
+ return s
+}
+
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *BatchCreatePartitionInput) SetDatabaseName(v string) *BatchCreatePartitionInput {
+ s.DatabaseName = &v
+ return s
+}
+
+// SetPartitionInputList sets the PartitionInputList field's value.
+func (s *BatchCreatePartitionInput) SetPartitionInputList(v []*PartitionInput) *BatchCreatePartitionInput {
+ s.PartitionInputList = v
+ return s
+}
+
+// SetTableName sets the TableName field's value.
+func (s *BatchCreatePartitionInput) SetTableName(v string) *BatchCreatePartitionInput {
+ s.TableName = &v
+ return s
+}
+
+type BatchCreatePartitionOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Errors encountered when trying to create the requested partitions.
+ Errors []*PartitionError `type:"list"`
+}
+
+// String returns the string representation
+func (s BatchCreatePartitionOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchCreatePartitionOutput) GoString() string {
+ return s.String()
+}
+
+// SetErrors sets the Errors field's value.
+func (s *BatchCreatePartitionOutput) SetErrors(v []*PartitionError) *BatchCreatePartitionOutput {
+ s.Errors = v
+ return s
+}
+
+type BatchDeleteConnectionInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Data Catalog in which the connections reside. If none is provided,
+ // the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
+
+ // A list of names of the connections to delete.
+ //
+ // ConnectionNameList is a required field
+ ConnectionNameList []*string `type:"list" required:"true"`
+}
+
+// String returns the string representation
+func (s BatchDeleteConnectionInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchDeleteConnectionInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *BatchDeleteConnectionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BatchDeleteConnectionInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
+ }
+ if s.ConnectionNameList == nil {
+ invalidParams.Add(request.NewErrParamRequired("ConnectionNameList"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCatalogId sets the CatalogId field's value.
+func (s *BatchDeleteConnectionInput) SetCatalogId(v string) *BatchDeleteConnectionInput {
+ s.CatalogId = &v
+ return s
+}
+
+// SetConnectionNameList sets the ConnectionNameList field's value.
+func (s *BatchDeleteConnectionInput) SetConnectionNameList(v []*string) *BatchDeleteConnectionInput {
+ s.ConnectionNameList = v
+ return s
+}
+
+type BatchDeleteConnectionOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A map of the names of connections that were not successfully deleted to error
+ // details.
+ Errors map[string]*ErrorDetail `type:"map"`
+
+ // A list of names of the connection definitions that were successfully deleted.
+ Succeeded []*string `type:"list"`
}
-// SetTimeout sets the Timeout field's value.
-func (s *Action) SetTimeout(v int64) *Action {
- s.Timeout = &v
+// String returns the string representation
+func (s BatchDeleteConnectionOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchDeleteConnectionOutput) GoString() string {
+ return s.String()
+}
+
+// SetErrors sets the Errors field's value.
+func (s *BatchDeleteConnectionOutput) SetErrors(v map[string]*ErrorDetail) *BatchDeleteConnectionOutput {
+ s.Errors = v
return s
}
-type BatchCreatePartitionInput struct {
+// SetSucceeded sets the Succeeded field's value.
+func (s *BatchDeleteConnectionOutput) SetSucceeded(v []*string) *BatchDeleteConnectionOutput {
+ s.Succeeded = v
+ return s
+}
+
+type BatchDeletePartitionInput struct {
_ struct{} `type:"structure"`
- // The ID of the catalog in which the partion is to be created. Currently, this
- // should be the AWS account ID.
+ // The ID of the Data Catalog where the partition to be deleted resides. If
+ // none is supplied, the AWS account ID is used by default.
CatalogId *string `min:"1" type:"string"`
- // The name of the metadata database in which the partition is to be created.
+ // The name of the catalog database in which the table in question resides.
//
// DatabaseName is a required field
DatabaseName *string `min:"1" type:"string" required:"true"`
- // A list of PartitionInput structures that define the partitions to be created.
+ // A list of PartitionInput structures that define the partitions to be deleted.
//
- // PartitionInputList is a required field
- PartitionInputList []*PartitionInput `type:"list" required:"true"`
+ // PartitionsToDelete is a required field
+ PartitionsToDelete []*PartitionValueList `type:"list" required:"true"`
- // The name of the metadata table in which the partition is to be created.
+ // The name of the table where the partitions to be deleted is located.
//
// TableName is a required field
TableName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s BatchCreatePartitionInput) String() string {
+func (s BatchDeletePartitionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchCreatePartitionInput) GoString() string {
+func (s BatchDeletePartitionInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *BatchDeletePartitionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BatchDeletePartitionInput"}
+ 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.PartitionsToDelete == nil {
+ invalidParams.Add(request.NewErrParamRequired("PartitionsToDelete"))
+ }
+ 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.PartitionsToDelete != nil {
+ for i, v := range s.PartitionsToDelete {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PartitionsToDelete", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCatalogId sets the CatalogId field's value.
+func (s *BatchDeletePartitionInput) SetCatalogId(v string) *BatchDeletePartitionInput {
+ s.CatalogId = &v
+ return s
+}
+
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *BatchDeletePartitionInput) SetDatabaseName(v string) *BatchDeletePartitionInput {
+ s.DatabaseName = &v
+ return s
+}
+
+// SetPartitionsToDelete sets the PartitionsToDelete field's value.
+func (s *BatchDeletePartitionInput) SetPartitionsToDelete(v []*PartitionValueList) *BatchDeletePartitionInput {
+ s.PartitionsToDelete = v
+ return s
+}
+
+// SetTableName sets the TableName field's value.
+func (s *BatchDeletePartitionInput) SetTableName(v string) *BatchDeletePartitionInput {
+ s.TableName = &v
+ return s
+}
+
+type BatchDeletePartitionOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Errors encountered when trying to delete the requested partitions.
+ Errors []*PartitionError `type:"list"`
+}
+
+// String returns the string representation
+func (s BatchDeletePartitionOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchDeletePartitionOutput) GoString() string {
+ return s.String()
+}
+
+// SetErrors sets the Errors field's value.
+func (s *BatchDeletePartitionOutput) SetErrors(v []*PartitionError) *BatchDeletePartitionOutput {
+ s.Errors = v
+ return s
+}
+
+type BatchDeleteTableInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Data Catalog where the table resides. If none is supplied,
+ // 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. For Hive
+ // compatibility, this name is entirely lowercase.
+ //
+ // DatabaseName is a required field
+ DatabaseName *string `min:"1" type:"string" required:"true"`
+
+ // A list of the table to delete.
+ //
+ // TablesToDelete is a required field
+ TablesToDelete []*string `type:"list" required:"true"`
+}
+
+// String returns the string representation
+func (s BatchDeleteTableInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchDeleteTableInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *BatchDeleteTableInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BatchDeleteTableInput"}
+ 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.TablesToDelete == nil {
+ invalidParams.Add(request.NewErrParamRequired("TablesToDelete"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCatalogId sets the CatalogId field's value.
+func (s *BatchDeleteTableInput) SetCatalogId(v string) *BatchDeleteTableInput {
+ s.CatalogId = &v
+ return s
+}
+
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *BatchDeleteTableInput) SetDatabaseName(v string) *BatchDeleteTableInput {
+ s.DatabaseName = &v
+ return s
+}
+
+// SetTablesToDelete sets the TablesToDelete field's value.
+func (s *BatchDeleteTableInput) SetTablesToDelete(v []*string) *BatchDeleteTableInput {
+ s.TablesToDelete = v
+ return s
+}
+
+type BatchDeleteTableOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A list of errors encountered in attempting to delete the specified tables.
+ Errors []*TableError `type:"list"`
+}
+
+// String returns the string representation
+func (s BatchDeleteTableOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchDeleteTableOutput) GoString() string {
+ return s.String()
+}
+
+// SetErrors sets the Errors field's value.
+func (s *BatchDeleteTableOutput) SetErrors(v []*TableError) *BatchDeleteTableOutput {
+ s.Errors = v
+ return s
+}
+
+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. A VersionId is a string representation
+ // of an integer. Each version is incremented by 1.
+ //
+ // 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 *BatchCreatePartitionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "BatchCreatePartitionInput"}
+func (s *BatchDeleteTableVersionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BatchDeleteTableVersionInput"}
if s.CatalogId != nil && len(*s.CatalogId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
@@ -8700,24 +10381,14 @@ func (s *BatchCreatePartitionInput) Validate() error {
if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
}
- if s.PartitionInputList == nil {
- invalidParams.Add(request.NewErrParamRequired("PartitionInputList"))
- }
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.PartitionInputList != nil {
- for i, v := range s.PartitionInputList {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PartitionInputList", i), err.(request.ErrInvalidParams))
- }
- }
+ if s.VersionIds == nil {
+ invalidParams.Add(request.NewErrParamRequired("VersionIds"))
}
if invalidParams.Len() > 0 {
@@ -8727,83 +10398,151 @@ func (s *BatchCreatePartitionInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *BatchCreatePartitionInput) SetCatalogId(v string) *BatchCreatePartitionInput {
+func (s *BatchDeleteTableVersionInput) SetCatalogId(v string) *BatchDeleteTableVersionInput {
s.CatalogId = &v
return s
}
// SetDatabaseName sets the DatabaseName field's value.
-func (s *BatchCreatePartitionInput) SetDatabaseName(v string) *BatchCreatePartitionInput {
+func (s *BatchDeleteTableVersionInput) SetDatabaseName(v string) *BatchDeleteTableVersionInput {
s.DatabaseName = &v
return s
}
-// SetPartitionInputList sets the PartitionInputList field's value.
-func (s *BatchCreatePartitionInput) SetPartitionInputList(v []*PartitionInput) *BatchCreatePartitionInput {
- s.PartitionInputList = v
+// SetTableName sets the TableName field's value.
+func (s *BatchDeleteTableVersionInput) SetTableName(v string) *BatchDeleteTableVersionInput {
+ s.TableName = &v
return s
}
-// SetTableName sets the TableName field's value.
-func (s *BatchCreatePartitionInput) SetTableName(v string) *BatchCreatePartitionInput {
- s.TableName = &v
+// SetVersionIds sets the VersionIds field's value.
+func (s *BatchDeleteTableVersionInput) SetVersionIds(v []*string) *BatchDeleteTableVersionInput {
+ s.VersionIds = v
return s
}
-type BatchCreatePartitionOutput struct {
+type BatchDeleteTableVersionOutput struct {
_ struct{} `type:"structure"`
- // Errors encountered when trying to create the requested partitions.
- Errors []*PartitionError `type:"list"`
+ // A list of errors encountered while trying to delete the specified table versions.
+ Errors []*TableVersionError `type:"list"`
}
// String returns the string representation
-func (s BatchCreatePartitionOutput) String() string {
+func (s BatchDeleteTableVersionOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchCreatePartitionOutput) GoString() string {
+func (s BatchDeleteTableVersionOutput) GoString() string {
return s.String()
}
// SetErrors sets the Errors field's value.
-func (s *BatchCreatePartitionOutput) SetErrors(v []*PartitionError) *BatchCreatePartitionOutput {
+func (s *BatchDeleteTableVersionOutput) SetErrors(v []*TableVersionError) *BatchDeleteTableVersionOutput {
s.Errors = v
return s
}
-type BatchDeleteConnectionInput struct {
+type BatchGetCrawlersInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog in which the connections reside. If none is supplied,
- // the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+ // A list of crawler names, which may be the names returned from the ListCrawlers
+ // operation.
+ //
+ // CrawlerNames is a required field
+ CrawlerNames []*string `type:"list" required:"true"`
+}
- // A list of names of the connections to delete.
+// String returns the string representation
+func (s BatchGetCrawlersInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchGetCrawlersInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *BatchGetCrawlersInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BatchGetCrawlersInput"}
+ if s.CrawlerNames == nil {
+ invalidParams.Add(request.NewErrParamRequired("CrawlerNames"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCrawlerNames sets the CrawlerNames field's value.
+func (s *BatchGetCrawlersInput) SetCrawlerNames(v []*string) *BatchGetCrawlersInput {
+ s.CrawlerNames = v
+ return s
+}
+
+type BatchGetCrawlersOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A list of crawler definitions.
+ Crawlers []*Crawler `type:"list"`
+
+ // A list of crawlers not found.
+ CrawlersNotFound []*string `type:"list"`
+}
+
+// String returns the string representation
+func (s BatchGetCrawlersOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchGetCrawlersOutput) GoString() string {
+ return s.String()
+}
+
+// SetCrawlers sets the Crawlers field's value.
+func (s *BatchGetCrawlersOutput) SetCrawlers(v []*Crawler) *BatchGetCrawlersOutput {
+ s.Crawlers = v
+ return s
+}
+
+// SetCrawlersNotFound sets the CrawlersNotFound field's value.
+func (s *BatchGetCrawlersOutput) SetCrawlersNotFound(v []*string) *BatchGetCrawlersOutput {
+ s.CrawlersNotFound = v
+ return s
+}
+
+type BatchGetDevEndpointsInput struct {
+ _ struct{} `type:"structure"`
+
+ // The list of DevEndpoint names, which may be the names returned from the ListDevEndpoint
+ // operation.
//
- // ConnectionNameList is a required field
- ConnectionNameList []*string `type:"list" required:"true"`
+ // DevEndpointNames is a required field
+ DevEndpointNames []*string `min:"1" type:"list" required:"true"`
}
// String returns the string representation
-func (s BatchDeleteConnectionInput) String() string {
+func (s BatchGetDevEndpointsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchDeleteConnectionInput) GoString() string {
+func (s BatchGetDevEndpointsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *BatchDeleteConnectionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "BatchDeleteConnectionInput"}
- if s.CatalogId != nil && len(*s.CatalogId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
+func (s *BatchGetDevEndpointsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BatchGetDevEndpointsInput"}
+ if s.DevEndpointNames == nil {
+ invalidParams.Add(request.NewErrParamRequired("DevEndpointNames"))
}
- if s.ConnectionNameList == nil {
- invalidParams.Add(request.NewErrParamRequired("ConnectionNameList"))
+ if s.DevEndpointNames != nil && len(s.DevEndpointNames) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("DevEndpointNames", 1))
}
if invalidParams.Len() > 0 {
@@ -8812,87 +10551,150 @@ func (s *BatchDeleteConnectionInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *BatchDeleteConnectionInput) SetCatalogId(v string) *BatchDeleteConnectionInput {
- s.CatalogId = &v
+// SetDevEndpointNames sets the DevEndpointNames field's value.
+func (s *BatchGetDevEndpointsInput) SetDevEndpointNames(v []*string) *BatchGetDevEndpointsInput {
+ s.DevEndpointNames = v
return s
}
-// SetConnectionNameList sets the ConnectionNameList field's value.
-func (s *BatchDeleteConnectionInput) SetConnectionNameList(v []*string) *BatchDeleteConnectionInput {
- s.ConnectionNameList = v
+type BatchGetDevEndpointsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A list of DevEndpoint definitions.
+ DevEndpoints []*DevEndpoint `type:"list"`
+
+ // A list of DevEndpoints not found.
+ DevEndpointsNotFound []*string `min:"1" type:"list"`
+}
+
+// String returns the string representation
+func (s BatchGetDevEndpointsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchGetDevEndpointsOutput) GoString() string {
+ return s.String()
+}
+
+// SetDevEndpoints sets the DevEndpoints field's value.
+func (s *BatchGetDevEndpointsOutput) SetDevEndpoints(v []*DevEndpoint) *BatchGetDevEndpointsOutput {
+ s.DevEndpoints = v
return s
}
-type BatchDeleteConnectionOutput struct {
+// SetDevEndpointsNotFound sets the DevEndpointsNotFound field's value.
+func (s *BatchGetDevEndpointsOutput) SetDevEndpointsNotFound(v []*string) *BatchGetDevEndpointsOutput {
+ s.DevEndpointsNotFound = v
+ return s
+}
+
+type BatchGetJobsInput struct {
_ struct{} `type:"structure"`
- // A map of the names of connections that were not successfully deleted to error
- // details.
- Errors map[string]*ErrorDetail `type:"map"`
+ // A list of job names, which may be the names returned from the ListJobs operation.
+ //
+ // JobNames is a required field
+ JobNames []*string `type:"list" required:"true"`
+}
- // A list of names of the connection definitions that were successfully deleted.
- Succeeded []*string `type:"list"`
+// String returns the string representation
+func (s BatchGetJobsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchGetJobsInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *BatchGetJobsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BatchGetJobsInput"}
+ if s.JobNames == nil {
+ invalidParams.Add(request.NewErrParamRequired("JobNames"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetJobNames sets the JobNames field's value.
+func (s *BatchGetJobsInput) SetJobNames(v []*string) *BatchGetJobsInput {
+ s.JobNames = v
+ return s
+}
+
+type BatchGetJobsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A list of job definitions.
+ Jobs []*Job `type:"list"`
+
+ // A list of names of jobs not found.
+ JobsNotFound []*string `type:"list"`
}
// String returns the string representation
-func (s BatchDeleteConnectionOutput) String() string {
+func (s BatchGetJobsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchDeleteConnectionOutput) GoString() string {
+func (s BatchGetJobsOutput) GoString() string {
return s.String()
}
-// SetErrors sets the Errors field's value.
-func (s *BatchDeleteConnectionOutput) SetErrors(v map[string]*ErrorDetail) *BatchDeleteConnectionOutput {
- s.Errors = v
+// SetJobs sets the Jobs field's value.
+func (s *BatchGetJobsOutput) SetJobs(v []*Job) *BatchGetJobsOutput {
+ s.Jobs = v
return s
}
-// SetSucceeded sets the Succeeded field's value.
-func (s *BatchDeleteConnectionOutput) SetSucceeded(v []*string) *BatchDeleteConnectionOutput {
- s.Succeeded = v
+// SetJobsNotFound sets the JobsNotFound field's value.
+func (s *BatchGetJobsOutput) SetJobsNotFound(v []*string) *BatchGetJobsOutput {
+ s.JobsNotFound = v
return s
}
-type BatchDeletePartitionInput struct {
+type BatchGetPartitionInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog where the partition to be deleted resides. If
- // none is supplied, the AWS account ID is used by default.
+ // The ID of the Data Catalog where the partitions in question reside. If none
+ // is supplied, the AWS account ID is used by default.
CatalogId *string `min:"1" type:"string"`
- // The name of the catalog database in which the table in question resides.
+ // The name of the catalog database where the partitions reside.
//
// DatabaseName is a required field
DatabaseName *string `min:"1" type:"string" required:"true"`
- // A list of PartitionInput structures that define the partitions to be deleted.
+ // A list of partition values identifying the partitions to retrieve.
//
- // PartitionsToDelete is a required field
- PartitionsToDelete []*PartitionValueList `type:"list" required:"true"`
+ // PartitionsToGet is a required field
+ PartitionsToGet []*PartitionValueList `type:"list" required:"true"`
- // The name of the table where the partitions to be deleted is located.
+ // The name of the partitions' table.
//
// TableName is a required field
TableName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s BatchDeletePartitionInput) String() string {
+func (s BatchGetPartitionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchDeletePartitionInput) GoString() string {
+func (s BatchGetPartitionInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *BatchDeletePartitionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "BatchDeletePartitionInput"}
+func (s *BatchGetPartitionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BatchGetPartitionInput"}
if s.CatalogId != nil && len(*s.CatalogId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
@@ -8902,8 +10704,8 @@ func (s *BatchDeletePartitionInput) Validate() error {
if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
}
- if s.PartitionsToDelete == nil {
- invalidParams.Add(request.NewErrParamRequired("PartitionsToDelete"))
+ if s.PartitionsToGet == nil {
+ invalidParams.Add(request.NewErrParamRequired("PartitionsToGet"))
}
if s.TableName == nil {
invalidParams.Add(request.NewErrParamRequired("TableName"))
@@ -8911,13 +10713,13 @@ func (s *BatchDeletePartitionInput) Validate() error {
if s.TableName != nil && len(*s.TableName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
}
- if s.PartitionsToDelete != nil {
- for i, v := range s.PartitionsToDelete {
+ if s.PartitionsToGet != nil {
+ for i, v := range s.PartitionsToGet {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PartitionsToDelete", i), err.(request.ErrInvalidParams))
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PartitionsToGet", i), err.(request.ErrInvalidParams))
}
}
}
@@ -8929,95 +10731,87 @@ func (s *BatchDeletePartitionInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *BatchDeletePartitionInput) SetCatalogId(v string) *BatchDeletePartitionInput {
+func (s *BatchGetPartitionInput) SetCatalogId(v string) *BatchGetPartitionInput {
s.CatalogId = &v
return s
}
// SetDatabaseName sets the DatabaseName field's value.
-func (s *BatchDeletePartitionInput) SetDatabaseName(v string) *BatchDeletePartitionInput {
+func (s *BatchGetPartitionInput) SetDatabaseName(v string) *BatchGetPartitionInput {
s.DatabaseName = &v
return s
}
-// SetPartitionsToDelete sets the PartitionsToDelete field's value.
-func (s *BatchDeletePartitionInput) SetPartitionsToDelete(v []*PartitionValueList) *BatchDeletePartitionInput {
- s.PartitionsToDelete = v
+// SetPartitionsToGet sets the PartitionsToGet field's value.
+func (s *BatchGetPartitionInput) SetPartitionsToGet(v []*PartitionValueList) *BatchGetPartitionInput {
+ s.PartitionsToGet = v
return s
}
// SetTableName sets the TableName field's value.
-func (s *BatchDeletePartitionInput) SetTableName(v string) *BatchDeletePartitionInput {
+func (s *BatchGetPartitionInput) SetTableName(v string) *BatchGetPartitionInput {
s.TableName = &v
return s
}
-type BatchDeletePartitionOutput struct {
+type BatchGetPartitionOutput struct {
_ struct{} `type:"structure"`
- // Errors encountered when trying to delete the requested partitions.
- Errors []*PartitionError `type:"list"`
+ // A list of the requested partitions.
+ Partitions []*Partition `type:"list"`
+
+ // A list of the partition values in the request for which partions were not
+ // returned.
+ UnprocessedKeys []*PartitionValueList `type:"list"`
}
// String returns the string representation
-func (s BatchDeletePartitionOutput) String() string {
+func (s BatchGetPartitionOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchDeletePartitionOutput) GoString() string {
+func (s BatchGetPartitionOutput) GoString() string {
return s.String()
}
-// SetErrors sets the Errors field's value.
-func (s *BatchDeletePartitionOutput) SetErrors(v []*PartitionError) *BatchDeletePartitionOutput {
- s.Errors = v
+// SetPartitions sets the Partitions field's value.
+func (s *BatchGetPartitionOutput) SetPartitions(v []*Partition) *BatchGetPartitionOutput {
+ s.Partitions = v
return s
}
-type BatchDeleteTableInput struct {
- _ struct{} `type:"structure"`
-
- // The ID of the Data Catalog where the table resides. If none is supplied,
- // 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. For Hive
- // compatibility, this name is entirely lowercase.
- //
- // DatabaseName is a required field
- DatabaseName *string `min:"1" type:"string" required:"true"`
+// SetUnprocessedKeys sets the UnprocessedKeys field's value.
+func (s *BatchGetPartitionOutput) SetUnprocessedKeys(v []*PartitionValueList) *BatchGetPartitionOutput {
+ s.UnprocessedKeys = v
+ return s
+}
- // A list of the table to delete.
+type BatchGetTriggersInput struct {
+ _ struct{} `type:"structure"`
+
+ // A list of trigger names, which may be the names returned from the ListTriggers
+ // operation.
//
- // TablesToDelete is a required field
- TablesToDelete []*string `type:"list" required:"true"`
+ // TriggerNames is a required field
+ TriggerNames []*string `type:"list" required:"true"`
}
// String returns the string representation
-func (s BatchDeleteTableInput) String() string {
+func (s BatchGetTriggersInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchDeleteTableInput) GoString() string {
+func (s BatchGetTriggersInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *BatchDeleteTableInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "BatchDeleteTableInput"}
- 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.TablesToDelete == nil {
- invalidParams.Add(request.NewErrParamRequired("TablesToDelete"))
+func (s *BatchGetTriggersInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BatchGetTriggersInput"}
+ if s.TriggerNames == nil {
+ invalidParams.Add(request.NewErrParamRequired("TriggerNames"))
}
if invalidParams.Len() > 0 {
@@ -9026,102 +10820,124 @@ func (s *BatchDeleteTableInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *BatchDeleteTableInput) SetCatalogId(v string) *BatchDeleteTableInput {
- s.CatalogId = &v
+// SetTriggerNames sets the TriggerNames field's value.
+func (s *BatchGetTriggersInput) SetTriggerNames(v []*string) *BatchGetTriggersInput {
+ s.TriggerNames = v
return s
}
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *BatchDeleteTableInput) SetDatabaseName(v string) *BatchDeleteTableInput {
- s.DatabaseName = &v
+type BatchGetTriggersOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A list of trigger definitions.
+ Triggers []*Trigger `type:"list"`
+
+ // A list of names of triggers not found.
+ TriggersNotFound []*string `type:"list"`
+}
+
+// String returns the string representation
+func (s BatchGetTriggersOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchGetTriggersOutput) GoString() string {
+ return s.String()
+}
+
+// SetTriggers sets the Triggers field's value.
+func (s *BatchGetTriggersOutput) SetTriggers(v []*Trigger) *BatchGetTriggersOutput {
+ s.Triggers = v
return s
}
-// SetTablesToDelete sets the TablesToDelete field's value.
-func (s *BatchDeleteTableInput) SetTablesToDelete(v []*string) *BatchDeleteTableInput {
- s.TablesToDelete = v
+// SetTriggersNotFound sets the TriggersNotFound field's value.
+func (s *BatchGetTriggersOutput) SetTriggersNotFound(v []*string) *BatchGetTriggersOutput {
+ s.TriggersNotFound = v
return s
}
-type BatchDeleteTableOutput struct {
+// Records an error that occurred when attempting to stop a specified job run.
+type BatchStopJobRunError struct {
_ struct{} `type:"structure"`
- // A list of errors encountered in attempting to delete the specified tables.
- Errors []*TableError `type:"list"`
+ // Specifies details about the error that was encountered.
+ ErrorDetail *ErrorDetail `type:"structure"`
+
+ // The name of the job definition used in the job run in question.
+ JobName *string `min:"1" type:"string"`
+
+ // The JobRunId of the job run in question.
+ JobRunId *string `min:"1" type:"string"`
}
// String returns the string representation
-func (s BatchDeleteTableOutput) String() string {
+func (s BatchStopJobRunError) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchDeleteTableOutput) GoString() string {
+func (s BatchStopJobRunError) GoString() string {
return s.String()
}
-// SetErrors sets the Errors field's value.
-func (s *BatchDeleteTableOutput) SetErrors(v []*TableError) *BatchDeleteTableOutput {
- s.Errors = v
+// SetErrorDetail sets the ErrorDetail field's value.
+func (s *BatchStopJobRunError) SetErrorDetail(v *ErrorDetail) *BatchStopJobRunError {
+ s.ErrorDetail = v
return s
}
-type BatchDeleteTableVersionInput struct {
- _ struct{} `type:"structure"`
+// SetJobName sets the JobName field's value.
+func (s *BatchStopJobRunError) SetJobName(v string) *BatchStopJobRunError {
+ s.JobName = &v
+ return s
+}
- // 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"`
+// SetJobRunId sets the JobRunId field's value.
+func (s *BatchStopJobRunError) SetJobRunId(v string) *BatchStopJobRunError {
+ s.JobRunId = &v
+ return s
+}
- // 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"`
+type BatchStopJobRunInput struct {
+ _ struct{} `type:"structure"`
- // The name of the table. For Hive compatibility, this name is entirely lowercase.
+ // The name of the job definition for which to stop job runs.
//
- // TableName is a required field
- TableName *string `min:"1" type:"string" required:"true"`
+ // JobName is a required field
+ JobName *string `min:"1" type:"string" required:"true"`
- // A list of the IDs of versions to be deleted. A VersionId is a string representation
- // of an integer. Each version is incremented by 1.
+ // A list of the JobRunIds that should be stopped for that job definition.
//
- // VersionIds is a required field
- VersionIds []*string `type:"list" required:"true"`
+ // JobRunIds is a required field
+ JobRunIds []*string `min:"1" type:"list" required:"true"`
}
// String returns the string representation
-func (s BatchDeleteTableVersionInput) String() string {
+func (s BatchStopJobRunInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchDeleteTableVersionInput) GoString() string {
+func (s BatchStopJobRunInput) 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))
+func (s *BatchStopJobRunInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BatchStopJobRunInput"}
+ if s.JobName == nil {
+ invalidParams.Add(request.NewErrParamRequired("JobName"))
}
- if s.TableName == nil {
- invalidParams.Add(request.NewErrParamRequired("TableName"))
+ if s.JobName != nil && len(*s.JobName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
}
- if s.TableName != nil && len(*s.TableName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
+ if s.JobRunIds == nil {
+ invalidParams.Add(request.NewErrParamRequired("JobRunIds"))
}
- if s.VersionIds == nil {
- invalidParams.Add(request.NewErrParamRequired("VersionIds"))
+ if s.JobRunIds != nil && len(s.JobRunIds) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("JobRunIds", 1))
}
if invalidParams.Len() > 0 {
@@ -9130,261 +10946,310 @@ func (s *BatchDeleteTableVersionInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *BatchDeleteTableVersionInput) SetCatalogId(v string) *BatchDeleteTableVersionInput {
- s.CatalogId = &v
+// SetJobName sets the JobName field's value.
+func (s *BatchStopJobRunInput) SetJobName(v string) *BatchStopJobRunInput {
+ s.JobName = &v
return s
}
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *BatchDeleteTableVersionInput) SetDatabaseName(v string) *BatchDeleteTableVersionInput {
- s.DatabaseName = &v
+// SetJobRunIds sets the JobRunIds field's value.
+func (s *BatchStopJobRunInput) SetJobRunIds(v []*string) *BatchStopJobRunInput {
+ s.JobRunIds = v
return s
}
-// SetTableName sets the TableName field's value.
-func (s *BatchDeleteTableVersionInput) SetTableName(v string) *BatchDeleteTableVersionInput {
- s.TableName = &v
+type BatchStopJobRunOutput struct {
+ _ struct{} `type:"structure"`
+
+ // 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 the JobRuns that were successfully submitted for stopping.
+ SuccessfulSubmissions []*BatchStopJobRunSuccessfulSubmission `type:"list"`
+}
+
+// String returns the string representation
+func (s BatchStopJobRunOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s BatchStopJobRunOutput) GoString() string {
+ return s.String()
+}
+
+// SetErrors sets the Errors field's value.
+func (s *BatchStopJobRunOutput) SetErrors(v []*BatchStopJobRunError) *BatchStopJobRunOutput {
+ s.Errors = v
return s
}
-// SetVersionIds sets the VersionIds field's value.
-func (s *BatchDeleteTableVersionInput) SetVersionIds(v []*string) *BatchDeleteTableVersionInput {
- s.VersionIds = v
+// SetSuccessfulSubmissions sets the SuccessfulSubmissions field's value.
+func (s *BatchStopJobRunOutput) SetSuccessfulSubmissions(v []*BatchStopJobRunSuccessfulSubmission) *BatchStopJobRunOutput {
+ s.SuccessfulSubmissions = v
return s
}
-type BatchDeleteTableVersionOutput struct {
+// Records a successful request to stop a specified JobRun.
+type BatchStopJobRunSuccessfulSubmission struct {
_ struct{} `type:"structure"`
- // A list of errors encountered while trying to delete the specified table versions.
- Errors []*TableVersionError `type:"list"`
+ // The name of the job definition used in the job run that was stopped.
+ JobName *string `min:"1" type:"string"`
+
+ // The JobRunId of the job run that was stopped.
+ JobRunId *string `min:"1" type:"string"`
}
// String returns the string representation
-func (s BatchDeleteTableVersionOutput) String() string {
+func (s BatchStopJobRunSuccessfulSubmission) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchDeleteTableVersionOutput) GoString() string {
+func (s BatchStopJobRunSuccessfulSubmission) GoString() string {
return s.String()
}
-// SetErrors sets the Errors field's value.
-func (s *BatchDeleteTableVersionOutput) SetErrors(v []*TableVersionError) *BatchDeleteTableVersionOutput {
- s.Errors = v
+// SetJobName sets the JobName field's value.
+func (s *BatchStopJobRunSuccessfulSubmission) SetJobName(v string) *BatchStopJobRunSuccessfulSubmission {
+ s.JobName = &v
return s
}
-type BatchGetPartitionInput struct {
- _ struct{} `type:"structure"`
+// SetJobRunId sets the JobRunId field's value.
+func (s *BatchStopJobRunSuccessfulSubmission) SetJobRunId(v string) *BatchStopJobRunSuccessfulSubmission {
+ s.JobRunId = &v
+ return s
+}
- // The ID of the Data Catalog where the partitions in question reside. If none
- // is supplied, the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+// Specifies a table definition in the Data Catalog.
+type CatalogEntry struct {
+ _ struct{} `type:"structure"`
- // The name of the catalog database where the partitions reside.
+ // The database in which the table metadata resides.
//
// DatabaseName is a required field
DatabaseName *string `min:"1" type:"string" required:"true"`
- // A list of partition values identifying the partitions to retrieve.
- //
- // PartitionsToGet is a required field
- PartitionsToGet []*PartitionValueList `type:"list" required:"true"`
-
- // The name of the partitions' table.
+ // The name of the table in question.
//
// TableName is a required field
TableName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s BatchGetPartitionInput) String() string {
+func (s CatalogEntry) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchGetPartitionInput) GoString() string {
+func (s CatalogEntry) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *BatchGetPartitionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "BatchGetPartitionInput"}
- if s.CatalogId != nil && len(*s.CatalogId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
- }
+func (s *CatalogEntry) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CatalogEntry"}
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.PartitionsToGet == nil {
- invalidParams.Add(request.NewErrParamRequired("PartitionsToGet"))
- }
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.PartitionsToGet != nil {
- for i, v := range s.PartitionsToGet {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PartitionsToGet", i), err.(request.ErrInvalidParams))
- }
- }
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-// SetCatalogId sets the CatalogId field's value.
-func (s *BatchGetPartitionInput) SetCatalogId(v string) *BatchGetPartitionInput {
- s.CatalogId = &v
- return s
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
}
// SetDatabaseName sets the DatabaseName field's value.
-func (s *BatchGetPartitionInput) SetDatabaseName(v string) *BatchGetPartitionInput {
+func (s *CatalogEntry) SetDatabaseName(v string) *CatalogEntry {
s.DatabaseName = &v
return s
}
-// SetPartitionsToGet sets the PartitionsToGet field's value.
-func (s *BatchGetPartitionInput) SetPartitionsToGet(v []*PartitionValueList) *BatchGetPartitionInput {
- s.PartitionsToGet = v
- return s
-}
-
// SetTableName sets the TableName field's value.
-func (s *BatchGetPartitionInput) SetTableName(v string) *BatchGetPartitionInput {
+func (s *CatalogEntry) SetTableName(v string) *CatalogEntry {
s.TableName = &v
return s
}
-type BatchGetPartitionOutput struct {
+// A structure containing migration status information.
+type CatalogImportStatus struct {
_ struct{} `type:"structure"`
- // A list of the requested partitions.
- Partitions []*Partition `type:"list"`
+ // True if the migration has completed, or False otherwise.
+ ImportCompleted *bool `type:"boolean"`
- // A list of the partition values in the request for which partions were not
- // returned.
- UnprocessedKeys []*PartitionValueList `type:"list"`
+ // The time that the migration was started.
+ ImportTime *time.Time `type:"timestamp"`
+
+ // The name of the person who initiated the migration.
+ ImportedBy *string `min:"1" type:"string"`
}
// String returns the string representation
-func (s BatchGetPartitionOutput) String() string {
+func (s CatalogImportStatus) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchGetPartitionOutput) GoString() string {
+func (s CatalogImportStatus) GoString() string {
return s.String()
}
-// SetPartitions sets the Partitions field's value.
-func (s *BatchGetPartitionOutput) SetPartitions(v []*Partition) *BatchGetPartitionOutput {
- s.Partitions = v
+// SetImportCompleted sets the ImportCompleted field's value.
+func (s *CatalogImportStatus) SetImportCompleted(v bool) *CatalogImportStatus {
+ s.ImportCompleted = &v
return s
}
-// SetUnprocessedKeys sets the UnprocessedKeys field's value.
-func (s *BatchGetPartitionOutput) SetUnprocessedKeys(v []*PartitionValueList) *BatchGetPartitionOutput {
- s.UnprocessedKeys = v
+// SetImportTime sets the ImportTime field's value.
+func (s *CatalogImportStatus) SetImportTime(v time.Time) *CatalogImportStatus {
+ s.ImportTime = &v
return s
}
-// Records an error that occurred when attempting to stop a specified job run.
-type BatchStopJobRunError struct {
+// SetImportedBy sets the ImportedBy field's value.
+func (s *CatalogImportStatus) SetImportedBy(v string) *CatalogImportStatus {
+ s.ImportedBy = &v
+ return s
+}
+
+// Classifiers are triggered during a crawl task. A classifier checks whether
+// a given 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.
+//
+// You can use the standard classifiers that AWS Glue supplies, or you can write
+// your own classifiers to best categorize your data sources and specify the
+// appropriate schemas to use for them. A classifier can be a grok classifier,
+// an XML classifier, or a JSON classifier, as specified in one of the fields
+// in the Classifier object.
+type Classifier struct {
_ struct{} `type:"structure"`
- // Specifies details about the error that was encountered.
- ErrorDetail *ErrorDetail `type:"structure"`
+ // A GrokClassifier object.
+ GrokClassifier *GrokClassifier `type:"structure"`
- // The name of the job definition used in the job run in question.
- JobName *string `min:"1" type:"string"`
+ // A JsonClassifier object.
+ JsonClassifier *JsonClassifier `type:"structure"`
- // The JobRunId of the job run in question.
- JobRunId *string `min:"1" type:"string"`
+ // An XMLClassifier object.
+ XMLClassifier *XMLClassifier `type:"structure"`
}
// String returns the string representation
-func (s BatchStopJobRunError) String() string {
+func (s Classifier) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchStopJobRunError) GoString() string {
+func (s Classifier) GoString() string {
return s.String()
}
-// SetErrorDetail sets the ErrorDetail field's value.
-func (s *BatchStopJobRunError) SetErrorDetail(v *ErrorDetail) *BatchStopJobRunError {
- s.ErrorDetail = v
+// SetGrokClassifier sets the GrokClassifier field's value.
+func (s *Classifier) SetGrokClassifier(v *GrokClassifier) *Classifier {
+ s.GrokClassifier = v
return s
}
-// SetJobName sets the JobName field's value.
-func (s *BatchStopJobRunError) SetJobName(v string) *BatchStopJobRunError {
- s.JobName = &v
+// SetJsonClassifier sets the JsonClassifier field's value.
+func (s *Classifier) SetJsonClassifier(v *JsonClassifier) *Classifier {
+ s.JsonClassifier = v
return s
}
-// SetJobRunId sets the JobRunId field's value.
-func (s *BatchStopJobRunError) SetJobRunId(v string) *BatchStopJobRunError {
- s.JobRunId = &v
+// SetXMLClassifier sets the XMLClassifier field's value.
+func (s *Classifier) SetXMLClassifier(v *XMLClassifier) *Classifier {
+ s.XMLClassifier = v
return s
}
-type BatchStopJobRunInput struct {
+// Specifies how CloudWatch data should be encrypted.
+type CloudWatchEncryption struct {
_ struct{} `type:"structure"`
- // The name of the job definition for which to stop job runs.
+ // The encryption mode to use for CloudWatch data.
+ CloudWatchEncryptionMode *string `type:"string" enum:"CloudWatchEncryptionMode"`
+
+ // The AWS ARN of the KMS key to be used to encrypt the data.
+ KmsKeyArn *string `type:"string"`
+}
+
+// String returns the string representation
+func (s CloudWatchEncryption) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CloudWatchEncryption) GoString() string {
+ return s.String()
+}
+
+// SetCloudWatchEncryptionMode sets the CloudWatchEncryptionMode field's value.
+func (s *CloudWatchEncryption) SetCloudWatchEncryptionMode(v string) *CloudWatchEncryption {
+ s.CloudWatchEncryptionMode = &v
+ return s
+}
+
+// SetKmsKeyArn sets the KmsKeyArn field's value.
+func (s *CloudWatchEncryption) SetKmsKeyArn(v string) *CloudWatchEncryption {
+ s.KmsKeyArn = &v
+ return s
+}
+
+// Represents a directional edge in a directed acyclic graph (DAG).
+type CodeGenEdge struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the node at which the edge starts.
//
- // JobName is a required field
- JobName *string `min:"1" type:"string" required:"true"`
+ // Source is a required field
+ Source *string `min:"1" type:"string" required:"true"`
- // A list of the JobRunIds that should be stopped for that job definition.
+ // The ID of the node at which the edge ends.
//
- // JobRunIds is a required field
- JobRunIds []*string `min:"1" type:"list" required:"true"`
+ // Target is a required field
+ Target *string `min:"1" type:"string" required:"true"`
+
+ // The target of the edge.
+ TargetParameter *string `type:"string"`
}
// String returns the string representation
-func (s BatchStopJobRunInput) String() string {
+func (s CodeGenEdge) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchStopJobRunInput) GoString() string {
+func (s CodeGenEdge) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *BatchStopJobRunInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "BatchStopJobRunInput"}
- if s.JobName == nil {
- invalidParams.Add(request.NewErrParamRequired("JobName"))
+func (s *CodeGenEdge) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CodeGenEdge"}
+ if s.Source == nil {
+ invalidParams.Add(request.NewErrParamRequired("Source"))
}
- if s.JobName != nil && len(*s.JobName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
+ if s.Source != nil && len(*s.Source) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Source", 1))
}
- if s.JobRunIds == nil {
- invalidParams.Add(request.NewErrParamRequired("JobRunIds"))
+ if s.Target == nil {
+ invalidParams.Add(request.NewErrParamRequired("Target"))
}
- if s.JobRunIds != nil && len(s.JobRunIds) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("JobRunIds", 1))
+ if s.Target != nil && len(*s.Target) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Target", 1))
}
if invalidParams.Len() > 0 {
@@ -9393,123 +11258,149 @@ func (s *BatchStopJobRunInput) Validate() error {
return nil
}
-// SetJobName sets the JobName field's value.
-func (s *BatchStopJobRunInput) SetJobName(v string) *BatchStopJobRunInput {
- s.JobName = &v
+// SetSource sets the Source field's value.
+func (s *CodeGenEdge) SetSource(v string) *CodeGenEdge {
+ s.Source = &v
return s
}
-// SetJobRunIds sets the JobRunIds field's value.
-func (s *BatchStopJobRunInput) SetJobRunIds(v []*string) *BatchStopJobRunInput {
- s.JobRunIds = v
+// SetTarget sets the Target field's value.
+func (s *CodeGenEdge) SetTarget(v string) *CodeGenEdge {
+ s.Target = &v
return s
}
-type BatchStopJobRunOutput struct {
+// SetTargetParameter sets the TargetParameter field's value.
+func (s *CodeGenEdge) SetTargetParameter(v string) *CodeGenEdge {
+ s.TargetParameter = &v
+ return s
+}
+
+// Represents a node in a directed acyclic graph (DAG)
+type CodeGenNode struct {
_ struct{} `type:"structure"`
- // 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"`
+ // Properties of the node, in the form of name-value pairs.
+ //
+ // Args is a required field
+ Args []*CodeGenNodeArg `type:"list" required:"true"`
- // A list of the JobRuns that were successfully submitted for stopping.
- SuccessfulSubmissions []*BatchStopJobRunSuccessfulSubmission `type:"list"`
+ // A node identifier that is unique within the node's graph.
+ //
+ // Id is a required field
+ Id *string `min:"1" type:"string" required:"true"`
+
+ // The line number of the node.
+ LineNumber *int64 `type:"integer"`
+
+ // The type of node this is.
+ //
+ // NodeType is a required field
+ NodeType *string `type:"string" required:"true"`
}
// String returns the string representation
-func (s BatchStopJobRunOutput) String() string {
+func (s CodeGenNode) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s BatchStopJobRunOutput) GoString() string {
+func (s CodeGenNode) GoString() string {
return s.String()
}
-// SetErrors sets the Errors field's value.
-func (s *BatchStopJobRunOutput) SetErrors(v []*BatchStopJobRunError) *BatchStopJobRunOutput {
- s.Errors = v
- return s
-}
-
-// SetSuccessfulSubmissions sets the SuccessfulSubmissions field's value.
-func (s *BatchStopJobRunOutput) SetSuccessfulSubmissions(v []*BatchStopJobRunSuccessfulSubmission) *BatchStopJobRunOutput {
- s.SuccessfulSubmissions = v
- return s
-}
-
-// Records a successful request to stop a specified JobRun.
-type BatchStopJobRunSuccessfulSubmission struct {
- _ struct{} `type:"structure"`
-
- // The name of the job definition used in the job run that was stopped.
- JobName *string `min:"1" type:"string"`
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CodeGenNode) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CodeGenNode"}
+ if s.Args == nil {
+ invalidParams.Add(request.NewErrParamRequired("Args"))
+ }
+ if s.Id == nil {
+ invalidParams.Add(request.NewErrParamRequired("Id"))
+ }
+ if s.Id != nil && len(*s.Id) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Id", 1))
+ }
+ if s.NodeType == nil {
+ invalidParams.Add(request.NewErrParamRequired("NodeType"))
+ }
+ if s.Args != nil {
+ for i, v := range s.Args {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Args", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
- // The JobRunId of the job run that was stopped.
- JobRunId *string `min:"1" type:"string"`
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
}
-// String returns the string representation
-func (s BatchStopJobRunSuccessfulSubmission) String() string {
- return awsutil.Prettify(s)
+// SetArgs sets the Args field's value.
+func (s *CodeGenNode) SetArgs(v []*CodeGenNodeArg) *CodeGenNode {
+ s.Args = v
+ return s
}
-// GoString returns the string representation
-func (s BatchStopJobRunSuccessfulSubmission) GoString() string {
- return s.String()
+// SetId sets the Id field's value.
+func (s *CodeGenNode) SetId(v string) *CodeGenNode {
+ s.Id = &v
+ return s
}
-// SetJobName sets the JobName field's value.
-func (s *BatchStopJobRunSuccessfulSubmission) SetJobName(v string) *BatchStopJobRunSuccessfulSubmission {
- s.JobName = &v
+// SetLineNumber sets the LineNumber field's value.
+func (s *CodeGenNode) SetLineNumber(v int64) *CodeGenNode {
+ s.LineNumber = &v
return s
}
-// SetJobRunId sets the JobRunId field's value.
-func (s *BatchStopJobRunSuccessfulSubmission) SetJobRunId(v string) *BatchStopJobRunSuccessfulSubmission {
- s.JobRunId = &v
+// SetNodeType sets the NodeType field's value.
+func (s *CodeGenNode) SetNodeType(v string) *CodeGenNode {
+ s.NodeType = &v
return s
}
-// Specifies a table definition in the Data Catalog.
-type CatalogEntry struct {
+// An argument or property of a node.
+type CodeGenNodeArg struct {
_ struct{} `type:"structure"`
- // The database in which the table metadata resides.
+ // The name of the argument or property.
//
- // DatabaseName is a required field
- DatabaseName *string `min:"1" type:"string" required:"true"`
+ // Name is a required field
+ Name *string `type:"string" required:"true"`
- // The name of the table in question.
+ // True if the value is used as a parameter.
+ Param *bool `type:"boolean"`
+
+ // The value of the argument or property.
//
- // TableName is a required field
- TableName *string `min:"1" type:"string" required:"true"`
+ // Value is a required field
+ Value *string `type:"string" required:"true"`
}
// String returns the string representation
-func (s CatalogEntry) String() string {
+func (s CodeGenNodeArg) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CatalogEntry) GoString() string {
+func (s CodeGenNodeArg) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CatalogEntry) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CatalogEntry"}
- 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"))
+func (s *CodeGenNodeArg) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CodeGenNodeArg"}
+ if s.Name == nil {
+ invalidParams.Add(request.NewErrParamRequired("Name"))
}
- if s.TableName != nil && len(*s.TableName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
+ if s.Value == nil {
+ invalidParams.Add(request.NewErrParamRequired("Value"))
}
if invalidParams.Len() > 0 {
@@ -9518,267 +11409,332 @@ func (s *CatalogEntry) Validate() error {
return nil
}
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *CatalogEntry) SetDatabaseName(v string) *CatalogEntry {
- s.DatabaseName = &v
+// SetName sets the Name field's value.
+func (s *CodeGenNodeArg) SetName(v string) *CodeGenNodeArg {
+ s.Name = &v
return s
}
-// SetTableName sets the TableName field's value.
-func (s *CatalogEntry) SetTableName(v string) *CatalogEntry {
- s.TableName = &v
+// SetParam sets the Param field's value.
+func (s *CodeGenNodeArg) SetParam(v bool) *CodeGenNodeArg {
+ s.Param = &v
return s
}
-// A structure containing migration status information.
-type CatalogImportStatus struct {
+// SetValue sets the Value field's value.
+func (s *CodeGenNodeArg) SetValue(v string) *CodeGenNodeArg {
+ s.Value = &v
+ return s
+}
+
+// A column in a Table.
+type Column struct {
_ struct{} `type:"structure"`
- // True if the migration has completed, or False otherwise.
- ImportCompleted *bool `type:"boolean"`
+ // Free-form text comment.
+ Comment *string `type:"string"`
- // The time that the migration was started.
- ImportTime *time.Time `type:"timestamp"`
+ // The name of the Column.
+ //
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
- // The name of the person who initiated the migration.
- ImportedBy *string `min:"1" type:"string"`
+ // The datatype of data in the Column.
+ Type *string `type:"string"`
}
// String returns the string representation
-func (s CatalogImportStatus) String() string {
+func (s Column) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CatalogImportStatus) GoString() string {
+func (s Column) GoString() string {
return s.String()
}
-// SetImportCompleted sets the ImportCompleted field's value.
-func (s *CatalogImportStatus) SetImportCompleted(v bool) *CatalogImportStatus {
- s.ImportCompleted = &v
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *Column) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "Column"}
+ 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
+}
+
+// SetComment sets the Comment field's value.
+func (s *Column) SetComment(v string) *Column {
+ s.Comment = &v
return s
}
-// SetImportTime sets the ImportTime field's value.
-func (s *CatalogImportStatus) SetImportTime(v time.Time) *CatalogImportStatus {
- s.ImportTime = &v
+// SetName sets the Name field's value.
+func (s *Column) SetName(v string) *Column {
+ s.Name = &v
return s
}
-// SetImportedBy sets the ImportedBy field's value.
-func (s *CatalogImportStatus) SetImportedBy(v string) *CatalogImportStatus {
- s.ImportedBy = &v
+// SetType sets the Type field's value.
+func (s *Column) SetType(v string) *Column {
+ s.Type = &v
return s
}
-// Classifiers are triggered during a crawl task. A classifier checks whether
-// a given 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.
-//
-// You can use the standard classifiers that AWS Glue supplies, or you can write
-// your own classifiers to best categorize your data sources and specify the
-// appropriate schemas to use for them. A classifier can be a grok classifier,
-// an XML classifier, or a JSON classifier, as specified in one of the fields
-// in the Classifier object.
-type Classifier struct {
+// Defines a condition under which a trigger fires.
+type Condition struct {
_ struct{} `type:"structure"`
- // A GrokClassifier object.
- GrokClassifier *GrokClassifier `type:"structure"`
+ // The name of the Job to whose JobRuns this condition applies and on which
+ // this trigger waits.
+ JobName *string `min:"1" type:"string"`
- // A JsonClassifier object.
- JsonClassifier *JsonClassifier `type:"structure"`
+ // A logical operator.
+ LogicalOperator *string `type:"string" enum:"LogicalOperator"`
- // An XMLClassifier object.
- XMLClassifier *XMLClassifier `type:"structure"`
+ // The condition state. Currently, the values supported are SUCCEEDED, STOPPED,
+ // TIMEOUT and FAILED.
+ State *string `type:"string" enum:"JobRunState"`
}
// String returns the string representation
-func (s Classifier) String() string {
+func (s Condition) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s Classifier) GoString() string {
+func (s Condition) GoString() string {
return s.String()
}
-// SetGrokClassifier sets the GrokClassifier field's value.
-func (s *Classifier) SetGrokClassifier(v *GrokClassifier) *Classifier {
- s.GrokClassifier = v
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *Condition) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "Condition"}
+ if s.JobName != nil && len(*s.JobName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetJobName sets the JobName field's value.
+func (s *Condition) SetJobName(v string) *Condition {
+ s.JobName = &v
return s
}
-// SetJsonClassifier sets the JsonClassifier field's value.
-func (s *Classifier) SetJsonClassifier(v *JsonClassifier) *Classifier {
- s.JsonClassifier = v
+// SetLogicalOperator sets the LogicalOperator field's value.
+func (s *Condition) SetLogicalOperator(v string) *Condition {
+ s.LogicalOperator = &v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *Condition) SetState(v string) *Condition {
+ s.State = &v
return s
}
-// SetXMLClassifier sets the XMLClassifier field's value.
-func (s *Classifier) SetXMLClassifier(v *XMLClassifier) *Classifier {
- s.XMLClassifier = v
- return s
-}
+// Defines a connection to a data source.
+type Connection struct {
+ _ struct{} `type:"structure"`
+
+ // These key-value pairs define parameters for the connection:
+ //
+ // * HOST - The host URI: either the fully qualified domain name (FQDN) or
+ // the IPv4 address of the database host.
+ //
+ // * PORT - The port number, between 1024 and 65535, of the port on which
+ // the database host is listening for database connections.
+ //
+ // * USER_NAME - The name under which to log in to the database. The value
+ // string for USER_NAME is "USERNAME".
+ //
+ // * PASSWORD - A password, if one is used, for the user name.
+ //
+ // * ENCRYPTED_PASSWORD - When you enable connection password protection
+ // by setting ConnectionPasswordEncryption in the Data Catalog encryption
+ // settings, this field stores the encrypted password.
+ //
+ // * JDBC_DRIVER_JAR_URI - The Amazon S3 path of the JAR file that contains
+ // the JDBC driver to use.
+ //
+ // * JDBC_DRIVER_CLASS_NAME - The class name of the JDBC driver to use.
+ //
+ // * JDBC_ENGINE - The name of the JDBC engine to use.
+ //
+ // * JDBC_ENGINE_VERSION - The version of the JDBC engine to use.
+ //
+ // * CONFIG_FILES - (Reserved for future use).
+ //
+ // * INSTANCE_ID - The instance ID to use.
+ //
+ // * JDBC_CONNECTION_URL - The URL for the JDBC connection.
+ //
+ // * JDBC_ENFORCE_SSL - A Boolean string (true, false) specifying whether
+ // Secure Sockets Layer (SSL) with hostname matching will be enforced for
+ // the JDBC connection on the client. The default is false.
+ ConnectionProperties map[string]*string `type:"map"`
+
+ // The type of the connection. Currently, only JDBC is supported; SFTP is not
+ // supported.
+ ConnectionType *string `type:"string" enum:"ConnectionType"`
+
+ // The time that this connection definition was created.
+ CreationTime *time.Time `type:"timestamp"`
+
+ // The description of the connection.
+ Description *string `type:"string"`
+
+ // The user, group, or role that last updated this connection definition.
+ LastUpdatedBy *string `min:"1" type:"string"`
-// Specifies how CloudWatch data should be encrypted.
-type CloudWatchEncryption struct {
- _ struct{} `type:"structure"`
+ // The last time that this connection definition was updated.
+ LastUpdatedTime *time.Time `type:"timestamp"`
- // The encryption mode to use for CloudWatch data.
- CloudWatchEncryptionMode *string `type:"string" enum:"CloudWatchEncryptionMode"`
+ // A list of criteria that can be used in selecting this connection.
+ MatchCriteria []*string `type:"list"`
- // The AWS ARN of the KMS key to be used to encrypt the data.
- KmsKeyArn *string `type:"string"`
+ // The name of the connection definition.
+ Name *string `min:"1" type:"string"`
+
+ // A map of physical connection requirements, such as virtual private cloud
+ // (VPC) and SecurityGroup, that are needed to make this connection successfully.
+ PhysicalConnectionRequirements *PhysicalConnectionRequirements `type:"structure"`
}
// String returns the string representation
-func (s CloudWatchEncryption) String() string {
+func (s Connection) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CloudWatchEncryption) GoString() string {
+func (s Connection) GoString() string {
return s.String()
}
-// SetCloudWatchEncryptionMode sets the CloudWatchEncryptionMode field's value.
-func (s *CloudWatchEncryption) SetCloudWatchEncryptionMode(v string) *CloudWatchEncryption {
- s.CloudWatchEncryptionMode = &v
+// SetConnectionProperties sets the ConnectionProperties field's value.
+func (s *Connection) SetConnectionProperties(v map[string]*string) *Connection {
+ s.ConnectionProperties = v
return s
}
-// SetKmsKeyArn sets the KmsKeyArn field's value.
-func (s *CloudWatchEncryption) SetKmsKeyArn(v string) *CloudWatchEncryption {
- s.KmsKeyArn = &v
+// SetConnectionType sets the ConnectionType field's value.
+func (s *Connection) SetConnectionType(v string) *Connection {
+ s.ConnectionType = &v
return s
}
-// Represents a directional edge in a directed acyclic graph (DAG).
-type CodeGenEdge struct {
- _ struct{} `type:"structure"`
-
- // The ID of the node at which the edge starts.
- //
- // Source is a required field
- Source *string `min:"1" type:"string" required:"true"`
-
- // The ID of the node at which the edge ends.
- //
- // Target is a required field
- Target *string `min:"1" type:"string" required:"true"`
-
- // The target of the edge.
- TargetParameter *string `type:"string"`
+// SetCreationTime sets the CreationTime field's value.
+func (s *Connection) SetCreationTime(v time.Time) *Connection {
+ s.CreationTime = &v
+ return s
}
-// String returns the string representation
-func (s CodeGenEdge) String() string {
- return awsutil.Prettify(s)
+// SetDescription sets the Description field's value.
+func (s *Connection) SetDescription(v string) *Connection {
+ s.Description = &v
+ return s
}
-// GoString returns the string representation
-func (s CodeGenEdge) GoString() string {
- return s.String()
+// SetLastUpdatedBy sets the LastUpdatedBy field's value.
+func (s *Connection) SetLastUpdatedBy(v string) *Connection {
+ s.LastUpdatedBy = &v
+ return s
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *CodeGenEdge) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CodeGenEdge"}
- if s.Source == nil {
- invalidParams.Add(request.NewErrParamRequired("Source"))
- }
- if s.Source != nil && len(*s.Source) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Source", 1))
- }
- if s.Target == nil {
- invalidParams.Add(request.NewErrParamRequired("Target"))
- }
- if s.Target != nil && len(*s.Target) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Target", 1))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
+// SetLastUpdatedTime sets the LastUpdatedTime field's value.
+func (s *Connection) SetLastUpdatedTime(v time.Time) *Connection {
+ s.LastUpdatedTime = &v
+ return s
}
-// SetSource sets the Source field's value.
-func (s *CodeGenEdge) SetSource(v string) *CodeGenEdge {
- s.Source = &v
+// SetMatchCriteria sets the MatchCriteria field's value.
+func (s *Connection) SetMatchCriteria(v []*string) *Connection {
+ s.MatchCriteria = v
return s
}
-// SetTarget sets the Target field's value.
-func (s *CodeGenEdge) SetTarget(v string) *CodeGenEdge {
- s.Target = &v
+// SetName sets the Name field's value.
+func (s *Connection) SetName(v string) *Connection {
+ s.Name = &v
return s
}
-// SetTargetParameter sets the TargetParameter field's value.
-func (s *CodeGenEdge) SetTargetParameter(v string) *CodeGenEdge {
- s.TargetParameter = &v
+// SetPhysicalConnectionRequirements sets the PhysicalConnectionRequirements field's value.
+func (s *Connection) SetPhysicalConnectionRequirements(v *PhysicalConnectionRequirements) *Connection {
+ s.PhysicalConnectionRequirements = v
return s
}
-// Represents a node in a directed acyclic graph (DAG)
-type CodeGenNode struct {
+// A structure that is used to specify a connection to create or update.
+type ConnectionInput struct {
_ struct{} `type:"structure"`
- // Properties of the node, in the form of name-value pairs.
+ // These key-value pairs define parameters for the connection.
//
- // Args is a required field
- Args []*CodeGenNodeArg `type:"list" required:"true"`
+ // ConnectionProperties is a required field
+ ConnectionProperties map[string]*string `type:"map" required:"true"`
- // A node identifier that is unique within the node's graph.
+ // The type of the connection. Currently, only JDBC is supported; SFTP is not
+ // supported.
//
- // Id is a required field
- Id *string `min:"1" type:"string" required:"true"`
+ // ConnectionType is a required field
+ ConnectionType *string `type:"string" required:"true" enum:"ConnectionType"`
- // The line number of the node.
- LineNumber *int64 `type:"integer"`
+ // The description of the connection.
+ Description *string `type:"string"`
- // The type of node this is.
+ // A list of criteria that can be used in selecting this connection.
+ MatchCriteria []*string `type:"list"`
+
+ // The name of the connection.
//
- // NodeType is a required field
- NodeType *string `type:"string" required:"true"`
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
+
+ // A map of physical connection requirements, such as virtual private cloud
+ // (VPC) and SecurityGroup, that are needed to successfully make this connection.
+ PhysicalConnectionRequirements *PhysicalConnectionRequirements `type:"structure"`
}
// String returns the string representation
-func (s CodeGenNode) String() string {
+func (s ConnectionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CodeGenNode) GoString() string {
+func (s ConnectionInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CodeGenNode) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CodeGenNode"}
- if s.Args == nil {
- invalidParams.Add(request.NewErrParamRequired("Args"))
+func (s *ConnectionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ConnectionInput"}
+ if s.ConnectionProperties == nil {
+ invalidParams.Add(request.NewErrParamRequired("ConnectionProperties"))
}
- if s.Id == nil {
- invalidParams.Add(request.NewErrParamRequired("Id"))
+ if s.ConnectionType == nil {
+ invalidParams.Add(request.NewErrParamRequired("ConnectionType"))
}
- if s.Id != nil && len(*s.Id) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Id", 1))
+ if s.Name == nil {
+ invalidParams.Add(request.NewErrParamRequired("Name"))
}
- if s.NodeType == nil {
- invalidParams.Add(request.NewErrParamRequired("NodeType"))
+ if s.Name != nil && len(*s.Name) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
- if s.Args != nil {
- for i, v := range s.Args {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Args", i), err.(request.ErrInvalidParams))
- }
+ if s.PhysicalConnectionRequirements != nil {
+ if err := s.PhysicalConnectionRequirements.Validate(); err != nil {
+ invalidParams.AddNested("PhysicalConnectionRequirements", err.(request.ErrInvalidParams))
}
}
@@ -9788,66 +11744,94 @@ func (s *CodeGenNode) Validate() error {
return nil
}
-// SetArgs sets the Args field's value.
-func (s *CodeGenNode) SetArgs(v []*CodeGenNodeArg) *CodeGenNode {
- s.Args = v
+// SetConnectionProperties sets the ConnectionProperties field's value.
+func (s *ConnectionInput) SetConnectionProperties(v map[string]*string) *ConnectionInput {
+ s.ConnectionProperties = v
return s
}
-// SetId sets the Id field's value.
-func (s *CodeGenNode) SetId(v string) *CodeGenNode {
- s.Id = &v
+// SetConnectionType sets the ConnectionType field's value.
+func (s *ConnectionInput) SetConnectionType(v string) *ConnectionInput {
+ s.ConnectionType = &v
return s
}
-// SetLineNumber sets the LineNumber field's value.
-func (s *CodeGenNode) SetLineNumber(v int64) *CodeGenNode {
- s.LineNumber = &v
+// SetDescription sets the Description field's value.
+func (s *ConnectionInput) SetDescription(v string) *ConnectionInput {
+ s.Description = &v
return s
}
-// SetNodeType sets the NodeType field's value.
-func (s *CodeGenNode) SetNodeType(v string) *CodeGenNode {
- s.NodeType = &v
+// SetMatchCriteria sets the MatchCriteria field's value.
+func (s *ConnectionInput) SetMatchCriteria(v []*string) *ConnectionInput {
+ s.MatchCriteria = v
return s
}
-// An argument or property of a node.
-type CodeGenNodeArg struct {
+// SetName sets the Name field's value.
+func (s *ConnectionInput) SetName(v string) *ConnectionInput {
+ s.Name = &v
+ return s
+}
+
+// SetPhysicalConnectionRequirements sets the PhysicalConnectionRequirements field's value.
+func (s *ConnectionInput) SetPhysicalConnectionRequirements(v *PhysicalConnectionRequirements) *ConnectionInput {
+ s.PhysicalConnectionRequirements = v
+ return s
+}
+
+// The data structure used by the Data Catalog to encrypt the password as part
+// of CreateConnection or UpdateConnection and store it in the ENCRYPTED_PASSWORD
+// field in the connection properties. You can enable catalog encryption or
+// only password encryption.
+//
+// When a CreationConnection request arrives containing a password, the Data
+// Catalog first encrypts the password using your AWS KMS key. It then encrypts
+// the whole connection object again if catalog encryption is also enabled.
+//
+// This encryption requires that you set AWS KMS key permissions to enable or
+// restrict access on the password key according to your security requirements.
+// For example, you might want only admin users to have decrypt permission on
+// the password key.
+type ConnectionPasswordEncryption struct {
_ struct{} `type:"structure"`
- // The name of the argument or property.
+ // An AWS KMS key that is used to encrypt the connection password.
//
- // Name is a required field
- Name *string `type:"string" required:"true"`
-
- // True if the value is used as a parameter.
- Param *bool `type:"boolean"`
+ // If connection password protection is enabled, the caller of CreateConnection
+ // and UpdateConnection needs at least kms:Encrypt permission on the specified
+ // AWS KMS key, to encrypt passwords before storing them in the Data Catalog.
+ //
+ // You can set the decrypt permission to enable or restrict access on the password
+ // key according to your security requirements.
+ AwsKmsKeyId *string `min:"1" type:"string"`
- // The value of the argument or property.
+ // When the ReturnConnectionPasswordEncrypted flag is set to "true", passwords
+ // remain encrypted in the responses of GetConnection and GetConnections. This
+ // encryption takes effect independently from catalog encryption.
//
- // Value is a required field
- Value *string `type:"string" required:"true"`
+ // ReturnConnectionPasswordEncrypted is a required field
+ ReturnConnectionPasswordEncrypted *bool `type:"boolean" required:"true"`
}
// String returns the string representation
-func (s CodeGenNodeArg) String() string {
+func (s ConnectionPasswordEncryption) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CodeGenNodeArg) GoString() string {
+func (s ConnectionPasswordEncryption) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CodeGenNodeArg) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CodeGenNodeArg"}
- if s.Name == nil {
- invalidParams.Add(request.NewErrParamRequired("Name"))
- }
- if s.Value == nil {
- invalidParams.Add(request.NewErrParamRequired("Value"))
+func (s *ConnectionPasswordEncryption) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ConnectionPasswordEncryption"}
+ if s.AwsKmsKeyId != nil && len(*s.AwsKmsKeyId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("AwsKmsKeyId", 1))
+ }
+ if s.ReturnConnectionPasswordEncrypted == nil {
+ invalidParams.Add(request.NewErrParamRequired("ReturnConnectionPasswordEncrypted"))
}
if invalidParams.Len() > 0 {
@@ -9856,332 +11840,386 @@ func (s *CodeGenNodeArg) Validate() error {
return nil
}
-// SetName sets the Name field's value.
-func (s *CodeGenNodeArg) SetName(v string) *CodeGenNodeArg {
- s.Name = &v
+// SetAwsKmsKeyId sets the AwsKmsKeyId field's value.
+func (s *ConnectionPasswordEncryption) SetAwsKmsKeyId(v string) *ConnectionPasswordEncryption {
+ s.AwsKmsKeyId = &v
return s
}
-// SetParam sets the Param field's value.
-func (s *CodeGenNodeArg) SetParam(v bool) *CodeGenNodeArg {
- s.Param = &v
+// SetReturnConnectionPasswordEncrypted sets the ReturnConnectionPasswordEncrypted field's value.
+func (s *ConnectionPasswordEncryption) SetReturnConnectionPasswordEncrypted(v bool) *ConnectionPasswordEncryption {
+ s.ReturnConnectionPasswordEncrypted = &v
return s
}
-// SetValue sets the Value field's value.
-func (s *CodeGenNodeArg) SetValue(v string) *CodeGenNodeArg {
- s.Value = &v
+// Specifies the connections used by a job.
+type ConnectionsList struct {
+ _ struct{} `type:"structure"`
+
+ // A list of connections used by the job.
+ Connections []*string `type:"list"`
+}
+
+// String returns the string representation
+func (s ConnectionsList) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ConnectionsList) GoString() string {
+ return s.String()
+}
+
+// SetConnections sets the Connections field's value.
+func (s *ConnectionsList) SetConnections(v []*string) *ConnectionsList {
+ s.Connections = v
return s
}
-// A column in a Table.
-type Column struct {
+// 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.
+type Crawler struct {
_ struct{} `type:"structure"`
- // Free-form text comment.
- Comment *string `type:"string"`
+ // A list of custom classifiers associated with the crawler.
+ Classifiers []*string `type:"list"`
- // The name of the Column.
- //
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // Crawler configuration information. This versioned JSON string allows users
+ // to specify aspects of a crawler's behavior. For more information, see Configuring
+ // a Crawler (http://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
+ Configuration *string `type:"string"`
- // The datatype of data in the Column.
- Type *string `type:"string"`
+ // If the crawler is running, contains the total time elapsed since the last
+ // crawl began.
+ CrawlElapsedTime *int64 `type:"long"`
+
+ // The name of the SecurityConfiguration structure to be used by this Crawler.
+ CrawlerSecurityConfiguration *string `type:"string"`
+
+ // The time when the crawler was created.
+ CreationTime *time.Time `type:"timestamp"`
+
+ // The database where metadata is written by this crawler.
+ DatabaseName *string `type:"string"`
+
+ // A description of the crawler.
+ Description *string `type:"string"`
+
+ // The status of the last crawl, and potentially error information if an error
+ // occurred.
+ LastCrawl *LastCrawlInfo `type:"structure"`
+
+ // The time the crawler was last updated.
+ LastUpdated *time.Time `type:"timestamp"`
+
+ // The crawler name.
+ Name *string `min:"1" type:"string"`
+
+ // The IAM role (or ARN of an IAM role) used to access customer resources, such
+ // as data in Amazon S3.
+ Role *string `type:"string"`
+
+ // For scheduled crawlers, the schedule when the crawler runs.
+ Schedule *Schedule `type:"structure"`
+
+ // Sets the behavior when the crawler finds a changed or deleted object.
+ SchemaChangePolicy *SchemaChangePolicy `type:"structure"`
+
+ // Indicates whether the crawler is running, or whether a run is pending.
+ State *string `type:"string" enum:"CrawlerState"`
+
+ // The prefix added to the names of tables that are created.
+ TablePrefix *string `type:"string"`
+
+ // A collection of targets to crawl.
+ Targets *CrawlerTargets `type:"structure"`
+
+ // The version of the crawler.
+ Version *int64 `type:"long"`
}
// String returns the string representation
-func (s Column) String() string {
+func (s Crawler) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s Column) GoString() string {
+func (s Crawler) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *Column) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "Column"}
- 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
+// SetClassifiers sets the Classifiers field's value.
+func (s *Crawler) SetClassifiers(v []*string) *Crawler {
+ s.Classifiers = v
+ return s
}
-// SetComment sets the Comment field's value.
-func (s *Column) SetComment(v string) *Column {
- s.Comment = &v
+// SetConfiguration sets the Configuration field's value.
+func (s *Crawler) SetConfiguration(v string) *Crawler {
+ s.Configuration = &v
return s
}
-// SetName sets the Name field's value.
-func (s *Column) SetName(v string) *Column {
- s.Name = &v
+// SetCrawlElapsedTime sets the CrawlElapsedTime field's value.
+func (s *Crawler) SetCrawlElapsedTime(v int64) *Crawler {
+ s.CrawlElapsedTime = &v
return s
}
-// SetType sets the Type field's value.
-func (s *Column) SetType(v string) *Column {
- s.Type = &v
+// SetCrawlerSecurityConfiguration sets the CrawlerSecurityConfiguration field's value.
+func (s *Crawler) SetCrawlerSecurityConfiguration(v string) *Crawler {
+ s.CrawlerSecurityConfiguration = &v
return s
}
-// Defines a condition under which a trigger fires.
-type Condition struct {
- _ struct{} `type:"structure"`
-
- // The name of the Job to whose JobRuns this condition applies and on which
- // this trigger waits.
- JobName *string `min:"1" type:"string"`
+// SetCreationTime sets the CreationTime field's value.
+func (s *Crawler) SetCreationTime(v time.Time) *Crawler {
+ s.CreationTime = &v
+ return s
+}
- // A logical operator.
- LogicalOperator *string `type:"string" enum:"LogicalOperator"`
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *Crawler) SetDatabaseName(v string) *Crawler {
+ s.DatabaseName = &v
+ return s
+}
- // The condition state. Currently, the values supported are SUCCEEDED, STOPPED,
- // TIMEOUT and FAILED.
- State *string `type:"string" enum:"JobRunState"`
+// SetDescription sets the Description field's value.
+func (s *Crawler) SetDescription(v string) *Crawler {
+ s.Description = &v
+ return s
}
-// String returns the string representation
-func (s Condition) String() string {
- return awsutil.Prettify(s)
+// SetLastCrawl sets the LastCrawl field's value.
+func (s *Crawler) SetLastCrawl(v *LastCrawlInfo) *Crawler {
+ s.LastCrawl = v
+ return s
}
-// GoString returns the string representation
-func (s Condition) GoString() string {
- return s.String()
+// SetLastUpdated sets the LastUpdated field's value.
+func (s *Crawler) SetLastUpdated(v time.Time) *Crawler {
+ s.LastUpdated = &v
+ return s
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *Condition) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "Condition"}
- if s.JobName != nil && len(*s.JobName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
- }
+// SetName sets the Name field's value.
+func (s *Crawler) SetName(v string) *Crawler {
+ s.Name = &v
+ return s
+}
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
+// SetRole sets the Role field's value.
+func (s *Crawler) SetRole(v string) *Crawler {
+ s.Role = &v
+ return s
}
-// SetJobName sets the JobName field's value.
-func (s *Condition) SetJobName(v string) *Condition {
- s.JobName = &v
+// SetSchedule sets the Schedule field's value.
+func (s *Crawler) SetSchedule(v *Schedule) *Crawler {
+ s.Schedule = v
return s
}
-// SetLogicalOperator sets the LogicalOperator field's value.
-func (s *Condition) SetLogicalOperator(v string) *Condition {
- s.LogicalOperator = &v
+// SetSchemaChangePolicy sets the SchemaChangePolicy field's value.
+func (s *Crawler) SetSchemaChangePolicy(v *SchemaChangePolicy) *Crawler {
+ s.SchemaChangePolicy = v
return s
}
// SetState sets the State field's value.
-func (s *Condition) SetState(v string) *Condition {
+func (s *Crawler) SetState(v string) *Crawler {
s.State = &v
return s
}
-// Defines a connection to a data source.
-type Connection struct {
- _ struct{} `type:"structure"`
-
- // These key-value pairs define parameters for the connection:
- //
- // * HOST - The host URI: either the fully qualified domain name (FQDN) or
- // the IPv4 address of the database host.
- //
- // * PORT - The port number, between 1024 and 65535, of the port on which
- // the database host is listening for database connections.
- //
- // * USER_NAME - The name under which to log in to the database. The value
- // string for USER_NAME is "USERNAME".
- //
- // * PASSWORD - A password, if one is used, for the user name.
- //
- // * ENCRYPTED_PASSWORD - When you enable connection password protection
- // by setting ConnectionPasswordEncryption in the Data Catalog encryption
- // settings, this field stores the key you designate to encrypt the password.
- //
- // * JDBC_DRIVER_JAR_URI - The S3 path of the a jar file that contains the
- // JDBC driver to use.
- //
- // * JDBC_DRIVER_CLASS_NAME - The class name of the JDBC driver to use.
- //
- // * JDBC_ENGINE - The name of the JDBC engine to use.
- //
- // * JDBC_ENGINE_VERSION - The version of the JDBC engine to use.
- //
- // * CONFIG_FILES - (Reserved for future use).
- //
- // * INSTANCE_ID - The instance ID to use.
- //
- // * JDBC_CONNECTION_URL - The URL for the JDBC connection.
- //
- // * JDBC_ENFORCE_SSL - A Boolean string (true, false) specifying whether
- // SSL with hostname matching will be enforced for the JDBC connection on
- // the client. The default is false.
- ConnectionProperties map[string]*string `type:"map"`
+// SetTablePrefix sets the TablePrefix field's value.
+func (s *Crawler) SetTablePrefix(v string) *Crawler {
+ s.TablePrefix = &v
+ return s
+}
- // The type of the connection. Currently, only JDBC is supported; SFTP is not
- // supported.
- ConnectionType *string `type:"string" enum:"ConnectionType"`
+// SetTargets sets the Targets field's value.
+func (s *Crawler) SetTargets(v *CrawlerTargets) *Crawler {
+ s.Targets = v
+ return s
+}
- // The time this connection definition was created.
- CreationTime *time.Time `type:"timestamp"`
+// SetVersion sets the Version field's value.
+func (s *Crawler) SetVersion(v int64) *Crawler {
+ s.Version = &v
+ return s
+}
- // Description of the connection.
- Description *string `type:"string"`
+// Metrics for a specified crawler.
+type CrawlerMetrics struct {
+ _ struct{} `type:"structure"`
- // The user, group or role that last updated this connection definition.
- LastUpdatedBy *string `min:"1" type:"string"`
+ // The name of the crawler.
+ CrawlerName *string `min:"1" type:"string"`
- // The last time this connection definition was updated.
- LastUpdatedTime *time.Time `type:"timestamp"`
+ // The duration of the crawler's most recent run, in seconds.
+ LastRuntimeSeconds *float64 `type:"double"`
- // A list of criteria that can be used in selecting this connection.
- MatchCriteria []*string `type:"list"`
+ // The median duration of this crawler's runs, in seconds.
+ MedianRuntimeSeconds *float64 `type:"double"`
- // The name of the connection definition.
- Name *string `min:"1" type:"string"`
+ // True if the crawler is still estimating how long it will take to complete
+ // this run.
+ StillEstimating *bool `type:"boolean"`
- // A map of physical connection requirements, such as VPC and SecurityGroup,
- // needed for making this connection successfully.
- PhysicalConnectionRequirements *PhysicalConnectionRequirements `type:"structure"`
+ // The number of tables created by this crawler.
+ TablesCreated *int64 `type:"integer"`
+
+ // The number of tables deleted by this crawler.
+ TablesDeleted *int64 `type:"integer"`
+
+ // The number of tables updated by this crawler.
+ TablesUpdated *int64 `type:"integer"`
+
+ // The estimated time left to complete a running crawl.
+ TimeLeftSeconds *float64 `type:"double"`
}
// String returns the string representation
-func (s Connection) String() string {
+func (s CrawlerMetrics) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s Connection) GoString() string {
+func (s CrawlerMetrics) GoString() string {
return s.String()
}
-// SetConnectionProperties sets the ConnectionProperties field's value.
-func (s *Connection) SetConnectionProperties(v map[string]*string) *Connection {
- s.ConnectionProperties = v
+// SetCrawlerName sets the CrawlerName field's value.
+func (s *CrawlerMetrics) SetCrawlerName(v string) *CrawlerMetrics {
+ s.CrawlerName = &v
return s
}
-// SetConnectionType sets the ConnectionType field's value.
-func (s *Connection) SetConnectionType(v string) *Connection {
- s.ConnectionType = &v
+// SetLastRuntimeSeconds sets the LastRuntimeSeconds field's value.
+func (s *CrawlerMetrics) SetLastRuntimeSeconds(v float64) *CrawlerMetrics {
+ s.LastRuntimeSeconds = &v
return s
}
-// SetCreationTime sets the CreationTime field's value.
-func (s *Connection) SetCreationTime(v time.Time) *Connection {
- s.CreationTime = &v
+// SetMedianRuntimeSeconds sets the MedianRuntimeSeconds field's value.
+func (s *CrawlerMetrics) SetMedianRuntimeSeconds(v float64) *CrawlerMetrics {
+ s.MedianRuntimeSeconds = &v
return s
}
-// SetDescription sets the Description field's value.
-func (s *Connection) SetDescription(v string) *Connection {
- s.Description = &v
+// SetStillEstimating sets the StillEstimating field's value.
+func (s *CrawlerMetrics) SetStillEstimating(v bool) *CrawlerMetrics {
+ s.StillEstimating = &v
return s
}
-// SetLastUpdatedBy sets the LastUpdatedBy field's value.
-func (s *Connection) SetLastUpdatedBy(v string) *Connection {
- s.LastUpdatedBy = &v
+// SetTablesCreated sets the TablesCreated field's value.
+func (s *CrawlerMetrics) SetTablesCreated(v int64) *CrawlerMetrics {
+ s.TablesCreated = &v
return s
}
-// SetLastUpdatedTime sets the LastUpdatedTime field's value.
-func (s *Connection) SetLastUpdatedTime(v time.Time) *Connection {
- s.LastUpdatedTime = &v
+// SetTablesDeleted sets the TablesDeleted field's value.
+func (s *CrawlerMetrics) SetTablesDeleted(v int64) *CrawlerMetrics {
+ s.TablesDeleted = &v
return s
}
-// SetMatchCriteria sets the MatchCriteria field's value.
-func (s *Connection) SetMatchCriteria(v []*string) *Connection {
- s.MatchCriteria = v
+// SetTablesUpdated sets the TablesUpdated field's value.
+func (s *CrawlerMetrics) SetTablesUpdated(v int64) *CrawlerMetrics {
+ s.TablesUpdated = &v
return s
}
-// SetName sets the Name field's value.
-func (s *Connection) SetName(v string) *Connection {
- s.Name = &v
+// SetTimeLeftSeconds sets the TimeLeftSeconds field's value.
+func (s *CrawlerMetrics) SetTimeLeftSeconds(v float64) *CrawlerMetrics {
+ s.TimeLeftSeconds = &v
return s
}
-// SetPhysicalConnectionRequirements sets the PhysicalConnectionRequirements field's value.
-func (s *Connection) SetPhysicalConnectionRequirements(v *PhysicalConnectionRequirements) *Connection {
- s.PhysicalConnectionRequirements = v
- return s
+// Specifies data stores to crawl.
+type CrawlerTargets struct {
+ _ struct{} `type:"structure"`
+
+ // Specifies DynamoDB targets.
+ DynamoDBTargets []*DynamoDBTarget `type:"list"`
+
+ // Specifies JDBC targets.
+ JdbcTargets []*JdbcTarget `type:"list"`
+
+ // Specifies Amazon S3 targets.
+ S3Targets []*S3Target `type:"list"`
}
-// A structure used to specify a connection to create or update.
-type ConnectionInput struct {
- _ struct{} `type:"structure"`
+// String returns the string representation
+func (s CrawlerTargets) String() string {
+ return awsutil.Prettify(s)
+}
- // These key-value pairs define parameters for the connection.
- //
- // ConnectionProperties is a required field
- ConnectionProperties map[string]*string `type:"map" required:"true"`
+// GoString returns the string representation
+func (s CrawlerTargets) GoString() string {
+ return s.String()
+}
- // The type of the connection. Currently, only JDBC is supported; SFTP is not
- // supported.
- //
- // ConnectionType is a required field
- ConnectionType *string `type:"string" required:"true" enum:"ConnectionType"`
+// SetDynamoDBTargets sets the DynamoDBTargets field's value.
+func (s *CrawlerTargets) SetDynamoDBTargets(v []*DynamoDBTarget) *CrawlerTargets {
+ s.DynamoDBTargets = v
+ return s
+}
- // Description of the connection.
- Description *string `type:"string"`
+// SetJdbcTargets sets the JdbcTargets field's value.
+func (s *CrawlerTargets) SetJdbcTargets(v []*JdbcTarget) *CrawlerTargets {
+ s.JdbcTargets = v
+ return s
+}
- // A list of criteria that can be used in selecting this connection.
- MatchCriteria []*string `type:"list"`
+// SetS3Targets sets the S3Targets field's value.
+func (s *CrawlerTargets) SetS3Targets(v []*S3Target) *CrawlerTargets {
+ s.S3Targets = v
+ return s
+}
- // The name of the connection.
- //
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+type CreateClassifierInput struct {
+ _ struct{} `type:"structure"`
- // A map of physical connection requirements, such as VPC and SecurityGroup,
- // needed for making this connection successfully.
- PhysicalConnectionRequirements *PhysicalConnectionRequirements `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"`
}
// String returns the string representation
-func (s ConnectionInput) String() string {
+func (s CreateClassifierInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s ConnectionInput) GoString() string {
+func (s CreateClassifierInput) GoString() string {
return s.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"))
+func (s *CreateClassifierInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateClassifierInput"}
+ if s.GrokClassifier != nil {
+ if err := s.GrokClassifier.Validate(); err != nil {
+ invalidParams.AddNested("GrokClassifier", err.(request.ErrInvalidParams))
+ }
}
- if s.Name != nil && len(*s.Name) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Name", 1))
+ if s.JsonClassifier != nil {
+ if err := s.JsonClassifier.Validate(); err != nil {
+ invalidParams.AddNested("JsonClassifier", err.(request.ErrInvalidParams))
+ }
}
- if s.PhysicalConnectionRequirements != nil {
- if err := s.PhysicalConnectionRequirements.Validate(); err != nil {
- invalidParams.AddNested("PhysicalConnectionRequirements", err.(request.ErrInvalidParams))
+ if s.XMLClassifier != nil {
+ if err := s.XMLClassifier.Validate(); err != nil {
+ invalidParams.AddNested("XMLClassifier", err.(request.ErrInvalidParams))
}
}
@@ -10191,94 +12229,74 @@ func (s *ConnectionInput) Validate() error {
return nil
}
-// SetConnectionProperties sets the ConnectionProperties field's value.
-func (s *ConnectionInput) SetConnectionProperties(v map[string]*string) *ConnectionInput {
- s.ConnectionProperties = v
+// SetGrokClassifier sets the GrokClassifier field's value.
+func (s *CreateClassifierInput) SetGrokClassifier(v *CreateGrokClassifierRequest) *CreateClassifierInput {
+ s.GrokClassifier = v
return s
}
-// SetConnectionType sets the ConnectionType field's value.
-func (s *ConnectionInput) SetConnectionType(v string) *ConnectionInput {
- s.ConnectionType = &v
+// SetJsonClassifier sets the JsonClassifier field's value.
+func (s *CreateClassifierInput) SetJsonClassifier(v *CreateJsonClassifierRequest) *CreateClassifierInput {
+ s.JsonClassifier = v
return s
}
-// SetDescription sets the Description field's value.
-func (s *ConnectionInput) SetDescription(v string) *ConnectionInput {
- s.Description = &v
+// SetXMLClassifier sets the XMLClassifier field's value.
+func (s *CreateClassifierInput) SetXMLClassifier(v *CreateXMLClassifierRequest) *CreateClassifierInput {
+ s.XMLClassifier = v
return s
}
-// SetMatchCriteria sets the MatchCriteria field's value.
-func (s *ConnectionInput) SetMatchCriteria(v []*string) *ConnectionInput {
- s.MatchCriteria = v
- return s
+type CreateClassifierOutput struct {
+ _ struct{} `type:"structure"`
}
-// SetName sets the Name field's value.
-func (s *ConnectionInput) SetName(v string) *ConnectionInput {
- s.Name = &v
- return s
+// String returns the string representation
+func (s CreateClassifierOutput) String() string {
+ return awsutil.Prettify(s)
}
-// SetPhysicalConnectionRequirements sets the PhysicalConnectionRequirements field's value.
-func (s *ConnectionInput) SetPhysicalConnectionRequirements(v *PhysicalConnectionRequirements) *ConnectionInput {
- s.PhysicalConnectionRequirements = v
- return s
+// GoString returns the string representation
+func (s CreateClassifierOutput) GoString() string {
+ return s.String()
}
-// The data structure used by the Data Catalog to encrypt the password as part
-// of CreateConnection or UpdateConnection and store it in the ENCRYPTED_PASSWORD
-// field in the connection properties. You can enable catalog encryption or
-// only password encryption.
-//
-// When a CreationConnection request arrives containing a password, the Data
-// Catalog first encrypts the password using your KMS key, and then encrypts
-// the whole connection object again if catalog encryption is also enabled.
-//
-// This encryption requires that you set KMS key permissions to enable or restrict
-// access on the password key according to your security requirements. For example,
-// you may want only admin users to have decrypt permission on the password
-// key.
-type ConnectionPasswordEncryption struct {
+type CreateConnectionInput struct {
_ struct{} `type:"structure"`
- // A KMS key used to protect access to the JDBC source.
- //
- // All users in your account should be granted the kms:encrypt permission to
- // encrypt passwords before storing them in the Data Catalog (through the AWS
- // Glue CreateConnection operation).
- //
- // The decrypt permission should be granted only to KMS key admins and IAM roles
- // designated for AWS Glue crawlers.
- AwsKmsKeyId *string `min:"1" type:"string"`
-
- // When the ReturnConnectionPasswordEncrypted flag is set to "true", passwords
- // remain encrypted in the responses of GetConnection and GetConnections. This
- // encryption takes effect independently from catalog encryption.
+ // The ID of the Data Catalog in which to create the connection. If none is
+ // provided, the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
+
+ // A ConnectionInput object defining the connection to create.
//
- // ReturnConnectionPasswordEncrypted is a required field
- ReturnConnectionPasswordEncrypted *bool `type:"boolean" required:"true"`
+ // ConnectionInput is a required field
+ ConnectionInput *ConnectionInput `type:"structure" required:"true"`
}
// String returns the string representation
-func (s ConnectionPasswordEncryption) String() string {
+func (s CreateConnectionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s ConnectionPasswordEncryption) GoString() string {
+func (s CreateConnectionInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *ConnectionPasswordEncryption) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ConnectionPasswordEncryption"}
- if s.AwsKmsKeyId != nil && len(*s.AwsKmsKeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("AwsKmsKeyId", 1))
+func (s *CreateConnectionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateConnectionInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
- if s.ReturnConnectionPasswordEncrypted == nil {
- invalidParams.Add(request.NewErrParamRequired("ReturnConnectionPasswordEncrypted"))
+ if s.ConnectionInput == nil {
+ invalidParams.Add(request.NewErrParamRequired("ConnectionInput"))
+ }
+ if s.ConnectionInput != nil {
+ if err := s.ConnectionInput.Validate(); err != nil {
+ invalidParams.AddNested("ConnectionInput", err.(request.ErrInvalidParams))
+ }
}
if invalidParams.Len() > 0 {
@@ -10287,49 +12305,38 @@ func (s *ConnectionPasswordEncryption) Validate() error {
return nil
}
-// SetAwsKmsKeyId sets the AwsKmsKeyId field's value.
-func (s *ConnectionPasswordEncryption) SetAwsKmsKeyId(v string) *ConnectionPasswordEncryption {
- s.AwsKmsKeyId = &v
+// SetCatalogId sets the CatalogId field's value.
+func (s *CreateConnectionInput) SetCatalogId(v string) *CreateConnectionInput {
+ s.CatalogId = &v
return s
}
-// SetReturnConnectionPasswordEncrypted sets the ReturnConnectionPasswordEncrypted field's value.
-func (s *ConnectionPasswordEncryption) SetReturnConnectionPasswordEncrypted(v bool) *ConnectionPasswordEncryption {
- s.ReturnConnectionPasswordEncrypted = &v
+// SetConnectionInput sets the ConnectionInput field's value.
+func (s *CreateConnectionInput) SetConnectionInput(v *ConnectionInput) *CreateConnectionInput {
+ s.ConnectionInput = v
return s
}
-// Specifies the connections used by a job.
-type ConnectionsList struct {
+type CreateConnectionOutput struct {
_ struct{} `type:"structure"`
-
- // A list of connections used by the job.
- Connections []*string `type:"list"`
}
// String returns the string representation
-func (s ConnectionsList) String() string {
+func (s CreateConnectionOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s ConnectionsList) GoString() string {
+func (s CreateConnectionOutput) GoString() string {
return s.String()
}
-// SetConnections sets the Connections field's value.
-func (s *ConnectionsList) SetConnections(v []*string) *ConnectionsList {
- s.Connections = v
- return s
-}
-
-// 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.
-type Crawler struct {
+type CreateCrawlerInput struct {
_ struct{} `type:"structure"`
- // A list of custom classifiers associated with the crawler.
+ // A list of custom classifiers that the user has registered. By default, all
+ // built-in classifiers are included in a crawl, but these custom classifiers
+ // always override the default classifiers for a given classification.
Classifiers []*string `type:"list"`
// Crawler configuration information. This versioned JSON string allows users
@@ -10337,336 +12344,208 @@ type Crawler struct {
// a Crawler (http://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
Configuration *string `type:"string"`
- // If the crawler is running, contains the total time elapsed since the last
- // crawl began.
- CrawlElapsedTime *int64 `type:"long"`
-
// The name of the SecurityConfiguration structure to be used by this Crawler.
CrawlerSecurityConfiguration *string `type:"string"`
- // The time when the crawler was created.
- CreationTime *time.Time `type:"timestamp"`
-
- // The database where metadata is written by this crawler.
- DatabaseName *string `type:"string"`
+ // The AWS Glue database where results are written, such as: arn:aws:daylight:us-east-1::database/sometable/*.
+ //
+ // DatabaseName is a required field
+ DatabaseName *string `type:"string" required:"true"`
- // A description of the crawler.
+ // A description of the new crawler.
Description *string `type:"string"`
- // The status of the last crawl, and potentially error information if an error
- // occurred.
- LastCrawl *LastCrawlInfo `type:"structure"`
-
- // The time the crawler was last updated.
- LastUpdated *time.Time `type:"timestamp"`
-
- // The crawler name.
- Name *string `min:"1" type:"string"`
+ // Name of the new crawler.
+ //
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
- // The IAM role (or ARN of an IAM role) used to access customer resources, such
- // as data in Amazon S3.
- Role *string `type:"string"`
+ // The IAM role (or ARN of an IAM role) used by the new crawler to access customer
+ // resources.
+ //
+ // Role is a required field
+ Role *string `type:"string" required:"true"`
- // For scheduled crawlers, the schedule when the crawler runs.
- Schedule *Schedule `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 * * ? *).
+ Schedule *string `type:"string"`
- // Sets the behavior when the crawler finds a changed or deleted object.
+ // Policy for the crawler's update and deletion behavior.
SchemaChangePolicy *SchemaChangePolicy `type:"structure"`
- // Indicates whether the crawler is running, or whether a run is pending.
- State *string `type:"string" enum:"CrawlerState"`
-
- // The prefix added to the names of tables that are created.
+ // The table prefix used for catalog tables that are created.
TablePrefix *string `type:"string"`
- // A collection of targets to crawl.
- Targets *CrawlerTargets `type:"structure"`
+ // The tags to use with this crawler request. You may use tags to limit access
+ // to the crawler. For more information about tags in AWS Glue, see AWS Tags
+ // in AWS Glue (http://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html)
+ // in the developer guide.
+ Tags map[string]*string `type:"map"`
- // The version of the crawler.
- Version *int64 `type:"long"`
+ // A list of collection of targets to crawl.
+ //
+ // Targets is a required field
+ Targets *CrawlerTargets `type:"structure" required:"true"`
}
// String returns the string representation
-func (s Crawler) String() string {
+func (s CreateCrawlerInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s Crawler) GoString() string {
+func (s CreateCrawlerInput) GoString() string {
return s.String()
}
-// SetClassifiers sets the Classifiers field's value.
-func (s *Crawler) SetClassifiers(v []*string) *Crawler {
- s.Classifiers = v
- return s
-}
-
-// SetConfiguration sets the Configuration field's value.
-func (s *Crawler) SetConfiguration(v string) *Crawler {
- s.Configuration = &v
- return s
-}
-
-// SetCrawlElapsedTime sets the CrawlElapsedTime field's value.
-func (s *Crawler) SetCrawlElapsedTime(v int64) *Crawler {
- s.CrawlElapsedTime = &v
- return s
-}
-
-// SetCrawlerSecurityConfiguration sets the CrawlerSecurityConfiguration field's value.
-func (s *Crawler) SetCrawlerSecurityConfiguration(v string) *Crawler {
- s.CrawlerSecurityConfiguration = &v
- return s
-}
-
-// SetCreationTime sets the CreationTime field's value.
-func (s *Crawler) SetCreationTime(v time.Time) *Crawler {
- s.CreationTime = &v
- return s
-}
-
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *Crawler) SetDatabaseName(v string) *Crawler {
- s.DatabaseName = &v
- return s
-}
-
-// SetDescription sets the Description field's value.
-func (s *Crawler) SetDescription(v string) *Crawler {
- s.Description = &v
- return s
-}
-
-// SetLastCrawl sets the LastCrawl field's value.
-func (s *Crawler) SetLastCrawl(v *LastCrawlInfo) *Crawler {
- s.LastCrawl = v
- return s
-}
-
-// SetLastUpdated sets the LastUpdated field's value.
-func (s *Crawler) SetLastUpdated(v time.Time) *Crawler {
- s.LastUpdated = &v
- return s
-}
-
-// SetName sets the Name field's value.
-func (s *Crawler) SetName(v string) *Crawler {
- s.Name = &v
- return s
-}
-
-// SetRole sets the Role field's value.
-func (s *Crawler) SetRole(v string) *Crawler {
- s.Role = &v
- return s
-}
-
-// SetSchedule sets the Schedule field's value.
-func (s *Crawler) SetSchedule(v *Schedule) *Crawler {
- s.Schedule = v
- return s
-}
-
-// SetSchemaChangePolicy sets the SchemaChangePolicy field's value.
-func (s *Crawler) SetSchemaChangePolicy(v *SchemaChangePolicy) *Crawler {
- s.SchemaChangePolicy = v
- return s
-}
-
-// SetState sets the State field's value.
-func (s *Crawler) SetState(v string) *Crawler {
- s.State = &v
- return s
-}
-
-// SetTablePrefix sets the TablePrefix field's value.
-func (s *Crawler) SetTablePrefix(v string) *Crawler {
- s.TablePrefix = &v
- return s
-}
-
-// SetTargets sets the Targets field's value.
-func (s *Crawler) SetTargets(v *CrawlerTargets) *Crawler {
- s.Targets = v
- return s
-}
-
-// SetVersion sets the Version field's value.
-func (s *Crawler) SetVersion(v int64) *Crawler {
- s.Version = &v
- return s
-}
-
-// Metrics for a specified crawler.
-type CrawlerMetrics struct {
- _ struct{} `type:"structure"`
-
- // The name of the crawler.
- CrawlerName *string `min:"1" type:"string"`
-
- // The duration of the crawler's most recent run, in seconds.
- LastRuntimeSeconds *float64 `type:"double"`
-
- // The median duration of this crawler's runs, in seconds.
- MedianRuntimeSeconds *float64 `type:"double"`
-
- // True if the crawler is still estimating how long it will take to complete
- // this run.
- StillEstimating *bool `type:"boolean"`
-
- // The number of tables created by this crawler.
- TablesCreated *int64 `type:"integer"`
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreateCrawlerInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateCrawlerInput"}
+ if s.DatabaseName == nil {
+ invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
+ }
+ 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.Role == nil {
+ invalidParams.Add(request.NewErrParamRequired("Role"))
+ }
+ if s.Targets == nil {
+ invalidParams.Add(request.NewErrParamRequired("Targets"))
+ }
- // The number of tables deleted by this crawler.
- TablesDeleted *int64 `type:"integer"`
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
- // The number of tables updated by this crawler.
- TablesUpdated *int64 `type:"integer"`
+// SetClassifiers sets the Classifiers field's value.
+func (s *CreateCrawlerInput) SetClassifiers(v []*string) *CreateCrawlerInput {
+ s.Classifiers = v
+ return s
+}
- // The estimated time left to complete a running crawl.
- TimeLeftSeconds *float64 `type:"double"`
+// SetConfiguration sets the Configuration field's value.
+func (s *CreateCrawlerInput) SetConfiguration(v string) *CreateCrawlerInput {
+ s.Configuration = &v
+ return s
}
-// String returns the string representation
-func (s CrawlerMetrics) String() string {
- return awsutil.Prettify(s)
+// SetCrawlerSecurityConfiguration sets the CrawlerSecurityConfiguration field's value.
+func (s *CreateCrawlerInput) SetCrawlerSecurityConfiguration(v string) *CreateCrawlerInput {
+ s.CrawlerSecurityConfiguration = &v
+ return s
}
-// GoString returns the string representation
-func (s CrawlerMetrics) GoString() string {
- return s.String()
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *CreateCrawlerInput) SetDatabaseName(v string) *CreateCrawlerInput {
+ s.DatabaseName = &v
+ return s
}
-// SetCrawlerName sets the CrawlerName field's value.
-func (s *CrawlerMetrics) SetCrawlerName(v string) *CrawlerMetrics {
- s.CrawlerName = &v
+// SetDescription sets the Description field's value.
+func (s *CreateCrawlerInput) SetDescription(v string) *CreateCrawlerInput {
+ s.Description = &v
return s
}
-// SetLastRuntimeSeconds sets the LastRuntimeSeconds field's value.
-func (s *CrawlerMetrics) SetLastRuntimeSeconds(v float64) *CrawlerMetrics {
- s.LastRuntimeSeconds = &v
+// SetName sets the Name field's value.
+func (s *CreateCrawlerInput) SetName(v string) *CreateCrawlerInput {
+ s.Name = &v
return s
}
-// SetMedianRuntimeSeconds sets the MedianRuntimeSeconds field's value.
-func (s *CrawlerMetrics) SetMedianRuntimeSeconds(v float64) *CrawlerMetrics {
- s.MedianRuntimeSeconds = &v
+// SetRole sets the Role field's value.
+func (s *CreateCrawlerInput) SetRole(v string) *CreateCrawlerInput {
+ s.Role = &v
return s
}
-// SetStillEstimating sets the StillEstimating field's value.
-func (s *CrawlerMetrics) SetStillEstimating(v bool) *CrawlerMetrics {
- s.StillEstimating = &v
+// SetSchedule sets the Schedule field's value.
+func (s *CreateCrawlerInput) SetSchedule(v string) *CreateCrawlerInput {
+ s.Schedule = &v
return s
}
-// SetTablesCreated sets the TablesCreated field's value.
-func (s *CrawlerMetrics) SetTablesCreated(v int64) *CrawlerMetrics {
- s.TablesCreated = &v
+// SetSchemaChangePolicy sets the SchemaChangePolicy field's value.
+func (s *CreateCrawlerInput) SetSchemaChangePolicy(v *SchemaChangePolicy) *CreateCrawlerInput {
+ s.SchemaChangePolicy = v
return s
}
-// SetTablesDeleted sets the TablesDeleted field's value.
-func (s *CrawlerMetrics) SetTablesDeleted(v int64) *CrawlerMetrics {
- s.TablesDeleted = &v
+// SetTablePrefix sets the TablePrefix field's value.
+func (s *CreateCrawlerInput) SetTablePrefix(v string) *CreateCrawlerInput {
+ s.TablePrefix = &v
return s
}
-// SetTablesUpdated sets the TablesUpdated field's value.
-func (s *CrawlerMetrics) SetTablesUpdated(v int64) *CrawlerMetrics {
- s.TablesUpdated = &v
+// SetTags sets the Tags field's value.
+func (s *CreateCrawlerInput) SetTags(v map[string]*string) *CreateCrawlerInput {
+ s.Tags = v
return s
}
-// SetTimeLeftSeconds sets the TimeLeftSeconds field's value.
-func (s *CrawlerMetrics) SetTimeLeftSeconds(v float64) *CrawlerMetrics {
- s.TimeLeftSeconds = &v
+// SetTargets sets the Targets field's value.
+func (s *CreateCrawlerInput) SetTargets(v *CrawlerTargets) *CreateCrawlerInput {
+ s.Targets = v
return s
}
-// Specifies data stores to crawl.
-type CrawlerTargets struct {
+type CreateCrawlerOutput struct {
_ struct{} `type:"structure"`
-
- // Specifies DynamoDB targets.
- DynamoDBTargets []*DynamoDBTarget `type:"list"`
-
- // Specifies JDBC targets.
- JdbcTargets []*JdbcTarget `type:"list"`
-
- // Specifies Amazon S3 targets.
- S3Targets []*S3Target `type:"list"`
}
// String returns the string representation
-func (s CrawlerTargets) String() string {
+func (s CreateCrawlerOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CrawlerTargets) GoString() string {
+func (s CreateCrawlerOutput) GoString() string {
return s.String()
}
-// SetDynamoDBTargets sets the DynamoDBTargets field's value.
-func (s *CrawlerTargets) SetDynamoDBTargets(v []*DynamoDBTarget) *CrawlerTargets {
- s.DynamoDBTargets = v
- return s
-}
-
-// SetJdbcTargets sets the JdbcTargets field's value.
-func (s *CrawlerTargets) SetJdbcTargets(v []*JdbcTarget) *CrawlerTargets {
- s.JdbcTargets = v
- return s
-}
-
-// SetS3Targets sets the S3Targets field's value.
-func (s *CrawlerTargets) SetS3Targets(v []*S3Target) *CrawlerTargets {
- s.S3Targets = v
- return s
-}
-
-type CreateClassifierInput struct {
+type CreateDatabaseInput 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"`
+ // The ID of the Data Catalog in which to create the database. If none is supplied,
+ // the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
- // An XMLClassifier object specifying the classifier to create.
- XMLClassifier *CreateXMLClassifierRequest `type:"structure"`
+ // A DatabaseInput object defining the metadata database to create in the catalog.
+ //
+ // DatabaseInput is a required field
+ DatabaseInput *DatabaseInput `type:"structure" required:"true"`
}
// String returns the string representation
-func (s CreateClassifierInput) String() string {
+func (s CreateDatabaseInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateClassifierInput) GoString() string {
+func (s CreateDatabaseInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateClassifierInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateClassifierInput"}
- if s.GrokClassifier != nil {
- if err := s.GrokClassifier.Validate(); err != nil {
- invalidParams.AddNested("GrokClassifier", err.(request.ErrInvalidParams))
- }
+func (s *CreateDatabaseInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateDatabaseInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
- if s.JsonClassifier != nil {
- if err := s.JsonClassifier.Validate(); err != nil {
- invalidParams.AddNested("JsonClassifier", err.(request.ErrInvalidParams))
- }
+ if s.DatabaseInput == nil {
+ invalidParams.Add(request.NewErrParamRequired("DatabaseInput"))
}
- if s.XMLClassifier != nil {
- if err := s.XMLClassifier.Validate(); err != nil {
- invalidParams.AddNested("XMLClassifier", err.(request.ErrInvalidParams))
+ if s.DatabaseInput != nil {
+ if err := s.DatabaseInput.Validate(); err != nil {
+ invalidParams.AddNested("DatabaseInput", err.(request.ErrInvalidParams))
}
}
@@ -10676,74 +12555,113 @@ func (s *CreateClassifierInput) Validate() error {
return nil
}
-// SetGrokClassifier sets the GrokClassifier field's value.
-func (s *CreateClassifierInput) SetGrokClassifier(v *CreateGrokClassifierRequest) *CreateClassifierInput {
- s.GrokClassifier = v
- return s
-}
-
-// SetJsonClassifier sets the JsonClassifier field's value.
-func (s *CreateClassifierInput) SetJsonClassifier(v *CreateJsonClassifierRequest) *CreateClassifierInput {
- s.JsonClassifier = v
+// SetCatalogId sets the CatalogId field's value.
+func (s *CreateDatabaseInput) SetCatalogId(v string) *CreateDatabaseInput {
+ s.CatalogId = &v
return s
}
-// SetXMLClassifier sets the XMLClassifier field's value.
-func (s *CreateClassifierInput) SetXMLClassifier(v *CreateXMLClassifierRequest) *CreateClassifierInput {
- s.XMLClassifier = v
+// SetDatabaseInput sets the DatabaseInput field's value.
+func (s *CreateDatabaseInput) SetDatabaseInput(v *DatabaseInput) *CreateDatabaseInput {
+ s.DatabaseInput = v
return s
}
-type CreateClassifierOutput struct {
+type CreateDatabaseOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
-func (s CreateClassifierOutput) String() string {
+func (s CreateDatabaseOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateClassifierOutput) GoString() string {
+func (s CreateDatabaseOutput) GoString() string {
return s.String()
}
-type CreateConnectionInput struct {
+type CreateDevEndpointInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog in which to create the connection. If none is
- // supplied, the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+ // The name to be assigned to the new DevEndpoint.
+ //
+ // EndpointName is a required field
+ EndpointName *string `type:"string" required:"true"`
- // A ConnectionInput object defining the connection to create.
+ // Path to one or more Java Jars in an S3 bucket that should be loaded in your
+ // DevEndpoint.
+ ExtraJarsS3Path *string `type:"string"`
+
+ // Path(s) to one or more Python libraries in an S3 bucket that should be loaded
+ // in your DevEndpoint. Multiple values must be complete paths separated by
+ // a comma.
//
- // ConnectionInput is a required field
- ConnectionInput *ConnectionInput `type:"structure" required:"true"`
+ // Please note that only pure Python libraries can currently be used on a DevEndpoint.
+ // Libraries that rely on C extensions, such as the pandas (http://pandas.pydata.org/)
+ // Python data analysis library, are not yet supported.
+ ExtraPythonLibsS3Path *string `type:"string"`
+
+ // The number of AWS Glue Data Processing Units (DPUs) to allocate to this DevEndpoint.
+ NumberOfNodes *int64 `type:"integer"`
+
+ // The public key to be used by this DevEndpoint for authentication. This attribute
+ // is provided for backward compatibility, as the recommended attribute to use
+ // is public keys.
+ PublicKey *string `type:"string"`
+
+ // A list of public keys to be used by the DevEndpoints for authentication.
+ // The use of this attribute is preferred over a single public key because the
+ // public keys allow you to have a different private key per client.
+ //
+ // If you previously created an endpoint with a public key, you must remove
+ // that key to be able to set a list of public keys: call the UpdateDevEndpoint
+ // API with the public key content in the deletePublicKeys attribute, and the
+ // list of new keys in the addPublicKeys attribute.
+ PublicKeys []*string `type:"list"`
+
+ // The IAM role for the DevEndpoint.
+ //
+ // RoleArn is a required field
+ RoleArn *string `type:"string" required:"true"`
+
+ // The name of the SecurityConfiguration structure to be used with this DevEndpoint.
+ SecurityConfiguration *string `min:"1" type:"string"`
+
+ // Security group IDs for the security groups to be used by the new DevEndpoint.
+ SecurityGroupIds []*string `type:"list"`
+
+ // The subnet ID for the new DevEndpoint to use.
+ SubnetId *string `type:"string"`
+
+ // The tags to use with this DevEndpoint. You may use tags to limit access to
+ // the DevEndpoint. For more information about tags in AWS Glue, see AWS Tags
+ // in AWS Glue (http://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html)
+ // in the developer guide.
+ Tags map[string]*string `type:"map"`
}
// String returns the string representation
-func (s CreateConnectionInput) String() string {
+func (s CreateDevEndpointInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateConnectionInput) GoString() string {
+func (s CreateDevEndpointInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateConnectionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateConnectionInput"}
- if s.CatalogId != nil && len(*s.CatalogId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
+func (s *CreateDevEndpointInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateDevEndpointInput"}
+ if s.EndpointName == nil {
+ invalidParams.Add(request.NewErrParamRequired("EndpointName"))
}
- if s.ConnectionInput == nil {
- invalidParams.Add(request.NewErrParamRequired("ConnectionInput"))
+ if s.RoleArn == nil {
+ invalidParams.Add(request.NewErrParamRequired("RoleArn"))
}
- if s.ConnectionInput != nil {
- if err := s.ConnectionInput.Validate(); err != nil {
- invalidParams.AddNested("ConnectionInput", err.(request.ErrInvalidParams))
- }
+ if s.SecurityConfiguration != nil && len(*s.SecurityConfiguration) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("SecurityConfiguration", 1))
}
if invalidParams.Len() > 0 {
@@ -10752,236 +12670,274 @@ func (s *CreateConnectionInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *CreateConnectionInput) SetCatalogId(v string) *CreateConnectionInput {
- s.CatalogId = &v
+// SetEndpointName sets the EndpointName field's value.
+func (s *CreateDevEndpointInput) SetEndpointName(v string) *CreateDevEndpointInput {
+ s.EndpointName = &v
return s
}
-// SetConnectionInput sets the ConnectionInput field's value.
-func (s *CreateConnectionInput) SetConnectionInput(v *ConnectionInput) *CreateConnectionInput {
- s.ConnectionInput = v
+// SetExtraJarsS3Path sets the ExtraJarsS3Path field's value.
+func (s *CreateDevEndpointInput) SetExtraJarsS3Path(v string) *CreateDevEndpointInput {
+ s.ExtraJarsS3Path = &v
return s
}
-type CreateConnectionOutput struct {
- _ struct{} `type:"structure"`
+// SetExtraPythonLibsS3Path sets the ExtraPythonLibsS3Path field's value.
+func (s *CreateDevEndpointInput) SetExtraPythonLibsS3Path(v string) *CreateDevEndpointInput {
+ s.ExtraPythonLibsS3Path = &v
+ return s
}
-// String returns the string representation
-func (s CreateConnectionOutput) String() string {
- return awsutil.Prettify(s)
+// SetNumberOfNodes sets the NumberOfNodes field's value.
+func (s *CreateDevEndpointInput) SetNumberOfNodes(v int64) *CreateDevEndpointInput {
+ s.NumberOfNodes = &v
+ return s
}
-// GoString returns the string representation
-func (s CreateConnectionOutput) GoString() string {
- return s.String()
+// SetPublicKey sets the PublicKey field's value.
+func (s *CreateDevEndpointInput) SetPublicKey(v string) *CreateDevEndpointInput {
+ s.PublicKey = &v
+ return s
}
-type CreateCrawlerInput struct {
+// SetPublicKeys sets the PublicKeys field's value.
+func (s *CreateDevEndpointInput) SetPublicKeys(v []*string) *CreateDevEndpointInput {
+ s.PublicKeys = v
+ return s
+}
+
+// SetRoleArn sets the RoleArn field's value.
+func (s *CreateDevEndpointInput) SetRoleArn(v string) *CreateDevEndpointInput {
+ s.RoleArn = &v
+ return s
+}
+
+// SetSecurityConfiguration sets the SecurityConfiguration field's value.
+func (s *CreateDevEndpointInput) SetSecurityConfiguration(v string) *CreateDevEndpointInput {
+ s.SecurityConfiguration = &v
+ return s
+}
+
+// SetSecurityGroupIds sets the SecurityGroupIds field's value.
+func (s *CreateDevEndpointInput) SetSecurityGroupIds(v []*string) *CreateDevEndpointInput {
+ s.SecurityGroupIds = v
+ return s
+}
+
+// SetSubnetId sets the SubnetId field's value.
+func (s *CreateDevEndpointInput) SetSubnetId(v string) *CreateDevEndpointInput {
+ s.SubnetId = &v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *CreateDevEndpointInput) SetTags(v map[string]*string) *CreateDevEndpointInput {
+ s.Tags = v
+ return s
+}
+
+type CreateDevEndpointOutput struct {
_ struct{} `type:"structure"`
- // A list of custom classifiers that the user has registered. By default, all
- // built-in classifiers are included in a crawl, but these custom classifiers
- // always override the default classifiers for a given classification.
- Classifiers []*string `type:"list"`
+ // The AWS availability zone where this DevEndpoint is located.
+ AvailabilityZone *string `type:"string"`
- // Crawler configuration information. This versioned JSON string allows users
- // to specify aspects of a crawler's behavior. For more information, see Configuring
- // a Crawler (http://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
- Configuration *string `type:"string"`
+ // The point in time at which this DevEndpoint was created.
+ CreatedTimestamp *time.Time `type:"timestamp"`
- // The name of the SecurityConfiguration structure to be used by this Crawler.
- CrawlerSecurityConfiguration *string `type:"string"`
+ // The name assigned to the new DevEndpoint.
+ EndpointName *string `type:"string"`
- // The AWS Glue database where results are written, such as: arn:aws:daylight:us-east-1::database/sometable/*.
- //
- // DatabaseName is a required field
- DatabaseName *string `type:"string" required:"true"`
+ // Path to one or more Java Jars in an S3 bucket that will be loaded in your
+ // DevEndpoint.
+ ExtraJarsS3Path *string `type:"string"`
- // A description of the new crawler.
- Description *string `type:"string"`
+ // Path(s) to one or more Python libraries in an S3 bucket that will be loaded
+ // in your DevEndpoint.
+ ExtraPythonLibsS3Path *string `type:"string"`
- // Name of the new crawler.
- //
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // The reason for a current failure in this DevEndpoint.
+ FailureReason *string `type:"string"`
- // The IAM role (or ARN of an IAM role) used by the new crawler to access customer
- // resources.
- //
- // Role is a required field
- Role *string `type:"string" required:"true"`
+ // The number of AWS Glue Data Processing Units (DPUs) allocated to this DevEndpoint.
+ NumberOfNodes *int64 `type:"integer"`
- // 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 * * ? *).
- Schedule *string `type:"string"`
+ // The AWS ARN of the role assigned to the new DevEndpoint.
+ RoleArn *string `type:"string"`
- // Policy for the crawler's update and deletion behavior.
- SchemaChangePolicy *SchemaChangePolicy `type:"structure"`
+ // The name of the SecurityConfiguration structure being used with this DevEndpoint.
+ SecurityConfiguration *string `min:"1" type:"string"`
- // The table prefix used for catalog tables that are created.
- TablePrefix *string `type:"string"`
+ // The security groups assigned to the new DevEndpoint.
+ SecurityGroupIds []*string `type:"list"`
- // A list of collection of targets to crawl.
- //
- // Targets is a required field
- Targets *CrawlerTargets `type:"structure" required:"true"`
+ // The current status of the new DevEndpoint.
+ Status *string `type:"string"`
+
+ // The subnet ID assigned to the new DevEndpoint.
+ SubnetId *string `type:"string"`
+
+ // The ID of the VPC used by this DevEndpoint.
+ VpcId *string `type:"string"`
+
+ // The address of the YARN endpoint used by this DevEndpoint.
+ YarnEndpointAddress *string `type:"string"`
+
+ // The Apache Zeppelin port for the remote Apache Spark interpreter.
+ ZeppelinRemoteSparkInterpreterPort *int64 `type:"integer"`
}
// String returns the string representation
-func (s CreateCrawlerInput) String() string {
+func (s CreateDevEndpointOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateCrawlerInput) GoString() string {
+func (s CreateDevEndpointOutput) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateCrawlerInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateCrawlerInput"}
- if s.DatabaseName == nil {
- invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
- }
- 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.Role == nil {
- invalidParams.Add(request.NewErrParamRequired("Role"))
- }
- if s.Targets == nil {
- invalidParams.Add(request.NewErrParamRequired("Targets"))
- }
+// SetAvailabilityZone sets the AvailabilityZone field's value.
+func (s *CreateDevEndpointOutput) SetAvailabilityZone(v string) *CreateDevEndpointOutput {
+ s.AvailabilityZone = &v
+ return s
+}
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
+// SetCreatedTimestamp sets the CreatedTimestamp field's value.
+func (s *CreateDevEndpointOutput) SetCreatedTimestamp(v time.Time) *CreateDevEndpointOutput {
+ s.CreatedTimestamp = &v
+ return s
}
-// SetClassifiers sets the Classifiers field's value.
-func (s *CreateCrawlerInput) SetClassifiers(v []*string) *CreateCrawlerInput {
- s.Classifiers = v
+// SetEndpointName sets the EndpointName field's value.
+func (s *CreateDevEndpointOutput) SetEndpointName(v string) *CreateDevEndpointOutput {
+ s.EndpointName = &v
return s
}
-// SetConfiguration sets the Configuration field's value.
-func (s *CreateCrawlerInput) SetConfiguration(v string) *CreateCrawlerInput {
- s.Configuration = &v
+// SetExtraJarsS3Path sets the ExtraJarsS3Path field's value.
+func (s *CreateDevEndpointOutput) SetExtraJarsS3Path(v string) *CreateDevEndpointOutput {
+ s.ExtraJarsS3Path = &v
return s
}
-// SetCrawlerSecurityConfiguration sets the CrawlerSecurityConfiguration field's value.
-func (s *CreateCrawlerInput) SetCrawlerSecurityConfiguration(v string) *CreateCrawlerInput {
- s.CrawlerSecurityConfiguration = &v
+// SetExtraPythonLibsS3Path sets the ExtraPythonLibsS3Path field's value.
+func (s *CreateDevEndpointOutput) SetExtraPythonLibsS3Path(v string) *CreateDevEndpointOutput {
+ s.ExtraPythonLibsS3Path = &v
return s
}
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *CreateCrawlerInput) SetDatabaseName(v string) *CreateCrawlerInput {
- s.DatabaseName = &v
+// SetFailureReason sets the FailureReason field's value.
+func (s *CreateDevEndpointOutput) SetFailureReason(v string) *CreateDevEndpointOutput {
+ s.FailureReason = &v
return s
}
-// SetDescription sets the Description field's value.
-func (s *CreateCrawlerInput) SetDescription(v string) *CreateCrawlerInput {
- s.Description = &v
+// SetNumberOfNodes sets the NumberOfNodes field's value.
+func (s *CreateDevEndpointOutput) SetNumberOfNodes(v int64) *CreateDevEndpointOutput {
+ s.NumberOfNodes = &v
return s
}
-// SetName sets the Name field's value.
-func (s *CreateCrawlerInput) SetName(v string) *CreateCrawlerInput {
- s.Name = &v
+// SetRoleArn sets the RoleArn field's value.
+func (s *CreateDevEndpointOutput) SetRoleArn(v string) *CreateDevEndpointOutput {
+ s.RoleArn = &v
return s
}
-// SetRole sets the Role field's value.
-func (s *CreateCrawlerInput) SetRole(v string) *CreateCrawlerInput {
- s.Role = &v
+// SetSecurityConfiguration sets the SecurityConfiguration field's value.
+func (s *CreateDevEndpointOutput) SetSecurityConfiguration(v string) *CreateDevEndpointOutput {
+ s.SecurityConfiguration = &v
return s
}
-// SetSchedule sets the Schedule field's value.
-func (s *CreateCrawlerInput) SetSchedule(v string) *CreateCrawlerInput {
- s.Schedule = &v
+// SetSecurityGroupIds sets the SecurityGroupIds field's value.
+func (s *CreateDevEndpointOutput) SetSecurityGroupIds(v []*string) *CreateDevEndpointOutput {
+ s.SecurityGroupIds = v
return s
}
-// SetSchemaChangePolicy sets the SchemaChangePolicy field's value.
-func (s *CreateCrawlerInput) SetSchemaChangePolicy(v *SchemaChangePolicy) *CreateCrawlerInput {
- s.SchemaChangePolicy = v
+// SetStatus sets the Status field's value.
+func (s *CreateDevEndpointOutput) SetStatus(v string) *CreateDevEndpointOutput {
+ s.Status = &v
return s
}
-// SetTablePrefix sets the TablePrefix field's value.
-func (s *CreateCrawlerInput) SetTablePrefix(v string) *CreateCrawlerInput {
- s.TablePrefix = &v
+// SetSubnetId sets the SubnetId field's value.
+func (s *CreateDevEndpointOutput) SetSubnetId(v string) *CreateDevEndpointOutput {
+ s.SubnetId = &v
+ return s
+}
+
+// SetVpcId sets the VpcId field's value.
+func (s *CreateDevEndpointOutput) SetVpcId(v string) *CreateDevEndpointOutput {
+ s.VpcId = &v
+ return s
+}
+
+// SetYarnEndpointAddress sets the YarnEndpointAddress field's value.
+func (s *CreateDevEndpointOutput) SetYarnEndpointAddress(v string) *CreateDevEndpointOutput {
+ s.YarnEndpointAddress = &v
return s
}
-// SetTargets sets the Targets field's value.
-func (s *CreateCrawlerInput) SetTargets(v *CrawlerTargets) *CreateCrawlerInput {
- s.Targets = v
+// SetZeppelinRemoteSparkInterpreterPort sets the ZeppelinRemoteSparkInterpreterPort field's value.
+func (s *CreateDevEndpointOutput) SetZeppelinRemoteSparkInterpreterPort(v int64) *CreateDevEndpointOutput {
+ s.ZeppelinRemoteSparkInterpreterPort = &v
return s
}
-type CreateCrawlerOutput struct {
+// Specifies a grok classifier for CreateClassifier to create.
+type CreateGrokClassifierRequest struct {
_ struct{} `type:"structure"`
-}
-
-// String returns the string representation
-func (s CreateCrawlerOutput) String() string {
- return awsutil.Prettify(s)
-}
-// GoString returns the string representation
-func (s CreateCrawlerOutput) GoString() string {
- return s.String()
-}
+ // An identifier of the data format that the classifier matches, such as Twitter,
+ // JSON, Omniture logs, Amazon CloudWatch Logs, and so on.
+ //
+ // Classification is a required field
+ Classification *string `type:"string" required:"true"`
-type CreateDatabaseInput struct {
- _ struct{} `type:"structure"`
+ // Optional custom grok patterns used by this classifier.
+ CustomPatterns *string `type:"string"`
- // The ID of the Data Catalog in which to create the database. If none is supplied,
- // the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+ // The grok pattern used by this classifier.
+ //
+ // GrokPattern is a required field
+ GrokPattern *string `min:"1" type:"string" required:"true"`
- // A DatabaseInput object defining the metadata database to create in the catalog.
+ // The name of the new classifier.
//
- // DatabaseInput is a required field
- DatabaseInput *DatabaseInput `type:"structure" required:"true"`
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s CreateDatabaseInput) String() string {
+func (s CreateGrokClassifierRequest) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateDatabaseInput) GoString() string {
+func (s CreateGrokClassifierRequest) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateDatabaseInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateDatabaseInput"}
- if s.CatalogId != nil && len(*s.CatalogId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
+func (s *CreateGrokClassifierRequest) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateGrokClassifierRequest"}
+ if s.Classification == nil {
+ invalidParams.Add(request.NewErrParamRequired("Classification"))
}
- if s.DatabaseInput == nil {
- invalidParams.Add(request.NewErrParamRequired("DatabaseInput"))
+ if s.GrokPattern == nil {
+ invalidParams.Add(request.NewErrParamRequired("GrokPattern"))
}
- if s.DatabaseInput != nil {
- if err := s.DatabaseInput.Validate(); err != nil {
- invalidParams.AddNested("DatabaseInput", err.(request.ErrInvalidParams))
- }
+ if s.GrokPattern != nil && len(*s.GrokPattern) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("GrokPattern", 1))
+ }
+ if s.Name == nil {
+ invalidParams.Add(request.NewErrParamRequired("Name"))
+ }
+ if s.Name != nil && len(*s.Name) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
if invalidParams.Len() > 0 {
@@ -10990,108 +12946,158 @@ func (s *CreateDatabaseInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *CreateDatabaseInput) SetCatalogId(v string) *CreateDatabaseInput {
- s.CatalogId = &v
+// SetClassification sets the Classification field's value.
+func (s *CreateGrokClassifierRequest) SetClassification(v string) *CreateGrokClassifierRequest {
+ s.Classification = &v
return s
}
-// SetDatabaseInput sets the DatabaseInput field's value.
-func (s *CreateDatabaseInput) SetDatabaseInput(v *DatabaseInput) *CreateDatabaseInput {
- s.DatabaseInput = v
+// SetCustomPatterns sets the CustomPatterns field's value.
+func (s *CreateGrokClassifierRequest) SetCustomPatterns(v string) *CreateGrokClassifierRequest {
+ s.CustomPatterns = &v
return s
}
-type CreateDatabaseOutput struct {
- _ struct{} `type:"structure"`
-}
-
-// String returns the string representation
-func (s CreateDatabaseOutput) String() string {
- return awsutil.Prettify(s)
+// SetGrokPattern sets the GrokPattern field's value.
+func (s *CreateGrokClassifierRequest) SetGrokPattern(v string) *CreateGrokClassifierRequest {
+ s.GrokPattern = &v
+ return s
}
-// GoString returns the string representation
-func (s CreateDatabaseOutput) GoString() string {
- return s.String()
+// SetName sets the Name field's value.
+func (s *CreateGrokClassifierRequest) SetName(v string) *CreateGrokClassifierRequest {
+ s.Name = &v
+ return s
}
-type CreateDevEndpointInput struct {
+type CreateJobInput struct {
_ struct{} `type:"structure"`
- // The name to be assigned to the new DevEndpoint.
+ // This parameter is deprecated. Use MaxCapacity instead.
//
- // EndpointName is a required field
- EndpointName *string `type:"string" required:"true"`
+ // 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/).
+ //
+ // Deprecated: This property is deprecated, use MaxCapacity instead.
+ AllocatedCapacity *int64 `deprecated:"true" type:"integer"`
- // Path to one or more Java Jars in an S3 bucket that should be loaded in your
- // DevEndpoint.
- ExtraJarsS3Path *string `type:"string"`
+ // The JobCommand that executes this job.
+ //
+ // Command is a required field
+ Command *JobCommand `type:"structure" required:"true"`
- // Path(s) to one or more Python libraries in an S3 bucket that should be loaded
- // in your DevEndpoint. Multiple values must be complete paths separated by
- // a comma.
+ // The connections used for this job.
+ Connections *ConnectionsList `type:"structure"`
+
+ // The default arguments for this job.
//
- // Please note that only pure Python libraries can currently be used on a DevEndpoint.
- // Libraries that rely on C extensions, such as the pandas (http://pandas.pydata.org/)
- // Python data analysis library, are not yet supported.
- ExtraPythonLibsS3Path *string `type:"string"`
+ // 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-etl-glue-arguments.html)
+ // topic in the developer guide.
+ DefaultArguments map[string]*string `type:"map"`
- // The number of AWS Glue Data Processing Units (DPUs) to allocate to this DevEndpoint.
- NumberOfNodes *int64 `type:"integer"`
+ // Description of the job being defined.
+ Description *string `type:"string"`
- // The public key to be used by this DevEndpoint for authentication. This attribute
- // is provided for backward compatibility, as the recommended attribute to use
- // is public keys.
- PublicKey *string `type:"string"`
+ // An ExecutionProperty specifying the maximum number of concurrent runs allowed
+ // for this job.
+ ExecutionProperty *ExecutionProperty `type:"structure"`
- // A list of public keys to be used by the DevEndpoints for authentication.
- // The use of this attribute is preferred over a single public key because the
- // public keys allow you to have a different private key per client.
+ // This field is reserved for future use.
+ LogUri *string `type:"string"`
+
+ // The number of AWS Glue data processing units (DPUs) that can be allocated
+ // when this job runs. 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/).
//
- // If you previously created an endpoint with a public key, you must remove
- // that key to be able to set a list of public keys: call the UpdateDevEndpoint
- // API with the public key content in the deletePublicKeys attribute, and the
- // list of new keys in the addPublicKeys attribute.
- PublicKeys []*string `type:"list"`
+ // The value that can be allocated for MaxCapacity depends on whether you are
+ // running a python shell job, or an Apache Spark ETL job:
+ //
+ // * When you specify a python shell job (JobCommand.Name="pythonshell"),
+ // you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
+ //
+ // * When you specify an Apache Spark ETL job (JobCommand.Name="glueetl"),
+ // you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job
+ // type cannot have a fractional DPU allocation.
+ MaxCapacity *float64 `type:"double"`
- // The IAM role for the DevEndpoint.
+ // The maximum number of times to retry this job if it fails.
+ MaxRetries *int64 `type:"integer"`
+
+ // The name you assign to this job definition. It must be unique in your account.
//
- // RoleArn is a required field
- RoleArn *string `type:"string" required:"true"`
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
- // The name of the SecurityConfiguration structure to be used with this DevEndpoint.
+ // Specifies configuration properties of a job notification.
+ NotificationProperty *NotificationProperty `type:"structure"`
+
+ // The name or ARN of the IAM role associated with this job.
+ //
+ // Role is a required field
+ Role *string `type:"string" required:"true"`
+
+ // The name of the SecurityConfiguration structure to be used with this job.
SecurityConfiguration *string `min:"1" type:"string"`
- // Security group IDs for the security groups to be used by the new DevEndpoint.
- SecurityGroupIds []*string `type:"list"`
+ // The tags to use with this job. You may use tags to limit access to the job.
+ // For more information about tags in AWS Glue, see AWS Tags in AWS Glue (http://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html)
+ // in the developer guide.
+ Tags map[string]*string `type:"map"`
- // The subnet ID for the new DevEndpoint to use.
- SubnetId *string `type:"string"`
+ // The job timeout in minutes. This is the maximum time that a job run can consume
+ // resources before it is terminated and enters TIMEOUT status. The default
+ // is 2,880 minutes (48 hours).
+ Timeout *int64 `min:"1" type:"integer"`
}
// String returns the string representation
-func (s CreateDevEndpointInput) String() string {
+func (s CreateJobInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateDevEndpointInput) GoString() string {
+func (s CreateJobInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateDevEndpointInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateDevEndpointInput"}
- if s.EndpointName == nil {
- invalidParams.Add(request.NewErrParamRequired("EndpointName"))
+func (s *CreateJobInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
+ if s.Command == nil {
+ invalidParams.Add(request.NewErrParamRequired("Command"))
}
- if s.RoleArn == nil {
- invalidParams.Add(request.NewErrParamRequired("RoleArn"))
+ 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.Role == nil {
+ invalidParams.Add(request.NewErrParamRequired("Role"))
}
if s.SecurityConfiguration != nil && len(*s.SecurityConfiguration) < 1 {
invalidParams.Add(request.NewErrParamMinLen("SecurityConfiguration", 1))
}
+ if s.Timeout != nil && *s.Timeout < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("Timeout", 1))
+ }
+ if s.NotificationProperty != nil {
+ if err := s.NotificationProperty.Validate(); err != nil {
+ invalidParams.AddNested("NotificationProperty", err.(request.ErrInvalidParams))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -11099,262 +13105,413 @@ func (s *CreateDevEndpointInput) Validate() error {
return nil
}
-// SetEndpointName sets the EndpointName field's value.
-func (s *CreateDevEndpointInput) SetEndpointName(v string) *CreateDevEndpointInput {
- s.EndpointName = &v
+// SetAllocatedCapacity sets the AllocatedCapacity field's value.
+func (s *CreateJobInput) SetAllocatedCapacity(v int64) *CreateJobInput {
+ s.AllocatedCapacity = &v
+ return s
+}
+
+// SetCommand sets the Command field's value.
+func (s *CreateJobInput) SetCommand(v *JobCommand) *CreateJobInput {
+ s.Command = v
+ return s
+}
+
+// SetConnections sets the Connections field's value.
+func (s *CreateJobInput) SetConnections(v *ConnectionsList) *CreateJobInput {
+ s.Connections = v
+ return s
+}
+
+// SetDefaultArguments sets the DefaultArguments field's value.
+func (s *CreateJobInput) SetDefaultArguments(v map[string]*string) *CreateJobInput {
+ s.DefaultArguments = v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
+ s.Description = &v
+ return s
+}
+
+// SetExecutionProperty sets the ExecutionProperty field's value.
+func (s *CreateJobInput) SetExecutionProperty(v *ExecutionProperty) *CreateJobInput {
+ s.ExecutionProperty = v
return s
}
-// SetExtraJarsS3Path sets the ExtraJarsS3Path field's value.
-func (s *CreateDevEndpointInput) SetExtraJarsS3Path(v string) *CreateDevEndpointInput {
- s.ExtraJarsS3Path = &v
+// SetLogUri sets the LogUri field's value.
+func (s *CreateJobInput) SetLogUri(v string) *CreateJobInput {
+ s.LogUri = &v
return s
}
-// SetExtraPythonLibsS3Path sets the ExtraPythonLibsS3Path field's value.
-func (s *CreateDevEndpointInput) SetExtraPythonLibsS3Path(v string) *CreateDevEndpointInput {
- s.ExtraPythonLibsS3Path = &v
+// SetMaxCapacity sets the MaxCapacity field's value.
+func (s *CreateJobInput) SetMaxCapacity(v float64) *CreateJobInput {
+ s.MaxCapacity = &v
return s
}
-// SetNumberOfNodes sets the NumberOfNodes field's value.
-func (s *CreateDevEndpointInput) SetNumberOfNodes(v int64) *CreateDevEndpointInput {
- s.NumberOfNodes = &v
+// SetMaxRetries sets the MaxRetries field's value.
+func (s *CreateJobInput) SetMaxRetries(v int64) *CreateJobInput {
+ s.MaxRetries = &v
return s
}
-// SetPublicKey sets the PublicKey field's value.
-func (s *CreateDevEndpointInput) SetPublicKey(v string) *CreateDevEndpointInput {
- s.PublicKey = &v
+// SetName sets the Name field's value.
+func (s *CreateJobInput) SetName(v string) *CreateJobInput {
+ s.Name = &v
return s
}
-// SetPublicKeys sets the PublicKeys field's value.
-func (s *CreateDevEndpointInput) SetPublicKeys(v []*string) *CreateDevEndpointInput {
- s.PublicKeys = v
+// SetNotificationProperty sets the NotificationProperty field's value.
+func (s *CreateJobInput) SetNotificationProperty(v *NotificationProperty) *CreateJobInput {
+ s.NotificationProperty = v
return s
}
-// SetRoleArn sets the RoleArn field's value.
-func (s *CreateDevEndpointInput) SetRoleArn(v string) *CreateDevEndpointInput {
- s.RoleArn = &v
+// SetRole sets the Role field's value.
+func (s *CreateJobInput) SetRole(v string) *CreateJobInput {
+ s.Role = &v
return s
}
// SetSecurityConfiguration sets the SecurityConfiguration field's value.
-func (s *CreateDevEndpointInput) SetSecurityConfiguration(v string) *CreateDevEndpointInput {
+func (s *CreateJobInput) SetSecurityConfiguration(v string) *CreateJobInput {
s.SecurityConfiguration = &v
return s
}
-// SetSecurityGroupIds sets the SecurityGroupIds field's value.
-func (s *CreateDevEndpointInput) SetSecurityGroupIds(v []*string) *CreateDevEndpointInput {
- s.SecurityGroupIds = v
+// SetTags sets the Tags field's value.
+func (s *CreateJobInput) SetTags(v map[string]*string) *CreateJobInput {
+ s.Tags = v
return s
}
-// SetSubnetId sets the SubnetId field's value.
-func (s *CreateDevEndpointInput) SetSubnetId(v string) *CreateDevEndpointInput {
- s.SubnetId = &v
+// SetTimeout sets the Timeout field's value.
+func (s *CreateJobInput) SetTimeout(v int64) *CreateJobInput {
+ s.Timeout = &v
return s
}
-type CreateDevEndpointOutput struct {
+type CreateJobOutput struct {
_ struct{} `type:"structure"`
- // The AWS availability zone where this DevEndpoint is located.
- AvailabilityZone *string `type:"string"`
+ // The unique name that was provided for this job definition.
+ Name *string `min:"1" type:"string"`
+}
- // The point in time at which this DevEndpoint was created.
- CreatedTimestamp *time.Time `type:"timestamp"`
+// String returns the string representation
+func (s CreateJobOutput) String() string {
+ return awsutil.Prettify(s)
+}
- // The name assigned to the new DevEndpoint.
- EndpointName *string `type:"string"`
+// GoString returns the string representation
+func (s CreateJobOutput) GoString() string {
+ return s.String()
+}
- // Path to one or more Java Jars in an S3 bucket that will be loaded in your
- // DevEndpoint.
- ExtraJarsS3Path *string `type:"string"`
+// SetName sets the Name field's value.
+func (s *CreateJobOutput) SetName(v string) *CreateJobOutput {
+ s.Name = &v
+ return s
+}
- // Path(s) to one or more Python libraries in an S3 bucket that will be loaded
- // in your DevEndpoint.
- ExtraPythonLibsS3Path *string `type:"string"`
+// Specifies a JSON classifier for CreateClassifier to create.
+type CreateJsonClassifierRequest struct {
+ _ struct{} `type:"structure"`
- // The reason for a current failure in this DevEndpoint.
- FailureReason *string `type:"string"`
+ // 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 number of AWS Glue Data Processing Units (DPUs) allocated to this DevEndpoint.
- NumberOfNodes *int64 `type:"integer"`
+ // The name of the classifier.
+ //
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
+}
- // The AWS ARN of the role assigned to the new DevEndpoint.
- RoleArn *string `type:"string"`
+// String returns the string representation
+func (s CreateJsonClassifierRequest) String() string {
+ return awsutil.Prettify(s)
+}
- // The name of the SecurityConfiguration structure being used with this DevEndpoint.
- SecurityConfiguration *string `min:"1" type:"string"`
+// GoString returns the string representation
+func (s CreateJsonClassifierRequest) GoString() string {
+ return s.String()
+}
- // The security groups assigned to the new DevEndpoint.
- SecurityGroupIds []*string `type:"list"`
+// 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))
+ }
- // The current status of the new DevEndpoint.
- Status *string `type:"string"`
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
- // The subnet ID assigned to the new DevEndpoint.
- SubnetId *string `type:"string"`
+// SetJsonPath sets the JsonPath field's value.
+func (s *CreateJsonClassifierRequest) SetJsonPath(v string) *CreateJsonClassifierRequest {
+ s.JsonPath = &v
+ return s
+}
- // The ID of the VPC used by this DevEndpoint.
- VpcId *string `type:"string"`
+// SetName sets the Name field's value.
+func (s *CreateJsonClassifierRequest) SetName(v string) *CreateJsonClassifierRequest {
+ s.Name = &v
+ return s
+}
- // The address of the YARN endpoint used by this DevEndpoint.
- YarnEndpointAddress *string `type:"string"`
+type CreatePartitionInput struct {
+ _ struct{} `type:"structure"`
- // The Apache Zeppelin port for the remote Apache Spark interpreter.
- ZeppelinRemoteSparkInterpreterPort *int64 `type:"integer"`
+ // The ID of the catalog in which the partion is to be created. Currently, this
+ // should be the AWS account ID.
+ CatalogId *string `min:"1" type:"string"`
+
+ // The name of the metadata database in which the partition is to be created.
+ //
+ // DatabaseName is a required field
+ DatabaseName *string `min:"1" type:"string" required:"true"`
+
+ // A PartitionInput structure defining the partition to be created.
+ //
+ // PartitionInput is a required field
+ PartitionInput *PartitionInput `type:"structure" required:"true"`
+
+ // The name of the metadata table in which the partition is to be created.
+ //
+ // TableName is a required field
+ TableName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s CreateDevEndpointOutput) String() string {
+func (s CreatePartitionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateDevEndpointOutput) GoString() string {
+func (s CreatePartitionInput) GoString() string {
return s.String()
}
-// SetAvailabilityZone sets the AvailabilityZone field's value.
-func (s *CreateDevEndpointOutput) SetAvailabilityZone(v string) *CreateDevEndpointOutput {
- s.AvailabilityZone = &v
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreatePartitionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreatePartitionInput"}
+ 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.PartitionInput == nil {
+ invalidParams.Add(request.NewErrParamRequired("PartitionInput"))
+ }
+ 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.PartitionInput != nil {
+ if err := s.PartitionInput.Validate(); err != nil {
+ invalidParams.AddNested("PartitionInput", err.(request.ErrInvalidParams))
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCatalogId sets the CatalogId field's value.
+func (s *CreatePartitionInput) SetCatalogId(v string) *CreatePartitionInput {
+ s.CatalogId = &v
return s
}
-// SetCreatedTimestamp sets the CreatedTimestamp field's value.
-func (s *CreateDevEndpointOutput) SetCreatedTimestamp(v time.Time) *CreateDevEndpointOutput {
- s.CreatedTimestamp = &v
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *CreatePartitionInput) SetDatabaseName(v string) *CreatePartitionInput {
+ s.DatabaseName = &v
return s
}
-// SetEndpointName sets the EndpointName field's value.
-func (s *CreateDevEndpointOutput) SetEndpointName(v string) *CreateDevEndpointOutput {
- s.EndpointName = &v
+// SetPartitionInput sets the PartitionInput field's value.
+func (s *CreatePartitionInput) SetPartitionInput(v *PartitionInput) *CreatePartitionInput {
+ s.PartitionInput = v
+ return s
+}
+
+// SetTableName sets the TableName field's value.
+func (s *CreatePartitionInput) SetTableName(v string) *CreatePartitionInput {
+ s.TableName = &v
return s
}
-// SetExtraJarsS3Path sets the ExtraJarsS3Path field's value.
-func (s *CreateDevEndpointOutput) SetExtraJarsS3Path(v string) *CreateDevEndpointOutput {
- s.ExtraJarsS3Path = &v
- return s
+type CreatePartitionOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s CreatePartitionOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreatePartitionOutput) GoString() string {
+ return s.String()
+}
+
+type CreateScriptInput struct {
+ _ struct{} `type:"structure"`
+
+ // A list of the edges in the DAG.
+ DagEdges []*CodeGenEdge `type:"list"`
+
+ // 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"`
}
-// SetExtraPythonLibsS3Path sets the ExtraPythonLibsS3Path field's value.
-func (s *CreateDevEndpointOutput) SetExtraPythonLibsS3Path(v string) *CreateDevEndpointOutput {
- s.ExtraPythonLibsS3Path = &v
- return s
+// String returns the string representation
+func (s CreateScriptInput) String() string {
+ return awsutil.Prettify(s)
}
-// SetFailureReason sets the FailureReason field's value.
-func (s *CreateDevEndpointOutput) SetFailureReason(v string) *CreateDevEndpointOutput {
- s.FailureReason = &v
- return s
+// GoString returns the string representation
+func (s CreateScriptInput) GoString() string {
+ return s.String()
}
-// SetNumberOfNodes sets the NumberOfNodes field's value.
-func (s *CreateDevEndpointOutput) SetNumberOfNodes(v int64) *CreateDevEndpointOutput {
- s.NumberOfNodes = &v
- return s
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreateScriptInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateScriptInput"}
+ if s.DagEdges != nil {
+ for i, v := range s.DagEdges {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DagEdges", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+ if s.DagNodes != nil {
+ for i, v := range s.DagNodes {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DagNodes", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
}
-// SetRoleArn sets the RoleArn field's value.
-func (s *CreateDevEndpointOutput) SetRoleArn(v string) *CreateDevEndpointOutput {
- s.RoleArn = &v
+// SetDagEdges sets the DagEdges field's value.
+func (s *CreateScriptInput) SetDagEdges(v []*CodeGenEdge) *CreateScriptInput {
+ s.DagEdges = v
return s
}
-// SetSecurityConfiguration sets the SecurityConfiguration field's value.
-func (s *CreateDevEndpointOutput) SetSecurityConfiguration(v string) *CreateDevEndpointOutput {
- s.SecurityConfiguration = &v
+// SetDagNodes sets the DagNodes field's value.
+func (s *CreateScriptInput) SetDagNodes(v []*CodeGenNode) *CreateScriptInput {
+ s.DagNodes = v
return s
}
-// SetSecurityGroupIds sets the SecurityGroupIds field's value.
-func (s *CreateDevEndpointOutput) SetSecurityGroupIds(v []*string) *CreateDevEndpointOutput {
- s.SecurityGroupIds = v
+// SetLanguage sets the Language field's value.
+func (s *CreateScriptInput) SetLanguage(v string) *CreateScriptInput {
+ s.Language = &v
return s
}
-// SetStatus sets the Status field's value.
-func (s *CreateDevEndpointOutput) SetStatus(v string) *CreateDevEndpointOutput {
- s.Status = &v
- return s
+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"`
}
-// SetSubnetId sets the SubnetId field's value.
-func (s *CreateDevEndpointOutput) SetSubnetId(v string) *CreateDevEndpointOutput {
- s.SubnetId = &v
- return s
+// String returns the string representation
+func (s CreateScriptOutput) String() string {
+ return awsutil.Prettify(s)
}
-// SetVpcId sets the VpcId field's value.
-func (s *CreateDevEndpointOutput) SetVpcId(v string) *CreateDevEndpointOutput {
- s.VpcId = &v
- return s
+// GoString returns the string representation
+func (s CreateScriptOutput) GoString() string {
+ return s.String()
}
-// SetYarnEndpointAddress sets the YarnEndpointAddress field's value.
-func (s *CreateDevEndpointOutput) SetYarnEndpointAddress(v string) *CreateDevEndpointOutput {
- s.YarnEndpointAddress = &v
+// SetPythonScript sets the PythonScript field's value.
+func (s *CreateScriptOutput) SetPythonScript(v string) *CreateScriptOutput {
+ s.PythonScript = &v
return s
}
-// SetZeppelinRemoteSparkInterpreterPort sets the ZeppelinRemoteSparkInterpreterPort field's value.
-func (s *CreateDevEndpointOutput) SetZeppelinRemoteSparkInterpreterPort(v int64) *CreateDevEndpointOutput {
- s.ZeppelinRemoteSparkInterpreterPort = &v
+// SetScalaCode sets the ScalaCode field's value.
+func (s *CreateScriptOutput) SetScalaCode(v string) *CreateScriptOutput {
+ s.ScalaCode = &v
return s
}
-// Specifies a grok classifier for CreateClassifier to create.
-type CreateGrokClassifierRequest struct {
+type CreateSecurityConfigurationInput struct {
_ struct{} `type:"structure"`
- // An identifier of the data format that the classifier matches, such as Twitter,
- // JSON, Omniture logs, Amazon CloudWatch Logs, and so on.
- //
- // Classification is a required field
- Classification *string `type:"string" required:"true"`
-
- // Optional custom grok patterns used by this classifier.
- CustomPatterns *string `type:"string"`
-
- // The grok pattern used by this classifier.
+ // The encryption configuration for the new security configuration.
//
- // GrokPattern is a required field
- GrokPattern *string `min:"1" type:"string" required:"true"`
+ // EncryptionConfiguration is a required field
+ EncryptionConfiguration *EncryptionConfiguration `type:"structure" required:"true"`
- // The name of the new classifier.
+ // The name for the new security configuration.
//
// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s CreateGrokClassifierRequest) String() string {
+func (s CreateSecurityConfigurationInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateGrokClassifierRequest) GoString() string {
+func (s CreateSecurityConfigurationInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateGrokClassifierRequest) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateGrokClassifierRequest"}
- if s.Classification == nil {
- invalidParams.Add(request.NewErrParamRequired("Classification"))
- }
- if s.GrokPattern == nil {
- invalidParams.Add(request.NewErrParamRequired("GrokPattern"))
- }
- if s.GrokPattern != nil && len(*s.GrokPattern) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("GrokPattern", 1))
+func (s *CreateSecurityConfigurationInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateSecurityConfigurationInput"}
+ if s.EncryptionConfiguration == nil {
+ invalidParams.Add(request.NewErrParamRequired("EncryptionConfiguration"))
}
if s.Name == nil {
invalidParams.Add(request.NewErrParamRequired("Name"))
@@ -11369,121 +13526,198 @@ func (s *CreateGrokClassifierRequest) Validate() error {
return nil
}
-// SetClassification sets the Classification field's value.
-func (s *CreateGrokClassifierRequest) SetClassification(v string) *CreateGrokClassifierRequest {
- s.Classification = &v
+// SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
+func (s *CreateSecurityConfigurationInput) SetEncryptionConfiguration(v *EncryptionConfiguration) *CreateSecurityConfigurationInput {
+ s.EncryptionConfiguration = v
return s
}
-// SetCustomPatterns sets the CustomPatterns field's value.
-func (s *CreateGrokClassifierRequest) SetCustomPatterns(v string) *CreateGrokClassifierRequest {
- s.CustomPatterns = &v
+// SetName sets the Name field's value.
+func (s *CreateSecurityConfigurationInput) SetName(v string) *CreateSecurityConfigurationInput {
+ s.Name = &v
return s
}
-// SetGrokPattern sets the GrokPattern field's value.
-func (s *CreateGrokClassifierRequest) SetGrokPattern(v string) *CreateGrokClassifierRequest {
- s.GrokPattern = &v
+type CreateSecurityConfigurationOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The time at which the new security configuration was created.
+ CreatedTimestamp *time.Time `type:"timestamp"`
+
+ // The name assigned to the new security configuration.
+ Name *string `min:"1" type:"string"`
+}
+
+// String returns the string representation
+func (s CreateSecurityConfigurationOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateSecurityConfigurationOutput) GoString() string {
+ return s.String()
+}
+
+// SetCreatedTimestamp sets the CreatedTimestamp field's value.
+func (s *CreateSecurityConfigurationOutput) SetCreatedTimestamp(v time.Time) *CreateSecurityConfigurationOutput {
+ s.CreatedTimestamp = &v
return s
}
// SetName sets the Name field's value.
-func (s *CreateGrokClassifierRequest) SetName(v string) *CreateGrokClassifierRequest {
+func (s *CreateSecurityConfigurationOutput) SetName(v string) *CreateSecurityConfigurationOutput {
s.Name = &v
return s
}
-type CreateJobInput struct {
+type CreateTableInput struct {
_ struct{} `type:"structure"`
- // This parameter is deprecated. Use MaxCapacity instead.
- //
- // 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/).
+ // The ID of the Data Catalog in which to create the Table. If none is supplied,
+ // the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
+
+ // The catalog database in which to create the new table. For Hive compatibility,
+ // this name is entirely lowercase.
//
- // Deprecated: This property is deprecated, use MaxCapacity instead.
- AllocatedCapacity *int64 `deprecated:"true" type:"integer"`
+ // DatabaseName is a required field
+ DatabaseName *string `min:"1" type:"string" required:"true"`
- // The JobCommand that executes this job.
+ // The TableInput object that defines the metadata table to create in the catalog.
//
- // Command is a required field
- Command *JobCommand `type:"structure" required:"true"`
+ // TableInput is a required field
+ TableInput *TableInput `type:"structure" required:"true"`
+}
+
+// String returns the string representation
+func (s CreateTableInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateTableInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreateTableInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateTableInput"}
+ 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.TableInput == nil {
+ invalidParams.Add(request.NewErrParamRequired("TableInput"))
+ }
+ if s.TableInput != nil {
+ if err := s.TableInput.Validate(); err != nil {
+ invalidParams.AddNested("TableInput", err.(request.ErrInvalidParams))
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCatalogId sets the CatalogId field's value.
+func (s *CreateTableInput) SetCatalogId(v string) *CreateTableInput {
+ s.CatalogId = &v
+ return s
+}
+
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *CreateTableInput) SetDatabaseName(v string) *CreateTableInput {
+ s.DatabaseName = &v
+ return s
+}
- // The connections used for this job.
- Connections *ConnectionsList `type:"structure"`
+// SetTableInput sets the TableInput field's value.
+func (s *CreateTableInput) SetTableInput(v *TableInput) *CreateTableInput {
+ s.TableInput = v
+ return s
+}
- // 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-etl-glue-arguments.html)
- // topic in the developer guide.
- DefaultArguments map[string]*string `type:"map"`
+type CreateTableOutput struct {
+ _ struct{} `type:"structure"`
+}
- // Description of the job being defined.
- Description *string `type:"string"`
+// String returns the string representation
+func (s CreateTableOutput) String() string {
+ return awsutil.Prettify(s)
+}
- // An ExecutionProperty specifying the maximum number of concurrent runs allowed
- // for this job.
- ExecutionProperty *ExecutionProperty `type:"structure"`
+// GoString returns the string representation
+func (s CreateTableOutput) GoString() string {
+ return s.String()
+}
- // This field is reserved for future use.
- LogUri *string `type:"string"`
+type CreateTriggerInput struct {
+ _ struct{} `type:"structure"`
- // AWS Glue supports running jobs on a JobCommand.Name="pythonshell" with allocated
- // processing as low as 0.0625 DPU, which can be specified using MaxCapacity.
- // Glue ETL jobs running in any other way cannot have fractional DPU allocations.
- MaxCapacity *float64 `type:"double"`
+ // The actions initiated by this trigger when it fires.
+ //
+ // Actions is a required field
+ Actions []*Action `type:"list" required:"true"`
- // The maximum number of times to retry this job if it fails.
- MaxRetries *int64 `type:"integer"`
+ // A description of the new trigger.
+ Description *string `type:"string"`
- // The name you assign to this job definition. It must be unique in your account.
+ // The name of the trigger.
//
// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
- // Specifies configuration properties of a job notification.
- NotificationProperty *NotificationProperty `type:"structure"`
+ // A predicate to specify when the new trigger should fire.
+ //
+ // This field is required when the trigger type is CONDITIONAL.
+ Predicate *Predicate `type:"structure"`
- // The name or ARN of the IAM role associated with this job.
+ // 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 * * ? *).
//
- // Role is a required field
- Role *string `type:"string" required:"true"`
+ // This field is required when the trigger type is SCHEDULED.
+ Schedule *string `type:"string"`
- // The name of the SecurityConfiguration structure to be used with this job.
- SecurityConfiguration *string `min:"1" type:"string"`
+ // Set to true to start SCHEDULED and CONDITIONAL triggers when created. True
+ // not supported for ON_DEMAND triggers.
+ StartOnCreation *bool `type:"boolean"`
- // The job timeout in minutes. This is the maximum time that a job run can consume
- // resources before it is terminated and enters TIMEOUT status. The default
- // is 2,880 minutes (48 hours).
- Timeout *int64 `min:"1" type:"integer"`
+ // The tags to use with this trigger. You may use tags to limit access to the
+ // trigger. For more information about tags in AWS Glue, see AWS Tags in AWS
+ // Glue (http://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the
+ // developer guide.
+ Tags map[string]*string `type:"map"`
+
+ // The type of the new trigger.
+ //
+ // Type is a required field
+ Type *string `type:"string" required:"true" enum:"TriggerType"`
}
// String returns the string representation
-func (s CreateJobInput) String() string {
+func (s CreateTriggerInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateJobInput) GoString() string {
+func (s CreateTriggerInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateJobInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
- if s.Command == nil {
- invalidParams.Add(request.NewErrParamRequired("Command"))
+func (s *CreateTriggerInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateTriggerInput"}
+ if s.Actions == nil {
+ invalidParams.Add(request.NewErrParamRequired("Actions"))
}
if s.Name == nil {
invalidParams.Add(request.NewErrParamRequired("Name"))
@@ -11491,18 +13725,22 @@ func (s *CreateJobInput) Validate() error {
if s.Name != nil && len(*s.Name) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
- if s.Role == nil {
- invalidParams.Add(request.NewErrParamRequired("Role"))
- }
- if s.SecurityConfiguration != nil && len(*s.SecurityConfiguration) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecurityConfiguration", 1))
+ if s.Type == nil {
+ invalidParams.Add(request.NewErrParamRequired("Type"))
}
- if s.Timeout != nil && *s.Timeout < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Timeout", 1))
+ if s.Actions != nil {
+ for i, v := range s.Actions {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
+ }
+ }
}
- if s.NotificationProperty != nil {
- if err := s.NotificationProperty.Validate(); err != nil {
- invalidParams.AddNested("NotificationProperty", err.(request.ErrInvalidParams))
+ if s.Predicate != nil {
+ if err := s.Predicate.Validate(); err != nil {
+ invalidParams.AddNested("Predicate", err.(request.ErrInvalidParams))
}
}
@@ -11512,207 +13750,108 @@ func (s *CreateJobInput) Validate() error {
return nil
}
-// SetAllocatedCapacity sets the AllocatedCapacity field's value.
-func (s *CreateJobInput) SetAllocatedCapacity(v int64) *CreateJobInput {
- s.AllocatedCapacity = &v
- return s
-}
-
-// SetCommand sets the Command field's value.
-func (s *CreateJobInput) SetCommand(v *JobCommand) *CreateJobInput {
- s.Command = v
- return s
-}
-
-// SetConnections sets the Connections field's value.
-func (s *CreateJobInput) SetConnections(v *ConnectionsList) *CreateJobInput {
- s.Connections = v
- return s
-}
-
-// SetDefaultArguments sets the DefaultArguments field's value.
-func (s *CreateJobInput) SetDefaultArguments(v map[string]*string) *CreateJobInput {
- s.DefaultArguments = v
+// SetActions sets the Actions field's value.
+func (s *CreateTriggerInput) SetActions(v []*Action) *CreateTriggerInput {
+ s.Actions = v
return s
}
// SetDescription sets the Description field's value.
-func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
+func (s *CreateTriggerInput) SetDescription(v string) *CreateTriggerInput {
s.Description = &v
return s
}
-// SetExecutionProperty sets the ExecutionProperty field's value.
-func (s *CreateJobInput) SetExecutionProperty(v *ExecutionProperty) *CreateJobInput {
- s.ExecutionProperty = v
- return s
-}
-
-// SetLogUri sets the LogUri field's value.
-func (s *CreateJobInput) SetLogUri(v string) *CreateJobInput {
- s.LogUri = &v
- return s
-}
-
-// SetMaxCapacity sets the MaxCapacity field's value.
-func (s *CreateJobInput) SetMaxCapacity(v float64) *CreateJobInput {
- s.MaxCapacity = &v
- return s
-}
-
-// SetMaxRetries sets the MaxRetries field's value.
-func (s *CreateJobInput) SetMaxRetries(v int64) *CreateJobInput {
- s.MaxRetries = &v
- return s
-}
-
// SetName sets the Name field's value.
-func (s *CreateJobInput) SetName(v string) *CreateJobInput {
+func (s *CreateTriggerInput) SetName(v string) *CreateTriggerInput {
s.Name = &v
return s
}
-// SetNotificationProperty sets the NotificationProperty field's value.
-func (s *CreateJobInput) SetNotificationProperty(v *NotificationProperty) *CreateJobInput {
- s.NotificationProperty = v
+// SetPredicate sets the Predicate field's value.
+func (s *CreateTriggerInput) SetPredicate(v *Predicate) *CreateTriggerInput {
+ s.Predicate = v
return s
}
-// SetRole sets the Role field's value.
-func (s *CreateJobInput) SetRole(v string) *CreateJobInput {
- s.Role = &v
+// SetSchedule sets the Schedule field's value.
+func (s *CreateTriggerInput) SetSchedule(v string) *CreateTriggerInput {
+ s.Schedule = &v
return s
}
-// SetSecurityConfiguration sets the SecurityConfiguration field's value.
-func (s *CreateJobInput) SetSecurityConfiguration(v string) *CreateJobInput {
- s.SecurityConfiguration = &v
+// SetStartOnCreation sets the StartOnCreation field's value.
+func (s *CreateTriggerInput) SetStartOnCreation(v bool) *CreateTriggerInput {
+ s.StartOnCreation = &v
return s
}
-// SetTimeout sets the Timeout field's value.
-func (s *CreateJobInput) SetTimeout(v int64) *CreateJobInput {
- s.Timeout = &v
+// SetTags sets the Tags field's value.
+func (s *CreateTriggerInput) SetTags(v map[string]*string) *CreateTriggerInput {
+ s.Tags = v
return s
}
-type CreateJobOutput struct {
- _ struct{} `type:"structure"`
-
- // The unique name that was provided for this job definition.
- Name *string `min:"1" type:"string"`
-}
-
-// String returns the string representation
-func (s CreateJobOutput) String() string {
- return awsutil.Prettify(s)
-}
-
-// GoString returns the string representation
-func (s CreateJobOutput) GoString() string {
- return s.String()
-}
-
-// SetName sets the Name field's value.
-func (s *CreateJobOutput) SetName(v string) *CreateJobOutput {
- s.Name = &v
+// SetType sets the Type field's value.
+func (s *CreateTriggerInput) SetType(v string) *CreateTriggerInput {
+ s.Type = &v
return s
}
-// Specifies a JSON classifier for CreateClassifier to create.
-type CreateJsonClassifierRequest struct {
+type CreateTriggerOutput 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
+ // The name of the trigger.
+ Name *string `min:"1" type:"string"`
}
-// SetJsonPath sets the JsonPath field's value.
-func (s *CreateJsonClassifierRequest) SetJsonPath(v string) *CreateJsonClassifierRequest {
- s.JsonPath = &v
- return s
+// String returns the string representation
+func (s CreateTriggerOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateTriggerOutput) GoString() string {
+ return s.String()
}
// SetName sets the Name field's value.
-func (s *CreateJsonClassifierRequest) SetName(v string) *CreateJsonClassifierRequest {
+func (s *CreateTriggerOutput) SetName(v string) *CreateTriggerOutput {
s.Name = &v
return s
}
-type CreatePartitionInput struct {
+type CreateUserDefinedFunctionInput struct {
_ struct{} `type:"structure"`
- // The ID of the catalog in which the partion is to be created. Currently, this
- // should be the AWS account ID.
+ // The ID of the Data Catalog in which to create the function. If none is supplied,
+ // the AWS account ID is used by default.
CatalogId *string `min:"1" type:"string"`
- // The name of the metadata database in which the partition is to be created.
+ // The name of the catalog database in which to create the function.
//
// DatabaseName is a required field
DatabaseName *string `min:"1" type:"string" required:"true"`
- // A PartitionInput structure defining the partition to be created.
- //
- // PartitionInput is a required field
- PartitionInput *PartitionInput `type:"structure" required:"true"`
-
- // The name of the metadata table in which the partition is to be created.
+ // A FunctionInput object that defines the function to create in the Data Catalog.
//
- // TableName is a required field
- TableName *string `min:"1" type:"string" required:"true"`
+ // FunctionInput is a required field
+ FunctionInput *UserDefinedFunctionInput `type:"structure" required:"true"`
}
// String returns the string representation
-func (s CreatePartitionInput) String() string {
+func (s CreateUserDefinedFunctionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreatePartitionInput) GoString() string {
+func (s CreateUserDefinedFunctionInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreatePartitionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreatePartitionInput"}
+func (s *CreateUserDefinedFunctionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateUserDefinedFunctionInput"}
if s.CatalogId != nil && len(*s.CatalogId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
@@ -11722,18 +13861,12 @@ func (s *CreatePartitionInput) Validate() error {
if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
}
- if s.PartitionInput == nil {
- invalidParams.Add(request.NewErrParamRequired("PartitionInput"))
- }
- 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.FunctionInput == nil {
+ invalidParams.Add(request.NewErrParamRequired("FunctionInput"))
}
- if s.PartitionInput != nil {
- if err := s.PartitionInput.Validate(); err != nil {
- invalidParams.AddNested("PartitionInput", err.(request.ErrInvalidParams))
+ if s.FunctionInput != nil {
+ if err := s.FunctionInput.Validate(); err != nil {
+ invalidParams.AddNested("FunctionInput", err.(request.ErrInvalidParams))
}
}
@@ -11744,88 +13877,80 @@ func (s *CreatePartitionInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *CreatePartitionInput) SetCatalogId(v string) *CreatePartitionInput {
+func (s *CreateUserDefinedFunctionInput) SetCatalogId(v string) *CreateUserDefinedFunctionInput {
s.CatalogId = &v
return s
}
// SetDatabaseName sets the DatabaseName field's value.
-func (s *CreatePartitionInput) SetDatabaseName(v string) *CreatePartitionInput {
+func (s *CreateUserDefinedFunctionInput) SetDatabaseName(v string) *CreateUserDefinedFunctionInput {
s.DatabaseName = &v
return s
}
-// SetPartitionInput sets the PartitionInput field's value.
-func (s *CreatePartitionInput) SetPartitionInput(v *PartitionInput) *CreatePartitionInput {
- s.PartitionInput = v
- return s
-}
-
-// SetTableName sets the TableName field's value.
-func (s *CreatePartitionInput) SetTableName(v string) *CreatePartitionInput {
- s.TableName = &v
+// SetFunctionInput sets the FunctionInput field's value.
+func (s *CreateUserDefinedFunctionInput) SetFunctionInput(v *UserDefinedFunctionInput) *CreateUserDefinedFunctionInput {
+ s.FunctionInput = v
return s
}
-type CreatePartitionOutput struct {
+type CreateUserDefinedFunctionOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
-func (s CreatePartitionOutput) String() string {
+func (s CreateUserDefinedFunctionOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreatePartitionOutput) GoString() string {
+func (s CreateUserDefinedFunctionOutput) GoString() string {
return s.String()
}
-type CreateScriptInput struct {
+// Specifies an XML classifier for CreateClassifier to create.
+type CreateXMLClassifierRequest struct {
_ struct{} `type:"structure"`
- // A list of the edges in the DAG.
- DagEdges []*CodeGenEdge `type:"list"`
+ // An identifier of the data format that the classifier matches.
+ //
+ // Classification is a required field
+ Classification *string `type:"string" required:"true"`
- // A list of the nodes in the DAG.
- DagNodes []*CodeGenNode `type:"list"`
+ // The name of the classifier.
+ //
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
- // The programming language of the resulting code from the DAG.
- Language *string `type:"string" enum:"Language"`
+ // The XML tag designating the element that contains each record in an XML document
+ // 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"`
}
// String returns the string representation
-func (s CreateScriptInput) String() string {
+func (s CreateXMLClassifierRequest) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateScriptInput) GoString() string {
+func (s CreateXMLClassifierRequest) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateScriptInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateScriptInput"}
- if s.DagEdges != nil {
- for i, v := range s.DagEdges {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DagEdges", i), err.(request.ErrInvalidParams))
- }
- }
+func (s *CreateXMLClassifierRequest) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateXMLClassifierRequest"}
+ if s.Classification == nil {
+ invalidParams.Add(request.NewErrParamRequired("Classification"))
}
- if s.DagNodes != nil {
- for i, v := range s.DagNodes {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DagNodes", i), err.(request.ErrInvalidParams))
- }
- }
+ 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 {
@@ -11834,85 +13959,179 @@ func (s *CreateScriptInput) Validate() error {
return nil
}
-// SetDagEdges sets the DagEdges field's value.
-func (s *CreateScriptInput) SetDagEdges(v []*CodeGenEdge) *CreateScriptInput {
- s.DagEdges = v
+// SetClassification sets the Classification field's value.
+func (s *CreateXMLClassifierRequest) SetClassification(v string) *CreateXMLClassifierRequest {
+ s.Classification = &v
return s
}
-// SetDagNodes sets the DagNodes field's value.
-func (s *CreateScriptInput) SetDagNodes(v []*CodeGenNode) *CreateScriptInput {
- s.DagNodes = v
+// SetName sets the Name field's value.
+func (s *CreateXMLClassifierRequest) SetName(v string) *CreateXMLClassifierRequest {
+ s.Name = &v
return s
}
-// SetLanguage sets the Language field's value.
-func (s *CreateScriptInput) SetLanguage(v string) *CreateScriptInput {
- s.Language = &v
+// SetRowTag sets the RowTag field's value.
+func (s *CreateXMLClassifierRequest) SetRowTag(v string) *CreateXMLClassifierRequest {
+ s.RowTag = &v
return s
}
-type CreateScriptOutput struct {
+// Contains configuration information for maintaining Data Catalog security.
+type DataCatalogEncryptionSettings struct {
_ struct{} `type:"structure"`
- // The Python script generated from the DAG.
- PythonScript *string `type:"string"`
+ // When connection password protection is enabled, the Data Catalog uses a customer-provided
+ // key to encrypt the password as part of CreateConnection or UpdateConnection
+ // and store it in the ENCRYPTED_PASSWORD field in the connection properties.
+ // You can enable catalog encryption or only password encryption.
+ ConnectionPasswordEncryption *ConnectionPasswordEncryption `type:"structure"`
- // The Scala code generated from the DAG.
- ScalaCode *string `type:"string"`
+ // Specifies the encryption-at-rest configuration for the Data Catalog.
+ EncryptionAtRest *EncryptionAtRest `type:"structure"`
}
// String returns the string representation
-func (s CreateScriptOutput) String() string {
+func (s DataCatalogEncryptionSettings) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateScriptOutput) GoString() string {
+func (s DataCatalogEncryptionSettings) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DataCatalogEncryptionSettings) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DataCatalogEncryptionSettings"}
+ if s.ConnectionPasswordEncryption != nil {
+ if err := s.ConnectionPasswordEncryption.Validate(); err != nil {
+ invalidParams.AddNested("ConnectionPasswordEncryption", err.(request.ErrInvalidParams))
+ }
+ }
+ if s.EncryptionAtRest != nil {
+ if err := s.EncryptionAtRest.Validate(); err != nil {
+ invalidParams.AddNested("EncryptionAtRest", err.(request.ErrInvalidParams))
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetConnectionPasswordEncryption sets the ConnectionPasswordEncryption field's value.
+func (s *DataCatalogEncryptionSettings) SetConnectionPasswordEncryption(v *ConnectionPasswordEncryption) *DataCatalogEncryptionSettings {
+ s.ConnectionPasswordEncryption = v
+ return s
+}
+
+// SetEncryptionAtRest sets the EncryptionAtRest field's value.
+func (s *DataCatalogEncryptionSettings) SetEncryptionAtRest(v *EncryptionAtRest) *DataCatalogEncryptionSettings {
+ s.EncryptionAtRest = v
+ return s
+}
+
+// The Database object represents a logical grouping of tables that may reside
+// in a Hive metastore or an RDBMS.
+type Database struct {
+ _ struct{} `type:"structure"`
+
+ // The time at which the metadata database was created in the catalog.
+ CreateTime *time.Time `type:"timestamp"`
+
+ // Description of the database.
+ Description *string `type:"string"`
+
+ // The location of the database (for example, an HDFS path).
+ LocationUri *string `min:"1" type:"string"`
+
+ // 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"`
+
+ // These key-value pairs define parameters and properties of the database.
+ Parameters map[string]*string `type:"map"`
+}
+
+// String returns the string representation
+func (s Database) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s Database) GoString() string {
return s.String()
}
-// SetPythonScript sets the PythonScript field's value.
-func (s *CreateScriptOutput) SetPythonScript(v string) *CreateScriptOutput {
- s.PythonScript = &v
+// SetCreateTime sets the CreateTime field's value.
+func (s *Database) SetCreateTime(v time.Time) *Database {
+ s.CreateTime = &v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *Database) SetDescription(v string) *Database {
+ s.Description = &v
+ return s
+}
+
+// SetLocationUri sets the LocationUri field's value.
+func (s *Database) SetLocationUri(v string) *Database {
+ s.LocationUri = &v
+ return s
+}
+
+// SetName sets the Name field's value.
+func (s *Database) SetName(v string) *Database {
+ s.Name = &v
return s
}
-// SetScalaCode sets the ScalaCode field's value.
-func (s *CreateScriptOutput) SetScalaCode(v string) *CreateScriptOutput {
- s.ScalaCode = &v
+// SetParameters sets the Parameters field's value.
+func (s *Database) SetParameters(v map[string]*string) *Database {
+ s.Parameters = v
return s
}
-type CreateSecurityConfigurationInput struct {
+// The structure used to create or update a database.
+type DatabaseInput struct {
_ struct{} `type:"structure"`
- // The encryption configuration for the new security configuration.
- //
- // EncryptionConfiguration is a required field
- EncryptionConfiguration *EncryptionConfiguration `type:"structure" required:"true"`
+ // Description of the database
+ Description *string `type:"string"`
- // The name for the new security configuration.
+ // The location of the database (for example, an HDFS path).
+ LocationUri *string `min:"1" type:"string"`
+
+ // 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"`
+
+ // Thes key-value pairs define parameters and properties of the database.
+ Parameters map[string]*string `type:"map"`
}
// String returns the string representation
-func (s CreateSecurityConfigurationInput) String() string {
+func (s DatabaseInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateSecurityConfigurationInput) GoString() string {
+func (s DatabaseInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateSecurityConfigurationInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateSecurityConfigurationInput"}
- if s.EncryptionConfiguration == nil {
- invalidParams.Add(request.NewErrParamRequired("EncryptionConfiguration"))
+func (s *DatabaseInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DatabaseInput"}
+ if s.LocationUri != nil && len(*s.LocationUri) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("LocationUri", 1))
}
if s.Name == nil {
invalidParams.Add(request.NewErrParamRequired("Name"))
@@ -11927,98 +14146,119 @@ func (s *CreateSecurityConfigurationInput) Validate() error {
return nil
}
-// SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
-func (s *CreateSecurityConfigurationInput) SetEncryptionConfiguration(v *EncryptionConfiguration) *CreateSecurityConfigurationInput {
- s.EncryptionConfiguration = v
+// SetDescription sets the Description field's value.
+func (s *DatabaseInput) SetDescription(v string) *DatabaseInput {
+ s.Description = &v
+ return s
+}
+
+// SetLocationUri sets the LocationUri field's value.
+func (s *DatabaseInput) SetLocationUri(v string) *DatabaseInput {
+ s.LocationUri = &v
return s
}
// SetName sets the Name field's value.
-func (s *CreateSecurityConfigurationInput) SetName(v string) *CreateSecurityConfigurationInput {
+func (s *DatabaseInput) SetName(v string) *DatabaseInput {
s.Name = &v
return s
}
-type CreateSecurityConfigurationOutput struct {
- _ struct{} `type:"structure"`
+// SetParameters sets the Parameters field's value.
+func (s *DatabaseInput) SetParameters(v map[string]*string) *DatabaseInput {
+ s.Parameters = v
+ return s
+}
- // The time at which the new security configuration was created.
- CreatedTimestamp *time.Time `type:"timestamp"`
+type DeleteClassifierInput struct {
+ _ struct{} `type:"structure"`
- // The name assigned to the new security configuration.
- Name *string `min:"1" type:"string"`
+ // Name of the classifier to remove.
+ //
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s CreateSecurityConfigurationOutput) String() string {
+func (s DeleteClassifierInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateSecurityConfigurationOutput) GoString() string {
+func (s DeleteClassifierInput) GoString() string {
return s.String()
}
-// SetCreatedTimestamp sets the CreatedTimestamp field's value.
-func (s *CreateSecurityConfigurationOutput) SetCreatedTimestamp(v time.Time) *CreateSecurityConfigurationOutput {
- s.CreatedTimestamp = &v
- return s
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeleteClassifierInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteClassifierInput"}
+ 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 *CreateSecurityConfigurationOutput) SetName(v string) *CreateSecurityConfigurationOutput {
+func (s *DeleteClassifierInput) SetName(v string) *DeleteClassifierInput {
s.Name = &v
return s
}
-type CreateTableInput struct {
+type DeleteClassifierOutput struct {
_ struct{} `type:"structure"`
+}
- // The ID of the Data Catalog in which to create the Table. If none is supplied,
+// String returns the string representation
+func (s DeleteClassifierOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteClassifierOutput) GoString() string {
+ return s.String()
+}
+
+type DeleteConnectionInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Data Catalog in which the connection resides. If none is provided,
// the AWS account ID is used by default.
CatalogId *string `min:"1" type:"string"`
- // 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"`
-
- // The TableInput object that defines the metadata table to create in the catalog.
+ // The name of the connection to delete.
//
- // TableInput is a required field
- TableInput *TableInput `type:"structure" required:"true"`
+ // ConnectionName is a required field
+ ConnectionName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s CreateTableInput) String() string {
+func (s DeleteConnectionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateTableInput) GoString() string {
+func (s DeleteConnectionInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateTableInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateTableInput"}
+func (s *DeleteConnectionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteConnectionInput"}
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.TableInput == nil {
- invalidParams.Add(request.NewErrParamRequired("TableInput"))
+ if s.ConnectionName == nil {
+ invalidParams.Add(request.NewErrParamRequired("ConnectionName"))
}
- if s.TableInput != nil {
- if err := s.TableInput.Validate(); err != nil {
- invalidParams.AddNested("TableInput", err.(request.ErrInvalidParams))
- }
+ if s.ConnectionName != nil && len(*s.ConnectionName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ConnectionName", 1))
}
if invalidParams.Len() > 0 {
@@ -12028,91 +14268,115 @@ func (s *CreateTableInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *CreateTableInput) SetCatalogId(v string) *CreateTableInput {
+func (s *DeleteConnectionInput) SetCatalogId(v string) *DeleteConnectionInput {
s.CatalogId = &v
return s
}
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *CreateTableInput) SetDatabaseName(v string) *CreateTableInput {
- s.DatabaseName = &v
- return s
-}
-
-// SetTableInput sets the TableInput field's value.
-func (s *CreateTableInput) SetTableInput(v *TableInput) *CreateTableInput {
- s.TableInput = v
+// SetConnectionName sets the ConnectionName field's value.
+func (s *DeleteConnectionInput) SetConnectionName(v string) *DeleteConnectionInput {
+ s.ConnectionName = &v
return s
}
-type CreateTableOutput struct {
+type DeleteConnectionOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
-func (s CreateTableOutput) String() string {
+func (s DeleteConnectionOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateTableOutput) GoString() string {
+func (s DeleteConnectionOutput) GoString() string {
return s.String()
}
-type CreateTriggerInput struct {
+type DeleteCrawlerInput struct {
_ struct{} `type:"structure"`
- // The actions initiated by this trigger when it fires.
- //
- // Actions is a required field
- Actions []*Action `type:"list" required:"true"`
-
- // A description of the new trigger.
- Description *string `type:"string"`
-
- // The name of the trigger.
+ // Name of the crawler to remove.
//
// 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"`
+// String returns the string representation
+func (s DeleteCrawlerInput) String() string {
+ return awsutil.Prettify(s)
+}
- // 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"`
+// GoString returns the string representation
+func (s DeleteCrawlerInput) GoString() string {
+ return s.String()
+}
- // Set to true to start SCHEDULED and CONDITIONAL triggers when created. True
- // not supported for ON_DEMAND triggers.
- StartOnCreation *bool `type:"boolean"`
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeleteCrawlerInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteCrawlerInput"}
+ if s.Name == nil {
+ invalidParams.Add(request.NewErrParamRequired("Name"))
+ }
+ if s.Name != nil && len(*s.Name) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Name", 1))
+ }
- // The type of the new trigger.
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetName sets the Name field's value.
+func (s *DeleteCrawlerInput) SetName(v string) *DeleteCrawlerInput {
+ s.Name = &v
+ return s
+}
+
+type DeleteCrawlerOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s DeleteCrawlerOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteCrawlerOutput) GoString() string {
+ return s.String()
+}
+
+type DeleteDatabaseInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Data Catalog in which the database resides. If none is supplied,
+ // the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
+
+ // The name of the Database to delete. For Hive compatibility, this must be
+ // all lowercase.
//
- // Type is a required field
- Type *string `type:"string" required:"true" enum:"TriggerType"`
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s CreateTriggerInput) String() string {
+func (s DeleteDatabaseInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateTriggerInput) GoString() string {
+func (s DeleteDatabaseInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateTriggerInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateTriggerInput"}
- if s.Actions == nil {
- invalidParams.Add(request.NewErrParamRequired("Actions"))
+func (s *DeleteDatabaseInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteDatabaseInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
if s.Name == nil {
invalidParams.Add(request.NewErrParamRequired("Name"))
@@ -12120,24 +14384,6 @@ func (s *CreateTriggerInput) Validate() error {
if s.Name != nil && len(*s.Name) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
- if s.Type == nil {
- invalidParams.Add(request.NewErrParamRequired("Type"))
- }
- if s.Actions != nil {
- for i, v := range s.Actions {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
- }
- }
- }
- if s.Predicate != nil {
- if err := s.Predicate.Validate(); err != nil {
- invalidParams.AddNested("Predicate", err.(request.ErrInvalidParams))
- }
- }
if invalidParams.Len() > 0 {
return invalidParams
@@ -12145,118 +14391,111 @@ func (s *CreateTriggerInput) Validate() error {
return nil
}
-// SetActions sets the Actions field's value.
-func (s *CreateTriggerInput) SetActions(v []*Action) *CreateTriggerInput {
- s.Actions = v
- return s
-}
-
-// SetDescription sets the Description field's value.
-func (s *CreateTriggerInput) SetDescription(v string) *CreateTriggerInput {
- s.Description = &v
+// SetCatalogId sets the CatalogId field's value.
+func (s *DeleteDatabaseInput) SetCatalogId(v string) *DeleteDatabaseInput {
+ s.CatalogId = &v
return s
}
// SetName sets the Name field's value.
-func (s *CreateTriggerInput) SetName(v string) *CreateTriggerInput {
+func (s *DeleteDatabaseInput) SetName(v string) *DeleteDatabaseInput {
s.Name = &v
return s
}
-// SetPredicate sets the Predicate field's value.
-func (s *CreateTriggerInput) SetPredicate(v *Predicate) *CreateTriggerInput {
- s.Predicate = v
- return s
-}
-
-// SetSchedule sets the Schedule field's value.
-func (s *CreateTriggerInput) SetSchedule(v string) *CreateTriggerInput {
- s.Schedule = &v
- return s
+type DeleteDatabaseOutput struct {
+ _ struct{} `type:"structure"`
}
-// SetStartOnCreation sets the StartOnCreation field's value.
-func (s *CreateTriggerInput) SetStartOnCreation(v bool) *CreateTriggerInput {
- s.StartOnCreation = &v
- return s
+// String returns the string representation
+func (s DeleteDatabaseOutput) String() string {
+ return awsutil.Prettify(s)
}
-// SetType sets the Type field's value.
-func (s *CreateTriggerInput) SetType(v string) *CreateTriggerInput {
- s.Type = &v
- return s
+// GoString returns the string representation
+func (s DeleteDatabaseOutput) GoString() string {
+ return s.String()
}
-type CreateTriggerOutput struct {
+type DeleteDevEndpointInput struct {
_ struct{} `type:"structure"`
- // The name of the trigger.
- Name *string `min:"1" type:"string"`
+ // The name of the DevEndpoint.
+ //
+ // EndpointName is a required field
+ EndpointName *string `type:"string" required:"true"`
}
// String returns the string representation
-func (s CreateTriggerOutput) String() string {
+func (s DeleteDevEndpointInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateTriggerOutput) GoString() string {
+func (s DeleteDevEndpointInput) GoString() string {
return s.String()
}
-// SetName sets the Name field's value.
-func (s *CreateTriggerOutput) SetName(v string) *CreateTriggerOutput {
- s.Name = &v
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeleteDevEndpointInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteDevEndpointInput"}
+ if s.EndpointName == nil {
+ invalidParams.Add(request.NewErrParamRequired("EndpointName"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetEndpointName sets the EndpointName field's value.
+func (s *DeleteDevEndpointInput) SetEndpointName(v string) *DeleteDevEndpointInput {
+ s.EndpointName = &v
return s
}
-type CreateUserDefinedFunctionInput struct {
+type DeleteDevEndpointOutput struct {
_ struct{} `type:"structure"`
+}
- // The ID of the Data Catalog in which to create the function. If none is supplied,
- // the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+// String returns the string representation
+func (s DeleteDevEndpointOutput) String() string {
+ return awsutil.Prettify(s)
+}
- // The name of the catalog database in which to create the function.
- //
- // DatabaseName is a required field
- DatabaseName *string `min:"1" type:"string" required:"true"`
+// GoString returns the string representation
+func (s DeleteDevEndpointOutput) GoString() string {
+ return s.String()
+}
- // A FunctionInput object that defines the function to create in the Data Catalog.
+type DeleteJobInput struct {
+ _ struct{} `type:"structure"`
+
+ // The name of the job definition to delete.
//
- // FunctionInput is a required field
- FunctionInput *UserDefinedFunctionInput `type:"structure" required:"true"`
+ // JobName is a required field
+ JobName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s CreateUserDefinedFunctionInput) String() string {
+func (s DeleteJobInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateUserDefinedFunctionInput) GoString() string {
+func (s DeleteJobInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateUserDefinedFunctionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateUserDefinedFunctionInput"}
- 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.FunctionInput == nil {
- invalidParams.Add(request.NewErrParamRequired("FunctionInput"))
+func (s *DeleteJobInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteJobInput"}
+ if s.JobName == nil {
+ invalidParams.Add(request.NewErrParamRequired("JobName"))
}
- if s.FunctionInput != nil {
- if err := s.FunctionInput.Validate(); err != nil {
- invalidParams.AddNested("FunctionInput", err.(request.ErrInvalidParams))
- }
+ if s.JobName != nil && len(*s.JobName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
}
if invalidParams.Len() > 0 {
@@ -12265,81 +14504,88 @@ func (s *CreateUserDefinedFunctionInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *CreateUserDefinedFunctionInput) SetCatalogId(v string) *CreateUserDefinedFunctionInput {
- s.CatalogId = &v
- return s
-}
-
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *CreateUserDefinedFunctionInput) SetDatabaseName(v string) *CreateUserDefinedFunctionInput {
- s.DatabaseName = &v
- return s
-}
-
-// SetFunctionInput sets the FunctionInput field's value.
-func (s *CreateUserDefinedFunctionInput) SetFunctionInput(v *UserDefinedFunctionInput) *CreateUserDefinedFunctionInput {
- s.FunctionInput = v
+// SetJobName sets the JobName field's value.
+func (s *DeleteJobInput) SetJobName(v string) *DeleteJobInput {
+ s.JobName = &v
return s
}
-type CreateUserDefinedFunctionOutput struct {
+type DeleteJobOutput struct {
_ struct{} `type:"structure"`
+
+ // The name of the job definition that was deleted.
+ JobName *string `min:"1" type:"string"`
}
// String returns the string representation
-func (s CreateUserDefinedFunctionOutput) String() string {
+func (s DeleteJobOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateUserDefinedFunctionOutput) GoString() string {
+func (s DeleteJobOutput) GoString() string {
return s.String()
}
-// Specifies an XML classifier for CreateClassifier to create.
-type CreateXMLClassifierRequest struct {
+// SetJobName sets the JobName field's value.
+func (s *DeleteJobOutput) SetJobName(v string) *DeleteJobOutput {
+ s.JobName = &v
+ return s
+}
+
+type DeletePartitionInput struct {
_ struct{} `type:"structure"`
- // An identifier of the data format that the classifier matches.
+ // The ID of the Data Catalog where the partition to be deleted resides. If
+ // none is supplied, the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
+
+ // The name of the catalog database in which the table in question resides.
//
- // Classification is a required field
- Classification *string `type:"string" required:"true"`
+ // DatabaseName is a required field
+ DatabaseName *string `min:"1" type:"string" required:"true"`
- // The name of the classifier.
+ // The values that define the partition.
//
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // PartitionValues is a required field
+ PartitionValues []*string `type:"list" required:"true"`
- // The XML tag designating the element that contains each record in an XML document
- // 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 name of the table where the partition to be deleted is located.
+ //
+ // TableName is a required field
+ TableName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s CreateXMLClassifierRequest) String() string {
+func (s DeletePartitionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s CreateXMLClassifierRequest) GoString() string {
+func (s DeletePartitionInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreateXMLClassifierRequest) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateXMLClassifierRequest"}
- if s.Classification == nil {
- invalidParams.Add(request.NewErrParamRequired("Classification"))
+func (s *DeletePartitionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeletePartitionInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
- if s.Name == nil {
- invalidParams.Add(request.NewErrParamRequired("Name"))
+ if s.DatabaseName == nil {
+ invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
}
- if s.Name != nil && len(*s.Name) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Name", 1))
+ if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
+ }
+ if s.PartitionValues == nil {
+ invalidParams.Add(request.NewErrParamRequired("PartitionValues"))
+ }
+ if s.TableName == nil {
+ invalidParams.Add(request.NewErrParamRequired("TableName"))
+ }
+ if s.TableName != nil && len(*s.TableName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
}
if invalidParams.Len() > 0 {
@@ -12348,60 +14594,66 @@ func (s *CreateXMLClassifierRequest) Validate() error {
return nil
}
-// SetClassification sets the Classification field's value.
-func (s *CreateXMLClassifierRequest) SetClassification(v string) *CreateXMLClassifierRequest {
- s.Classification = &v
+// SetCatalogId sets the CatalogId field's value.
+func (s *DeletePartitionInput) SetCatalogId(v string) *DeletePartitionInput {
+ s.CatalogId = &v
+ return s
+}
+
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *DeletePartitionInput) SetDatabaseName(v string) *DeletePartitionInput {
+ s.DatabaseName = &v
return s
}
-// SetName sets the Name field's value.
-func (s *CreateXMLClassifierRequest) SetName(v string) *CreateXMLClassifierRequest {
- s.Name = &v
+// SetPartitionValues sets the PartitionValues field's value.
+func (s *DeletePartitionInput) SetPartitionValues(v []*string) *DeletePartitionInput {
+ s.PartitionValues = v
return s
}
-// SetRowTag sets the RowTag field's value.
-func (s *CreateXMLClassifierRequest) SetRowTag(v string) *CreateXMLClassifierRequest {
- s.RowTag = &v
+// SetTableName sets the TableName field's value.
+func (s *DeletePartitionInput) SetTableName(v string) *DeletePartitionInput {
+ s.TableName = &v
return s
}
-// Contains configuration information for maintaining Data Catalog security.
-type DataCatalogEncryptionSettings struct {
+type DeletePartitionOutput struct {
_ struct{} `type:"structure"`
+}
- // When password protection is enabled, the Data Catalog uses a customer-provided
- // key to encrypt the password as part of CreateConnection or UpdateConnection
- // and store it in the ENCRYPTED_PASSWORD field in the connection properties.
- // You can enable catalog encryption or only password encryption.
- ConnectionPasswordEncryption *ConnectionPasswordEncryption `type:"structure"`
+// String returns the string representation
+func (s DeletePartitionOutput) String() string {
+ return awsutil.Prettify(s)
+}
- // Specifies encryption-at-rest configuration for the Data Catalog.
- EncryptionAtRest *EncryptionAtRest `type:"structure"`
+// GoString returns the string representation
+func (s DeletePartitionOutput) GoString() string {
+ return s.String()
+}
+
+type DeleteResourcePolicyInput struct {
+ _ struct{} `type:"structure"`
+
+ // The hash value returned when this policy was set.
+ PolicyHashCondition *string `min:"1" type:"string"`
}
// String returns the string representation
-func (s DataCatalogEncryptionSettings) String() string {
+func (s DeleteResourcePolicyInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DataCatalogEncryptionSettings) GoString() string {
+func (s DeleteResourcePolicyInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *DataCatalogEncryptionSettings) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DataCatalogEncryptionSettings"}
- if s.ConnectionPasswordEncryption != nil {
- if err := s.ConnectionPasswordEncryption.Validate(); err != nil {
- invalidParams.AddNested("ConnectionPasswordEncryption", err.(request.ErrInvalidParams))
- }
- }
- if s.EncryptionAtRest != nil {
- if err := s.EncryptionAtRest.Validate(); err != nil {
- invalidParams.AddNested("EncryptionAtRest", err.(request.ErrInvalidParams))
- }
+func (s *DeleteResourcePolicyInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteResourcePolicyInput"}
+ if s.PolicyHashCondition != nil && len(*s.PolicyHashCondition) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("PolicyHashCondition", 1))
}
if invalidParams.Len() > 0 {
@@ -12410,118 +14662,48 @@ func (s *DataCatalogEncryptionSettings) Validate() error {
return nil
}
-// SetConnectionPasswordEncryption sets the ConnectionPasswordEncryption field's value.
-func (s *DataCatalogEncryptionSettings) SetConnectionPasswordEncryption(v *ConnectionPasswordEncryption) *DataCatalogEncryptionSettings {
- s.ConnectionPasswordEncryption = v
- return s
-}
-
-// SetEncryptionAtRest sets the EncryptionAtRest field's value.
-func (s *DataCatalogEncryptionSettings) SetEncryptionAtRest(v *EncryptionAtRest) *DataCatalogEncryptionSettings {
- s.EncryptionAtRest = v
+// SetPolicyHashCondition sets the PolicyHashCondition field's value.
+func (s *DeleteResourcePolicyInput) SetPolicyHashCondition(v string) *DeleteResourcePolicyInput {
+ s.PolicyHashCondition = &v
return s
}
-// The Database object represents a logical grouping of tables that may reside
-// in a Hive metastore or an RDBMS.
-type Database struct {
+type DeleteResourcePolicyOutput struct {
_ struct{} `type:"structure"`
-
- // The time at which the metadata database was created in the catalog.
- CreateTime *time.Time `type:"timestamp"`
-
- // Description of the database.
- Description *string `type:"string"`
-
- // The location of the database (for example, an HDFS path).
- LocationUri *string `min:"1" type:"string"`
-
- // 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"`
-
- // These key-value pairs define parameters and properties of the database.
- Parameters map[string]*string `type:"map"`
}
// String returns the string representation
-func (s Database) String() string {
+func (s DeleteResourcePolicyOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s Database) GoString() string {
+func (s DeleteResourcePolicyOutput) GoString() string {
return s.String()
}
-// SetCreateTime sets the CreateTime field's value.
-func (s *Database) SetCreateTime(v time.Time) *Database {
- s.CreateTime = &v
- return s
-}
-
-// SetDescription sets the Description field's value.
-func (s *Database) SetDescription(v string) *Database {
- s.Description = &v
- return s
-}
-
-// SetLocationUri sets the LocationUri field's value.
-func (s *Database) SetLocationUri(v string) *Database {
- s.LocationUri = &v
- return s
-}
-
-// SetName sets the Name field's value.
-func (s *Database) SetName(v string) *Database {
- s.Name = &v
- return s
-}
-
-// SetParameters sets the Parameters field's value.
-func (s *Database) SetParameters(v map[string]*string) *Database {
- s.Parameters = v
- return s
-}
-
-// The structure used to create or update a database.
-type DatabaseInput struct {
+type DeleteSecurityConfigurationInput struct {
_ struct{} `type:"structure"`
- // Description of the database
- Description *string `type:"string"`
-
- // The location of the database (for example, an HDFS path).
- LocationUri *string `min:"1" type:"string"`
-
- // Name of the database. For Hive compatibility, this is folded to lowercase
- // when it is stored.
+ // The name of the security configuration to delete.
//
// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
-
- // Thes key-value pairs define parameters and properties of the database.
- Parameters map[string]*string `type:"map"`
}
// String returns the string representation
-func (s DatabaseInput) String() string {
+func (s DeleteSecurityConfigurationInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DatabaseInput) GoString() string {
+func (s DeleteSecurityConfigurationInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *DatabaseInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DatabaseInput"}
- if s.LocationUri != nil && len(*s.LocationUri) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("LocationUri", 1))
- }
+func (s *DeleteSecurityConfigurationInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityConfigurationInput"}
if s.Name == nil {
invalidParams.Add(request.NewErrParamRequired("Name"))
}
@@ -12535,52 +14717,68 @@ func (s *DatabaseInput) Validate() error {
return nil
}
-// SetDescription sets the Description field's value.
-func (s *DatabaseInput) SetDescription(v string) *DatabaseInput {
- s.Description = &v
+// SetName sets the Name field's value.
+func (s *DeleteSecurityConfigurationInput) SetName(v string) *DeleteSecurityConfigurationInput {
+ s.Name = &v
return s
}
-// SetLocationUri sets the LocationUri field's value.
-func (s *DatabaseInput) SetLocationUri(v string) *DatabaseInput {
- s.LocationUri = &v
- return s
+type DeleteSecurityConfigurationOutput struct {
+ _ struct{} `type:"structure"`
}
-// SetName sets the Name field's value.
-func (s *DatabaseInput) SetName(v string) *DatabaseInput {
- s.Name = &v
- return s
+// String returns the string representation
+func (s DeleteSecurityConfigurationOutput) String() string {
+ return awsutil.Prettify(s)
}
-// SetParameters sets the Parameters field's value.
-func (s *DatabaseInput) SetParameters(v map[string]*string) *DatabaseInput {
- s.Parameters = v
- return s
+// GoString returns the string representation
+func (s DeleteSecurityConfigurationOutput) GoString() string {
+ return s.String()
}
-type DeleteClassifierInput struct {
+type DeleteTableInput struct {
_ struct{} `type:"structure"`
- // Name of the classifier to remove.
+ // The ID of the Data Catalog where the table resides. If none is supplied,
+ // 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. 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. For Hive compatibility, this name is
+ // entirely lowercase.
//
// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s DeleteClassifierInput) String() string {
+func (s DeleteTableInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteClassifierInput) GoString() string {
+func (s DeleteTableInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeleteClassifierInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteClassifierInput"}
+func (s *DeleteTableInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteTableInput"}
+ 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.Name == nil {
invalidParams.Add(request.NewErrParamRequired("Name"))
}
@@ -12594,60 +14792,96 @@ func (s *DeleteClassifierInput) Validate() error {
return nil
}
+// SetCatalogId sets the CatalogId field's value.
+func (s *DeleteTableInput) SetCatalogId(v string) *DeleteTableInput {
+ s.CatalogId = &v
+ return s
+}
+
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *DeleteTableInput) SetDatabaseName(v string) *DeleteTableInput {
+ s.DatabaseName = &v
+ return s
+}
+
// SetName sets the Name field's value.
-func (s *DeleteClassifierInput) SetName(v string) *DeleteClassifierInput {
+func (s *DeleteTableInput) SetName(v string) *DeleteTableInput {
s.Name = &v
return s
}
-type DeleteClassifierOutput struct {
+type DeleteTableOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
-func (s DeleteClassifierOutput) String() string {
+func (s DeleteTableOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteClassifierOutput) GoString() string {
+func (s DeleteTableOutput) GoString() string {
return s.String()
}
-type DeleteConnectionInput struct {
+type DeleteTableVersionInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog in which the connection resides. If none is supplied,
+ // 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 name of the connection to delete.
+ // The database in the catalog in which the table resides. For Hive compatibility,
+ // this name is entirely lowercase.
//
- // ConnectionName is a required field
- ConnectionName *string `min:"1" type:"string" required:"true"`
+ // 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. A VersionID is a string representation
+ // of an integer. Each version is incremented by 1.
+ //
+ // VersionId is a required field
+ VersionId *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s DeleteConnectionInput) String() string {
+func (s DeleteTableVersionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteConnectionInput) GoString() string {
+func (s DeleteTableVersionInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeleteConnectionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteConnectionInput"}
+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.ConnectionName == nil {
- invalidParams.Add(request.NewErrParamRequired("ConnectionName"))
+ if s.DatabaseName == nil {
+ invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
}
- if s.ConnectionName != nil && len(*s.ConnectionName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("ConnectionName", 1))
+ 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 {
@@ -12657,53 +14891,65 @@ func (s *DeleteConnectionInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *DeleteConnectionInput) SetCatalogId(v string) *DeleteConnectionInput {
+func (s *DeleteTableVersionInput) SetCatalogId(v string) *DeleteTableVersionInput {
s.CatalogId = &v
return s
}
-// SetConnectionName sets the ConnectionName field's value.
-func (s *DeleteConnectionInput) SetConnectionName(v string) *DeleteConnectionInput {
- s.ConnectionName = &v
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *DeleteTableVersionInput) SetDatabaseName(v string) *DeleteTableVersionInput {
+ s.DatabaseName = &v
return s
}
-type DeleteConnectionOutput struct {
+// 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
+}
+
+type DeleteTableVersionOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
-func (s DeleteConnectionOutput) String() string {
+func (s DeleteTableVersionOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteConnectionOutput) GoString() string {
+func (s DeleteTableVersionOutput) GoString() string {
return s.String()
}
-type DeleteCrawlerInput struct {
+type DeleteTriggerInput struct {
_ struct{} `type:"structure"`
- // Name of the crawler to remove.
+ // The name of the trigger to delete.
//
// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s DeleteCrawlerInput) String() string {
+func (s DeleteTriggerInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteCrawlerInput) GoString() string {
+func (s DeleteTriggerInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeleteCrawlerInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteCrawlerInput"}
+func (s *DeleteTriggerInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteTriggerInput"}
if s.Name == nil {
invalidParams.Add(request.NewErrParamRequired("Name"))
}
@@ -12718,60 +14964,79 @@ func (s *DeleteCrawlerInput) Validate() error {
}
// SetName sets the Name field's value.
-func (s *DeleteCrawlerInput) SetName(v string) *DeleteCrawlerInput {
+func (s *DeleteTriggerInput) SetName(v string) *DeleteTriggerInput {
s.Name = &v
return s
}
-type DeleteCrawlerOutput struct {
+type DeleteTriggerOutput struct {
_ struct{} `type:"structure"`
+
+ // The name of the trigger that was deleted.
+ Name *string `min:"1" type:"string"`
}
// String returns the string representation
-func (s DeleteCrawlerOutput) String() string {
+func (s DeleteTriggerOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteCrawlerOutput) GoString() string {
+func (s DeleteTriggerOutput) GoString() string {
return s.String()
}
-type DeleteDatabaseInput struct {
+// SetName sets the Name field's value.
+func (s *DeleteTriggerOutput) SetName(v string) *DeleteTriggerOutput {
+ s.Name = &v
+ return s
+}
+
+type DeleteUserDefinedFunctionInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog in which the database resides. If none is supplied,
- // the AWS account ID is used by default.
+ // The ID of the Data Catalog where the function to be deleted is located. If
+ // none is supplied, the AWS account ID is used by default.
CatalogId *string `min:"1" type:"string"`
- // The name of the Database to delete. For Hive compatibility, this must be
- // all lowercase.
+ // The name of the catalog database where the function is located.
//
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // DatabaseName is a required field
+ DatabaseName *string `min:"1" type:"string" required:"true"`
+
+ // The name of the function definition to be deleted.
+ //
+ // FunctionName is a required field
+ FunctionName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s DeleteDatabaseInput) String() string {
+func (s DeleteUserDefinedFunctionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteDatabaseInput) GoString() string {
+func (s DeleteUserDefinedFunctionInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeleteDatabaseInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteDatabaseInput"}
+func (s *DeleteUserDefinedFunctionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteUserDefinedFunctionInput"}
if s.CatalogId != nil && len(*s.CatalogId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
- if s.Name == nil {
- invalidParams.Add(request.NewErrParamRequired("Name"))
+ if s.DatabaseName == nil {
+ invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
}
- if s.Name != nil && len(*s.Name) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Name", 1))
+ if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
+ }
+ if s.FunctionName == nil {
+ invalidParams.Add(request.NewErrParamRequired("FunctionName"))
+ }
+ if s.FunctionName != nil && len(*s.FunctionName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
}
if invalidParams.Len() > 0 {
@@ -12781,323 +15046,361 @@ func (s *DeleteDatabaseInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *DeleteDatabaseInput) SetCatalogId(v string) *DeleteDatabaseInput {
+func (s *DeleteUserDefinedFunctionInput) SetCatalogId(v string) *DeleteUserDefinedFunctionInput {
s.CatalogId = &v
return s
}
-// SetName sets the Name field's value.
-func (s *DeleteDatabaseInput) SetName(v string) *DeleteDatabaseInput {
- s.Name = &v
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *DeleteUserDefinedFunctionInput) SetDatabaseName(v string) *DeleteUserDefinedFunctionInput {
+ s.DatabaseName = &v
return s
}
-type DeleteDatabaseOutput struct {
+// SetFunctionName sets the FunctionName field's value.
+func (s *DeleteUserDefinedFunctionInput) SetFunctionName(v string) *DeleteUserDefinedFunctionInput {
+ s.FunctionName = &v
+ return s
+}
+
+type DeleteUserDefinedFunctionOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
-func (s DeleteDatabaseOutput) String() string {
+func (s DeleteUserDefinedFunctionOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteDatabaseOutput) GoString() string {
+func (s DeleteUserDefinedFunctionOutput) GoString() string {
return s.String()
}
-type DeleteDevEndpointInput struct {
+// A development endpoint where a developer can remotely debug ETL scripts.
+type DevEndpoint struct {
_ struct{} `type:"structure"`
+ // The AWS availability zone where this DevEndpoint is located.
+ AvailabilityZone *string `type:"string"`
+
+ // The point in time at which this DevEndpoint was created.
+ CreatedTimestamp *time.Time `type:"timestamp"`
+
// The name of the DevEndpoint.
- //
- // EndpointName is a required field
- EndpointName *string `type:"string" required:"true"`
-}
+ EndpointName *string `type:"string"`
-// String returns the string representation
-func (s DeleteDevEndpointInput) String() string {
- return awsutil.Prettify(s)
-}
+ // Path to one or more Java Jars in an S3 bucket that should be loaded in your
+ // DevEndpoint.
+ //
+ // Please note that only pure Java/Scala libraries can currently be used on
+ // a DevEndpoint.
+ ExtraJarsS3Path *string `type:"string"`
-// GoString returns the string representation
-func (s DeleteDevEndpointInput) GoString() string {
- return s.String()
-}
+ // Path(s) to one or more Python libraries in an S3 bucket that should be loaded
+ // in your DevEndpoint. Multiple values must be complete paths separated by
+ // a comma.
+ //
+ // Please note that only pure Python libraries can currently be used on a DevEndpoint.
+ // Libraries that rely on C extensions, such as the pandas (http://pandas.pydata.org/)
+ // Python data analysis library, are not yet supported.
+ ExtraPythonLibsS3Path *string `type:"string"`
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeleteDevEndpointInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteDevEndpointInput"}
- if s.EndpointName == nil {
- invalidParams.Add(request.NewErrParamRequired("EndpointName"))
- }
+ // The reason for a current failure in this DevEndpoint.
+ FailureReason *string `type:"string"`
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
+ // The point in time at which this DevEndpoint was last modified.
+ LastModifiedTimestamp *time.Time `type:"timestamp"`
-// SetEndpointName sets the EndpointName field's value.
-func (s *DeleteDevEndpointInput) SetEndpointName(v string) *DeleteDevEndpointInput {
- s.EndpointName = &v
- return s
-}
+ // The status of the last update.
+ LastUpdateStatus *string `type:"string"`
-type DeleteDevEndpointOutput struct {
- _ struct{} `type:"structure"`
-}
+ // The number of AWS Glue Data Processing Units (DPUs) allocated to this DevEndpoint.
+ NumberOfNodes *int64 `type:"integer"`
-// String returns the string representation
-func (s DeleteDevEndpointOutput) String() string {
- return awsutil.Prettify(s)
-}
+ // A private IP address to access the DevEndpoint within a VPC, if the DevEndpoint
+ // is created within one. The PrivateAddress field is present only when you
+ // create the DevEndpoint within your virtual private cloud (VPC).
+ PrivateAddress *string `type:"string"`
-// GoString returns the string representation
-func (s DeleteDevEndpointOutput) GoString() string {
- return s.String()
-}
+ // The public IP address used by this DevEndpoint. The PublicAddress field is
+ // present only when you create a non-VPC (virtual private cloud) DevEndpoint.
+ PublicAddress *string `type:"string"`
-type DeleteJobInput struct {
- _ struct{} `type:"structure"`
+ // The public key to be used by this DevEndpoint for authentication. This attribute
+ // is provided for backward compatibility, as the recommended attribute to use
+ // is public keys.
+ PublicKey *string `type:"string"`
- // The name of the job definition to delete.
+ // A list of public keys to be used by the DevEndpoints for authentication.
+ // The use of this attribute is preferred over a single public key because the
+ // public keys allow you to have a different private key per client.
//
- // JobName is a required field
- JobName *string `min:"1" type:"string" required:"true"`
+ // If you previously created an endpoint with a public key, you must remove
+ // that key to be able to set a list of public keys: call the UpdateDevEndpoint
+ // API with the public key content in the deletePublicKeys attribute, and the
+ // list of new keys in the addPublicKeys attribute.
+ PublicKeys []*string `type:"list"`
+
+ // The AWS ARN of the IAM role used in this DevEndpoint.
+ RoleArn *string `type:"string"`
+
+ // The name of the SecurityConfiguration structure to be used with this DevEndpoint.
+ SecurityConfiguration *string `min:"1" type:"string"`
+
+ // A list of security group identifiers used in this DevEndpoint.
+ SecurityGroupIds []*string `type:"list"`
+
+ // The current status of this DevEndpoint.
+ Status *string `type:"string"`
+
+ // The subnet ID for this DevEndpoint.
+ SubnetId *string `type:"string"`
+
+ // The ID of the virtual private cloud (VPC) used by this DevEndpoint.
+ VpcId *string `type:"string"`
+
+ // The YARN endpoint address used by this DevEndpoint.
+ YarnEndpointAddress *string `type:"string"`
+
+ // The Apache Zeppelin port for the remote Apache Spark interpreter.
+ ZeppelinRemoteSparkInterpreterPort *int64 `type:"integer"`
}
// String returns the string representation
-func (s DeleteJobInput) String() string {
+func (s DevEndpoint) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteJobInput) GoString() string {
+func (s DevEndpoint) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeleteJobInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteJobInput"}
- if s.JobName == nil {
- invalidParams.Add(request.NewErrParamRequired("JobName"))
- }
- if s.JobName != nil && len(*s.JobName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
+// SetAvailabilityZone sets the AvailabilityZone field's value.
+func (s *DevEndpoint) SetAvailabilityZone(v string) *DevEndpoint {
+ s.AvailabilityZone = &v
+ return s
}
-// SetJobName sets the JobName field's value.
-func (s *DeleteJobInput) SetJobName(v string) *DeleteJobInput {
- s.JobName = &v
+// SetCreatedTimestamp sets the CreatedTimestamp field's value.
+func (s *DevEndpoint) SetCreatedTimestamp(v time.Time) *DevEndpoint {
+ s.CreatedTimestamp = &v
return s
}
-type DeleteJobOutput struct {
- _ struct{} `type:"structure"`
-
- // The name of the job definition that was deleted.
- JobName *string `min:"1" type:"string"`
+// SetEndpointName sets the EndpointName field's value.
+func (s *DevEndpoint) SetEndpointName(v string) *DevEndpoint {
+ s.EndpointName = &v
+ return s
}
-// String returns the string representation
-func (s DeleteJobOutput) String() string {
- return awsutil.Prettify(s)
+// SetExtraJarsS3Path sets the ExtraJarsS3Path field's value.
+func (s *DevEndpoint) SetExtraJarsS3Path(v string) *DevEndpoint {
+ s.ExtraJarsS3Path = &v
+ return s
}
-// GoString returns the string representation
-func (s DeleteJobOutput) GoString() string {
- return s.String()
+// SetExtraPythonLibsS3Path sets the ExtraPythonLibsS3Path field's value.
+func (s *DevEndpoint) SetExtraPythonLibsS3Path(v string) *DevEndpoint {
+ s.ExtraPythonLibsS3Path = &v
+ return s
}
-// SetJobName sets the JobName field's value.
-func (s *DeleteJobOutput) SetJobName(v string) *DeleteJobOutput {
- s.JobName = &v
+// SetFailureReason sets the FailureReason field's value.
+func (s *DevEndpoint) SetFailureReason(v string) *DevEndpoint {
+ s.FailureReason = &v
return s
}
-type DeletePartitionInput struct {
- _ struct{} `type:"structure"`
-
- // The ID of the Data Catalog where the partition to be deleted resides. If
- // none is supplied, the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+// SetLastModifiedTimestamp sets the LastModifiedTimestamp field's value.
+func (s *DevEndpoint) SetLastModifiedTimestamp(v time.Time) *DevEndpoint {
+ s.LastModifiedTimestamp = &v
+ return s
+}
- // The name of the catalog database in which the table in question resides.
- //
- // DatabaseName is a required field
- DatabaseName *string `min:"1" type:"string" required:"true"`
+// SetLastUpdateStatus sets the LastUpdateStatus field's value.
+func (s *DevEndpoint) SetLastUpdateStatus(v string) *DevEndpoint {
+ s.LastUpdateStatus = &v
+ return s
+}
- // The values that define the partition.
- //
- // PartitionValues is a required field
- PartitionValues []*string `type:"list" required:"true"`
+// SetNumberOfNodes sets the NumberOfNodes field's value.
+func (s *DevEndpoint) SetNumberOfNodes(v int64) *DevEndpoint {
+ s.NumberOfNodes = &v
+ return s
+}
- // The name of the table where the partition to be deleted is located.
- //
- // TableName is a required field
- TableName *string `min:"1" type:"string" required:"true"`
+// SetPrivateAddress sets the PrivateAddress field's value.
+func (s *DevEndpoint) SetPrivateAddress(v string) *DevEndpoint {
+ s.PrivateAddress = &v
+ return s
}
-// String returns the string representation
-func (s DeletePartitionInput) String() string {
- return awsutil.Prettify(s)
+// SetPublicAddress sets the PublicAddress field's value.
+func (s *DevEndpoint) SetPublicAddress(v string) *DevEndpoint {
+ s.PublicAddress = &v
+ return s
}
-// GoString returns the string representation
-func (s DeletePartitionInput) GoString() string {
- return s.String()
+// SetPublicKey sets the PublicKey field's value.
+func (s *DevEndpoint) SetPublicKey(v string) *DevEndpoint {
+ s.PublicKey = &v
+ return s
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeletePartitionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeletePartitionInput"}
- 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.PartitionValues == nil {
- invalidParams.Add(request.NewErrParamRequired("PartitionValues"))
- }
- if s.TableName == nil {
- invalidParams.Add(request.NewErrParamRequired("TableName"))
- }
- if s.TableName != nil && len(*s.TableName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
- }
+// SetPublicKeys sets the PublicKeys field's value.
+func (s *DevEndpoint) SetPublicKeys(v []*string) *DevEndpoint {
+ s.PublicKeys = v
+ return s
+}
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
+// SetRoleArn sets the RoleArn field's value.
+func (s *DevEndpoint) SetRoleArn(v string) *DevEndpoint {
+ s.RoleArn = &v
+ return s
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *DeletePartitionInput) SetCatalogId(v string) *DeletePartitionInput {
- s.CatalogId = &v
+// SetSecurityConfiguration sets the SecurityConfiguration field's value.
+func (s *DevEndpoint) SetSecurityConfiguration(v string) *DevEndpoint {
+ s.SecurityConfiguration = &v
return s
}
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *DeletePartitionInput) SetDatabaseName(v string) *DeletePartitionInput {
- s.DatabaseName = &v
+// SetSecurityGroupIds sets the SecurityGroupIds field's value.
+func (s *DevEndpoint) SetSecurityGroupIds(v []*string) *DevEndpoint {
+ s.SecurityGroupIds = v
return s
}
-// SetPartitionValues sets the PartitionValues field's value.
-func (s *DeletePartitionInput) SetPartitionValues(v []*string) *DeletePartitionInput {
- s.PartitionValues = v
+// SetStatus sets the Status field's value.
+func (s *DevEndpoint) SetStatus(v string) *DevEndpoint {
+ s.Status = &v
return s
}
-// SetTableName sets the TableName field's value.
-func (s *DeletePartitionInput) SetTableName(v string) *DeletePartitionInput {
- s.TableName = &v
+// SetSubnetId sets the SubnetId field's value.
+func (s *DevEndpoint) SetSubnetId(v string) *DevEndpoint {
+ s.SubnetId = &v
return s
}
-type DeletePartitionOutput struct {
- _ struct{} `type:"structure"`
+// SetVpcId sets the VpcId field's value.
+func (s *DevEndpoint) SetVpcId(v string) *DevEndpoint {
+ s.VpcId = &v
+ return s
}
-// String returns the string representation
-func (s DeletePartitionOutput) String() string {
- return awsutil.Prettify(s)
+// SetYarnEndpointAddress sets the YarnEndpointAddress field's value.
+func (s *DevEndpoint) SetYarnEndpointAddress(v string) *DevEndpoint {
+ s.YarnEndpointAddress = &v
+ return s
}
-// GoString returns the string representation
-func (s DeletePartitionOutput) GoString() string {
- return s.String()
+// SetZeppelinRemoteSparkInterpreterPort sets the ZeppelinRemoteSparkInterpreterPort field's value.
+func (s *DevEndpoint) SetZeppelinRemoteSparkInterpreterPort(v int64) *DevEndpoint {
+ s.ZeppelinRemoteSparkInterpreterPort = &v
+ return s
}
-type DeleteResourcePolicyInput struct {
+// Custom libraries to be loaded into a DevEndpoint.
+type DevEndpointCustomLibraries struct {
_ struct{} `type:"structure"`
- // The hash value returned when this policy was set.
- PolicyHashCondition *string `min:"1" type:"string"`
+ // Path to one or more Java Jars in an S3 bucket that should be loaded in your
+ // DevEndpoint.
+ //
+ // Please note that only pure Java/Scala libraries can currently be used on
+ // a DevEndpoint.
+ ExtraJarsS3Path *string `type:"string"`
+
+ // Path(s) to one or more Python libraries in an S3 bucket that should be loaded
+ // in your DevEndpoint. Multiple values must be complete paths separated by
+ // a comma.
+ //
+ // Please note that only pure Python libraries can currently be used on a DevEndpoint.
+ // Libraries that rely on C extensions, such as the pandas (http://pandas.pydata.org/)
+ // Python data analysis library, are not yet supported.
+ ExtraPythonLibsS3Path *string `type:"string"`
}
// String returns the string representation
-func (s DeleteResourcePolicyInput) String() string {
+func (s DevEndpointCustomLibraries) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteResourcePolicyInput) GoString() string {
+func (s DevEndpointCustomLibraries) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeleteResourcePolicyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteResourcePolicyInput"}
- if s.PolicyHashCondition != nil && len(*s.PolicyHashCondition) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("PolicyHashCondition", 1))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
+// SetExtraJarsS3Path sets the ExtraJarsS3Path field's value.
+func (s *DevEndpointCustomLibraries) SetExtraJarsS3Path(v string) *DevEndpointCustomLibraries {
+ s.ExtraJarsS3Path = &v
+ return s
}
-// SetPolicyHashCondition sets the PolicyHashCondition field's value.
-func (s *DeleteResourcePolicyInput) SetPolicyHashCondition(v string) *DeleteResourcePolicyInput {
- s.PolicyHashCondition = &v
+// SetExtraPythonLibsS3Path sets the ExtraPythonLibsS3Path field's value.
+func (s *DevEndpointCustomLibraries) SetExtraPythonLibsS3Path(v string) *DevEndpointCustomLibraries {
+ s.ExtraPythonLibsS3Path = &v
return s
}
-type DeleteResourcePolicyOutput struct {
+// Specifies a DynamoDB table to crawl.
+type DynamoDBTarget struct {
_ struct{} `type:"structure"`
+
+ // The name of the DynamoDB table to crawl.
+ Path *string `type:"string"`
}
// String returns the string representation
-func (s DeleteResourcePolicyOutput) String() string {
+func (s DynamoDBTarget) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteResourcePolicyOutput) GoString() string {
+func (s DynamoDBTarget) GoString() string {
return s.String()
}
-type DeleteSecurityConfigurationInput struct {
+// SetPath sets the Path field's value.
+func (s *DynamoDBTarget) SetPath(v string) *DynamoDBTarget {
+ s.Path = &v
+ return s
+}
+
+// Specifies the encryption-at-rest configuration for the Data Catalog.
+type EncryptionAtRest struct {
_ struct{} `type:"structure"`
- // The name of the security configuration to delete.
+ // The encryption-at-rest mode for encrypting Data Catalog data.
//
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // CatalogEncryptionMode is a required field
+ CatalogEncryptionMode *string `type:"string" required:"true" enum:"CatalogEncryptionMode"`
+
+ // The ID of the AWS KMS key to use for encryption at rest.
+ SseAwsKmsKeyId *string `min:"1" type:"string"`
}
// String returns the string representation
-func (s DeleteSecurityConfigurationInput) String() string {
+func (s EncryptionAtRest) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteSecurityConfigurationInput) GoString() string {
+func (s EncryptionAtRest) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeleteSecurityConfigurationInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityConfigurationInput"}
- if s.Name == nil {
- invalidParams.Add(request.NewErrParamRequired("Name"))
+func (s *EncryptionAtRest) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "EncryptionAtRest"}
+ if s.CatalogEncryptionMode == nil {
+ invalidParams.Add(request.NewErrParamRequired("CatalogEncryptionMode"))
}
- if s.Name != nil && len(*s.Name) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Name", 1))
+ if s.SseAwsKmsKeyId != nil && len(*s.SseAwsKmsKeyId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("SseAwsKmsKeyId", 1))
}
if invalidParams.Len() > 0 {
@@ -13106,172 +15409,143 @@ func (s *DeleteSecurityConfigurationInput) Validate() error {
return nil
}
-// SetName sets the Name field's value.
-func (s *DeleteSecurityConfigurationInput) SetName(v string) *DeleteSecurityConfigurationInput {
- s.Name = &v
+// SetCatalogEncryptionMode sets the CatalogEncryptionMode field's value.
+func (s *EncryptionAtRest) SetCatalogEncryptionMode(v string) *EncryptionAtRest {
+ s.CatalogEncryptionMode = &v
return s
}
-type DeleteSecurityConfigurationOutput struct {
+// SetSseAwsKmsKeyId sets the SseAwsKmsKeyId field's value.
+func (s *EncryptionAtRest) SetSseAwsKmsKeyId(v string) *EncryptionAtRest {
+ s.SseAwsKmsKeyId = &v
+ return s
+}
+
+// Specifies an encryption configuration.
+type EncryptionConfiguration struct {
_ struct{} `type:"structure"`
+
+ // The encryption configuration for CloudWatch.
+ CloudWatchEncryption *CloudWatchEncryption `type:"structure"`
+
+ // The encryption configuration for Job Bookmarks.
+ JobBookmarksEncryption *JobBookmarksEncryption `type:"structure"`
+
+ // The encryption configuration for S3 data.
+ S3Encryption []*S3Encryption `type:"list"`
}
// String returns the string representation
-func (s DeleteSecurityConfigurationOutput) String() string {
+func (s EncryptionConfiguration) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteSecurityConfigurationOutput) GoString() string {
+func (s EncryptionConfiguration) GoString() string {
return s.String()
}
-type DeleteTableInput struct {
- _ struct{} `type:"structure"`
+// SetCloudWatchEncryption sets the CloudWatchEncryption field's value.
+func (s *EncryptionConfiguration) SetCloudWatchEncryption(v *CloudWatchEncryption) *EncryptionConfiguration {
+ s.CloudWatchEncryption = v
+ return s
+}
- // The ID of the Data Catalog where the table resides. If none is supplied,
- // the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+// SetJobBookmarksEncryption sets the JobBookmarksEncryption field's value.
+func (s *EncryptionConfiguration) SetJobBookmarksEncryption(v *JobBookmarksEncryption) *EncryptionConfiguration {
+ s.JobBookmarksEncryption = v
+ return s
+}
- // 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"`
+// SetS3Encryption sets the S3Encryption field's value.
+func (s *EncryptionConfiguration) SetS3Encryption(v []*S3Encryption) *EncryptionConfiguration {
+ s.S3Encryption = v
+ return s
+}
- // 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"`
+// Contains details about an error.
+type ErrorDetail struct {
+ _ struct{} `type:"structure"`
+
+ // The code associated with this error.
+ ErrorCode *string `min:"1" type:"string"`
+
+ // A message describing the error.
+ ErrorMessage *string `type:"string"`
}
// String returns the string representation
-func (s DeleteTableInput) String() string {
+func (s ErrorDetail) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteTableInput) GoString() string {
+func (s ErrorDetail) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeleteTableInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteTableInput"}
- 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.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
-}
-
-// SetCatalogId sets the CatalogId field's value.
-func (s *DeleteTableInput) SetCatalogId(v string) *DeleteTableInput {
- s.CatalogId = &v
- return s
-}
-
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *DeleteTableInput) SetDatabaseName(v string) *DeleteTableInput {
- s.DatabaseName = &v
+// SetErrorCode sets the ErrorCode field's value.
+func (s *ErrorDetail) SetErrorCode(v string) *ErrorDetail {
+ s.ErrorCode = &v
return s
}
-// SetName sets the Name field's value.
-func (s *DeleteTableInput) SetName(v string) *DeleteTableInput {
- s.Name = &v
+// SetErrorMessage sets the ErrorMessage field's value.
+func (s *ErrorDetail) SetErrorMessage(v string) *ErrorDetail {
+ s.ErrorMessage = &v
return s
}
-type DeleteTableOutput struct {
+// An execution property of a job.
+type ExecutionProperty struct {
_ struct{} `type:"structure"`
+
+ // The maximum number of concurrent runs allowed for the 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"`
}
// String returns the string representation
-func (s DeleteTableOutput) String() string {
+func (s ExecutionProperty) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteTableOutput) GoString() string {
+func (s ExecutionProperty) GoString() string {
return s.String()
}
-type DeleteTableVersionInput struct {
+// SetMaxConcurrentRuns sets the MaxConcurrentRuns field's value.
+func (s *ExecutionProperty) SetMaxConcurrentRuns(v int64) *ExecutionProperty {
+ s.MaxConcurrentRuns = &v
+ return s
+}
+
+type GetCatalogImportStatusInput 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.
+ // The ID of the catalog to migrate. Currently, this should be the AWS account
+ // ID.
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. A VersionID is a string representation
- // of an integer. Each version is incremented by 1.
- //
- // VersionId is a required field
- VersionId *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s DeleteTableVersionInput) String() string {
+func (s GetCatalogImportStatusInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteTableVersionInput) GoString() string {
+func (s GetCatalogImportStatusInput) 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"}
+func (s *GetCatalogImportStatusInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetCatalogImportStatusInput"}
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
@@ -13280,65 +15554,56 @@ func (s *DeleteTableVersionInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *DeleteTableVersionInput) SetCatalogId(v string) *DeleteTableVersionInput {
+func (s *GetCatalogImportStatusInput) SetCatalogId(v string) *GetCatalogImportStatusInput {
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
-}
-
-type DeleteTableVersionOutput struct {
+type GetCatalogImportStatusOutput struct {
_ struct{} `type:"structure"`
+
+ // The status of the specified catalog migration.
+ ImportStatus *CatalogImportStatus `type:"structure"`
}
// String returns the string representation
-func (s DeleteTableVersionOutput) String() string {
+func (s GetCatalogImportStatusOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteTableVersionOutput) GoString() string {
+func (s GetCatalogImportStatusOutput) GoString() string {
return s.String()
}
-type DeleteTriggerInput struct {
+// SetImportStatus sets the ImportStatus field's value.
+func (s *GetCatalogImportStatusOutput) SetImportStatus(v *CatalogImportStatus) *GetCatalogImportStatusOutput {
+ s.ImportStatus = v
+ return s
+}
+
+type GetClassifierInput struct {
_ struct{} `type:"structure"`
- // The name of the trigger to delete.
+ // Name of the classifier to retrieve.
//
// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s DeleteTriggerInput) String() string {
+func (s GetClassifierInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteTriggerInput) GoString() string {
+func (s GetClassifierInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeleteTriggerInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteTriggerInput"}
+func (s *GetClassifierInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetClassifierInput"}
if s.Name == nil {
invalidParams.Add(request.NewErrParamRequired("Name"))
}
@@ -13353,79 +15618,59 @@ func (s *DeleteTriggerInput) Validate() error {
}
// SetName sets the Name field's value.
-func (s *DeleteTriggerInput) SetName(v string) *DeleteTriggerInput {
+func (s *GetClassifierInput) SetName(v string) *GetClassifierInput {
s.Name = &v
return s
}
-type DeleteTriggerOutput struct {
+type GetClassifierOutput struct {
_ struct{} `type:"structure"`
- // The name of the trigger that was deleted.
- Name *string `min:"1" type:"string"`
+ // The requested classifier.
+ Classifier *Classifier `type:"structure"`
}
// String returns the string representation
-func (s DeleteTriggerOutput) String() string {
+func (s GetClassifierOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteTriggerOutput) GoString() string {
+func (s GetClassifierOutput) GoString() string {
return s.String()
}
-// SetName sets the Name field's value.
-func (s *DeleteTriggerOutput) SetName(v string) *DeleteTriggerOutput {
- s.Name = &v
+// SetClassifier sets the Classifier field's value.
+func (s *GetClassifierOutput) SetClassifier(v *Classifier) *GetClassifierOutput {
+ s.Classifier = v
return s
}
-type DeleteUserDefinedFunctionInput struct {
+type GetClassifiersInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog where the function to be deleted is located. If
- // none is supplied, the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
-
- // The name of the catalog database where the function is located.
- //
- // DatabaseName is a required field
- DatabaseName *string `min:"1" type:"string" required:"true"`
+ // Size of the list to return (optional).
+ MaxResults *int64 `min:"1" type:"integer"`
- // The name of the function definition to be deleted.
- //
- // FunctionName is a required field
- FunctionName *string `min:"1" type:"string" required:"true"`
+ // An optional continuation token.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s DeleteUserDefinedFunctionInput) String() string {
+func (s GetClassifiersInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DeleteUserDefinedFunctionInput) GoString() string {
+func (s GetClassifiersInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *DeleteUserDefinedFunctionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteUserDefinedFunctionInput"}
- 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.FunctionName == nil {
- invalidParams.Add(request.NewErrParamRequired("FunctionName"))
- }
- if s.FunctionName != nil && len(*s.FunctionName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
+func (s *GetClassifiersInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetClassifiersInput"}
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
if invalidParams.Len() > 0 {
@@ -13434,362 +15679,316 @@ func (s *DeleteUserDefinedFunctionInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *DeleteUserDefinedFunctionInput) SetCatalogId(v string) *DeleteUserDefinedFunctionInput {
- s.CatalogId = &v
- return s
-}
-
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *DeleteUserDefinedFunctionInput) SetDatabaseName(v string) *DeleteUserDefinedFunctionInput {
- s.DatabaseName = &v
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetClassifiersInput) SetMaxResults(v int64) *GetClassifiersInput {
+ s.MaxResults = &v
return s
}
-// SetFunctionName sets the FunctionName field's value.
-func (s *DeleteUserDefinedFunctionInput) SetFunctionName(v string) *DeleteUserDefinedFunctionInput {
- s.FunctionName = &v
+// SetNextToken sets the NextToken field's value.
+func (s *GetClassifiersInput) SetNextToken(v string) *GetClassifiersInput {
+ s.NextToken = &v
return s
}
-type DeleteUserDefinedFunctionOutput struct {
- _ struct{} `type:"structure"`
-}
-
-// String returns the string representation
-func (s DeleteUserDefinedFunctionOutput) String() string {
- return awsutil.Prettify(s)
-}
-
-// GoString returns the string representation
-func (s DeleteUserDefinedFunctionOutput) GoString() string {
- return s.String()
-}
-
-// A development endpoint where a developer can remotely debug ETL scripts.
-type DevEndpoint struct {
+type GetClassifiersOutput struct {
_ struct{} `type:"structure"`
- // The AWS availability zone where this DevEndpoint is located.
- AvailabilityZone *string `type:"string"`
-
- // The point in time at which this DevEndpoint was created.
- CreatedTimestamp *time.Time `type:"timestamp"`
-
- // The name of the DevEndpoint.
- EndpointName *string `type:"string"`
-
- // Path to one or more Java Jars in an S3 bucket that should be loaded in your
- // DevEndpoint.
- //
- // Please note that only pure Java/Scala libraries can currently be used on
- // a DevEndpoint.
- ExtraJarsS3Path *string `type:"string"`
-
- // Path(s) to one or more Python libraries in an S3 bucket that should be loaded
- // in your DevEndpoint. Multiple values must be complete paths separated by
- // a comma.
- //
- // Please note that only pure Python libraries can currently be used on a DevEndpoint.
- // Libraries that rely on C extensions, such as the pandas (http://pandas.pydata.org/)
- // Python data analysis library, are not yet supported.
- ExtraPythonLibsS3Path *string `type:"string"`
-
- // The reason for a current failure in this DevEndpoint.
- FailureReason *string `type:"string"`
-
- // The point in time at which this DevEndpoint was last modified.
- LastModifiedTimestamp *time.Time `type:"timestamp"`
-
- // The status of the last update.
- LastUpdateStatus *string `type:"string"`
-
- // The number of AWS Glue Data Processing Units (DPUs) allocated to this DevEndpoint.
- NumberOfNodes *int64 `type:"integer"`
-
- // A private IP address to access the DevEndpoint within a VPC, if the DevEndpoint
- // is created within one. The PrivateAddress field is present only when you
- // create the DevEndpoint within your virtual private cloud (VPC).
- PrivateAddress *string `type:"string"`
-
- // The public IP address used by this DevEndpoint. The PublicAddress field is
- // present only when you create a non-VPC (virtual private cloud) DevEndpoint.
- PublicAddress *string `type:"string"`
-
- // The public key to be used by this DevEndpoint for authentication. This attribute
- // is provided for backward compatibility, as the recommended attribute to use
- // is public keys.
- PublicKey *string `type:"string"`
-
- // A list of public keys to be used by the DevEndpoints for authentication.
- // The use of this attribute is preferred over a single public key because the
- // public keys allow you to have a different private key per client.
- //
- // If you previously created an endpoint with a public key, you must remove
- // that key to be able to set a list of public keys: call the UpdateDevEndpoint
- // API with the public key content in the deletePublicKeys attribute, and the
- // list of new keys in the addPublicKeys attribute.
- PublicKeys []*string `type:"list"`
-
- // The AWS ARN of the IAM role used in this DevEndpoint.
- RoleArn *string `type:"string"`
-
- // The name of the SecurityConfiguration structure to be used with this DevEndpoint.
- SecurityConfiguration *string `min:"1" type:"string"`
-
- // A list of security group identifiers used in this DevEndpoint.
- SecurityGroupIds []*string `type:"list"`
-
- // The current status of this DevEndpoint.
- Status *string `type:"string"`
-
- // The subnet ID for this DevEndpoint.
- SubnetId *string `type:"string"`
-
- // The ID of the virtual private cloud (VPC) used by this DevEndpoint.
- VpcId *string `type:"string"`
-
- // The YARN endpoint address used by this DevEndpoint.
- YarnEndpointAddress *string `type:"string"`
+ // The requested list of classifier objects.
+ Classifiers []*Classifier `type:"list"`
- // The Apache Zeppelin port for the remote Apache Spark interpreter.
- ZeppelinRemoteSparkInterpreterPort *int64 `type:"integer"`
+ // A continuation token.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s DevEndpoint) String() string {
+func (s GetClassifiersOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DevEndpoint) GoString() string {
+func (s GetClassifiersOutput) GoString() string {
return s.String()
}
-// SetAvailabilityZone sets the AvailabilityZone field's value.
-func (s *DevEndpoint) SetAvailabilityZone(v string) *DevEndpoint {
- s.AvailabilityZone = &v
+// SetClassifiers sets the Classifiers field's value.
+func (s *GetClassifiersOutput) SetClassifiers(v []*Classifier) *GetClassifiersOutput {
+ s.Classifiers = v
return s
}
-// SetCreatedTimestamp sets the CreatedTimestamp field's value.
-func (s *DevEndpoint) SetCreatedTimestamp(v time.Time) *DevEndpoint {
- s.CreatedTimestamp = &v
+// SetNextToken sets the NextToken field's value.
+func (s *GetClassifiersOutput) SetNextToken(v string) *GetClassifiersOutput {
+ s.NextToken = &v
return s
}
-// SetEndpointName sets the EndpointName field's value.
-func (s *DevEndpoint) SetEndpointName(v string) *DevEndpoint {
- s.EndpointName = &v
- return s
-}
+type GetConnectionInput struct {
+ _ struct{} `type:"structure"`
-// SetExtraJarsS3Path sets the ExtraJarsS3Path field's value.
-func (s *DevEndpoint) SetExtraJarsS3Path(v string) *DevEndpoint {
- s.ExtraJarsS3Path = &v
- return s
-}
+ // The ID of the Data Catalog in which the connection resides. If none is provided,
+ // the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
-// SetExtraPythonLibsS3Path sets the ExtraPythonLibsS3Path field's value.
-func (s *DevEndpoint) SetExtraPythonLibsS3Path(v string) *DevEndpoint {
- s.ExtraPythonLibsS3Path = &v
- return s
-}
+ // Allows you to retrieve the connection metadata without returning the password.
+ // For instance, the AWS Glue console uses this flag to retrieve the connection,
+ // and does not display the password. Set this parameter when the caller might
+ // not have permission to use the AWS KMS key to decrypt the password, but does
+ // have permission to access the rest of the connection properties.
+ HidePassword *bool `type:"boolean"`
-// SetFailureReason sets the FailureReason field's value.
-func (s *DevEndpoint) SetFailureReason(v string) *DevEndpoint {
- s.FailureReason = &v
- return s
+ // The name of the connection definition to retrieve.
+ //
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
}
-// SetLastModifiedTimestamp sets the LastModifiedTimestamp field's value.
-func (s *DevEndpoint) SetLastModifiedTimestamp(v time.Time) *DevEndpoint {
- s.LastModifiedTimestamp = &v
- return s
+// String returns the string representation
+func (s GetConnectionInput) String() string {
+ return awsutil.Prettify(s)
}
-// SetLastUpdateStatus sets the LastUpdateStatus field's value.
-func (s *DevEndpoint) SetLastUpdateStatus(v string) *DevEndpoint {
- s.LastUpdateStatus = &v
- return s
+// GoString returns the string representation
+func (s GetConnectionInput) GoString() string {
+ return s.String()
}
-// SetNumberOfNodes sets the NumberOfNodes field's value.
-func (s *DevEndpoint) SetNumberOfNodes(v int64) *DevEndpoint {
- s.NumberOfNodes = &v
- return s
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetConnectionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetConnectionInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
+ }
+ if s.Name == nil {
+ invalidParams.Add(request.NewErrParamRequired("Name"))
+ }
+ if s.Name != nil && len(*s.Name) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Name", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
}
-// SetPrivateAddress sets the PrivateAddress field's value.
-func (s *DevEndpoint) SetPrivateAddress(v string) *DevEndpoint {
- s.PrivateAddress = &v
+// SetCatalogId sets the CatalogId field's value.
+func (s *GetConnectionInput) SetCatalogId(v string) *GetConnectionInput {
+ s.CatalogId = &v
return s
}
-// SetPublicAddress sets the PublicAddress field's value.
-func (s *DevEndpoint) SetPublicAddress(v string) *DevEndpoint {
- s.PublicAddress = &v
+// SetHidePassword sets the HidePassword field's value.
+func (s *GetConnectionInput) SetHidePassword(v bool) *GetConnectionInput {
+ s.HidePassword = &v
return s
}
-// SetPublicKey sets the PublicKey field's value.
-func (s *DevEndpoint) SetPublicKey(v string) *DevEndpoint {
- s.PublicKey = &v
+// SetName sets the Name field's value.
+func (s *GetConnectionInput) SetName(v string) *GetConnectionInput {
+ s.Name = &v
return s
}
-// SetPublicKeys sets the PublicKeys field's value.
-func (s *DevEndpoint) SetPublicKeys(v []*string) *DevEndpoint {
- s.PublicKeys = v
- return s
+type GetConnectionOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The requested connection definition.
+ Connection *Connection `type:"structure"`
}
-// SetRoleArn sets the RoleArn field's value.
-func (s *DevEndpoint) SetRoleArn(v string) *DevEndpoint {
- s.RoleArn = &v
- return s
+// String returns the string representation
+func (s GetConnectionOutput) String() string {
+ return awsutil.Prettify(s)
}
-// SetSecurityConfiguration sets the SecurityConfiguration field's value.
-func (s *DevEndpoint) SetSecurityConfiguration(v string) *DevEndpoint {
- s.SecurityConfiguration = &v
- return s
+// GoString returns the string representation
+func (s GetConnectionOutput) GoString() string {
+ return s.String()
}
-// SetSecurityGroupIds sets the SecurityGroupIds field's value.
-func (s *DevEndpoint) SetSecurityGroupIds(v []*string) *DevEndpoint {
- s.SecurityGroupIds = v
+// SetConnection sets the Connection field's value.
+func (s *GetConnectionOutput) SetConnection(v *Connection) *GetConnectionOutput {
+ s.Connection = v
return s
}
-// SetStatus sets the Status field's value.
-func (s *DevEndpoint) SetStatus(v string) *DevEndpoint {
- s.Status = &v
- return s
+// Filters the connection definitions that are returned by the GetConnections
+// API operation.
+type GetConnectionsFilter struct {
+ _ struct{} `type:"structure"`
+
+ // The type of connections to return. Currently, only JDBC is supported; SFTP
+ // is not supported.
+ ConnectionType *string `type:"string" enum:"ConnectionType"`
+
+ // A criteria string that must match the criteria recorded in the connection
+ // definition for that connection definition to be returned.
+ MatchCriteria []*string `type:"list"`
}
-// SetSubnetId sets the SubnetId field's value.
-func (s *DevEndpoint) SetSubnetId(v string) *DevEndpoint {
- s.SubnetId = &v
- return s
+// String returns the string representation
+func (s GetConnectionsFilter) String() string {
+ return awsutil.Prettify(s)
}
-// SetVpcId sets the VpcId field's value.
-func (s *DevEndpoint) SetVpcId(v string) *DevEndpoint {
- s.VpcId = &v
- return s
+// GoString returns the string representation
+func (s GetConnectionsFilter) GoString() string {
+ return s.String()
}
-// SetYarnEndpointAddress sets the YarnEndpointAddress field's value.
-func (s *DevEndpoint) SetYarnEndpointAddress(v string) *DevEndpoint {
- s.YarnEndpointAddress = &v
+// SetConnectionType sets the ConnectionType field's value.
+func (s *GetConnectionsFilter) SetConnectionType(v string) *GetConnectionsFilter {
+ s.ConnectionType = &v
return s
}
-// SetZeppelinRemoteSparkInterpreterPort sets the ZeppelinRemoteSparkInterpreterPort field's value.
-func (s *DevEndpoint) SetZeppelinRemoteSparkInterpreterPort(v int64) *DevEndpoint {
- s.ZeppelinRemoteSparkInterpreterPort = &v
+// SetMatchCriteria sets the MatchCriteria field's value.
+func (s *GetConnectionsFilter) SetMatchCriteria(v []*string) *GetConnectionsFilter {
+ s.MatchCriteria = v
return s
}
-// Custom libraries to be loaded into a DevEndpoint.
-type DevEndpointCustomLibraries struct {
+type GetConnectionsInput struct {
_ struct{} `type:"structure"`
- // Path to one or more Java Jars in an S3 bucket that should be loaded in your
- // DevEndpoint.
- //
- // Please note that only pure Java/Scala libraries can currently be used on
- // a DevEndpoint.
- ExtraJarsS3Path *string `type:"string"`
+ // The ID of the Data Catalog in which the connections reside. If none is provided,
+ // the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
- // Path(s) to one or more Python libraries in an S3 bucket that should be loaded
- // in your DevEndpoint. Multiple values must be complete paths separated by
- // a comma.
- //
- // Please note that only pure Python libraries can currently be used on a DevEndpoint.
- // Libraries that rely on C extensions, such as the pandas (http://pandas.pydata.org/)
- // Python data analysis library, are not yet supported.
- ExtraPythonLibsS3Path *string `type:"string"`
+ // A filter that controls which connections will be returned.
+ Filter *GetConnectionsFilter `type:"structure"`
+
+ // Allows you to retrieve the connection metadata without returning the password.
+ // For instance, the AWS Glue console uses this flag to retrieve the connection,
+ // and does not display the password. Set this parameter when the caller might
+ // not have permission to use the AWS KMS key to decrypt the password, but does
+ // have permission to access the rest of the connection properties.
+ HidePassword *bool `type:"boolean"`
+
+ // The maximum number of connections to return in one response.
+ MaxResults *int64 `min:"1" type:"integer"`
+
+ // A continuation token, if this is a continuation call.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s DevEndpointCustomLibraries) String() string {
+func (s GetConnectionsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DevEndpointCustomLibraries) GoString() string {
+func (s GetConnectionsInput) GoString() string {
return s.String()
}
-// SetExtraJarsS3Path sets the ExtraJarsS3Path field's value.
-func (s *DevEndpointCustomLibraries) SetExtraJarsS3Path(v string) *DevEndpointCustomLibraries {
- s.ExtraJarsS3Path = &v
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetConnectionsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetConnectionsInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
+ }
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCatalogId sets the CatalogId field's value.
+func (s *GetConnectionsInput) SetCatalogId(v string) *GetConnectionsInput {
+ s.CatalogId = &v
return s
}
-// SetExtraPythonLibsS3Path sets the ExtraPythonLibsS3Path field's value.
-func (s *DevEndpointCustomLibraries) SetExtraPythonLibsS3Path(v string) *DevEndpointCustomLibraries {
- s.ExtraPythonLibsS3Path = &v
+// SetFilter sets the Filter field's value.
+func (s *GetConnectionsInput) SetFilter(v *GetConnectionsFilter) *GetConnectionsInput {
+ s.Filter = v
return s
}
-// Specifies a DynamoDB table to crawl.
-type DynamoDBTarget struct {
+// SetHidePassword sets the HidePassword field's value.
+func (s *GetConnectionsInput) SetHidePassword(v bool) *GetConnectionsInput {
+ s.HidePassword = &v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetConnectionsInput) SetMaxResults(v int64) *GetConnectionsInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *GetConnectionsInput) SetNextToken(v string) *GetConnectionsInput {
+ s.NextToken = &v
+ return s
+}
+
+type GetConnectionsOutput struct {
_ struct{} `type:"structure"`
- // The name of the DynamoDB table to crawl.
- Path *string `type:"string"`
+ // A list of requested connection definitions.
+ ConnectionList []*Connection `type:"list"`
+
+ // A continuation token, if the list of connections returned does not include
+ // the last of the filtered connections.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s DynamoDBTarget) String() string {
+func (s GetConnectionsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s DynamoDBTarget) GoString() string {
+func (s GetConnectionsOutput) GoString() string {
return s.String()
}
-// SetPath sets the Path field's value.
-func (s *DynamoDBTarget) SetPath(v string) *DynamoDBTarget {
- s.Path = &v
+// SetConnectionList sets the ConnectionList field's value.
+func (s *GetConnectionsOutput) SetConnectionList(v []*Connection) *GetConnectionsOutput {
+ s.ConnectionList = v
return s
}
-// Specifies encryption-at-rest configuration for the Data Catalog.
-type EncryptionAtRest struct {
+// SetNextToken sets the NextToken field's value.
+func (s *GetConnectionsOutput) SetNextToken(v string) *GetConnectionsOutput {
+ s.NextToken = &v
+ return s
+}
+
+type GetCrawlerInput struct {
_ struct{} `type:"structure"`
- // The encryption-at-rest mode for encrypting Data Catalog data.
+ // Name of the crawler to retrieve metadata for.
//
- // CatalogEncryptionMode is a required field
- CatalogEncryptionMode *string `type:"string" required:"true" enum:"CatalogEncryptionMode"`
-
- // The ID of the AWS KMS key to use for encryption at rest.
- SseAwsKmsKeyId *string `min:"1" type:"string"`
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s EncryptionAtRest) String() string {
+func (s GetCrawlerInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s EncryptionAtRest) GoString() string {
+func (s GetCrawlerInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *EncryptionAtRest) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "EncryptionAtRest"}
- if s.CatalogEncryptionMode == nil {
- invalidParams.Add(request.NewErrParamRequired("CatalogEncryptionMode"))
+func (s *GetCrawlerInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetCrawlerInput"}
+ if s.Name == nil {
+ invalidParams.Add(request.NewErrParamRequired("Name"))
}
- if s.SseAwsKmsKeyId != nil && len(*s.SseAwsKmsKeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SseAwsKmsKeyId", 1))
+ if s.Name != nil && len(*s.Name) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
if invalidParams.Len() > 0 {
@@ -13798,142 +15997,147 @@ func (s *EncryptionAtRest) Validate() error {
return nil
}
-// SetCatalogEncryptionMode sets the CatalogEncryptionMode field's value.
-func (s *EncryptionAtRest) SetCatalogEncryptionMode(v string) *EncryptionAtRest {
- s.CatalogEncryptionMode = &v
- return s
-}
-
-// SetSseAwsKmsKeyId sets the SseAwsKmsKeyId field's value.
-func (s *EncryptionAtRest) SetSseAwsKmsKeyId(v string) *EncryptionAtRest {
- s.SseAwsKmsKeyId = &v
+// SetName sets the Name field's value.
+func (s *GetCrawlerInput) SetName(v string) *GetCrawlerInput {
+ s.Name = &v
return s
}
-// Specifies an encryption configuration.
-type EncryptionConfiguration struct {
+type GetCrawlerMetricsInput struct {
_ struct{} `type:"structure"`
- // The encryption configuration for CloudWatch.
- CloudWatchEncryption *CloudWatchEncryption `type:"structure"`
+ // A list of the names of crawlers about which to retrieve metrics.
+ CrawlerNameList []*string `type:"list"`
- // The encryption configuration for Job Bookmarks.
- JobBookmarksEncryption *JobBookmarksEncryption `type:"structure"`
+ // The maximum size of a list to return.
+ MaxResults *int64 `min:"1" type:"integer"`
- // The encryption configuration for S3 data.
- S3Encryption []*S3Encryption `type:"list"`
+ // A continuation token, if this is a continuation call.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s EncryptionConfiguration) String() string {
+func (s GetCrawlerMetricsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s EncryptionConfiguration) GoString() string {
+func (s GetCrawlerMetricsInput) GoString() string {
return s.String()
}
-// SetCloudWatchEncryption sets the CloudWatchEncryption field's value.
-func (s *EncryptionConfiguration) SetCloudWatchEncryption(v *CloudWatchEncryption) *EncryptionConfiguration {
- s.CloudWatchEncryption = v
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetCrawlerMetricsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetCrawlerMetricsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCrawlerNameList sets the CrawlerNameList field's value.
+func (s *GetCrawlerMetricsInput) SetCrawlerNameList(v []*string) *GetCrawlerMetricsInput {
+ s.CrawlerNameList = v
return s
}
-// SetJobBookmarksEncryption sets the JobBookmarksEncryption field's value.
-func (s *EncryptionConfiguration) SetJobBookmarksEncryption(v *JobBookmarksEncryption) *EncryptionConfiguration {
- s.JobBookmarksEncryption = v
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetCrawlerMetricsInput) SetMaxResults(v int64) *GetCrawlerMetricsInput {
+ s.MaxResults = &v
return s
}
-// SetS3Encryption sets the S3Encryption field's value.
-func (s *EncryptionConfiguration) SetS3Encryption(v []*S3Encryption) *EncryptionConfiguration {
- s.S3Encryption = v
+// SetNextToken sets the NextToken field's value.
+func (s *GetCrawlerMetricsInput) SetNextToken(v string) *GetCrawlerMetricsInput {
+ s.NextToken = &v
return s
}
-// Contains details about an error.
-type ErrorDetail struct {
+type GetCrawlerMetricsOutput struct {
_ struct{} `type:"structure"`
- // The code associated with this error.
- ErrorCode *string `min:"1" type:"string"`
+ // A list of metrics for the specified crawler.
+ CrawlerMetricsList []*CrawlerMetrics `type:"list"`
- // A message describing the error.
- ErrorMessage *string `type:"string"`
+ // A continuation token, if the returned list does not contain the last metric
+ // available.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s ErrorDetail) String() string {
+func (s GetCrawlerMetricsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s ErrorDetail) GoString() string {
+func (s GetCrawlerMetricsOutput) GoString() string {
return s.String()
}
-// SetErrorCode sets the ErrorCode field's value.
-func (s *ErrorDetail) SetErrorCode(v string) *ErrorDetail {
- s.ErrorCode = &v
+// SetCrawlerMetricsList sets the CrawlerMetricsList field's value.
+func (s *GetCrawlerMetricsOutput) SetCrawlerMetricsList(v []*CrawlerMetrics) *GetCrawlerMetricsOutput {
+ s.CrawlerMetricsList = v
return s
}
-// SetErrorMessage sets the ErrorMessage field's value.
-func (s *ErrorDetail) SetErrorMessage(v string) *ErrorDetail {
- s.ErrorMessage = &v
+// SetNextToken sets the NextToken field's value.
+func (s *GetCrawlerMetricsOutput) SetNextToken(v string) *GetCrawlerMetricsOutput {
+ s.NextToken = &v
return s
}
-// An execution property of a job.
-type ExecutionProperty struct {
+type GetCrawlerOutput struct {
_ struct{} `type:"structure"`
- // The maximum number of concurrent runs allowed for the 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"`
+ // The metadata for the specified crawler.
+ Crawler *Crawler `type:"structure"`
}
// String returns the string representation
-func (s ExecutionProperty) String() string {
+func (s GetCrawlerOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s ExecutionProperty) GoString() string {
+func (s GetCrawlerOutput) GoString() string {
return s.String()
}
-// SetMaxConcurrentRuns sets the MaxConcurrentRuns field's value.
-func (s *ExecutionProperty) SetMaxConcurrentRuns(v int64) *ExecutionProperty {
- s.MaxConcurrentRuns = &v
+// SetCrawler sets the Crawler field's value.
+func (s *GetCrawlerOutput) SetCrawler(v *Crawler) *GetCrawlerOutput {
+ s.Crawler = v
return s
}
-type GetCatalogImportStatusInput struct {
+type GetCrawlersInput struct {
_ struct{} `type:"structure"`
- // The ID of the catalog to migrate. Currently, this should be the AWS account
- // ID.
- CatalogId *string `min:"1" type:"string"`
+ // The number of crawlers to return on each call.
+ MaxResults *int64 `min:"1" type:"integer"`
+
+ // A continuation token, if this is a continuation request.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetCatalogImportStatusInput) String() string {
+func (s GetCrawlersInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetCatalogImportStatusInput) GoString() string {
+func (s GetCrawlersInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetCatalogImportStatusInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetCatalogImportStatusInput"}
- if s.CatalogId != nil && len(*s.CatalogId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
+func (s *GetCrawlersInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetCrawlersInput"}
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
if invalidParams.Len() > 0 {
@@ -13942,62 +16146,74 @@ func (s *GetCatalogImportStatusInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *GetCatalogImportStatusInput) SetCatalogId(v string) *GetCatalogImportStatusInput {
- s.CatalogId = &v
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetCrawlersInput) SetMaxResults(v int64) *GetCrawlersInput {
+ s.MaxResults = &v
return s
}
-type GetCatalogImportStatusOutput struct {
+// SetNextToken sets the NextToken field's value.
+func (s *GetCrawlersInput) SetNextToken(v string) *GetCrawlersInput {
+ s.NextToken = &v
+ return s
+}
+
+type GetCrawlersOutput struct {
_ struct{} `type:"structure"`
- // The status of the specified catalog migration.
- ImportStatus *CatalogImportStatus `type:"structure"`
+ // A list of crawler metadata.
+ Crawlers []*Crawler `type:"list"`
+
+ // A continuation token, if the returned list has not reached the end of those
+ // defined in this customer account.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetCatalogImportStatusOutput) String() string {
+func (s GetCrawlersOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetCatalogImportStatusOutput) GoString() string {
+func (s GetCrawlersOutput) GoString() string {
return s.String()
}
-// SetImportStatus sets the ImportStatus field's value.
-func (s *GetCatalogImportStatusOutput) SetImportStatus(v *CatalogImportStatus) *GetCatalogImportStatusOutput {
- s.ImportStatus = v
+// SetCrawlers sets the Crawlers field's value.
+func (s *GetCrawlersOutput) SetCrawlers(v []*Crawler) *GetCrawlersOutput {
+ s.Crawlers = v
return s
}
-type GetClassifierInput struct {
+// SetNextToken sets the NextToken field's value.
+func (s *GetCrawlersOutput) SetNextToken(v string) *GetCrawlersOutput {
+ s.NextToken = &v
+ return s
+}
+
+type GetDataCatalogEncryptionSettingsInput struct {
_ struct{} `type:"structure"`
- // Name of the classifier to retrieve.
- //
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // The ID of the Data Catalog for which to retrieve the security configuration.
+ // If none is provided, the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
}
// String returns the string representation
-func (s GetClassifierInput) String() string {
+func (s GetDataCatalogEncryptionSettingsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetClassifierInput) GoString() string {
+func (s GetDataCatalogEncryptionSettingsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetClassifierInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetClassifierInput"}
- if s.Name == nil {
- invalidParams.Add(request.NewErrParamRequired("Name"))
- }
- if s.Name != nil && len(*s.Name) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Name", 1))
+func (s *GetDataCatalogEncryptionSettingsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetDataCatalogEncryptionSettingsInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
if invalidParams.Len() > 0 {
@@ -14006,60 +16222,70 @@ func (s *GetClassifierInput) Validate() error {
return nil
}
-// SetName sets the Name field's value.
-func (s *GetClassifierInput) SetName(v string) *GetClassifierInput {
- s.Name = &v
+// SetCatalogId sets the CatalogId field's value.
+func (s *GetDataCatalogEncryptionSettingsInput) SetCatalogId(v string) *GetDataCatalogEncryptionSettingsInput {
+ s.CatalogId = &v
return s
}
-type GetClassifierOutput struct {
+type GetDataCatalogEncryptionSettingsOutput struct {
_ struct{} `type:"structure"`
- // The requested classifier.
- Classifier *Classifier `type:"structure"`
+ // The requested security configuration.
+ DataCatalogEncryptionSettings *DataCatalogEncryptionSettings `type:"structure"`
}
// String returns the string representation
-func (s GetClassifierOutput) String() string {
+func (s GetDataCatalogEncryptionSettingsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetClassifierOutput) GoString() string {
+func (s GetDataCatalogEncryptionSettingsOutput) GoString() string {
return s.String()
}
-// SetClassifier sets the Classifier field's value.
-func (s *GetClassifierOutput) SetClassifier(v *Classifier) *GetClassifierOutput {
- s.Classifier = v
+// SetDataCatalogEncryptionSettings sets the DataCatalogEncryptionSettings field's value.
+func (s *GetDataCatalogEncryptionSettingsOutput) SetDataCatalogEncryptionSettings(v *DataCatalogEncryptionSettings) *GetDataCatalogEncryptionSettingsOutput {
+ s.DataCatalogEncryptionSettings = v
return s
}
-type GetClassifiersInput struct {
+type GetDatabaseInput struct {
_ struct{} `type:"structure"`
- // Size of the list to return (optional).
- MaxResults *int64 `min:"1" type:"integer"`
+ // The ID of the Data Catalog in which the database resides. If none is supplied,
+ // the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
- // An optional continuation token.
- NextToken *string `type:"string"`
+ // 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"`
}
// String returns the string representation
-func (s GetClassifiersInput) String() string {
+func (s GetDatabaseInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetClassifiersInput) GoString() string {
+func (s GetDatabaseInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetClassifiersInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetClassifiersInput"}
- if s.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+func (s *GetDatabaseInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetDatabaseInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
+ }
+ if s.Name == nil {
+ invalidParams.Add(request.NewErrParamRequired("Name"))
+ }
+ if s.Name != nil && len(*s.Name) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
if invalidParams.Len() > 0 {
@@ -14068,92 +16294,73 @@ func (s *GetClassifiersInput) Validate() error {
return nil
}
-// SetMaxResults sets the MaxResults field's value.
-func (s *GetClassifiersInput) SetMaxResults(v int64) *GetClassifiersInput {
- s.MaxResults = &v
+// SetCatalogId sets the CatalogId field's value.
+func (s *GetDatabaseInput) SetCatalogId(v string) *GetDatabaseInput {
+ s.CatalogId = &v
return s
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetClassifiersInput) SetNextToken(v string) *GetClassifiersInput {
- s.NextToken = &v
+// SetName sets the Name field's value.
+func (s *GetDatabaseInput) SetName(v string) *GetDatabaseInput {
+ s.Name = &v
return s
}
-type GetClassifiersOutput struct {
+type GetDatabaseOutput struct {
_ struct{} `type:"structure"`
- // The requested list of classifier objects.
- Classifiers []*Classifier `type:"list"`
-
- // A continuation token.
- NextToken *string `type:"string"`
+ // The definition of the specified database in the catalog.
+ Database *Database `type:"structure"`
}
// String returns the string representation
-func (s GetClassifiersOutput) String() string {
+func (s GetDatabaseOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetClassifiersOutput) GoString() string {
+func (s GetDatabaseOutput) GoString() string {
return s.String()
}
-// SetClassifiers sets the Classifiers field's value.
-func (s *GetClassifiersOutput) SetClassifiers(v []*Classifier) *GetClassifiersOutput {
- s.Classifiers = v
- return s
-}
-
-// SetNextToken sets the NextToken field's value.
-func (s *GetClassifiersOutput) SetNextToken(v string) *GetClassifiersOutput {
- s.NextToken = &v
+// SetDatabase sets the Database field's value.
+func (s *GetDatabaseOutput) SetDatabase(v *Database) *GetDatabaseOutput {
+ s.Database = v
return s
}
-type GetConnectionInput struct {
+type GetDatabasesInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog in which the connection resides. If none is supplied,
+ // The ID of the Data Catalog from which to retrieve Databases. If none is supplied,
// the AWS account ID is used by default.
CatalogId *string `min:"1" type:"string"`
- // Allow you to retrieve the connection metadata without displaying the password.
- // For instance, the AWS Glue console uses this flag to retrieve connections,
- // since the console does not display passwords. Set this parameter where the
- // caller may not have permission to use the KMS key to decrypt the password,
- // but does have permission to access the rest of the connection metadata (that
- // is, the other connection properties).
- HidePassword *bool `type:"boolean"`
+ // The maximum number of databases to return in one response.
+ MaxResults *int64 `min:"1" type:"integer"`
- // The name of the connection definition to retrieve.
- //
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // A continuation token, if this is a continuation call.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetConnectionInput) String() string {
+func (s GetDatabasesInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetConnectionInput) GoString() string {
+func (s GetDatabasesInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetConnectionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetConnectionInput"}
+func (s *GetDatabasesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetDatabasesInput"}
if s.CatalogId != nil && len(*s.CatalogId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("CatalogId", 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.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
if invalidParams.Len() > 0 {
@@ -14163,124 +16370,137 @@ func (s *GetConnectionInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *GetConnectionInput) SetCatalogId(v string) *GetConnectionInput {
+func (s *GetDatabasesInput) SetCatalogId(v string) *GetDatabasesInput {
s.CatalogId = &v
return s
}
-// SetHidePassword sets the HidePassword field's value.
-func (s *GetConnectionInput) SetHidePassword(v bool) *GetConnectionInput {
- s.HidePassword = &v
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetDatabasesInput) SetMaxResults(v int64) *GetDatabasesInput {
+ s.MaxResults = &v
return s
}
-// SetName sets the Name field's value.
-func (s *GetConnectionInput) SetName(v string) *GetConnectionInput {
- s.Name = &v
+// SetNextToken sets the NextToken field's value.
+func (s *GetDatabasesInput) SetNextToken(v string) *GetDatabasesInput {
+ s.NextToken = &v
return s
}
-type GetConnectionOutput struct {
+type GetDatabasesOutput struct {
_ struct{} `type:"structure"`
- // The requested connection definition.
- Connection *Connection `type:"structure"`
+ // A list of Database objects from the specified catalog.
+ //
+ // DatabaseList is a required field
+ DatabaseList []*Database `type:"list" required:"true"`
+
+ // A continuation token for paginating the returned list of tokens, returned
+ // if the current segment of the list is not the last.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetConnectionOutput) String() string {
+func (s GetDatabasesOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetConnectionOutput) GoString() string {
+func (s GetDatabasesOutput) GoString() string {
return s.String()
}
-// SetConnection sets the Connection field's value.
-func (s *GetConnectionOutput) SetConnection(v *Connection) *GetConnectionOutput {
- s.Connection = v
+// SetDatabaseList sets the DatabaseList field's value.
+func (s *GetDatabasesOutput) SetDatabaseList(v []*Database) *GetDatabasesOutput {
+ s.DatabaseList = v
return s
}
-// Filters the connection definitions returned by the GetConnections API.
-type GetConnectionsFilter struct {
- _ struct{} `type:"structure"`
+// SetNextToken sets the NextToken field's value.
+func (s *GetDatabasesOutput) SetNextToken(v string) *GetDatabasesOutput {
+ s.NextToken = &v
+ return s
+}
- // The type of connections to return. Currently, only JDBC is supported; SFTP
- // is not supported.
- ConnectionType *string `type:"string" enum:"ConnectionType"`
+type GetDataflowGraphInput struct {
+ _ struct{} `type:"structure"`
- // A criteria string that must match the criteria recorded in the connection
- // definition for that connection definition to be returned.
- MatchCriteria []*string `type:"list"`
+ // The Python script to transform.
+ PythonScript *string `type:"string"`
}
// String returns the string representation
-func (s GetConnectionsFilter) String() string {
+func (s GetDataflowGraphInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetConnectionsFilter) GoString() string {
+func (s GetDataflowGraphInput) GoString() string {
return s.String()
}
-// SetConnectionType sets the ConnectionType field's value.
-func (s *GetConnectionsFilter) SetConnectionType(v string) *GetConnectionsFilter {
- s.ConnectionType = &v
+// SetPythonScript sets the PythonScript field's value.
+func (s *GetDataflowGraphInput) SetPythonScript(v string) *GetDataflowGraphInput {
+ s.PythonScript = &v
return s
}
-// SetMatchCriteria sets the MatchCriteria field's value.
-func (s *GetConnectionsFilter) SetMatchCriteria(v []*string) *GetConnectionsFilter {
- s.MatchCriteria = v
- return s
+type GetDataflowGraphOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A list of the edges in the resulting DAG.
+ DagEdges []*CodeGenEdge `type:"list"`
+
+ // A list of the nodes in the resulting DAG.
+ DagNodes []*CodeGenNode `type:"list"`
}
-type GetConnectionsInput struct {
- _ struct{} `type:"structure"`
+// String returns the string representation
+func (s GetDataflowGraphOutput) String() string {
+ return awsutil.Prettify(s)
+}
- // The ID of the Data Catalog in which the connections reside. If none is supplied,
- // the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+// GoString returns the string representation
+func (s GetDataflowGraphOutput) GoString() string {
+ return s.String()
+}
- // A filter that controls which connections will be returned.
- Filter *GetConnectionsFilter `type:"structure"`
+// SetDagEdges sets the DagEdges field's value.
+func (s *GetDataflowGraphOutput) SetDagEdges(v []*CodeGenEdge) *GetDataflowGraphOutput {
+ s.DagEdges = v
+ return s
+}
- // Allow you to retrieve the connection metadata without displaying the password.
- // For instance, the AWS Glue console uses this flag to retrieve connections,
- // since the console does not display passwords. Set this parameter where the
- // caller may not have permission to use the KMS key to decrypt the password,
- // but does have permission to access the rest of the connection metadata (that
- // is, the other connection properties).
- HidePassword *bool `type:"boolean"`
+// SetDagNodes sets the DagNodes field's value.
+func (s *GetDataflowGraphOutput) SetDagNodes(v []*CodeGenNode) *GetDataflowGraphOutput {
+ s.DagNodes = v
+ return s
+}
- // The maximum number of connections to return in one response.
- MaxResults *int64 `min:"1" type:"integer"`
+type GetDevEndpointInput struct {
+ _ struct{} `type:"structure"`
- // A continuation token, if this is a continuation call.
- NextToken *string `type:"string"`
+ // Name of the DevEndpoint for which to retrieve information.
+ //
+ // EndpointName is a required field
+ EndpointName *string `type:"string" required:"true"`
}
// String returns the string representation
-func (s GetConnectionsInput) String() string {
+func (s GetDevEndpointInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetConnectionsInput) GoString() string {
+func (s GetDevEndpointInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetConnectionsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetConnectionsInput"}
- if s.CatalogId != nil && len(*s.CatalogId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
- }
- if s.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+func (s *GetDevEndpointInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetDevEndpointInput"}
+ if s.EndpointName == nil {
+ invalidParams.Add(request.NewErrParamRequired("EndpointName"))
}
if invalidParams.Len() > 0 {
@@ -14289,138 +16509,139 @@ func (s *GetConnectionsInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *GetConnectionsInput) SetCatalogId(v string) *GetConnectionsInput {
- s.CatalogId = &v
+// SetEndpointName sets the EndpointName field's value.
+func (s *GetDevEndpointInput) SetEndpointName(v string) *GetDevEndpointInput {
+ s.EndpointName = &v
return s
}
-// SetFilter sets the Filter field's value.
-func (s *GetConnectionsInput) SetFilter(v *GetConnectionsFilter) *GetConnectionsInput {
- s.Filter = v
- return s
+type GetDevEndpointOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A DevEndpoint definition.
+ DevEndpoint *DevEndpoint `type:"structure"`
}
-// SetHidePassword sets the HidePassword field's value.
-func (s *GetConnectionsInput) SetHidePassword(v bool) *GetConnectionsInput {
- s.HidePassword = &v
- return s
+// String returns the string representation
+func (s GetDevEndpointOutput) String() string {
+ return awsutil.Prettify(s)
}
-// SetMaxResults sets the MaxResults field's value.
-func (s *GetConnectionsInput) SetMaxResults(v int64) *GetConnectionsInput {
- s.MaxResults = &v
- return s
+// GoString returns the string representation
+func (s GetDevEndpointOutput) GoString() string {
+ return s.String()
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetConnectionsInput) SetNextToken(v string) *GetConnectionsInput {
- s.NextToken = &v
+// SetDevEndpoint sets the DevEndpoint field's value.
+func (s *GetDevEndpointOutput) SetDevEndpoint(v *DevEndpoint) *GetDevEndpointOutput {
+ s.DevEndpoint = v
return s
}
-type GetConnectionsOutput struct {
+type GetDevEndpointsInput struct {
_ struct{} `type:"structure"`
- // A list of requested connection definitions.
- ConnectionList []*Connection `type:"list"`
+ // The maximum size of information to return.
+ MaxResults *int64 `min:"1" type:"integer"`
- // A continuation token, if the list of connections returned does not include
- // the last of the filtered connections.
+ // A continuation token, if this is a continuation call.
NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetConnectionsOutput) String() string {
+func (s GetDevEndpointsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetConnectionsOutput) GoString() string {
+func (s GetDevEndpointsInput) GoString() string {
return s.String()
}
-// SetConnectionList sets the ConnectionList field's value.
-func (s *GetConnectionsOutput) SetConnectionList(v []*Connection) *GetConnectionsOutput {
- s.ConnectionList = v
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetDevEndpointsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetDevEndpointsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetDevEndpointsInput) SetMaxResults(v int64) *GetDevEndpointsInput {
+ s.MaxResults = &v
return s
}
// SetNextToken sets the NextToken field's value.
-func (s *GetConnectionsOutput) SetNextToken(v string) *GetConnectionsOutput {
+func (s *GetDevEndpointsInput) SetNextToken(v string) *GetDevEndpointsInput {
s.NextToken = &v
return s
}
-type GetCrawlerInput struct {
+type GetDevEndpointsOutput struct {
_ struct{} `type:"structure"`
- // Name of the crawler to retrieve metadata for.
- //
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // A list of DevEndpoint definitions.
+ DevEndpoints []*DevEndpoint `type:"list"`
+
+ // A continuation token, if not all DevEndpoint definitions have yet been returned.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetCrawlerInput) String() string {
+func (s GetDevEndpointsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetCrawlerInput) GoString() string {
+func (s GetDevEndpointsOutput) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetCrawlerInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetCrawlerInput"}
- 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
+// SetDevEndpoints sets the DevEndpoints field's value.
+func (s *GetDevEndpointsOutput) SetDevEndpoints(v []*DevEndpoint) *GetDevEndpointsOutput {
+ s.DevEndpoints = v
+ return s
}
-// SetName sets the Name field's value.
-func (s *GetCrawlerInput) SetName(v string) *GetCrawlerInput {
- s.Name = &v
+// SetNextToken sets the NextToken field's value.
+func (s *GetDevEndpointsOutput) SetNextToken(v string) *GetDevEndpointsOutput {
+ s.NextToken = &v
return s
}
-type GetCrawlerMetricsInput struct {
+type GetJobInput struct {
_ struct{} `type:"structure"`
- // A list of the names of crawlers about which to retrieve metrics.
- CrawlerNameList []*string `type:"list"`
-
- // The maximum size of a list to return.
- MaxResults *int64 `min:"1" type:"integer"`
-
- // A continuation token, if this is a continuation call.
- NextToken *string `type:"string"`
+ // The name of the job definition to retrieve.
+ //
+ // JobName is a required field
+ JobName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s GetCrawlerMetricsInput) String() string {
+func (s GetJobInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetCrawlerMetricsInput) GoString() string {
+func (s GetJobInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetCrawlerMetricsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetCrawlerMetricsInput"}
- if s.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+func (s *GetJobInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetJobInput"}
+ if s.JobName == nil {
+ invalidParams.Add(request.NewErrParamRequired("JobName"))
+ }
+ if s.JobName != nil && len(*s.JobName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
}
if invalidParams.Len() > 0 {
@@ -14429,103 +16650,159 @@ func (s *GetCrawlerMetricsInput) Validate() error {
return nil
}
-// SetCrawlerNameList sets the CrawlerNameList field's value.
-func (s *GetCrawlerMetricsInput) SetCrawlerNameList(v []*string) *GetCrawlerMetricsInput {
- s.CrawlerNameList = v
+// SetJobName sets the JobName field's value.
+func (s *GetJobInput) SetJobName(v string) *GetJobInput {
+ s.JobName = &v
return s
}
-// SetMaxResults sets the MaxResults field's value.
-func (s *GetCrawlerMetricsInput) SetMaxResults(v int64) *GetCrawlerMetricsInput {
- s.MaxResults = &v
- return s
+type GetJobOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The requested job definition.
+ Job *Job `type:"structure"`
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetCrawlerMetricsInput) SetNextToken(v string) *GetCrawlerMetricsInput {
- s.NextToken = &v
+// String returns the string representation
+func (s GetJobOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetJobOutput) GoString() string {
+ return s.String()
+}
+
+// SetJob sets the Job field's value.
+func (s *GetJobOutput) SetJob(v *Job) *GetJobOutput {
+ s.Job = v
return s
}
-type GetCrawlerMetricsOutput struct {
+type GetJobRunInput struct {
_ struct{} `type:"structure"`
- // A list of metrics for the specified crawler.
- CrawlerMetricsList []*CrawlerMetrics `type:"list"`
+ // Name of the job definition being run.
+ //
+ // JobName is a required field
+ JobName *string `min:"1" type:"string" required:"true"`
- // A continuation token, if the returned list does not contain the last metric
- // available.
- NextToken *string `type:"string"`
+ // True if a list of predecessor runs should be returned.
+ PredecessorsIncluded *bool `type:"boolean"`
+
+ // The ID of the job run.
+ //
+ // RunId is a required field
+ RunId *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s GetCrawlerMetricsOutput) String() string {
+func (s GetJobRunInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetCrawlerMetricsOutput) GoString() string {
+func (s GetJobRunInput) GoString() string {
return s.String()
}
-// SetCrawlerMetricsList sets the CrawlerMetricsList field's value.
-func (s *GetCrawlerMetricsOutput) SetCrawlerMetricsList(v []*CrawlerMetrics) *GetCrawlerMetricsOutput {
- s.CrawlerMetricsList = v
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetJobRunInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetJobRunInput"}
+ if s.JobName == nil {
+ invalidParams.Add(request.NewErrParamRequired("JobName"))
+ }
+ if s.JobName != nil && len(*s.JobName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
+ }
+ if s.RunId == nil {
+ invalidParams.Add(request.NewErrParamRequired("RunId"))
+ }
+ if s.RunId != nil && len(*s.RunId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("RunId", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetJobName sets the JobName field's value.
+func (s *GetJobRunInput) SetJobName(v string) *GetJobRunInput {
+ s.JobName = &v
return s
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetCrawlerMetricsOutput) SetNextToken(v string) *GetCrawlerMetricsOutput {
- s.NextToken = &v
+// SetPredecessorsIncluded sets the PredecessorsIncluded field's value.
+func (s *GetJobRunInput) SetPredecessorsIncluded(v bool) *GetJobRunInput {
+ s.PredecessorsIncluded = &v
return s
}
-type GetCrawlerOutput struct {
+// SetRunId sets the RunId field's value.
+func (s *GetJobRunInput) SetRunId(v string) *GetJobRunInput {
+ s.RunId = &v
+ return s
+}
+
+type GetJobRunOutput struct {
_ struct{} `type:"structure"`
- // The metadata for the specified crawler.
- Crawler *Crawler `type:"structure"`
+ // The requested job-run metadata.
+ JobRun *JobRun `type:"structure"`
}
// String returns the string representation
-func (s GetCrawlerOutput) String() string {
+func (s GetJobRunOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetCrawlerOutput) GoString() string {
+func (s GetJobRunOutput) GoString() string {
return s.String()
}
-// SetCrawler sets the Crawler field's value.
-func (s *GetCrawlerOutput) SetCrawler(v *Crawler) *GetCrawlerOutput {
- s.Crawler = v
+// SetJobRun sets the JobRun field's value.
+func (s *GetJobRunOutput) SetJobRun(v *JobRun) *GetJobRunOutput {
+ s.JobRun = v
return s
}
-type GetCrawlersInput struct {
+type GetJobRunsInput struct {
_ struct{} `type:"structure"`
- // The number of crawlers to return on each call.
+ // The name of the job definition for which to retrieve all job runs.
+ //
+ // JobName is a required field
+ JobName *string `min:"1" type:"string" required:"true"`
+
+ // The maximum size of the response.
MaxResults *int64 `min:"1" type:"integer"`
- // A continuation token, if this is a continuation request.
+ // A continuation token, if this is a continuation call.
NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetCrawlersInput) String() string {
+func (s GetJobRunsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetCrawlersInput) GoString() string {
+func (s GetJobRunsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetCrawlersInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetCrawlersInput"}
+func (s *GetJobRunsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetJobRunsInput"}
+ if s.JobName == nil {
+ invalidParams.Add(request.NewErrParamRequired("JobName"))
+ }
+ if s.JobName != nil && len(*s.JobName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
+ }
if s.MaxResults != nil && *s.MaxResults < 1 {
invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
@@ -14536,74 +16813,81 @@ func (s *GetCrawlersInput) Validate() error {
return nil
}
+// SetJobName sets the JobName field's value.
+func (s *GetJobRunsInput) SetJobName(v string) *GetJobRunsInput {
+ s.JobName = &v
+ return s
+}
+
// SetMaxResults sets the MaxResults field's value.
-func (s *GetCrawlersInput) SetMaxResults(v int64) *GetCrawlersInput {
+func (s *GetJobRunsInput) SetMaxResults(v int64) *GetJobRunsInput {
s.MaxResults = &v
return s
}
// SetNextToken sets the NextToken field's value.
-func (s *GetCrawlersInput) SetNextToken(v string) *GetCrawlersInput {
+func (s *GetJobRunsInput) SetNextToken(v string) *GetJobRunsInput {
s.NextToken = &v
return s
}
-type GetCrawlersOutput struct {
+type GetJobRunsOutput struct {
_ struct{} `type:"structure"`
- // A list of crawler metadata.
- Crawlers []*Crawler `type:"list"`
+ // A list of job-run metatdata objects.
+ JobRuns []*JobRun `type:"list"`
- // A continuation token, if the returned list has not reached the end of those
- // defined in this customer account.
+ // A continuation token, if not all reequested job runs have been returned.
NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetCrawlersOutput) String() string {
+func (s GetJobRunsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetCrawlersOutput) GoString() string {
+func (s GetJobRunsOutput) GoString() string {
return s.String()
}
-// SetCrawlers sets the Crawlers field's value.
-func (s *GetCrawlersOutput) SetCrawlers(v []*Crawler) *GetCrawlersOutput {
- s.Crawlers = v
+// SetJobRuns sets the JobRuns field's value.
+func (s *GetJobRunsOutput) SetJobRuns(v []*JobRun) *GetJobRunsOutput {
+ s.JobRuns = v
return s
}
// SetNextToken sets the NextToken field's value.
-func (s *GetCrawlersOutput) SetNextToken(v string) *GetCrawlersOutput {
+func (s *GetJobRunsOutput) SetNextToken(v string) *GetJobRunsOutput {
s.NextToken = &v
return s
}
-type GetDataCatalogEncryptionSettingsInput struct {
+type GetJobsInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog for which to retrieve the security configuration.
- // If none is supplied, the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+ // The maximum size of the response.
+ MaxResults *int64 `min:"1" type:"integer"`
+
+ // A continuation token, if this is a continuation call.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetDataCatalogEncryptionSettingsInput) String() string {
+func (s GetJobsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetDataCatalogEncryptionSettingsInput) GoString() string {
+func (s GetJobsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetDataCatalogEncryptionSettingsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetDataCatalogEncryptionSettingsInput"}
- if s.CatalogId != nil && len(*s.CatalogId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
+func (s *GetJobsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetJobsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
if invalidParams.Len() > 0 {
@@ -14612,70 +16896,100 @@ func (s *GetDataCatalogEncryptionSettingsInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *GetDataCatalogEncryptionSettingsInput) SetCatalogId(v string) *GetDataCatalogEncryptionSettingsInput {
- s.CatalogId = &v
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetJobsInput) SetMaxResults(v int64) *GetJobsInput {
+ s.MaxResults = &v
return s
}
-type GetDataCatalogEncryptionSettingsOutput struct {
+// SetNextToken sets the NextToken field's value.
+func (s *GetJobsInput) SetNextToken(v string) *GetJobsInput {
+ s.NextToken = &v
+ return s
+}
+
+type GetJobsOutput struct {
_ struct{} `type:"structure"`
- // The requested security configuration.
- DataCatalogEncryptionSettings *DataCatalogEncryptionSettings `type:"structure"`
+ // A list of job definitions.
+ Jobs []*Job `type:"list"`
+
+ // A continuation token, if not all job definitions have yet been returned.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetDataCatalogEncryptionSettingsOutput) String() string {
+func (s GetJobsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetDataCatalogEncryptionSettingsOutput) GoString() string {
+func (s GetJobsOutput) GoString() string {
return s.String()
}
-// SetDataCatalogEncryptionSettings sets the DataCatalogEncryptionSettings field's value.
-func (s *GetDataCatalogEncryptionSettingsOutput) SetDataCatalogEncryptionSettings(v *DataCatalogEncryptionSettings) *GetDataCatalogEncryptionSettingsOutput {
- s.DataCatalogEncryptionSettings = v
+// SetJobs sets the Jobs field's value.
+func (s *GetJobsOutput) SetJobs(v []*Job) *GetJobsOutput {
+ s.Jobs = v
return s
}
-type GetDatabaseInput struct {
+// SetNextToken sets the NextToken field's value.
+func (s *GetJobsOutput) SetNextToken(v string) *GetJobsOutput {
+ s.NextToken = &v
+ return s
+}
+
+type GetMappingInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog in which the database resides. If none is supplied,
- // the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+ // Parameters for the mapping.
+ Location *Location `type:"structure"`
- // The name of the database to retrieve. For Hive compatibility, this should
- // be all lowercase.
+ // A list of target tables.
+ Sinks []*CatalogEntry `type:"list"`
+
+ // Specifies the source table.
//
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // Source is a required field
+ Source *CatalogEntry `type:"structure" required:"true"`
}
// String returns the string representation
-func (s GetDatabaseInput) String() string {
+func (s GetMappingInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetDatabaseInput) GoString() string {
+func (s GetMappingInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetDatabaseInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetDatabaseInput"}
- if s.CatalogId != nil && len(*s.CatalogId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
+func (s *GetMappingInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetMappingInput"}
+ if s.Source == nil {
+ invalidParams.Add(request.NewErrParamRequired("Source"))
}
- if s.Name == nil {
- invalidParams.Add(request.NewErrParamRequired("Name"))
+ if s.Location != nil {
+ if err := s.Location.Validate(); err != nil {
+ invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
+ }
}
- if s.Name != nil && len(*s.Name) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Name", 1))
+ if s.Sinks != nil {
+ for i, v := range s.Sinks {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sinks", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+ if s.Source != nil {
+ if err := s.Source.Validate(); err != nil {
+ invalidParams.AddNested("Source", err.(request.ErrInvalidParams))
+ }
}
if invalidParams.Len() > 0 {
@@ -14684,73 +16998,102 @@ func (s *GetDatabaseInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *GetDatabaseInput) SetCatalogId(v string) *GetDatabaseInput {
- s.CatalogId = &v
+// SetLocation sets the Location field's value.
+func (s *GetMappingInput) SetLocation(v *Location) *GetMappingInput {
+ s.Location = v
return s
}
-// SetName sets the Name field's value.
-func (s *GetDatabaseInput) SetName(v string) *GetDatabaseInput {
- s.Name = &v
+// SetSinks sets the Sinks field's value.
+func (s *GetMappingInput) SetSinks(v []*CatalogEntry) *GetMappingInput {
+ s.Sinks = v
return s
}
-type GetDatabaseOutput struct {
+// SetSource sets the Source field's value.
+func (s *GetMappingInput) SetSource(v *CatalogEntry) *GetMappingInput {
+ s.Source = v
+ return s
+}
+
+type GetMappingOutput struct {
_ struct{} `type:"structure"`
- // The definition of the specified database in the catalog.
- Database *Database `type:"structure"`
+ // A list of mappings to the specified targets.
+ //
+ // Mapping is a required field
+ Mapping []*MappingEntry `type:"list" required:"true"`
}
// String returns the string representation
-func (s GetDatabaseOutput) String() string {
+func (s GetMappingOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetDatabaseOutput) GoString() string {
+func (s GetMappingOutput) GoString() string {
return s.String()
}
-// SetDatabase sets the Database field's value.
-func (s *GetDatabaseOutput) SetDatabase(v *Database) *GetDatabaseOutput {
- s.Database = v
+// SetMapping sets the Mapping field's value.
+func (s *GetMappingOutput) SetMapping(v []*MappingEntry) *GetMappingOutput {
+ s.Mapping = v
return s
}
-type GetDatabasesInput struct {
+type GetPartitionInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog from which to retrieve Databases. If none is supplied,
- // the AWS account ID is used by default.
+ // The ID of the Data Catalog where the partition in question resides. If none
+ // is supplied, the AWS account ID is used by default.
CatalogId *string `min:"1" type:"string"`
- // The maximum number of databases to return in one response.
- MaxResults *int64 `min:"1" type:"integer"`
+ // The name of the catalog database where the partition resides.
+ //
+ // DatabaseName is a required field
+ DatabaseName *string `min:"1" type:"string" required:"true"`
- // A continuation token, if this is a continuation call.
- NextToken *string `type:"string"`
+ // The values that define the partition.
+ //
+ // PartitionValues is a required field
+ PartitionValues []*string `type:"list" required:"true"`
+
+ // The name of the partition's table.
+ //
+ // TableName is a required field
+ TableName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s GetDatabasesInput) String() string {
+func (s GetPartitionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetDatabasesInput) GoString() string {
+func (s GetPartitionInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetDatabasesInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetDatabasesInput"}
+func (s *GetPartitionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetPartitionInput"}
if s.CatalogId != nil && len(*s.CatalogId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
- if s.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 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.PartitionValues == nil {
+ invalidParams.Add(request.NewErrParamRequired("PartitionValues"))
+ }
+ if s.TableName == nil {
+ invalidParams.Add(request.NewErrParamRequired("TableName"))
+ }
+ if s.TableName != nil && len(*s.TableName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
}
if invalidParams.Len() > 0 {
@@ -14760,199 +17103,331 @@ func (s *GetDatabasesInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *GetDatabasesInput) SetCatalogId(v string) *GetDatabasesInput {
+func (s *GetPartitionInput) SetCatalogId(v string) *GetPartitionInput {
s.CatalogId = &v
return s
}
-// SetMaxResults sets the MaxResults field's value.
-func (s *GetDatabasesInput) SetMaxResults(v int64) *GetDatabasesInput {
- s.MaxResults = &v
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *GetPartitionInput) SetDatabaseName(v string) *GetPartitionInput {
+ s.DatabaseName = &v
return s
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetDatabasesInput) SetNextToken(v string) *GetDatabasesInput {
- s.NextToken = &v
+// SetPartitionValues sets the PartitionValues field's value.
+func (s *GetPartitionInput) SetPartitionValues(v []*string) *GetPartitionInput {
+ s.PartitionValues = v
return s
}
-type GetDatabasesOutput struct {
- _ struct{} `type:"structure"`
+// SetTableName sets the TableName field's value.
+func (s *GetPartitionInput) SetTableName(v string) *GetPartitionInput {
+ s.TableName = &v
+ return s
+}
- // A list of Database objects from the specified catalog.
- //
- // DatabaseList is a required field
- DatabaseList []*Database `type:"list" required:"true"`
+type GetPartitionOutput struct {
+ _ struct{} `type:"structure"`
- // A continuation token for paginating the returned list of tokens, returned
- // if the current segment of the list is not the last.
- NextToken *string `type:"string"`
+ // The requested information, in the form of a Partition object.
+ Partition *Partition `type:"structure"`
}
// String returns the string representation
-func (s GetDatabasesOutput) String() string {
+func (s GetPartitionOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetDatabasesOutput) GoString() string {
+func (s GetPartitionOutput) GoString() string {
return s.String()
}
-// SetDatabaseList sets the DatabaseList field's value.
-func (s *GetDatabasesOutput) SetDatabaseList(v []*Database) *GetDatabasesOutput {
- s.DatabaseList = v
+// SetPartition sets the Partition field's value.
+func (s *GetPartitionOutput) SetPartition(v *Partition) *GetPartitionOutput {
+ s.Partition = v
return s
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetDatabasesOutput) SetNextToken(v string) *GetDatabasesOutput {
- s.NextToken = &v
- return s
-}
+type GetPartitionsInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Data Catalog where the partitions in question reside. If none
+ // is supplied, the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
+
+ // The name of the catalog database where the partitions reside.
+ //
+ // DatabaseName is a required field
+ DatabaseName *string `min:"1" type:"string" required:"true"`
+
+ // An expression filtering the partitions to be returned.
+ //
+ // The expression uses SQL syntax similar to the SQL WHERE filter clause. The
+ // SQL statement parser JSQLParser (http://jsqlparser.sourceforge.net/home.php)
+ // parses the expression.
+ //
+ // Operators: The following are the operators that you can use in the Expression
+ // API call:
+ //
+ // =Checks if the values of the two operands are equal or not; if yes, then
+ // the condition becomes true.
+ //
+ // Example: Assume 'variable a' holds 10 and 'variable b' holds 20.
+ //
+ // (a = b) is not true.
+ //
+ // < >Checks if the values of two operands are equal or not; if the values are
+ // not equal, then the condition becomes true.
+ //
+ // Example: (a < > b) is true.
+ //
+ // >Checks if the value of the left operand is greater than the value of the
+ // right operand; if yes, then the condition becomes true.
+ //
+ // Example: (a > b) is not true.
+ //
+ // =Checks if the value of the left operand is greater than or equal to the
+ // value of the right operand; if yes, then the condition becomes true.
+ //
+ // Example: (a >= b) is not true.
+ //
+ // <=Checks if the value of the left operand is less than or equal to the value
+ // of the right operand; if yes, then the condition becomes true.
+ //
+ // Example: (a <= b) is true.
+ //
+ // AND, OR, IN, BETWEEN, LIKE, NOT, IS NULLLogical operators.
+ //
+ // Supported Partition Key Types: The following are the the supported partition
+ // keys.
+ //
+ // * string
+ //
+ // * date
+ //
+ // * timestamp
+ //
+ // * int
+ //
+ // * bigint
+ //
+ // * long
+ //
+ // * tinyint
+ //
+ // * smallint
+ //
+ // * decimal
+ //
+ // If an invalid type is encountered, an exception is thrown.
+ //
+ // The following list shows the valid operators on each type. When you define
+ // a crawler, the partitionKey type is created as a STRING, to be compatible
+ // with the catalog partitions.
+ //
+ // Sample API Call:
+ Expression *string `type:"string"`
+
+ // The maximum number of partitions to return in a single response.
+ MaxResults *int64 `min:"1" type:"integer"`
+
+ // A continuation token, if this is not the first call to retrieve these partitions.
+ NextToken *string `type:"string"`
-type GetDataflowGraphInput struct {
- _ struct{} `type:"structure"`
+ // The segment of the table's partitions to scan in this request.
+ Segment *Segment `type:"structure"`
- // The Python script to transform.
- PythonScript *string `type:"string"`
+ // The name of the partitions' table.
+ //
+ // TableName is a required field
+ TableName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s GetDataflowGraphInput) String() string {
+func (s GetPartitionsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetDataflowGraphInput) GoString() string {
+func (s GetPartitionsInput) GoString() string {
return s.String()
}
-// SetPythonScript sets the PythonScript field's value.
-func (s *GetDataflowGraphInput) SetPythonScript(v string) *GetDataflowGraphInput {
- s.PythonScript = &v
- return s
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetPartitionsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetPartitionsInput"}
+ 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.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 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.Segment != nil {
+ if err := s.Segment.Validate(); err != nil {
+ invalidParams.AddNested("Segment", err.(request.ErrInvalidParams))
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
}
-type GetDataflowGraphOutput struct {
- _ struct{} `type:"structure"`
+// SetCatalogId sets the CatalogId field's value.
+func (s *GetPartitionsInput) SetCatalogId(v string) *GetPartitionsInput {
+ s.CatalogId = &v
+ return s
+}
- // A list of the edges in the resulting DAG.
- DagEdges []*CodeGenEdge `type:"list"`
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *GetPartitionsInput) SetDatabaseName(v string) *GetPartitionsInput {
+ s.DatabaseName = &v
+ return s
+}
- // A list of the nodes in the resulting DAG.
- DagNodes []*CodeGenNode `type:"list"`
+// SetExpression sets the Expression field's value.
+func (s *GetPartitionsInput) SetExpression(v string) *GetPartitionsInput {
+ s.Expression = &v
+ return s
}
-// String returns the string representation
-func (s GetDataflowGraphOutput) String() string {
- return awsutil.Prettify(s)
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetPartitionsInput) SetMaxResults(v int64) *GetPartitionsInput {
+ s.MaxResults = &v
+ return s
}
-// GoString returns the string representation
-func (s GetDataflowGraphOutput) GoString() string {
- return s.String()
+// SetNextToken sets the NextToken field's value.
+func (s *GetPartitionsInput) SetNextToken(v string) *GetPartitionsInput {
+ s.NextToken = &v
+ return s
}
-// SetDagEdges sets the DagEdges field's value.
-func (s *GetDataflowGraphOutput) SetDagEdges(v []*CodeGenEdge) *GetDataflowGraphOutput {
- s.DagEdges = v
+// SetSegment sets the Segment field's value.
+func (s *GetPartitionsInput) SetSegment(v *Segment) *GetPartitionsInput {
+ s.Segment = v
return s
}
-// SetDagNodes sets the DagNodes field's value.
-func (s *GetDataflowGraphOutput) SetDagNodes(v []*CodeGenNode) *GetDataflowGraphOutput {
- s.DagNodes = v
+// SetTableName sets the TableName field's value.
+func (s *GetPartitionsInput) SetTableName(v string) *GetPartitionsInput {
+ s.TableName = &v
return s
}
-type GetDevEndpointInput struct {
+type GetPartitionsOutput struct {
_ struct{} `type:"structure"`
- // Name of the DevEndpoint for which to retrieve information.
- //
- // EndpointName is a required field
- EndpointName *string `type:"string" required:"true"`
+ // A continuation token, if the returned list of partitions does not does not
+ // include the last one.
+ NextToken *string `type:"string"`
+
+ // A list of requested partitions.
+ Partitions []*Partition `type:"list"`
}
// String returns the string representation
-func (s GetDevEndpointInput) String() string {
+func (s GetPartitionsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetDevEndpointInput) GoString() string {
+func (s GetPartitionsOutput) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetDevEndpointInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetDevEndpointInput"}
- if s.EndpointName == nil {
- invalidParams.Add(request.NewErrParamRequired("EndpointName"))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
+// SetNextToken sets the NextToken field's value.
+func (s *GetPartitionsOutput) SetNextToken(v string) *GetPartitionsOutput {
+ s.NextToken = &v
+ return s
}
-// SetEndpointName sets the EndpointName field's value.
-func (s *GetDevEndpointInput) SetEndpointName(v string) *GetDevEndpointInput {
- s.EndpointName = &v
+// SetPartitions sets the Partitions field's value.
+func (s *GetPartitionsOutput) SetPartitions(v []*Partition) *GetPartitionsOutput {
+ s.Partitions = v
return s
}
-type GetDevEndpointOutput struct {
+type GetPlanInput struct {
_ struct{} `type:"structure"`
- // A DevEndpoint definition.
- DevEndpoint *DevEndpoint `type:"structure"`
-}
-
-// String returns the string representation
-func (s GetDevEndpointOutput) String() string {
- return awsutil.Prettify(s)
-}
-
-// GoString returns the string representation
-func (s GetDevEndpointOutput) GoString() string {
- return s.String()
-}
+ // The programming language of the code to perform the mapping.
+ Language *string `type:"string" enum:"Language"`
-// SetDevEndpoint sets the DevEndpoint field's value.
-func (s *GetDevEndpointOutput) SetDevEndpoint(v *DevEndpoint) *GetDevEndpointOutput {
- s.DevEndpoint = v
- return s
-}
+ // Parameters for the mapping.
+ Location *Location `type:"structure"`
-type GetDevEndpointsInput struct {
- _ struct{} `type:"structure"`
+ // The list of mappings from a source table to target tables.
+ //
+ // Mapping is a required field
+ Mapping []*MappingEntry `type:"list" required:"true"`
- // The maximum size of information to return.
- MaxResults *int64 `min:"1" type:"integer"`
+ // The target tables.
+ Sinks []*CatalogEntry `type:"list"`
- // A continuation token, if this is a continuation call.
- NextToken *string `type:"string"`
+ // The source table.
+ //
+ // Source is a required field
+ Source *CatalogEntry `type:"structure" required:"true"`
}
// String returns the string representation
-func (s GetDevEndpointsInput) String() string {
+func (s GetPlanInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetDevEndpointsInput) GoString() string {
+func (s GetPlanInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetDevEndpointsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetDevEndpointsInput"}
- if s.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+func (s *GetPlanInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetPlanInput"}
+ if s.Mapping == nil {
+ invalidParams.Add(request.NewErrParamRequired("Mapping"))
+ }
+ if s.Source == nil {
+ invalidParams.Add(request.NewErrParamRequired("Source"))
+ }
+ if s.Location != nil {
+ if err := s.Location.Validate(); err != nil {
+ invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
+ }
+ }
+ if s.Sinks != nil {
+ for i, v := range s.Sinks {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sinks", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+ if s.Source != nil {
+ if err := s.Source.Validate(); err != nil {
+ invalidParams.AddNested("Source", err.(request.ErrInvalidParams))
+ }
}
if invalidParams.Len() > 0 {
@@ -14961,240 +17436,159 @@ func (s *GetDevEndpointsInput) Validate() error {
return nil
}
-// SetMaxResults sets the MaxResults field's value.
-func (s *GetDevEndpointsInput) SetMaxResults(v int64) *GetDevEndpointsInput {
- s.MaxResults = &v
+// SetLanguage sets the Language field's value.
+func (s *GetPlanInput) SetLanguage(v string) *GetPlanInput {
+ s.Language = &v
return s
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetDevEndpointsInput) SetNextToken(v string) *GetDevEndpointsInput {
- s.NextToken = &v
+// SetLocation sets the Location field's value.
+func (s *GetPlanInput) SetLocation(v *Location) *GetPlanInput {
+ s.Location = v
return s
}
-type GetDevEndpointsOutput struct {
- _ struct{} `type:"structure"`
-
- // A list of DevEndpoint definitions.
- DevEndpoints []*DevEndpoint `type:"list"`
-
- // A continuation token, if not all DevEndpoint definitions have yet been returned.
- NextToken *string `type:"string"`
-}
-
-// String returns the string representation
-func (s GetDevEndpointsOutput) String() string {
- return awsutil.Prettify(s)
-}
-
-// GoString returns the string representation
-func (s GetDevEndpointsOutput) GoString() string {
- return s.String()
+// SetMapping sets the Mapping field's value.
+func (s *GetPlanInput) SetMapping(v []*MappingEntry) *GetPlanInput {
+ s.Mapping = v
+ return s
}
-// SetDevEndpoints sets the DevEndpoints field's value.
-func (s *GetDevEndpointsOutput) SetDevEndpoints(v []*DevEndpoint) *GetDevEndpointsOutput {
- s.DevEndpoints = v
+// SetSinks sets the Sinks field's value.
+func (s *GetPlanInput) SetSinks(v []*CatalogEntry) *GetPlanInput {
+ s.Sinks = v
return s
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetDevEndpointsOutput) SetNextToken(v string) *GetDevEndpointsOutput {
- s.NextToken = &v
+// SetSource sets the Source field's value.
+func (s *GetPlanInput) SetSource(v *CatalogEntry) *GetPlanInput {
+ s.Source = v
return s
}
-type GetJobInput struct {
+type GetPlanOutput struct {
_ struct{} `type:"structure"`
- // The name of the job definition to retrieve.
- //
- // JobName is a required field
- JobName *string `min:"1" type:"string" required:"true"`
+ // 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
-func (s GetJobInput) String() string {
+func (s GetPlanOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetJobInput) GoString() string {
+func (s GetPlanOutput) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetJobInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetJobInput"}
- if s.JobName == nil {
- invalidParams.Add(request.NewErrParamRequired("JobName"))
- }
- if s.JobName != nil && len(*s.JobName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
+// SetPythonScript sets the PythonScript field's value.
+func (s *GetPlanOutput) SetPythonScript(v string) *GetPlanOutput {
+ s.PythonScript = &v
+ return s
}
-// SetJobName sets the JobName field's value.
-func (s *GetJobInput) SetJobName(v string) *GetJobInput {
- s.JobName = &v
+// SetScalaCode sets the ScalaCode field's value.
+func (s *GetPlanOutput) SetScalaCode(v string) *GetPlanOutput {
+ s.ScalaCode = &v
return s
}
-type GetJobOutput struct {
+type GetResourcePolicyInput struct {
_ struct{} `type:"structure"`
-
- // The requested job definition.
- Job *Job `type:"structure"`
}
// String returns the string representation
-func (s GetJobOutput) String() string {
+func (s GetResourcePolicyInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetJobOutput) GoString() string {
+func (s GetResourcePolicyInput) GoString() string {
return s.String()
}
-// SetJob sets the Job field's value.
-func (s *GetJobOutput) SetJob(v *Job) *GetJobOutput {
- s.Job = v
- return s
-}
-
-type GetJobRunInput struct {
+type GetResourcePolicyOutput struct {
_ struct{} `type:"structure"`
- // Name of the job definition being run.
- //
- // JobName is a required field
- JobName *string `min:"1" type:"string" required:"true"`
+ // The date and time at which the policy was created.
+ CreateTime *time.Time `type:"timestamp"`
- // True if a list of predecessor runs should be returned.
- PredecessorsIncluded *bool `type:"boolean"`
+ // Contains the hash value associated with this policy.
+ PolicyHash *string `min:"1" type:"string"`
- // The ID of the job run.
- //
- // RunId is a required field
- RunId *string `min:"1" type:"string" required:"true"`
+ // Contains the requested policy document, in JSON format.
+ PolicyInJson *string `min:"2" type:"string"`
+
+ // The date and time at which the policy was last updated.
+ UpdateTime *time.Time `type:"timestamp"`
}
// String returns the string representation
-func (s GetJobRunInput) String() string {
+func (s GetResourcePolicyOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetJobRunInput) GoString() string {
+func (s GetResourcePolicyOutput) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetJobRunInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetJobRunInput"}
- if s.JobName == nil {
- invalidParams.Add(request.NewErrParamRequired("JobName"))
- }
- if s.JobName != nil && len(*s.JobName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
- }
- if s.RunId == nil {
- invalidParams.Add(request.NewErrParamRequired("RunId"))
- }
- if s.RunId != nil && len(*s.RunId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("RunId", 1))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-
-// SetJobName sets the JobName field's value.
-func (s *GetJobRunInput) SetJobName(v string) *GetJobRunInput {
- s.JobName = &v
+// SetCreateTime sets the CreateTime field's value.
+func (s *GetResourcePolicyOutput) SetCreateTime(v time.Time) *GetResourcePolicyOutput {
+ s.CreateTime = &v
return s
}
-// SetPredecessorsIncluded sets the PredecessorsIncluded field's value.
-func (s *GetJobRunInput) SetPredecessorsIncluded(v bool) *GetJobRunInput {
- s.PredecessorsIncluded = &v
+// SetPolicyHash sets the PolicyHash field's value.
+func (s *GetResourcePolicyOutput) SetPolicyHash(v string) *GetResourcePolicyOutput {
+ s.PolicyHash = &v
return s
}
-// SetRunId sets the RunId field's value.
-func (s *GetJobRunInput) SetRunId(v string) *GetJobRunInput {
- s.RunId = &v
+// SetPolicyInJson sets the PolicyInJson field's value.
+func (s *GetResourcePolicyOutput) SetPolicyInJson(v string) *GetResourcePolicyOutput {
+ s.PolicyInJson = &v
return s
}
-type GetJobRunOutput struct {
- _ struct{} `type:"structure"`
-
- // The requested job-run metadata.
- JobRun *JobRun `type:"structure"`
-}
-
-// String returns the string representation
-func (s GetJobRunOutput) String() string {
- return awsutil.Prettify(s)
-}
-
-// GoString returns the string representation
-func (s GetJobRunOutput) GoString() string {
- return s.String()
-}
-
-// SetJobRun sets the JobRun field's value.
-func (s *GetJobRunOutput) SetJobRun(v *JobRun) *GetJobRunOutput {
- s.JobRun = v
+// SetUpdateTime sets the UpdateTime field's value.
+func (s *GetResourcePolicyOutput) SetUpdateTime(v time.Time) *GetResourcePolicyOutput {
+ s.UpdateTime = &v
return s
}
-type GetJobRunsInput struct {
+type GetSecurityConfigurationInput struct {
_ struct{} `type:"structure"`
- // The name of the job definition for which to retrieve all job runs.
+ // The name of the security configuration to retrieve.
//
- // JobName is a required field
- JobName *string `min:"1" type:"string" required:"true"`
-
- // The maximum size of the response.
- MaxResults *int64 `min:"1" type:"integer"`
-
- // A continuation token, if this is a continuation call.
- NextToken *string `type:"string"`
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s GetJobRunsInput) String() string {
+func (s GetSecurityConfigurationInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetJobRunsInput) GoString() string {
+func (s GetSecurityConfigurationInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetJobRunsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetJobRunsInput"}
- if s.JobName == nil {
- invalidParams.Add(request.NewErrParamRequired("JobName"))
- }
- if s.JobName != nil && len(*s.JobName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("JobName", 1))
+func (s *GetSecurityConfigurationInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetSecurityConfigurationInput"}
+ if s.Name == nil {
+ invalidParams.Add(request.NewErrParamRequired("Name"))
}
- if s.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+ if s.Name != nil && len(*s.Name) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
if invalidParams.Len() > 0 {
@@ -15203,60 +17597,39 @@ func (s *GetJobRunsInput) Validate() error {
return nil
}
-// SetJobName sets the JobName field's value.
-func (s *GetJobRunsInput) SetJobName(v string) *GetJobRunsInput {
- s.JobName = &v
- return s
-}
-
-// SetMaxResults sets the MaxResults field's value.
-func (s *GetJobRunsInput) SetMaxResults(v int64) *GetJobRunsInput {
- s.MaxResults = &v
- return s
-}
-
-// SetNextToken sets the NextToken field's value.
-func (s *GetJobRunsInput) SetNextToken(v string) *GetJobRunsInput {
- s.NextToken = &v
+// SetName sets the Name field's value.
+func (s *GetSecurityConfigurationInput) SetName(v string) *GetSecurityConfigurationInput {
+ s.Name = &v
return s
}
-type GetJobRunsOutput struct {
+type GetSecurityConfigurationOutput struct {
_ struct{} `type:"structure"`
- // A list of job-run metatdata objects.
- JobRuns []*JobRun `type:"list"`
-
- // A continuation token, if not all reequested job runs have been returned.
- NextToken *string `type:"string"`
+ // The requested security configuration
+ SecurityConfiguration *SecurityConfiguration `type:"structure"`
}
// String returns the string representation
-func (s GetJobRunsOutput) String() string {
+func (s GetSecurityConfigurationOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetJobRunsOutput) GoString() string {
+func (s GetSecurityConfigurationOutput) GoString() string {
return s.String()
}
-// SetJobRuns sets the JobRuns field's value.
-func (s *GetJobRunsOutput) SetJobRuns(v []*JobRun) *GetJobRunsOutput {
- s.JobRuns = v
- return s
-}
-
-// SetNextToken sets the NextToken field's value.
-func (s *GetJobRunsOutput) SetNextToken(v string) *GetJobRunsOutput {
- s.NextToken = &v
+// SetSecurityConfiguration sets the SecurityConfiguration field's value.
+func (s *GetSecurityConfigurationOutput) SetSecurityConfiguration(v *SecurityConfiguration) *GetSecurityConfigurationOutput {
+ s.SecurityConfiguration = v
return s
}
-type GetJobsInput struct {
+type GetSecurityConfigurationsInput struct {
_ struct{} `type:"structure"`
- // The maximum size of the response.
+ // The maximum number of results to return.
MaxResults *int64 `min:"1" type:"integer"`
// A continuation token, if this is a continuation call.
@@ -15264,18 +17637,18 @@ type GetJobsInput struct {
}
// String returns the string representation
-func (s GetJobsInput) String() string {
+func (s GetSecurityConfigurationsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetJobsInput) GoString() string {
+func (s GetSecurityConfigurationsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetJobsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetJobsInput"}
+func (s *GetSecurityConfigurationsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetSecurityConfigurationsInput"}
if s.MaxResults != nil && *s.MaxResults < 1 {
invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
@@ -15287,99 +17660,96 @@ func (s *GetJobsInput) Validate() error {
}
// SetMaxResults sets the MaxResults field's value.
-func (s *GetJobsInput) SetMaxResults(v int64) *GetJobsInput {
+func (s *GetSecurityConfigurationsInput) SetMaxResults(v int64) *GetSecurityConfigurationsInput {
s.MaxResults = &v
return s
}
// SetNextToken sets the NextToken field's value.
-func (s *GetJobsInput) SetNextToken(v string) *GetJobsInput {
+func (s *GetSecurityConfigurationsInput) SetNextToken(v string) *GetSecurityConfigurationsInput {
s.NextToken = &v
return s
}
-type GetJobsOutput struct {
+type GetSecurityConfigurationsOutput struct {
_ struct{} `type:"structure"`
- // A list of job definitions.
- Jobs []*Job `type:"list"`
-
- // A continuation token, if not all job definitions have yet been returned.
+ // A continuation token, if there are more security configurations to return.
NextToken *string `type:"string"`
+
+ // A list of security configurations.
+ SecurityConfigurations []*SecurityConfiguration `type:"list"`
}
// String returns the string representation
-func (s GetJobsOutput) String() string {
+func (s GetSecurityConfigurationsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetJobsOutput) GoString() string {
+func (s GetSecurityConfigurationsOutput) GoString() string {
return s.String()
}
-// SetJobs sets the Jobs field's value.
-func (s *GetJobsOutput) SetJobs(v []*Job) *GetJobsOutput {
- s.Jobs = v
- return s
-}
-
// SetNextToken sets the NextToken field's value.
-func (s *GetJobsOutput) SetNextToken(v string) *GetJobsOutput {
+func (s *GetSecurityConfigurationsOutput) SetNextToken(v string) *GetSecurityConfigurationsOutput {
s.NextToken = &v
return s
}
-type GetMappingInput struct {
+// SetSecurityConfigurations sets the SecurityConfigurations field's value.
+func (s *GetSecurityConfigurationsOutput) SetSecurityConfigurations(v []*SecurityConfiguration) *GetSecurityConfigurationsOutput {
+ s.SecurityConfigurations = v
+ return s
+}
+
+type GetTableInput struct {
_ struct{} `type:"structure"`
- // Parameters for the mapping.
- Location *Location `type:"structure"`
+ // The ID of the Data Catalog where the table resides. If none is supplied,
+ // the AWS account ID is used by default.
+ CatalogId *string `min:"1" type:"string"`
- // A list of target tables.
- Sinks []*CatalogEntry `type:"list"`
+ // 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"`
- // Specifies the source table.
+ // The name of the table for which to retrieve the definition. For Hive compatibility,
+ // this name is entirely lowercase.
//
- // Source is a required field
- Source *CatalogEntry `type:"structure" required:"true"`
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s GetMappingInput) String() string {
+func (s GetTableInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetMappingInput) GoString() string {
+func (s GetTableInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetMappingInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetMappingInput"}
- if s.Source == nil {
- invalidParams.Add(request.NewErrParamRequired("Source"))
+func (s *GetTableInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetTableInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
- if s.Location != nil {
- if err := s.Location.Validate(); err != nil {
- invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
- }
+ if s.DatabaseName == nil {
+ invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
}
- if s.Sinks != nil {
- for i, v := range s.Sinks {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sinks", i), err.(request.ErrInvalidParams))
- }
- }
+ if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
}
- if s.Source != nil {
- if err := s.Source.Validate(); err != nil {
- invalidParams.AddNested("Source", err.(request.ErrInvalidParams))
- }
+ 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 {
@@ -15388,85 +17758,83 @@ func (s *GetMappingInput) Validate() error {
return nil
}
-// SetLocation sets the Location field's value.
-func (s *GetMappingInput) SetLocation(v *Location) *GetMappingInput {
- s.Location = v
+// SetCatalogId sets the CatalogId field's value.
+func (s *GetTableInput) SetCatalogId(v string) *GetTableInput {
+ s.CatalogId = &v
return s
}
-// SetSinks sets the Sinks field's value.
-func (s *GetMappingInput) SetSinks(v []*CatalogEntry) *GetMappingInput {
- s.Sinks = v
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *GetTableInput) SetDatabaseName(v string) *GetTableInput {
+ s.DatabaseName = &v
return s
}
-// SetSource sets the Source field's value.
-func (s *GetMappingInput) SetSource(v *CatalogEntry) *GetMappingInput {
- s.Source = v
+// SetName sets the Name field's value.
+func (s *GetTableInput) SetName(v string) *GetTableInput {
+ s.Name = &v
return s
}
-type GetMappingOutput struct {
+type GetTableOutput struct {
_ struct{} `type:"structure"`
- // A list of mappings to the specified targets.
- //
- // Mapping is a required field
- Mapping []*MappingEntry `type:"list" required:"true"`
+ // The Table object that defines the specified table.
+ Table *Table `type:"structure"`
}
// String returns the string representation
-func (s GetMappingOutput) String() string {
+func (s GetTableOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetMappingOutput) GoString() string {
+func (s GetTableOutput) GoString() string {
return s.String()
}
-// SetMapping sets the Mapping field's value.
-func (s *GetMappingOutput) SetMapping(v []*MappingEntry) *GetMappingOutput {
- s.Mapping = v
+// SetTable sets the Table field's value.
+func (s *GetTableOutput) SetTable(v *Table) *GetTableOutput {
+ s.Table = v
return s
}
-type GetPartitionInput struct {
+type GetTableVersionInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog where the partition in question resides. If none
- // is supplied, the AWS account ID is used by default.
+ // 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 name of the catalog database where the partition 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"`
- // The values that define the partition.
- //
- // PartitionValues is a required field
- PartitionValues []*string `type:"list" required:"true"`
-
- // The name of the partition's 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"`
+
+ // The ID value of the table version to be retrieved. A VersionID is a string
+ // representation of an integer. Each version is incremented by 1.
+ VersionId *string `min:"1" type:"string"`
}
// String returns the string representation
-func (s GetPartitionInput) String() string {
+func (s GetTableVersionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetPartitionInput) GoString() string {
+func (s GetTableVersionInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetPartitionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetPartitionInput"}
+func (s *GetTableVersionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetTableVersionInput"}
if s.CatalogId != nil && len(*s.CatalogId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
@@ -15476,15 +17844,15 @@ func (s *GetPartitionInput) Validate() error {
if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
}
- if s.PartitionValues == nil {
- invalidParams.Add(request.NewErrParamRequired("PartitionValues"))
- }
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
@@ -15493,165 +17861,90 @@ func (s *GetPartitionInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *GetPartitionInput) SetCatalogId(v string) *GetPartitionInput {
+func (s *GetTableVersionInput) SetCatalogId(v string) *GetTableVersionInput {
s.CatalogId = &v
return s
}
// SetDatabaseName sets the DatabaseName field's value.
-func (s *GetPartitionInput) SetDatabaseName(v string) *GetPartitionInput {
+func (s *GetTableVersionInput) SetDatabaseName(v string) *GetTableVersionInput {
s.DatabaseName = &v
return s
-}
-
-// SetPartitionValues sets the PartitionValues field's value.
-func (s *GetPartitionInput) SetPartitionValues(v []*string) *GetPartitionInput {
- s.PartitionValues = v
- return s
-}
-
-// SetTableName sets the TableName field's value.
-func (s *GetPartitionInput) SetTableName(v string) *GetPartitionInput {
- s.TableName = &v
- return s
-}
-
-type GetPartitionOutput struct {
- _ struct{} `type:"structure"`
-
- // The requested information, in the form of a Partition object.
- Partition *Partition `type:"structure"`
-}
-
-// String returns the string representation
-func (s GetPartitionOutput) String() string {
- return awsutil.Prettify(s)
-}
-
-// GoString returns the string representation
-func (s GetPartitionOutput) GoString() string {
- return s.String()
-}
-
-// SetPartition sets the Partition field's value.
-func (s *GetPartitionOutput) SetPartition(v *Partition) *GetPartitionOutput {
- s.Partition = v
- return s
-}
-
-type GetPartitionsInput struct {
- _ struct{} `type:"structure"`
-
- // The ID of the Data Catalog where the partitions in question reside. If none
- // is supplied, the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
-
- // The name of the catalog database where the partitions reside.
- //
- // DatabaseName is a required field
- DatabaseName *string `min:"1" type:"string" required:"true"`
-
- // An expression filtering the partitions to be returned.
- //
- // The expression uses SQL syntax similar to the SQL WHERE filter clause. The
- // SQL statement parser JSQLParser (http://jsqlparser.sourceforge.net/home.php)
- // parses the expression.
- //
- // Operators: The following are the operators that you can use in the Expression
- // API call:
- //
- // =Checks if the values of the two operands are equal or not; if yes, then
- // the condition becomes true.
- //
- // Example: Assume 'variable a' holds 10 and 'variable b' holds 20.
- //
- // (a = b) is not true.
- //
- // < >Checks if the values of two operands are equal or not; if the values are
- // not equal, then the condition becomes true.
- //
- // Example: (a < > b) is true.
- //
- // >Checks if the value of the left operand is greater than the value of the
- // right operand; if yes, then the condition becomes true.
- //
- // Example: (a > b) is not true.
- //
- // =Checks if the value of the left operand is greater than or equal to the
- // value of the right operand; if yes, then the condition becomes true.
- //
- // Example: (a >= b) is not true.
- //
- // <=Checks if the value of the left operand is less than or equal to the value
- // of the right operand; if yes, then the condition becomes true.
- //
- // Example: (a <= b) is true.
- //
- // AND, OR, IN, BETWEEN, LIKE, NOT, IS NULLLogical operators.
- //
- // Supported Partition Key Types: The following are the the supported partition
- // keys.
- //
- // * string
- //
- // * date
- //
- // * timestamp
- //
- // * int
- //
- // * bigint
- //
- // * long
- //
- // * tinyint
- //
- // * smallint
- //
- // * decimal
- //
- // If an invalid type is encountered, an exception is thrown.
- //
- // The following list shows the valid operators on each type. When you define
- // a crawler, the partitionKey type is created as a STRING, to be compatible
- // with the catalog partitions.
+}
+
+// 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
+}
+
+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
+}
+
+type GetTableVersionsInput 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.
//
- // Sample API Call:
- Expression *string `type:"string"`
+ // DatabaseName is a required field
+ DatabaseName *string `min:"1" type:"string" required:"true"`
- // The maximum number of partitions to return in a single response.
+ // The maximum number of table versions to return in one response.
MaxResults *int64 `min:"1" type:"integer"`
- // A continuation token, if this is not the first call to retrieve these partitions.
+ // A continuation token, if this is not the first call.
NextToken *string `type:"string"`
- // The segment of the table's partitions to scan in this request.
- Segment *Segment `type:"structure"`
-
- // The name of the partitions' 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"`
}
// String returns the string representation
-func (s GetPartitionsInput) String() string {
+func (s GetTableVersionsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetPartitionsInput) GoString() string {
+func (s GetTableVersionsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetPartitionsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetPartitionsInput"}
+func (s *GetTableVersionsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetTableVersionsInput"}
if s.CatalogId != nil && len(*s.CatalogId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
@@ -15670,11 +17963,6 @@ func (s *GetPartitionsInput) Validate() error {
if s.TableName != nil && len(*s.TableName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
}
- if s.Segment != nil {
- if err := s.Segment.Validate(); err != nil {
- invalidParams.AddNested("Segment", err.(request.ErrInvalidParams))
- }
- }
if invalidParams.Len() > 0 {
return invalidParams
@@ -15683,141 +17971,116 @@ func (s *GetPartitionsInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *GetPartitionsInput) SetCatalogId(v string) *GetPartitionsInput {
+func (s *GetTableVersionsInput) SetCatalogId(v string) *GetTableVersionsInput {
s.CatalogId = &v
return s
}
// SetDatabaseName sets the DatabaseName field's value.
-func (s *GetPartitionsInput) SetDatabaseName(v string) *GetPartitionsInput {
+func (s *GetTableVersionsInput) SetDatabaseName(v string) *GetTableVersionsInput {
s.DatabaseName = &v
return s
}
-// SetExpression sets the Expression field's value.
-func (s *GetPartitionsInput) SetExpression(v string) *GetPartitionsInput {
- s.Expression = &v
- return s
-}
-
// SetMaxResults sets the MaxResults field's value.
-func (s *GetPartitionsInput) SetMaxResults(v int64) *GetPartitionsInput {
+func (s *GetTableVersionsInput) SetMaxResults(v int64) *GetTableVersionsInput {
s.MaxResults = &v
return s
}
// SetNextToken sets the NextToken field's value.
-func (s *GetPartitionsInput) SetNextToken(v string) *GetPartitionsInput {
+func (s *GetTableVersionsInput) SetNextToken(v string) *GetTableVersionsInput {
s.NextToken = &v
return s
}
-// SetSegment sets the Segment field's value.
-func (s *GetPartitionsInput) SetSegment(v *Segment) *GetPartitionsInput {
- s.Segment = v
- return s
-}
-
// SetTableName sets the TableName field's value.
-func (s *GetPartitionsInput) SetTableName(v string) *GetPartitionsInput {
+func (s *GetTableVersionsInput) SetTableName(v string) *GetTableVersionsInput {
s.TableName = &v
return s
}
-type GetPartitionsOutput struct {
+type GetTableVersionsOutput struct {
_ struct{} `type:"structure"`
- // A continuation token, if the returned list of partitions does not does not
- // include the last one.
+ // A continuation token, if the list of available versions does not include
+ // the last one.
NextToken *string `type:"string"`
- // A list of requested partitions.
- Partitions []*Partition `type:"list"`
+ // A list of strings identifying available versions of the specified table.
+ TableVersions []*TableVersion `type:"list"`
}
// String returns the string representation
-func (s GetPartitionsOutput) String() string {
+func (s GetTableVersionsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetPartitionsOutput) GoString() string {
+func (s GetTableVersionsOutput) GoString() string {
return s.String()
}
// SetNextToken sets the NextToken field's value.
-func (s *GetPartitionsOutput) SetNextToken(v string) *GetPartitionsOutput {
+func (s *GetTableVersionsOutput) SetNextToken(v string) *GetTableVersionsOutput {
s.NextToken = &v
return s
}
-// SetPartitions sets the Partitions field's value.
-func (s *GetPartitionsOutput) SetPartitions(v []*Partition) *GetPartitionsOutput {
- s.Partitions = v
+// SetTableVersions sets the TableVersions field's value.
+func (s *GetTableVersionsOutput) SetTableVersions(v []*TableVersion) *GetTableVersionsOutput {
+ s.TableVersions = v
return s
}
-type GetPlanInput struct {
+type GetTablesInput 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"`
+ // 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 list of mappings from a source table to target tables.
+ // The database in the catalog whose tables to list. For Hive compatibility,
+ // this name is entirely lowercase.
//
- // Mapping is a required field
- Mapping []*MappingEntry `type:"list" required:"true"`
+ // DatabaseName is a required field
+ DatabaseName *string `min:"1" type:"string" required:"true"`
- // The target tables.
- Sinks []*CatalogEntry `type:"list"`
+ // A regular expression pattern. If present, only those tables whose names match
+ // the pattern are returned.
+ Expression *string `type:"string"`
- // The source table.
- //
- // Source is a required field
- Source *CatalogEntry `type:"structure" required:"true"`
+ // The maximum number of tables to return in a single response.
+ MaxResults *int64 `min:"1" type:"integer"`
+
+ // A continuation token, included if this is a continuation call.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetPlanInput) String() string {
+func (s GetTablesInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetPlanInput) GoString() string {
+func (s GetTablesInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetPlanInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetPlanInput"}
- if s.Mapping == nil {
- invalidParams.Add(request.NewErrParamRequired("Mapping"))
- }
- if s.Source == nil {
- invalidParams.Add(request.NewErrParamRequired("Source"))
+func (s *GetTablesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetTablesInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
- if s.Location != nil {
- if err := s.Location.Validate(); err != nil {
- invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
- }
+ if s.DatabaseName == nil {
+ invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
}
- if s.Sinks != nil {
- for i, v := range s.Sinks {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sinks", i), err.(request.ErrInvalidParams))
- }
- }
+ if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
}
- if s.Source != nil {
- if err := s.Source.Validate(); err != nil {
- invalidParams.AddNested("Source", err.(request.ErrInvalidParams))
- }
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
if invalidParams.Len() > 0 {
@@ -15826,159 +18089,95 @@ 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
- return s
-}
-
-// SetMapping sets the Mapping field's value.
-func (s *GetPlanInput) SetMapping(v []*MappingEntry) *GetPlanInput {
- s.Mapping = v
- return s
-}
-
-// SetSinks sets the Sinks field's value.
-func (s *GetPlanInput) SetSinks(v []*CatalogEntry) *GetPlanInput {
- s.Sinks = v
- return s
-}
-
-// SetSource sets the Source field's value.
-func (s *GetPlanInput) SetSource(v *CatalogEntry) *GetPlanInput {
- s.Source = v
+// SetCatalogId sets the CatalogId field's value.
+func (s *GetTablesInput) SetCatalogId(v string) *GetTablesInput {
+ s.CatalogId = &v
return s
}
-type GetPlanOutput struct {
- _ struct{} `type:"structure"`
-
- // 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
-func (s GetPlanOutput) String() string {
- return awsutil.Prettify(s)
-}
-
-// GoString returns the string representation
-func (s GetPlanOutput) GoString() string {
- return s.String()
-}
-
-// SetPythonScript sets the PythonScript field's value.
-func (s *GetPlanOutput) SetPythonScript(v string) *GetPlanOutput {
- s.PythonScript = &v
+// SetDatabaseName sets the DatabaseName field's value.
+func (s *GetTablesInput) SetDatabaseName(v string) *GetTablesInput {
+ s.DatabaseName = &v
return s
}
-// SetScalaCode sets the ScalaCode field's value.
-func (s *GetPlanOutput) SetScalaCode(v string) *GetPlanOutput {
- s.ScalaCode = &v
+// SetExpression sets the Expression field's value.
+func (s *GetTablesInput) SetExpression(v string) *GetTablesInput {
+ s.Expression = &v
return s
}
-type GetResourcePolicyInput struct {
- _ struct{} `type:"structure"`
-}
-
-// String returns the string representation
-func (s GetResourcePolicyInput) String() string {
- return awsutil.Prettify(s)
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetTablesInput) SetMaxResults(v int64) *GetTablesInput {
+ s.MaxResults = &v
+ return s
}
-// GoString returns the string representation
-func (s GetResourcePolicyInput) GoString() string {
- return s.String()
+// SetNextToken sets the NextToken field's value.
+func (s *GetTablesInput) SetNextToken(v string) *GetTablesInput {
+ s.NextToken = &v
+ return s
}
-type GetResourcePolicyOutput struct {
+type GetTablesOutput struct {
_ struct{} `type:"structure"`
- // The date and time at which the policy was created.
- CreateTime *time.Time `type:"timestamp"`
-
- // Contains the hash value associated with this policy.
- PolicyHash *string `min:"1" type:"string"`
-
- // Contains the requested policy document, in JSON format.
- PolicyInJson *string `min:"2" type:"string"`
+ // A continuation token, present if the current list segment is not the last.
+ NextToken *string `type:"string"`
- // The date and time at which the policy was last updated.
- UpdateTime *time.Time `type:"timestamp"`
+ // A list of the requested Table objects.
+ TableList []*Table `type:"list"`
}
// String returns the string representation
-func (s GetResourcePolicyOutput) String() string {
+func (s GetTablesOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetResourcePolicyOutput) GoString() string {
+func (s GetTablesOutput) GoString() string {
return s.String()
}
-// SetCreateTime sets the CreateTime field's value.
-func (s *GetResourcePolicyOutput) SetCreateTime(v time.Time) *GetResourcePolicyOutput {
- s.CreateTime = &v
- return s
-}
-
-// SetPolicyHash sets the PolicyHash field's value.
-func (s *GetResourcePolicyOutput) SetPolicyHash(v string) *GetResourcePolicyOutput {
- s.PolicyHash = &v
- return s
-}
-
-// SetPolicyInJson sets the PolicyInJson field's value.
-func (s *GetResourcePolicyOutput) SetPolicyInJson(v string) *GetResourcePolicyOutput {
- s.PolicyInJson = &v
+// SetNextToken sets the NextToken field's value.
+func (s *GetTablesOutput) SetNextToken(v string) *GetTablesOutput {
+ s.NextToken = &v
return s
}
-// SetUpdateTime sets the UpdateTime field's value.
-func (s *GetResourcePolicyOutput) SetUpdateTime(v time.Time) *GetResourcePolicyOutput {
- s.UpdateTime = &v
+// SetTableList sets the TableList field's value.
+func (s *GetTablesOutput) SetTableList(v []*Table) *GetTablesOutput {
+ s.TableList = v
return s
}
-type GetSecurityConfigurationInput struct {
+type GetTagsInput struct {
_ struct{} `type:"structure"`
- // The name of the security configuration to retrieve.
+ // The Amazon ARN of the resource for which to retrieve tags.
//
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // ResourceArn is a required field
+ ResourceArn *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s GetSecurityConfigurationInput) String() string {
+func (s GetTagsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetSecurityConfigurationInput) GoString() string {
+func (s GetTagsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetSecurityConfigurationInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetSecurityConfigurationInput"}
- if s.Name == nil {
- invalidParams.Add(request.NewErrParamRequired("Name"))
+func (s *GetTagsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetTagsInput"}
+ if s.ResourceArn == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
}
- if s.Name != nil && len(*s.Name) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Name", 1))
+ if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
}
if invalidParams.Len() > 0 {
@@ -15987,60 +18186,62 @@ func (s *GetSecurityConfigurationInput) Validate() error {
return nil
}
-// SetName sets the Name field's value.
-func (s *GetSecurityConfigurationInput) SetName(v string) *GetSecurityConfigurationInput {
- s.Name = &v
+// SetResourceArn sets the ResourceArn field's value.
+func (s *GetTagsInput) SetResourceArn(v string) *GetTagsInput {
+ s.ResourceArn = &v
return s
}
-type GetSecurityConfigurationOutput struct {
+type GetTagsOutput struct {
_ struct{} `type:"structure"`
- // The requested security configuration
- SecurityConfiguration *SecurityConfiguration `type:"structure"`
+ // The requested tags.
+ Tags map[string]*string `type:"map"`
}
// String returns the string representation
-func (s GetSecurityConfigurationOutput) String() string {
+func (s GetTagsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetSecurityConfigurationOutput) GoString() string {
+func (s GetTagsOutput) GoString() string {
return s.String()
}
-// SetSecurityConfiguration sets the SecurityConfiguration field's value.
-func (s *GetSecurityConfigurationOutput) SetSecurityConfiguration(v *SecurityConfiguration) *GetSecurityConfigurationOutput {
- s.SecurityConfiguration = v
+// SetTags sets the Tags field's value.
+func (s *GetTagsOutput) SetTags(v map[string]*string) *GetTagsOutput {
+ s.Tags = v
return s
}
-type GetSecurityConfigurationsInput struct {
+type GetTriggerInput struct {
_ struct{} `type:"structure"`
- // The maximum number of results to return.
- MaxResults *int64 `min:"1" type:"integer"`
-
- // A continuation token, if this is a continuation call.
- NextToken *string `type:"string"`
+ // The name of the trigger to retrieve.
+ //
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s GetSecurityConfigurationsInput) String() string {
+func (s GetTriggerInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetSecurityConfigurationsInput) GoString() string {
+func (s GetTriggerInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetSecurityConfigurationsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetSecurityConfigurationsInput"}
- if s.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+func (s *GetTriggerInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetTriggerInput"}
+ 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 {
@@ -16049,97 +18250,68 @@ func (s *GetSecurityConfigurationsInput) Validate() error {
return nil
}
-// SetMaxResults sets the MaxResults field's value.
-func (s *GetSecurityConfigurationsInput) SetMaxResults(v int64) *GetSecurityConfigurationsInput {
- s.MaxResults = &v
- return s
-}
-
-// SetNextToken sets the NextToken field's value.
-func (s *GetSecurityConfigurationsInput) SetNextToken(v string) *GetSecurityConfigurationsInput {
- s.NextToken = &v
+// SetName sets the Name field's value.
+func (s *GetTriggerInput) SetName(v string) *GetTriggerInput {
+ s.Name = &v
return s
}
-type GetSecurityConfigurationsOutput struct {
+type GetTriggerOutput struct {
_ struct{} `type:"structure"`
- // A continuation token, if there are more security configurations to return.
- NextToken *string `type:"string"`
-
- // A list of security configurations.
- SecurityConfigurations []*SecurityConfiguration `type:"list"`
+ // The requested trigger definition.
+ Trigger *Trigger `type:"structure"`
}
// String returns the string representation
-func (s GetSecurityConfigurationsOutput) String() string {
+func (s GetTriggerOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetSecurityConfigurationsOutput) GoString() string {
+func (s GetTriggerOutput) GoString() string {
return s.String()
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetSecurityConfigurationsOutput) SetNextToken(v string) *GetSecurityConfigurationsOutput {
- s.NextToken = &v
- return s
-}
-
-// SetSecurityConfigurations sets the SecurityConfigurations field's value.
-func (s *GetSecurityConfigurationsOutput) SetSecurityConfigurations(v []*SecurityConfiguration) *GetSecurityConfigurationsOutput {
- s.SecurityConfigurations = v
+// SetTrigger sets the Trigger field's value.
+func (s *GetTriggerOutput) SetTrigger(v *Trigger) *GetTriggerOutput {
+ s.Trigger = v
return s
}
-type GetTableInput struct {
+type GetTriggersInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog where the table resides. If none is supplied,
- // the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+ // 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 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 maximum size of the response.
+ MaxResults *int64 `min:"1" type:"integer"`
- // 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"`
+ // A continuation token, if this is a continuation call.
+ NextToken *string `type:"string"`
}
// String returns the string representation
-func (s GetTableInput) String() string {
+func (s GetTriggersInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetTableInput) GoString() string {
+func (s GetTriggersInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetTableInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetTableInput"}
- 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.Name == nil {
- invalidParams.Add(request.NewErrParamRequired("Name"))
+func (s *GetTriggersInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetTriggersInput"}
+ if s.DependentJobName != nil && len(*s.DependentJobName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("DependentJobName", 1))
}
- if s.Name != nil && len(*s.Name) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Name", 1))
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
if invalidParams.Len() > 0 {
@@ -16148,83 +18320,87 @@ func (s *GetTableInput) Validate() error {
return nil
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *GetTableInput) SetCatalogId(v string) *GetTableInput {
- s.CatalogId = &v
+// SetDependentJobName sets the DependentJobName field's value.
+func (s *GetTriggersInput) SetDependentJobName(v string) *GetTriggersInput {
+ s.DependentJobName = &v
return s
}
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *GetTableInput) SetDatabaseName(v string) *GetTableInput {
- s.DatabaseName = &v
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetTriggersInput) SetMaxResults(v int64) *GetTriggersInput {
+ s.MaxResults = &v
return s
}
-// SetName sets the Name field's value.
-func (s *GetTableInput) SetName(v string) *GetTableInput {
- s.Name = &v
+// SetNextToken sets the NextToken field's value.
+func (s *GetTriggersInput) SetNextToken(v string) *GetTriggersInput {
+ s.NextToken = &v
return s
}
-type GetTableOutput struct {
+type GetTriggersOutput struct {
_ struct{} `type:"structure"`
- // The Table object that defines the specified table.
- Table *Table `type:"structure"`
+ // A continuation token, if not all the requested triggers have yet been returned.
+ NextToken *string `type:"string"`
+
+ // A list of triggers for the specified job.
+ Triggers []*Trigger `type:"list"`
}
// String returns the string representation
-func (s GetTableOutput) String() string {
+func (s GetTriggersOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetTableOutput) GoString() string {
+func (s GetTriggersOutput) GoString() string {
return s.String()
}
-// SetTable sets the Table field's value.
-func (s *GetTableOutput) SetTable(v *Table) *GetTableOutput {
- s.Table = v
+// SetNextToken sets the NextToken field's value.
+func (s *GetTriggersOutput) SetNextToken(v string) *GetTriggersOutput {
+ s.NextToken = &v
return s
}
-type GetTableVersionInput struct {
+// SetTriggers sets the Triggers field's value.
+func (s *GetTriggersOutput) SetTriggers(v []*Trigger) *GetTriggersOutput {
+ s.Triggers = v
+ return s
+}
+
+type GetUserDefinedFunctionInput 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.
+ // The ID of the Data Catalog where the function to be retrieved is located.
+ // 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.
+ // The name of the catalog database where the function is located.
//
// 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.
+ // The name of the function.
//
- // TableName is a required field
- TableName *string `min:"1" type:"string" required:"true"`
-
- // The ID value of the table version to be retrieved. A VersionID is a string
- // representation of an integer. Each version is incremented by 1.
- VersionId *string `min:"1" type:"string"`
+ // FunctionName is a required field
+ FunctionName *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s GetTableVersionInput) String() string {
+func (s GetUserDefinedFunctionInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetTableVersionInput) GoString() string {
+func (s GetUserDefinedFunctionInput) 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"}
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetUserDefinedFunctionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetUserDefinedFunctionInput"}
if s.CatalogId != nil && len(*s.CatalogId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
@@ -16234,14 +18410,11 @@ func (s *GetTableVersionInput) Validate() error {
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.FunctionName == nil {
+ invalidParams.Add(request.NewErrParamRequired("FunctionName"))
}
- if s.VersionId != nil && len(*s.VersionId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
+ if s.FunctionName != nil && len(*s.FunctionName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
}
if invalidParams.Len() > 0 {
@@ -16251,90 +18424,84 @@ func (s *GetTableVersionInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *GetTableVersionInput) SetCatalogId(v string) *GetTableVersionInput {
+func (s *GetUserDefinedFunctionInput) SetCatalogId(v string) *GetUserDefinedFunctionInput {
s.CatalogId = &v
return s
}
// SetDatabaseName sets the DatabaseName field's value.
-func (s *GetTableVersionInput) SetDatabaseName(v string) *GetTableVersionInput {
+func (s *GetUserDefinedFunctionInput) SetDatabaseName(v string) *GetUserDefinedFunctionInput {
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
+// SetFunctionName sets the FunctionName field's value.
+func (s *GetUserDefinedFunctionInput) SetFunctionName(v string) *GetUserDefinedFunctionInput {
+ s.FunctionName = &v
return s
}
-type GetTableVersionOutput struct {
+type GetUserDefinedFunctionOutput struct {
_ struct{} `type:"structure"`
- // The requested table version.
- TableVersion *TableVersion `type:"structure"`
+ // The requested function definition.
+ UserDefinedFunction *UserDefinedFunction `type:"structure"`
}
// String returns the string representation
-func (s GetTableVersionOutput) String() string {
+func (s GetUserDefinedFunctionOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetTableVersionOutput) GoString() string {
+func (s GetUserDefinedFunctionOutput) GoString() string {
return s.String()
}
-// SetTableVersion sets the TableVersion field's value.
-func (s *GetTableVersionOutput) SetTableVersion(v *TableVersion) *GetTableVersionOutput {
- s.TableVersion = v
+// SetUserDefinedFunction sets the UserDefinedFunction field's value.
+func (s *GetUserDefinedFunctionOutput) SetUserDefinedFunction(v *UserDefinedFunction) *GetUserDefinedFunctionOutput {
+ s.UserDefinedFunction = v
return s
}
-type GetTableVersionsInput struct {
+type GetUserDefinedFunctionsInput 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.
+ // The ID of the Data Catalog where the functions to be retrieved are located.
+ // 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.
+ // The name of the catalog database where the functions are located.
//
// DatabaseName is a required field
DatabaseName *string `min:"1" type:"string" required:"true"`
- // The maximum number of table versions to return in one response.
+ // The maximum number of functions to return in one response.
MaxResults *int64 `min:"1" type:"integer"`
- // A continuation token, if this is not the first call.
+ // A continuation token, if this is a continuation call.
NextToken *string `type:"string"`
- // The name of the table. For Hive compatibility, this name is entirely lowercase.
+ // An optional function-name pattern string that filters the function definitions
+ // returned.
//
- // TableName is a required field
- TableName *string `min:"1" type:"string" required:"true"`
+ // Pattern is a required field
+ Pattern *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
-func (s GetTableVersionsInput) String() string {
+func (s GetUserDefinedFunctionsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetTableVersionsInput) GoString() string {
+func (s GetUserDefinedFunctionsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetTableVersionsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetTableVersionsInput"}
+func (s *GetUserDefinedFunctionsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetUserDefinedFunctionsInput"}
if s.CatalogId != nil && len(*s.CatalogId) < 1 {
invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
@@ -16347,11 +18514,11 @@ func (s *GetTableVersionsInput) Validate() error {
if s.MaxResults != nil && *s.MaxResults < 1 {
invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
- if s.TableName == nil {
- invalidParams.Add(request.NewErrParamRequired("TableName"))
+ if s.Pattern == nil {
+ invalidParams.Add(request.NewErrParamRequired("Pattern"))
}
- if s.TableName != nil && len(*s.TableName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
+ if s.Pattern != nil && len(*s.Pattern) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Pattern", 1))
}
if invalidParams.Len() > 0 {
@@ -16361,213 +18528,178 @@ func (s *GetTableVersionsInput) Validate() error {
}
// SetCatalogId sets the CatalogId field's value.
-func (s *GetTableVersionsInput) SetCatalogId(v string) *GetTableVersionsInput {
+func (s *GetUserDefinedFunctionsInput) SetCatalogId(v string) *GetUserDefinedFunctionsInput {
s.CatalogId = &v
return s
}
// SetDatabaseName sets the DatabaseName field's value.
-func (s *GetTableVersionsInput) SetDatabaseName(v string) *GetTableVersionsInput {
+func (s *GetUserDefinedFunctionsInput) SetDatabaseName(v string) *GetUserDefinedFunctionsInput {
s.DatabaseName = &v
return s
}
// SetMaxResults sets the MaxResults field's value.
-func (s *GetTableVersionsInput) SetMaxResults(v int64) *GetTableVersionsInput {
+func (s *GetUserDefinedFunctionsInput) SetMaxResults(v int64) *GetUserDefinedFunctionsInput {
s.MaxResults = &v
return s
}
// SetNextToken sets the NextToken field's value.
-func (s *GetTableVersionsInput) SetNextToken(v string) *GetTableVersionsInput {
+func (s *GetUserDefinedFunctionsInput) SetNextToken(v string) *GetUserDefinedFunctionsInput {
s.NextToken = &v
return s
}
-// SetTableName sets the TableName field's value.
-func (s *GetTableVersionsInput) SetTableName(v string) *GetTableVersionsInput {
- s.TableName = &v
+// SetPattern sets the Pattern field's value.
+func (s *GetUserDefinedFunctionsInput) SetPattern(v string) *GetUserDefinedFunctionsInput {
+ s.Pattern = &v
return s
}
-type GetTableVersionsOutput struct {
+type GetUserDefinedFunctionsOutput struct {
_ struct{} `type:"structure"`
- // A continuation token, if the list of available versions does not include
- // the last one.
+ // A continuation token, if the list of functions returned does not include
+ // the last requested function.
NextToken *string `type:"string"`
- // A list of strings identifying available versions of the specified table.
- TableVersions []*TableVersion `type:"list"`
+ // A list of requested function definitions.
+ UserDefinedFunctions []*UserDefinedFunction `type:"list"`
}
// String returns the string representation
-func (s GetTableVersionsOutput) String() string {
+func (s GetUserDefinedFunctionsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetTableVersionsOutput) GoString() string {
+func (s GetUserDefinedFunctionsOutput) GoString() string {
return s.String()
}
// SetNextToken sets the NextToken field's value.
-func (s *GetTableVersionsOutput) SetNextToken(v string) *GetTableVersionsOutput {
+func (s *GetUserDefinedFunctionsOutput) SetNextToken(v string) *GetUserDefinedFunctionsOutput {
s.NextToken = &v
return s
}
-// SetTableVersions sets the TableVersions field's value.
-func (s *GetTableVersionsOutput) SetTableVersions(v []*TableVersion) *GetTableVersionsOutput {
- s.TableVersions = v
+// SetUserDefinedFunctions sets the UserDefinedFunctions field's value.
+func (s *GetUserDefinedFunctionsOutput) SetUserDefinedFunctions(v []*UserDefinedFunction) *GetUserDefinedFunctionsOutput {
+ s.UserDefinedFunctions = v
return s
}
-type GetTablesInput struct {
+// A classifier that uses grok patterns.
+type GrokClassifier 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"`
+ // An identifier of the data format that the classifier matches, such as Twitter,
+ // JSON, Omniture logs, and so on.
+ //
+ // Classification is a required field
+ Classification *string `type:"string" required:"true"`
- // The database in the catalog whose tables to list. For Hive compatibility,
- // this name is entirely lowercase.
+ // The time this classifier was registered.
+ CreationTime *time.Time `type:"timestamp"`
+
+ // Optional custom grok patterns defined by this classifier. For more information,
+ // see custom patterns in Writing Custom Classifers (http://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html).
+ CustomPatterns *string `type:"string"`
+
+ // The grok pattern applied to a data store by this classifier. For more information,
+ // see built-in patterns in Writing Custom Classifers (http://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html).
//
- // DatabaseName is a required field
- DatabaseName *string `min:"1" type:"string" required:"true"`
+ // GrokPattern is a required field
+ GrokPattern *string `min:"1" type:"string" required:"true"`
- // A regular expression pattern. If present, only those tables whose names match
- // the pattern are returned.
- Expression *string `type:"string"`
+ // The time this classifier was last updated.
+ LastUpdated *time.Time `type:"timestamp"`
- // The maximum number of tables to return in a single response.
- MaxResults *int64 `min:"1" type:"integer"`
+ // The name of the classifier.
+ //
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
- // A continuation token, included if this is a continuation call.
- NextToken *string `type:"string"`
+ // The version of this classifier.
+ Version *int64 `type:"long"`
}
// String returns the string representation
-func (s GetTablesInput) String() string {
+func (s GrokClassifier) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetTablesInput) GoString() string {
+func (s GrokClassifier) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetTablesInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetTablesInput"}
- 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.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-
-// SetCatalogId sets the CatalogId field's value.
-func (s *GetTablesInput) SetCatalogId(v string) *GetTablesInput {
- s.CatalogId = &v
+// SetClassification sets the Classification field's value.
+func (s *GrokClassifier) SetClassification(v string) *GrokClassifier {
+ s.Classification = &v
return s
}
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *GetTablesInput) SetDatabaseName(v string) *GetTablesInput {
- s.DatabaseName = &v
+// SetCreationTime sets the CreationTime field's value.
+func (s *GrokClassifier) SetCreationTime(v time.Time) *GrokClassifier {
+ s.CreationTime = &v
return s
}
-// SetExpression sets the Expression field's value.
-func (s *GetTablesInput) SetExpression(v string) *GetTablesInput {
- s.Expression = &v
+// SetCustomPatterns sets the CustomPatterns field's value.
+func (s *GrokClassifier) SetCustomPatterns(v string) *GrokClassifier {
+ s.CustomPatterns = &v
return s
}
-// SetMaxResults sets the MaxResults field's value.
-func (s *GetTablesInput) SetMaxResults(v int64) *GetTablesInput {
- s.MaxResults = &v
+// SetGrokPattern sets the GrokPattern field's value.
+func (s *GrokClassifier) SetGrokPattern(v string) *GrokClassifier {
+ s.GrokPattern = &v
return s
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetTablesInput) SetNextToken(v string) *GetTablesInput {
- s.NextToken = &v
+// SetLastUpdated sets the LastUpdated field's value.
+func (s *GrokClassifier) SetLastUpdated(v time.Time) *GrokClassifier {
+ s.LastUpdated = &v
return s
}
-type GetTablesOutput struct {
- _ struct{} `type:"structure"`
-
- // A continuation token, present if the current list segment is not the last.
- NextToken *string `type:"string"`
-
- // A list of the requested Table objects.
- TableList []*Table `type:"list"`
-}
-
-// String returns the string representation
-func (s GetTablesOutput) String() string {
- return awsutil.Prettify(s)
-}
-
-// GoString returns the string representation
-func (s GetTablesOutput) GoString() string {
- return s.String()
-}
-
-// SetNextToken sets the NextToken field's value.
-func (s *GetTablesOutput) SetNextToken(v string) *GetTablesOutput {
- s.NextToken = &v
+// SetName sets the Name field's value.
+func (s *GrokClassifier) SetName(v string) *GrokClassifier {
+ s.Name = &v
return s
}
-// SetTableList sets the TableList field's value.
-func (s *GetTablesOutput) SetTableList(v []*Table) *GetTablesOutput {
- s.TableList = v
+// SetVersion sets the Version field's value.
+func (s *GrokClassifier) SetVersion(v int64) *GrokClassifier {
+ s.Version = &v
return s
}
-type GetTriggerInput struct {
+type ImportCatalogToGlueInput struct {
_ struct{} `type:"structure"`
- // The name of the trigger to retrieve.
- //
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // The ID of the catalog to import. Currently, this should be the AWS account
+ // ID.
+ CatalogId *string `min:"1" type:"string"`
}
// String returns the string representation
-func (s GetTriggerInput) String() string {
+func (s ImportCatalogToGlueInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetTriggerInput) GoString() string {
+func (s ImportCatalogToGlueInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetTriggerInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetTriggerInput"}
- if s.Name == nil {
- invalidParams.Add(request.NewErrParamRequired("Name"))
- }
- if s.Name != nil && len(*s.Name) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Name", 1))
+func (s *ImportCatalogToGlueInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ImportCatalogToGlueInput"}
+ if s.CatalogId != nil && len(*s.CatalogId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
}
if invalidParams.Len() > 0 {
@@ -16576,552 +18708,641 @@ func (s *GetTriggerInput) Validate() error {
return nil
}
-// SetName sets the Name field's value.
-func (s *GetTriggerInput) SetName(v string) *GetTriggerInput {
- s.Name = &v
+// SetCatalogId sets the CatalogId field's value.
+func (s *ImportCatalogToGlueInput) SetCatalogId(v string) *ImportCatalogToGlueInput {
+ s.CatalogId = &v
return s
}
-type GetTriggerOutput struct {
+type ImportCatalogToGlueOutput struct {
_ struct{} `type:"structure"`
-
- // The requested trigger definition.
- Trigger *Trigger `type:"structure"`
}
// String returns the string representation
-func (s GetTriggerOutput) String() string {
+func (s ImportCatalogToGlueOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetTriggerOutput) GoString() string {
+func (s ImportCatalogToGlueOutput) GoString() string {
return s.String()
}
-// SetTrigger sets the Trigger field's value.
-func (s *GetTriggerOutput) SetTrigger(v *Trigger) *GetTriggerOutput {
- s.Trigger = v
- return s
-}
-
-type GetTriggersInput struct {
+// Specifies a JDBC data store to crawl.
+type JdbcTarget struct {
_ struct{} `type:"structure"`
- // 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 name of the connection to use to connect to the JDBC target.
+ ConnectionName *string `type:"string"`
- // The maximum size of the response.
- MaxResults *int64 `min:"1" type:"integer"`
+ // A list of glob patterns used to exclude from the crawl. For more information,
+ // see Catalog Tables with a Crawler (http://docs.aws.amazon.com/glue/latest/dg/add-crawler.html).
+ Exclusions []*string `type:"list"`
- // A continuation token, if this is a continuation call.
- NextToken *string `type:"string"`
+ // The path of the JDBC target.
+ Path *string `type:"string"`
}
// String returns the string representation
-func (s GetTriggersInput) String() string {
+func (s JdbcTarget) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetTriggersInput) GoString() string {
+func (s JdbcTarget) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetTriggersInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetTriggersInput"}
- if s.DependentJobName != nil && len(*s.DependentJobName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DependentJobName", 1))
- }
- if s.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-
-// SetDependentJobName sets the DependentJobName field's value.
-func (s *GetTriggersInput) SetDependentJobName(v string) *GetTriggersInput {
- s.DependentJobName = &v
+// SetConnectionName sets the ConnectionName field's value.
+func (s *JdbcTarget) SetConnectionName(v string) *JdbcTarget {
+ s.ConnectionName = &v
return s
}
-// SetMaxResults sets the MaxResults field's value.
-func (s *GetTriggersInput) SetMaxResults(v int64) *GetTriggersInput {
- s.MaxResults = &v
+// SetExclusions sets the Exclusions field's value.
+func (s *JdbcTarget) SetExclusions(v []*string) *JdbcTarget {
+ s.Exclusions = v
return s
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetTriggersInput) SetNextToken(v string) *GetTriggersInput {
- s.NextToken = &v
+// SetPath sets the Path field's value.
+func (s *JdbcTarget) SetPath(v string) *JdbcTarget {
+ s.Path = &v
return s
}
-type GetTriggersOutput struct {
+// Specifies a job definition.
+type Job struct {
_ struct{} `type:"structure"`
- // A continuation token, if not all the requested triggers have yet been returned.
- NextToken *string `type:"string"`
+ // This field is deprecated, use MaxCapacity instead.
+ //
+ // The number of AWS Glue data processing units (DPUs) allocated to runs of
+ // 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/).
+ //
+ // Deprecated: This property is deprecated, use MaxCapacity instead.
+ AllocatedCapacity *int64 `deprecated:"true" type:"integer"`
- // A list of triggers for the specified job.
- Triggers []*Trigger `type:"list"`
+ // The JobCommand that executes this job.
+ Command *JobCommand `type:"structure"`
+
+ // The connections used for this job.
+ Connections *ConnectionsList `type:"structure"`
+
+ // The time and date that this job definition was created.
+ CreatedOn *time.Time `type:"timestamp"`
+
+ // 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-etl-glue-arguments.html)
+ // topic in the developer guide.
+ DefaultArguments map[string]*string `type:"map"`
+
+ // Description of the job being defined.
+ Description *string `type:"string"`
+
+ // An ExecutionProperty specifying the maximum number of concurrent runs allowed
+ // for this job.
+ ExecutionProperty *ExecutionProperty `type:"structure"`
+
+ // The last point in time when this job definition was modified.
+ LastModifiedOn *time.Time `type:"timestamp"`
+
+ // This field is reserved for future use.
+ LogUri *string `type:"string"`
+
+ // The number of AWS Glue data processing units (DPUs) that can be allocated
+ // when this job runs. 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/).
+ //
+ // The value that can be allocated for MaxCapacity depends on whether you are
+ // running a python shell job, or an Apache Spark ETL job:
+ //
+ // * When you specify a python shell job (JobCommand.Name="pythonshell"),
+ // you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
+ //
+ // * When you specify an Apache Spark ETL job (JobCommand.Name="glueetl"),
+ // you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job
+ // type cannot have a fractional DPU allocation.
+ MaxCapacity *float64 `type:"double"`
+
+ // The maximum number of times to retry this job after a JobRun fails.
+ MaxRetries *int64 `type:"integer"`
+
+ // The name you assign to this job definition.
+ Name *string `min:"1" type:"string"`
+
+ // Specifies configuration properties of a job notification.
+ NotificationProperty *NotificationProperty `type:"structure"`
+
+ // The name or ARN of the IAM role associated with this job.
+ Role *string `type:"string"`
+
+ // The name of the SecurityConfiguration structure to be used with this job.
+ SecurityConfiguration *string `min:"1" type:"string"`
+
+ // The job timeout in minutes. This is the maximum time that a job run can consume
+ // resources before it is terminated and enters TIMEOUT status. The default
+ // is 2,880 minutes (48 hours).
+ Timeout *int64 `min:"1" type:"integer"`
}
// String returns the string representation
-func (s GetTriggersOutput) String() string {
+func (s Job) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetTriggersOutput) GoString() string {
+func (s Job) GoString() string {
return s.String()
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetTriggersOutput) SetNextToken(v string) *GetTriggersOutput {
- s.NextToken = &v
+// SetAllocatedCapacity sets the AllocatedCapacity field's value.
+func (s *Job) SetAllocatedCapacity(v int64) *Job {
+ s.AllocatedCapacity = &v
return s
}
-// SetTriggers sets the Triggers field's value.
-func (s *GetTriggersOutput) SetTriggers(v []*Trigger) *GetTriggersOutput {
- s.Triggers = v
+// SetCommand sets the Command field's value.
+func (s *Job) SetCommand(v *JobCommand) *Job {
+ s.Command = v
return s
}
-type GetUserDefinedFunctionInput struct {
- _ struct{} `type:"structure"`
-
- // The ID of the Data Catalog where the function to be retrieved is located.
- // If none is supplied, the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+// SetConnections sets the Connections field's value.
+func (s *Job) SetConnections(v *ConnectionsList) *Job {
+ s.Connections = v
+ return s
+}
- // The name of the catalog database where the function is located.
- //
- // DatabaseName is a required field
- DatabaseName *string `min:"1" type:"string" required:"true"`
+// SetCreatedOn sets the CreatedOn field's value.
+func (s *Job) SetCreatedOn(v time.Time) *Job {
+ s.CreatedOn = &v
+ return s
+}
- // The name of the function.
- //
- // FunctionName is a required field
- FunctionName *string `min:"1" type:"string" required:"true"`
+// SetDefaultArguments sets the DefaultArguments field's value.
+func (s *Job) SetDefaultArguments(v map[string]*string) *Job {
+ s.DefaultArguments = v
+ return s
}
-// String returns the string representation
-func (s GetUserDefinedFunctionInput) String() string {
- return awsutil.Prettify(s)
+// SetDescription sets the Description field's value.
+func (s *Job) SetDescription(v string) *Job {
+ s.Description = &v
+ return s
}
-// GoString returns the string representation
-func (s GetUserDefinedFunctionInput) GoString() string {
- return s.String()
+// SetExecutionProperty sets the ExecutionProperty field's value.
+func (s *Job) SetExecutionProperty(v *ExecutionProperty) *Job {
+ s.ExecutionProperty = v
+ return s
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetUserDefinedFunctionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetUserDefinedFunctionInput"}
- 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.FunctionName == nil {
- invalidParams.Add(request.NewErrParamRequired("FunctionName"))
- }
- if s.FunctionName != nil && len(*s.FunctionName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
- }
+// SetLastModifiedOn sets the LastModifiedOn field's value.
+func (s *Job) SetLastModifiedOn(v time.Time) *Job {
+ s.LastModifiedOn = &v
+ return s
+}
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
+// SetLogUri sets the LogUri field's value.
+func (s *Job) SetLogUri(v string) *Job {
+ s.LogUri = &v
+ return s
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *GetUserDefinedFunctionInput) SetCatalogId(v string) *GetUserDefinedFunctionInput {
- s.CatalogId = &v
+// SetMaxCapacity sets the MaxCapacity field's value.
+func (s *Job) SetMaxCapacity(v float64) *Job {
+ s.MaxCapacity = &v
return s
}
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *GetUserDefinedFunctionInput) SetDatabaseName(v string) *GetUserDefinedFunctionInput {
- s.DatabaseName = &v
+// SetMaxRetries sets the MaxRetries field's value.
+func (s *Job) SetMaxRetries(v int64) *Job {
+ s.MaxRetries = &v
return s
}
-// SetFunctionName sets the FunctionName field's value.
-func (s *GetUserDefinedFunctionInput) SetFunctionName(v string) *GetUserDefinedFunctionInput {
- s.FunctionName = &v
+// SetName sets the Name field's value.
+func (s *Job) SetName(v string) *Job {
+ s.Name = &v
return s
}
-type GetUserDefinedFunctionOutput struct {
- _ struct{} `type:"structure"`
-
- // The requested function definition.
- UserDefinedFunction *UserDefinedFunction `type:"structure"`
+// SetNotificationProperty sets the NotificationProperty field's value.
+func (s *Job) SetNotificationProperty(v *NotificationProperty) *Job {
+ s.NotificationProperty = v
+ return s
}
-// String returns the string representation
-func (s GetUserDefinedFunctionOutput) String() string {
- return awsutil.Prettify(s)
+// SetRole sets the Role field's value.
+func (s *Job) SetRole(v string) *Job {
+ s.Role = &v
+ return s
}
-// GoString returns the string representation
-func (s GetUserDefinedFunctionOutput) GoString() string {
- return s.String()
+// SetSecurityConfiguration sets the SecurityConfiguration field's value.
+func (s *Job) SetSecurityConfiguration(v string) *Job {
+ s.SecurityConfiguration = &v
+ return s
}
-// SetUserDefinedFunction sets the UserDefinedFunction field's value.
-func (s *GetUserDefinedFunctionOutput) SetUserDefinedFunction(v *UserDefinedFunction) *GetUserDefinedFunctionOutput {
- s.UserDefinedFunction = v
+// SetTimeout sets the Timeout field's value.
+func (s *Job) SetTimeout(v int64) *Job {
+ s.Timeout = &v
return s
}
-type GetUserDefinedFunctionsInput struct {
+// Defines a point which a job can resume processing.
+type JobBookmarkEntry struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog where the functions to be retrieved are located.
- // If none is supplied, the AWS account ID is used by default.
- CatalogId *string `min:"1" type:"string"`
+ // The attempt ID number.
+ Attempt *int64 `type:"integer"`
- // The name of the catalog database where the functions are located.
- //
- // DatabaseName is a required field
- DatabaseName *string `min:"1" type:"string" required:"true"`
+ // The bookmark itself.
+ JobBookmark *string `type:"string"`
- // The maximum number of functions to return in one response.
- MaxResults *int64 `min:"1" type:"integer"`
+ // Name of the job in question.
+ JobName *string `type:"string"`
- // A continuation token, if this is a continuation call.
- NextToken *string `type:"string"`
+ // The run ID number.
+ Run *int64 `type:"integer"`
- // An optional function-name pattern string that filters the function definitions
- // returned.
- //
- // Pattern is a required field
- Pattern *string `min:"1" type:"string" required:"true"`
+ // Version of the job.
+ Version *int64 `type:"integer"`
}
// String returns the string representation
-func (s GetUserDefinedFunctionsInput) String() string {
+func (s JobBookmarkEntry) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetUserDefinedFunctionsInput) GoString() string {
+func (s JobBookmarkEntry) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *GetUserDefinedFunctionsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetUserDefinedFunctionsInput"}
- 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.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
- }
- if s.Pattern == nil {
- invalidParams.Add(request.NewErrParamRequired("Pattern"))
- }
- if s.Pattern != nil && len(*s.Pattern) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Pattern", 1))
- }
+// SetAttempt sets the Attempt field's value.
+func (s *JobBookmarkEntry) SetAttempt(v int64) *JobBookmarkEntry {
+ s.Attempt = &v
+ return s
+}
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
+// SetJobBookmark sets the JobBookmark field's value.
+func (s *JobBookmarkEntry) SetJobBookmark(v string) *JobBookmarkEntry {
+ s.JobBookmark = &v
+ return s
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *GetUserDefinedFunctionsInput) SetCatalogId(v string) *GetUserDefinedFunctionsInput {
- s.CatalogId = &v
+// SetJobName sets the JobName field's value.
+func (s *JobBookmarkEntry) SetJobName(v string) *JobBookmarkEntry {
+ s.JobName = &v
return s
}
-// SetDatabaseName sets the DatabaseName field's value.
-func (s *GetUserDefinedFunctionsInput) SetDatabaseName(v string) *GetUserDefinedFunctionsInput {
- s.DatabaseName = &v
+// SetRun sets the Run field's value.
+func (s *JobBookmarkEntry) SetRun(v int64) *JobBookmarkEntry {
+ s.Run = &v
return s
}
-// SetMaxResults sets the MaxResults field's value.
-func (s *GetUserDefinedFunctionsInput) SetMaxResults(v int64) *GetUserDefinedFunctionsInput {
- s.MaxResults = &v
+// SetVersion sets the Version field's value.
+func (s *JobBookmarkEntry) SetVersion(v int64) *JobBookmarkEntry {
+ s.Version = &v
return s
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetUserDefinedFunctionsInput) SetNextToken(v string) *GetUserDefinedFunctionsInput {
- s.NextToken = &v
+// Specifies how Job bookmark data should be encrypted.
+type JobBookmarksEncryption struct {
+ _ struct{} `type:"structure"`
+
+ // The encryption mode to use for Job bookmarks data.
+ JobBookmarksEncryptionMode *string `type:"string" enum:"JobBookmarksEncryptionMode"`
+
+ // The AWS ARN of the KMS key to be used to encrypt the data.
+ KmsKeyArn *string `type:"string"`
+}
+
+// String returns the string representation
+func (s JobBookmarksEncryption) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s JobBookmarksEncryption) GoString() string {
+ return s.String()
+}
+
+// SetJobBookmarksEncryptionMode sets the JobBookmarksEncryptionMode field's value.
+func (s *JobBookmarksEncryption) SetJobBookmarksEncryptionMode(v string) *JobBookmarksEncryption {
+ s.JobBookmarksEncryptionMode = &v
return s
}
-// SetPattern sets the Pattern field's value.
-func (s *GetUserDefinedFunctionsInput) SetPattern(v string) *GetUserDefinedFunctionsInput {
- s.Pattern = &v
+// SetKmsKeyArn sets the KmsKeyArn field's value.
+func (s *JobBookmarksEncryption) SetKmsKeyArn(v string) *JobBookmarksEncryption {
+ s.KmsKeyArn = &v
return s
}
-type GetUserDefinedFunctionsOutput struct {
+// Specifies code executed when a job is run.
+type JobCommand struct {
_ struct{} `type:"structure"`
- // A continuation token, if the list of functions returned does not include
- // the last requested function.
- NextToken *string `type:"string"`
+ // The name of the job command: this must be glueetl, for an Apache Spark ETL
+ // job, or pythonshell, for a Python shell job.
+ Name *string `type:"string"`
- // A list of requested function definitions.
- UserDefinedFunctions []*UserDefinedFunction `type:"list"`
+ // Specifies the S3 path to a script that executes a job (required).
+ ScriptLocation *string `type:"string"`
}
// String returns the string representation
-func (s GetUserDefinedFunctionsOutput) String() string {
+func (s JobCommand) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GetUserDefinedFunctionsOutput) GoString() string {
+func (s JobCommand) GoString() string {
return s.String()
}
-// SetNextToken sets the NextToken field's value.
-func (s *GetUserDefinedFunctionsOutput) SetNextToken(v string) *GetUserDefinedFunctionsOutput {
- s.NextToken = &v
+// SetName sets the Name field's value.
+func (s *JobCommand) SetName(v string) *JobCommand {
+ s.Name = &v
return s
}
-// SetUserDefinedFunctions sets the UserDefinedFunctions field's value.
-func (s *GetUserDefinedFunctionsOutput) SetUserDefinedFunctions(v []*UserDefinedFunction) *GetUserDefinedFunctionsOutput {
- s.UserDefinedFunctions = v
+// SetScriptLocation sets the ScriptLocation field's value.
+func (s *JobCommand) SetScriptLocation(v string) *JobCommand {
+ s.ScriptLocation = &v
return s
}
-// A classifier that uses grok patterns.
-type GrokClassifier struct {
+// Contains information about a job run.
+type JobRun struct {
_ struct{} `type:"structure"`
- // An identifier of the data format that the classifier matches, such as Twitter,
- // JSON, Omniture logs, and so on.
+ // This field is deprecated, use MaxCapacity instead.
+ //
+ // 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/).
+ //
+ // Deprecated: This property is deprecated, use MaxCapacity instead.
+ AllocatedCapacity *int64 `deprecated:"true" type:"integer"`
+
+ // The job arguments associated with this run. For this job run, they replace
+ // the default arguments set in the job definition 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-etl-glue-arguments.html)
+ // topic in the developer guide.
+ Arguments map[string]*string `type:"map"`
+
+ // The number of the attempt to run this job.
+ Attempt *int64 `type:"integer"`
+
+ // The date and time this job run completed.
+ CompletedOn *time.Time `type:"timestamp"`
+
+ // An error message associated with this job run.
+ ErrorMessage *string `type:"string"`
+
+ // The amount of time (in seconds) that the job run consumed resources.
+ ExecutionTime *int64 `type:"integer"`
+
+ // The ID of this job run.
+ Id *string `min:"1" type:"string"`
+
+ // The name of the job definition being used in this run.
+ JobName *string `min:"1" type:"string"`
+
+ // The current state of the job run.
+ JobRunState *string `type:"string" enum:"JobRunState"`
+
+ // The last time this job run was modified.
+ LastModifiedOn *time.Time `type:"timestamp"`
+
+ // The name of the log group for secure logging, that can be server-side encrypted
+ // in CloudWatch using KMS. This name can be /aws-glue/jobs/, in which case
+ // the default encryption is NONE. If you add a role name and SecurityConfiguration
+ // name (in other words, /aws-glue/jobs-yourRoleName-yourSecurityConfigurationName/),
+ // then that security configuration will be used to encrypt the log group.
+ LogGroupName *string `type:"string"`
+
+ // The number of AWS Glue data processing units (DPUs) that can be allocated
+ // when this job runs. 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/).
//
- // Classification is a required field
- Classification *string `type:"string" required:"true"`
+ // The value that can be allocated for MaxCapacity depends on whether you are
+ // running a python shell job, or an Apache Spark ETL job:
+ //
+ // * When you specify a python shell job (JobCommand.Name="pythonshell"),
+ // you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
+ //
+ // * When you specify an Apache Spark ETL job (JobCommand.Name="glueetl"),
+ // you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job
+ // type cannot have a fractional DPU allocation.
+ MaxCapacity *float64 `type:"double"`
- // The time this classifier was registered.
- CreationTime *time.Time `type:"timestamp"`
+ // Specifies configuration properties of a job run notification.
+ NotificationProperty *NotificationProperty `type:"structure"`
- // Optional custom grok patterns defined by this classifier. For more information,
- // see custom patterns in Writing Custom Classifers (http://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html).
- CustomPatterns *string `type:"string"`
+ // A list of predecessors to this job run.
+ PredecessorRuns []*Predecessor `type:"list"`
- // The grok pattern applied to a data store by this classifier. For more information,
- // see built-in patterns in Writing Custom Classifers (http://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html).
- //
- // GrokPattern is a required field
- GrokPattern *string `min:"1" type:"string" required:"true"`
+ // 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 time this classifier was last updated.
- LastUpdated *time.Time `type:"timestamp"`
+ // The name of the SecurityConfiguration structure to be used with this job
+ // run.
+ SecurityConfiguration *string `min:"1" type:"string"`
- // The name of the classifier.
- //
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // The date and time at which this job run was started.
+ StartedOn *time.Time `type:"timestamp"`
- // The version of this classifier.
- Version *int64 `type:"long"`
+ // The JobRun timeout in minutes. This is the maximum time that a job run can
+ // consume resources before it is terminated and enters TIMEOUT status. The
+ // default is 2,880 minutes (48 hours). This overrides the timeout value set
+ // in the parent job.
+ Timeout *int64 `min:"1" type:"integer"`
+
+ // The name of the trigger that started this job run.
+ TriggerName *string `min:"1" type:"string"`
}
// String returns the string representation
-func (s GrokClassifier) String() string {
+func (s JobRun) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s GrokClassifier) GoString() string {
+func (s JobRun) GoString() string {
return s.String()
}
-// SetClassification sets the Classification field's value.
-func (s *GrokClassifier) SetClassification(v string) *GrokClassifier {
- s.Classification = &v
+// SetAllocatedCapacity sets the AllocatedCapacity field's value.
+func (s *JobRun) SetAllocatedCapacity(v int64) *JobRun {
+ s.AllocatedCapacity = &v
return s
}
-// SetCreationTime sets the CreationTime field's value.
-func (s *GrokClassifier) SetCreationTime(v time.Time) *GrokClassifier {
- s.CreationTime = &v
+// SetArguments sets the Arguments field's value.
+func (s *JobRun) SetArguments(v map[string]*string) *JobRun {
+ s.Arguments = v
return s
}
-// SetCustomPatterns sets the CustomPatterns field's value.
-func (s *GrokClassifier) SetCustomPatterns(v string) *GrokClassifier {
- s.CustomPatterns = &v
+// SetAttempt sets the Attempt field's value.
+func (s *JobRun) SetAttempt(v int64) *JobRun {
+ s.Attempt = &v
return s
}
-// SetGrokPattern sets the GrokPattern field's value.
-func (s *GrokClassifier) SetGrokPattern(v string) *GrokClassifier {
- s.GrokPattern = &v
+// SetCompletedOn sets the CompletedOn field's value.
+func (s *JobRun) SetCompletedOn(v time.Time) *JobRun {
+ s.CompletedOn = &v
return s
}
-// SetLastUpdated sets the LastUpdated field's value.
-func (s *GrokClassifier) SetLastUpdated(v time.Time) *GrokClassifier {
- s.LastUpdated = &v
+// SetErrorMessage sets the ErrorMessage field's value.
+func (s *JobRun) SetErrorMessage(v string) *JobRun {
+ s.ErrorMessage = &v
return s
}
-// SetName sets the Name field's value.
-func (s *GrokClassifier) SetName(v string) *GrokClassifier {
- s.Name = &v
+// SetExecutionTime sets the ExecutionTime field's value.
+func (s *JobRun) SetExecutionTime(v int64) *JobRun {
+ s.ExecutionTime = &v
return s
}
-// SetVersion sets the Version field's value.
-func (s *GrokClassifier) SetVersion(v int64) *GrokClassifier {
- s.Version = &v
+// SetId sets the Id field's value.
+func (s *JobRun) SetId(v string) *JobRun {
+ s.Id = &v
return s
}
-type ImportCatalogToGlueInput struct {
- _ struct{} `type:"structure"`
-
- // The ID of the catalog to import. Currently, this should be the AWS account
- // ID.
- CatalogId *string `min:"1" type:"string"`
-}
-
-// String returns the string representation
-func (s ImportCatalogToGlueInput) String() string {
- return awsutil.Prettify(s)
-}
-
-// GoString returns the string representation
-func (s ImportCatalogToGlueInput) GoString() string {
- return s.String()
+// SetJobName sets the JobName field's value.
+func (s *JobRun) SetJobName(v string) *JobRun {
+ s.JobName = &v
+ return s
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *ImportCatalogToGlueInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ImportCatalogToGlueInput"}
- if s.CatalogId != nil && len(*s.CatalogId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
+// SetJobRunState sets the JobRunState field's value.
+func (s *JobRun) SetJobRunState(v string) *JobRun {
+ s.JobRunState = &v
+ return s
}
-// SetCatalogId sets the CatalogId field's value.
-func (s *ImportCatalogToGlueInput) SetCatalogId(v string) *ImportCatalogToGlueInput {
- s.CatalogId = &v
+// SetLastModifiedOn sets the LastModifiedOn field's value.
+func (s *JobRun) SetLastModifiedOn(v time.Time) *JobRun {
+ s.LastModifiedOn = &v
return s
}
-type ImportCatalogToGlueOutput struct {
- _ struct{} `type:"structure"`
+// SetLogGroupName sets the LogGroupName field's value.
+func (s *JobRun) SetLogGroupName(v string) *JobRun {
+ s.LogGroupName = &v
+ return s
}
-// String returns the string representation
-func (s ImportCatalogToGlueOutput) String() string {
- return awsutil.Prettify(s)
+// SetMaxCapacity sets the MaxCapacity field's value.
+func (s *JobRun) SetMaxCapacity(v float64) *JobRun {
+ s.MaxCapacity = &v
+ return s
}
-// GoString returns the string representation
-func (s ImportCatalogToGlueOutput) GoString() string {
- return s.String()
+// SetNotificationProperty sets the NotificationProperty field's value.
+func (s *JobRun) SetNotificationProperty(v *NotificationProperty) *JobRun {
+ s.NotificationProperty = v
+ return s
}
-// Specifies a JDBC data store to crawl.
-type JdbcTarget struct {
- _ struct{} `type:"structure"`
-
- // The name of the connection to use to connect to the JDBC target.
- ConnectionName *string `type:"string"`
-
- // A list of glob patterns used to exclude from the crawl. For more information,
- // see Catalog Tables with a Crawler (http://docs.aws.amazon.com/glue/latest/dg/add-crawler.html).
- Exclusions []*string `type:"list"`
-
- // The path of the JDBC target.
- Path *string `type:"string"`
+// SetPredecessorRuns sets the PredecessorRuns field's value.
+func (s *JobRun) SetPredecessorRuns(v []*Predecessor) *JobRun {
+ s.PredecessorRuns = v
+ return s
}
-// String returns the string representation
-func (s JdbcTarget) String() string {
- return awsutil.Prettify(s)
+// SetPreviousRunId sets the PreviousRunId field's value.
+func (s *JobRun) SetPreviousRunId(v string) *JobRun {
+ s.PreviousRunId = &v
+ return s
}
-// GoString returns the string representation
-func (s JdbcTarget) GoString() string {
- return s.String()
+// SetSecurityConfiguration sets the SecurityConfiguration field's value.
+func (s *JobRun) SetSecurityConfiguration(v string) *JobRun {
+ s.SecurityConfiguration = &v
+ return s
}
-// SetConnectionName sets the ConnectionName field's value.
-func (s *JdbcTarget) SetConnectionName(v string) *JdbcTarget {
- s.ConnectionName = &v
+// SetStartedOn sets the StartedOn field's value.
+func (s *JobRun) SetStartedOn(v time.Time) *JobRun {
+ s.StartedOn = &v
return s
}
-// SetExclusions sets the Exclusions field's value.
-func (s *JdbcTarget) SetExclusions(v []*string) *JdbcTarget {
- s.Exclusions = v
+// SetTimeout sets the Timeout field's value.
+func (s *JobRun) SetTimeout(v int64) *JobRun {
+ s.Timeout = &v
return s
}
-// SetPath sets the Path field's value.
-func (s *JdbcTarget) SetPath(v string) *JdbcTarget {
- s.Path = &v
+// SetTriggerName sets the TriggerName field's value.
+func (s *JobRun) SetTriggerName(v string) *JobRun {
+ s.TriggerName = &v
return s
}
-// Specifies a job definition.
-type Job struct {
+// Specifies information used to update an existing job definition. Note that
+// the previous job definition will be completely overwritten by this information.
+type JobUpdate struct {
_ struct{} `type:"structure"`
- // This field is deprecated, use MaxCapacity instead.
+ // This field is deprecated. Use MaxCapacity instead.
//
- // The number of AWS Glue data processing units (DPUs) allocated to runs of
- // 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/).
+ // 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/).
//
// Deprecated: This property is deprecated, use MaxCapacity instead.
AllocatedCapacity *int64 `deprecated:"true" 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 time and date that this job definition was created.
- CreatedOn *time.Time `type:"timestamp"`
-
- // The default arguments for this job, specified as name-value pairs.
+ // 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.
@@ -17142,27 +19363,32 @@ type Job struct {
// for this job.
ExecutionProperty *ExecutionProperty `type:"structure"`
- // The last point in time when this job definition was modified.
- LastModifiedOn *time.Time `type:"timestamp"`
-
// This field is reserved for future use.
LogUri *string `type:"string"`
- // AWS Glue supports running jobs on a JobCommand.Name="pythonshell" with allocated
- // processing as low as 0.0625 DPU, which can be specified using MaxCapacity.
- // Glue ETL jobs running in any other way cannot have fractional DPU allocations.
+ // The number of AWS Glue data processing units (DPUs) that can be allocated
+ // when this job runs. 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/).
+ //
+ // The value that can be allocated for MaxCapacity depends on whether you are
+ // running a python shell job, or an Apache Spark ETL job:
+ //
+ // * When you specify a python shell job (JobCommand.Name="pythonshell"),
+ // you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
+ //
+ // * When you specify an Apache Spark ETL job (JobCommand.Name="glueetl"),
+ // you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job
+ // type cannot have a fractional DPU allocation.
MaxCapacity *float64 `type:"double"`
- // The maximum number of times to retry this job after a JobRun fails.
+ // The maximum number of times to retry this job if it fails.
MaxRetries *int64 `type:"integer"`
- // The name you assign to this job definition.
- Name *string `min:"1" type:"string"`
-
// Specifies configuration properties of a job notification.
NotificationProperty *NotificationProperty `type:"structure"`
- // The name or ARN of the IAM role associated with this job.
+ // The name or ARN of the IAM role associated with this job (required).
Role *string `type:"string"`
// The name of the SecurityConfiguration structure to be used with this job.
@@ -17175,547 +19401,453 @@ type Job struct {
}
// String returns the string representation
-func (s Job) String() string {
+func (s JobUpdate) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s Job) GoString() string {
+func (s JobUpdate) GoString() string {
return s.String()
}
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *JobUpdate) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "JobUpdate"}
+ if s.SecurityConfiguration != nil && len(*s.SecurityConfiguration) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("SecurityConfiguration", 1))
+ }
+ if s.Timeout != nil && *s.Timeout < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("Timeout", 1))
+ }
+ if s.NotificationProperty != nil {
+ if err := s.NotificationProperty.Validate(); err != nil {
+ invalidParams.AddNested("NotificationProperty", err.(request.ErrInvalidParams))
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
// SetAllocatedCapacity sets the AllocatedCapacity field's value.
-func (s *Job) SetAllocatedCapacity(v int64) *Job {
+func (s *JobUpdate) SetAllocatedCapacity(v int64) *JobUpdate {
s.AllocatedCapacity = &v
return s
}
// SetCommand sets the Command field's value.
-func (s *Job) SetCommand(v *JobCommand) *Job {
+func (s *JobUpdate) SetCommand(v *JobCommand) *JobUpdate {
s.Command = v
return s
}
// SetConnections sets the Connections field's value.
-func (s *Job) SetConnections(v *ConnectionsList) *Job {
+func (s *JobUpdate) SetConnections(v *ConnectionsList) *JobUpdate {
s.Connections = v
return s
}
-// SetCreatedOn sets the CreatedOn field's value.
-func (s *Job) SetCreatedOn(v time.Time) *Job {
- s.CreatedOn = &v
- return s
-}
-
// SetDefaultArguments sets the DefaultArguments field's value.
-func (s *Job) SetDefaultArguments(v map[string]*string) *Job {
+func (s *JobUpdate) SetDefaultArguments(v map[string]*string) *JobUpdate {
s.DefaultArguments = v
return s
}
// SetDescription sets the Description field's value.
-func (s *Job) SetDescription(v string) *Job {
+func (s *JobUpdate) SetDescription(v string) *JobUpdate {
s.Description = &v
return s
}
// SetExecutionProperty sets the ExecutionProperty field's value.
-func (s *Job) SetExecutionProperty(v *ExecutionProperty) *Job {
+func (s *JobUpdate) SetExecutionProperty(v *ExecutionProperty) *JobUpdate {
s.ExecutionProperty = v
return s
}
-// SetLastModifiedOn sets the LastModifiedOn field's value.
-func (s *Job) SetLastModifiedOn(v time.Time) *Job {
- s.LastModifiedOn = &v
- return s
-}
-
// SetLogUri sets the LogUri field's value.
-func (s *Job) SetLogUri(v string) *Job {
+func (s *JobUpdate) SetLogUri(v string) *JobUpdate {
s.LogUri = &v
return s
}
// SetMaxCapacity sets the MaxCapacity field's value.
-func (s *Job) SetMaxCapacity(v float64) *Job {
+func (s *JobUpdate) SetMaxCapacity(v float64) *JobUpdate {
s.MaxCapacity = &v
return s
}
// SetMaxRetries sets the MaxRetries field's value.
-func (s *Job) SetMaxRetries(v int64) *Job {
+func (s *JobUpdate) SetMaxRetries(v int64) *JobUpdate {
s.MaxRetries = &v
return s
}
-// SetName sets the Name field's value.
-func (s *Job) SetName(v string) *Job {
- s.Name = &v
- return s
-}
-
// SetNotificationProperty sets the NotificationProperty field's value.
-func (s *Job) SetNotificationProperty(v *NotificationProperty) *Job {
+func (s *JobUpdate) SetNotificationProperty(v *NotificationProperty) *JobUpdate {
s.NotificationProperty = v
return s
}
// SetRole sets the Role field's value.
-func (s *Job) SetRole(v string) *Job {
+func (s *JobUpdate) SetRole(v string) *JobUpdate {
s.Role = &v
return s
}
// SetSecurityConfiguration sets the SecurityConfiguration field's value.
-func (s *Job) SetSecurityConfiguration(v string) *Job {
+func (s *JobUpdate) SetSecurityConfiguration(v string) *JobUpdate {
s.SecurityConfiguration = &v
return s
}
// SetTimeout sets the Timeout field's value.
-func (s *Job) SetTimeout(v int64) *Job {
+func (s *JobUpdate) SetTimeout(v int64) *JobUpdate {
s.Timeout = &v
return s
}
-// Defines a point which a job can resume processing.
-type JobBookmarkEntry struct {
+// A classifier for JSON content.
+type JsonClassifier struct {
_ struct{} `type:"structure"`
- // The attempt ID number.
- Attempt *int64 `type:"integer"`
+ // The time this classifier was registered.
+ CreationTime *time.Time `type:"timestamp"`
- // The bookmark itself.
- JobBookmark *string `type:"string"`
+ // 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"`
- // Name of the job in question.
- JobName *string `type:"string"`
+ // The time this classifier was last updated.
+ LastUpdated *time.Time `type:"timestamp"`
- // The run ID number.
- Run *int64 `type:"integer"`
+ // The name of the classifier.
+ //
+ // Name is a required field
+ Name *string `min:"1" type:"string" required:"true"`
- // Version of the job.
- Version *int64 `type:"integer"`
+ // The version of this classifier.
+ Version *int64 `type:"long"`
}
// String returns the string representation
-func (s JobBookmarkEntry) String() string {
+func (s JsonClassifier) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s JobBookmarkEntry) GoString() string {
+func (s JsonClassifier) GoString() string {
return s.String()
}
-// SetAttempt sets the Attempt field's value.
-func (s *JobBookmarkEntry) SetAttempt(v int64) *JobBookmarkEntry {
- s.Attempt = &v
+// SetCreationTime sets the CreationTime field's value.
+func (s *JsonClassifier) SetCreationTime(v time.Time) *JsonClassifier {
+ s.CreationTime = &v
return s
}
-// SetJobBookmark sets the JobBookmark field's value.
-func (s *JobBookmarkEntry) SetJobBookmark(v string) *JobBookmarkEntry {
- s.JobBookmark = &v
+// SetJsonPath sets the JsonPath field's value.
+func (s *JsonClassifier) SetJsonPath(v string) *JsonClassifier {
+ s.JsonPath = &v
return s
}
-// SetJobName sets the JobName field's value.
-func (s *JobBookmarkEntry) SetJobName(v string) *JobBookmarkEntry {
- s.JobName = &v
+// SetLastUpdated sets the LastUpdated field's value.
+func (s *JsonClassifier) SetLastUpdated(v time.Time) *JsonClassifier {
+ s.LastUpdated = &v
return s
}
-// SetRun sets the Run field's value.
-func (s *JobBookmarkEntry) SetRun(v int64) *JobBookmarkEntry {
- s.Run = &v
+// 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 *JobBookmarkEntry) SetVersion(v int64) *JobBookmarkEntry {
+func (s *JsonClassifier) SetVersion(v int64) *JsonClassifier {
s.Version = &v
return s
}
-// Specifies how Job bookmark data should be encrypted.
-type JobBookmarksEncryption struct {
+// Status and error information about the most recent crawl.
+type LastCrawlInfo struct {
_ struct{} `type:"structure"`
- // The encryption mode to use for Job bookmarks data.
- JobBookmarksEncryptionMode *string `type:"string" enum:"JobBookmarksEncryptionMode"`
+ // If an error occurred, the error information about the last crawl.
+ ErrorMessage *string `type:"string"`
- // The AWS ARN of the KMS key to be used to encrypt the data.
- KmsKeyArn *string `type:"string"`
+ // The log group for the last crawl.
+ LogGroup *string `min:"1" type:"string"`
+
+ // The log stream for the last crawl.
+ LogStream *string `min:"1" type:"string"`
+
+ // The prefix for a message about this crawl.
+ MessagePrefix *string `min:"1" type:"string"`
+
+ // The time at which the crawl started.
+ StartTime *time.Time `type:"timestamp"`
+
+ // Status of the last crawl.
+ Status *string `type:"string" enum:"LastCrawlStatus"`
}
// String returns the string representation
-func (s JobBookmarksEncryption) String() string {
+func (s LastCrawlInfo) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s JobBookmarksEncryption) GoString() string {
+func (s LastCrawlInfo) GoString() string {
return s.String()
}
-// SetJobBookmarksEncryptionMode sets the JobBookmarksEncryptionMode field's value.
-func (s *JobBookmarksEncryption) SetJobBookmarksEncryptionMode(v string) *JobBookmarksEncryption {
- s.JobBookmarksEncryptionMode = &v
+// SetErrorMessage sets the ErrorMessage field's value.
+func (s *LastCrawlInfo) SetErrorMessage(v string) *LastCrawlInfo {
+ s.ErrorMessage = &v
return s
}
-// SetKmsKeyArn sets the KmsKeyArn field's value.
-func (s *JobBookmarksEncryption) SetKmsKeyArn(v string) *JobBookmarksEncryption {
- s.KmsKeyArn = &v
+// SetLogGroup sets the LogGroup field's value.
+func (s *LastCrawlInfo) SetLogGroup(v string) *LastCrawlInfo {
+ s.LogGroup = &v
return s
}
-// Specifies code executed when a job is run.
-type JobCommand struct {
- _ struct{} `type:"structure"`
-
- // The name of the job command: this must be glueetl, for an Apache Spark ETL
- // job, or pythonshell, for a Python shell job.
- Name *string `type:"string"`
-
- // Specifies the S3 path to a script that executes a job (required).
- ScriptLocation *string `type:"string"`
-}
-
-// String returns the string representation
-func (s JobCommand) String() string {
- return awsutil.Prettify(s)
-}
-
-// GoString returns the string representation
-func (s JobCommand) GoString() string {
- return s.String()
+// SetLogStream sets the LogStream field's value.
+func (s *LastCrawlInfo) SetLogStream(v string) *LastCrawlInfo {
+ s.LogStream = &v
+ return s
}
-// SetName sets the Name field's value.
-func (s *JobCommand) SetName(v string) *JobCommand {
- s.Name = &v
+// SetMessagePrefix sets the MessagePrefix field's value.
+func (s *LastCrawlInfo) SetMessagePrefix(v string) *LastCrawlInfo {
+ s.MessagePrefix = &v
return s
}
-// SetScriptLocation sets the ScriptLocation field's value.
-func (s *JobCommand) SetScriptLocation(v string) *JobCommand {
- s.ScriptLocation = &v
+// SetStartTime sets the StartTime field's value.
+func (s *LastCrawlInfo) SetStartTime(v time.Time) *LastCrawlInfo {
+ s.StartTime = &v
return s
}
-// Contains information about a job run.
-type JobRun struct {
- _ struct{} `type:"structure"`
-
- // This field is deprecated, use MaxCapacity instead.
- //
- // 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/).
- //
- // Deprecated: This property is deprecated, use MaxCapacity instead.
- AllocatedCapacity *int64 `deprecated:"true" type:"integer"`
-
- // 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-etl-glue-arguments.html)
- // topic in the developer guide.
- Arguments map[string]*string `type:"map"`
-
- // The number of the attempt to run this job.
- Attempt *int64 `type:"integer"`
-
- // The date and time this job run completed.
- CompletedOn *time.Time `type:"timestamp"`
-
- // An error message associated with this job run.
- ErrorMessage *string `type:"string"`
-
- // The amount of time (in seconds) that the job run consumed resources.
- ExecutionTime *int64 `type:"integer"`
-
- // The ID of this job run.
- Id *string `min:"1" type:"string"`
-
- // The name of the job definition being used in this run.
- JobName *string `min:"1" type:"string"`
-
- // The current state of the job run.
- JobRunState *string `type:"string" enum:"JobRunState"`
-
- // The last time this job run was modified.
- LastModifiedOn *time.Time `type:"timestamp"`
-
- // The name of the log group for secure logging, that can be server-side encrypted
- // in CloudWatch using KMS. This name can be /aws-glue/jobs/, in which case
- // the default encryption is NONE. If you add a role name and SecurityConfiguration
- // name (in other words, /aws-glue/jobs-yourRoleName-yourSecurityConfigurationName/),
- // then that security configuration will be used to encrypt the log group.
- LogGroupName *string `type:"string"`
-
- // AWS Glue supports running jobs on a JobCommand.Name="pythonshell" with allocated
- // processing as low as 0.0625 DPU, which can be specified using MaxCapacity.
- // Glue ETL jobs running in any other way cannot have fractional DPU allocations.
- MaxCapacity *float64 `type:"double"`
-
- // Specifies configuration properties of a job run notification.
- NotificationProperty *NotificationProperty `type:"structure"`
-
- // A list of predecessors to this job run.
- PredecessorRuns []*Predecessor `type:"list"`
-
- // The ID of the previous run of this job. For example, the JobRunId specified
- // in the StartJobRun action.
- PreviousRunId *string `min:"1" type:"string"`
+// SetStatus sets the Status field's value.
+func (s *LastCrawlInfo) SetStatus(v string) *LastCrawlInfo {
+ s.Status = &v
+ return s
+}
- // The name of the SecurityConfiguration structure to be used with this job
- // run.
- SecurityConfiguration *string `min:"1" type:"string"`
+type ListCrawlersInput struct {
+ _ struct{} `type:"structure"`
- // The date and time at which this job run was started.
- StartedOn *time.Time `type:"timestamp"`
+ // The maximum size of a list to return.
+ MaxResults *int64 `min:"1" type:"integer"`
- // The JobRun timeout in minutes. This is the maximum time that a job run can
- // consume resources before it is terminated and enters TIMEOUT status. The
- // default is 2,880 minutes (48 hours). This overrides the timeout value set
- // in the parent job.
- Timeout *int64 `min:"1" type:"integer"`
+ // A continuation token, if this is a continuation request.
+ NextToken *string `type:"string"`
- // The name of the trigger that started this job run.
- TriggerName *string `min:"1" type:"string"`
+ // Specifies to return only these tagged resources.
+ Tags map[string]*string `type:"map"`
}
// String returns the string representation
-func (s JobRun) String() string {
+func (s ListCrawlersInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s JobRun) GoString() string {
+func (s ListCrawlersInput) GoString() string {
return s.String()
}
-// SetAllocatedCapacity sets the AllocatedCapacity field's value.
-func (s *JobRun) SetAllocatedCapacity(v int64) *JobRun {
- s.AllocatedCapacity = &v
- return s
-}
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ListCrawlersInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ListCrawlersInput"}
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+ }
-// SetArguments sets the Arguments field's value.
-func (s *JobRun) SetArguments(v map[string]*string) *JobRun {
- s.Arguments = v
- return s
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
}
-// SetAttempt sets the Attempt field's value.
-func (s *JobRun) SetAttempt(v int64) *JobRun {
- s.Attempt = &v
+// SetMaxResults sets the MaxResults field's value.
+func (s *ListCrawlersInput) SetMaxResults(v int64) *ListCrawlersInput {
+ s.MaxResults = &v
return s
}
-// SetCompletedOn sets the CompletedOn field's value.
-func (s *JobRun) SetCompletedOn(v time.Time) *JobRun {
- s.CompletedOn = &v
+// SetNextToken sets the NextToken field's value.
+func (s *ListCrawlersInput) SetNextToken(v string) *ListCrawlersInput {
+ s.NextToken = &v
return s
}
-// SetErrorMessage sets the ErrorMessage field's value.
-func (s *JobRun) SetErrorMessage(v string) *JobRun {
- s.ErrorMessage = &v
+// SetTags sets the Tags field's value.
+func (s *ListCrawlersInput) SetTags(v map[string]*string) *ListCrawlersInput {
+ s.Tags = v
return s
}
-// SetExecutionTime sets the ExecutionTime field's value.
-func (s *JobRun) SetExecutionTime(v int64) *JobRun {
- s.ExecutionTime = &v
- return s
-}
+type ListCrawlersOutput struct {
+ _ struct{} `type:"structure"`
-// SetId sets the Id field's value.
-func (s *JobRun) SetId(v string) *JobRun {
- s.Id = &v
- return s
-}
+ // The names of all crawlers in the account, or the crawlers with the specified
+ // tags.
+ CrawlerNames []*string `type:"list"`
-// SetJobName sets the JobName field's value.
-func (s *JobRun) SetJobName(v string) *JobRun {
- s.JobName = &v
- return s
+ // A continuation token, if the returned list does not contain the last metric
+ // available.
+ NextToken *string `type:"string"`
}
-// SetJobRunState sets the JobRunState field's value.
-func (s *JobRun) SetJobRunState(v string) *JobRun {
- s.JobRunState = &v
- return s
+// String returns the string representation
+func (s ListCrawlersOutput) String() string {
+ return awsutil.Prettify(s)
}
-// SetLastModifiedOn sets the LastModifiedOn field's value.
-func (s *JobRun) SetLastModifiedOn(v time.Time) *JobRun {
- s.LastModifiedOn = &v
- return s
+// GoString returns the string representation
+func (s ListCrawlersOutput) GoString() string {
+ return s.String()
}
-// SetLogGroupName sets the LogGroupName field's value.
-func (s *JobRun) SetLogGroupName(v string) *JobRun {
- s.LogGroupName = &v
+// SetCrawlerNames sets the CrawlerNames field's value.
+func (s *ListCrawlersOutput) SetCrawlerNames(v []*string) *ListCrawlersOutput {
+ s.CrawlerNames = v
return s
}
-// SetMaxCapacity sets the MaxCapacity field's value.
-func (s *JobRun) SetMaxCapacity(v float64) *JobRun {
- s.MaxCapacity = &v
+// SetNextToken sets the NextToken field's value.
+func (s *ListCrawlersOutput) SetNextToken(v string) *ListCrawlersOutput {
+ s.NextToken = &v
return s
}
-// SetNotificationProperty sets the NotificationProperty field's value.
-func (s *JobRun) SetNotificationProperty(v *NotificationProperty) *JobRun {
- s.NotificationProperty = v
- return s
+type ListDevEndpointsInput struct {
+ _ struct{} `type:"structure"`
+
+ // The maximum size of a list to return.
+ MaxResults *int64 `min:"1" type:"integer"`
+
+ // A continuation token, if this is a continuation request.
+ NextToken *string `type:"string"`
+
+ // Specifies to return only these tagged resources.
+ Tags map[string]*string `type:"map"`
}
-// SetPredecessorRuns sets the PredecessorRuns field's value.
-func (s *JobRun) SetPredecessorRuns(v []*Predecessor) *JobRun {
- s.PredecessorRuns = v
- return s
+// String returns the string representation
+func (s ListDevEndpointsInput) String() string {
+ return awsutil.Prettify(s)
}
-// SetPreviousRunId sets the PreviousRunId field's value.
-func (s *JobRun) SetPreviousRunId(v string) *JobRun {
- s.PreviousRunId = &v
- return s
+// GoString returns the string representation
+func (s ListDevEndpointsInput) GoString() string {
+ return s.String()
}
-// SetSecurityConfiguration sets the SecurityConfiguration field's value.
-func (s *JobRun) SetSecurityConfiguration(v string) *JobRun {
- s.SecurityConfiguration = &v
- return s
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ListDevEndpointsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ListDevEndpointsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
}
-// SetStartedOn sets the StartedOn field's value.
-func (s *JobRun) SetStartedOn(v time.Time) *JobRun {
- s.StartedOn = &v
+// SetMaxResults sets the MaxResults field's value.
+func (s *ListDevEndpointsInput) SetMaxResults(v int64) *ListDevEndpointsInput {
+ s.MaxResults = &v
return s
}
-// SetTimeout sets the Timeout field's value.
-func (s *JobRun) SetTimeout(v int64) *JobRun {
- s.Timeout = &v
+// SetNextToken sets the NextToken field's value.
+func (s *ListDevEndpointsInput) SetNextToken(v string) *ListDevEndpointsInput {
+ s.NextToken = &v
return s
}
-// SetTriggerName sets the TriggerName field's value.
-func (s *JobRun) SetTriggerName(v string) *JobRun {
- s.TriggerName = &v
+// SetTags sets the Tags field's value.
+func (s *ListDevEndpointsInput) SetTags(v map[string]*string) *ListDevEndpointsInput {
+ s.Tags = v
return s
}
-// Specifies information used to update an existing job definition. Note that
-// the previous job definition will be completely overwritten by this information.
-type JobUpdate struct {
+type ListDevEndpointsOutput struct {
_ struct{} `type:"structure"`
- // This field is deprecated. Use MaxCapacity instead.
- //
- // 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/).
- //
- // Deprecated: This property is deprecated, use MaxCapacity instead.
- AllocatedCapacity *int64 `deprecated:"true" type:"integer"`
-
- // The JobCommand that executes this job (required).
- Command *JobCommand `type:"structure"`
-
- // The connections used for this job.
- Connections *ConnectionsList `type:"structure"`
-
- // 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-etl-glue-arguments.html)
- // topic in the developer guide.
- DefaultArguments map[string]*string `type:"map"`
+ // The names of all DevEndpoints in the account, or the DevEndpoints with the
+ // specified tags.
+ DevEndpointNames []*string `type:"list"`
- // Description of the job being defined.
- Description *string `type:"string"`
+ // A continuation token, if the returned list does not contain the last metric
+ // available.
+ NextToken *string `type:"string"`
+}
- // An ExecutionProperty specifying the maximum number of concurrent runs allowed
- // for this job.
- ExecutionProperty *ExecutionProperty `type:"structure"`
+// String returns the string representation
+func (s ListDevEndpointsOutput) String() string {
+ return awsutil.Prettify(s)
+}
- // This field is reserved for future use.
- LogUri *string `type:"string"`
+// GoString returns the string representation
+func (s ListDevEndpointsOutput) GoString() string {
+ return s.String()
+}
- // AWS Glue supports running jobs on a JobCommand.Name="pythonshell" with allocated
- // processing as low as 0.0625 DPU, which can be specified using MaxCapacity.
- // Glue ETL jobs running in any other way cannot have fractional DPU allocations.
- MaxCapacity *float64 `type:"double"`
+// SetDevEndpointNames sets the DevEndpointNames field's value.
+func (s *ListDevEndpointsOutput) SetDevEndpointNames(v []*string) *ListDevEndpointsOutput {
+ s.DevEndpointNames = v
+ return s
+}
- // The maximum number of times to retry this job if it fails.
- MaxRetries *int64 `type:"integer"`
+// SetNextToken sets the NextToken field's value.
+func (s *ListDevEndpointsOutput) SetNextToken(v string) *ListDevEndpointsOutput {
+ s.NextToken = &v
+ return s
+}
- // Specifies configuration properties of a job notification.
- NotificationProperty *NotificationProperty `type:"structure"`
+type ListJobsInput struct {
+ _ struct{} `type:"structure"`
- // The name or ARN of the IAM role associated with this job (required).
- Role *string `type:"string"`
+ // The maximum size of a list to return.
+ MaxResults *int64 `min:"1" type:"integer"`
- // The name of the SecurityConfiguration structure to be used with this job.
- SecurityConfiguration *string `min:"1" type:"string"`
+ // A continuation token, if this is a continuation request.
+ NextToken *string `type:"string"`
- // The job timeout in minutes. This is the maximum time that a job run can consume
- // resources before it is terminated and enters TIMEOUT status. The default
- // is 2,880 minutes (48 hours).
- Timeout *int64 `min:"1" type:"integer"`
+ // Specifies to return only these tagged resources.
+ Tags map[string]*string `type:"map"`
}
// String returns the string representation
-func (s JobUpdate) String() string {
+func (s ListJobsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s JobUpdate) GoString() string {
+func (s ListJobsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
-func (s *JobUpdate) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "JobUpdate"}
- if s.SecurityConfiguration != nil && len(*s.SecurityConfiguration) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecurityConfiguration", 1))
- }
- if s.Timeout != nil && *s.Timeout < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Timeout", 1))
- }
- if s.NotificationProperty != nil {
- if err := s.NotificationProperty.Validate(); err != nil {
- invalidParams.AddNested("NotificationProperty", err.(request.ErrInvalidParams))
- }
+func (s *ListJobsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
if invalidParams.Len() > 0 {
@@ -17724,216 +19856,156 @@ func (s *JobUpdate) Validate() error {
return nil
}
-// SetAllocatedCapacity sets the AllocatedCapacity field's value.
-func (s *JobUpdate) SetAllocatedCapacity(v int64) *JobUpdate {
- s.AllocatedCapacity = &v
- return s
-}
-
-// SetCommand sets the Command field's value.
-func (s *JobUpdate) SetCommand(v *JobCommand) *JobUpdate {
- s.Command = v
- return s
-}
-
-// SetConnections sets the Connections field's value.
-func (s *JobUpdate) SetConnections(v *ConnectionsList) *JobUpdate {
- s.Connections = v
- return s
-}
-
-// SetDefaultArguments sets the DefaultArguments field's value.
-func (s *JobUpdate) SetDefaultArguments(v map[string]*string) *JobUpdate {
- s.DefaultArguments = v
- return s
-}
-
-// SetDescription sets the Description field's value.
-func (s *JobUpdate) SetDescription(v string) *JobUpdate {
- s.Description = &v
+// SetMaxResults sets the MaxResults field's value.
+func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
+ s.MaxResults = &v
return s
}
-// SetExecutionProperty sets the ExecutionProperty field's value.
-func (s *JobUpdate) SetExecutionProperty(v *ExecutionProperty) *JobUpdate {
- s.ExecutionProperty = v
+// SetNextToken sets the NextToken field's value.
+func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
+ s.NextToken = &v
return s
}
-// SetLogUri sets the LogUri field's value.
-func (s *JobUpdate) SetLogUri(v string) *JobUpdate {
- s.LogUri = &v
+// SetTags sets the Tags field's value.
+func (s *ListJobsInput) SetTags(v map[string]*string) *ListJobsInput {
+ s.Tags = v
return s
}
-// SetMaxCapacity sets the MaxCapacity field's value.
-func (s *JobUpdate) SetMaxCapacity(v float64) *JobUpdate {
- s.MaxCapacity = &v
- return s
-}
+type ListJobsOutput struct {
+ _ struct{} `type:"structure"`
-// SetMaxRetries sets the MaxRetries field's value.
-func (s *JobUpdate) SetMaxRetries(v int64) *JobUpdate {
- s.MaxRetries = &v
- return s
+ // The names of all jobs in the account, or the jobs with the specified tags.
+ JobNames []*string `type:"list"`
+
+ // A continuation token, if the returned list does not contain the last metric
+ // available.
+ NextToken *string `type:"string"`
}
-// SetNotificationProperty sets the NotificationProperty field's value.
-func (s *JobUpdate) SetNotificationProperty(v *NotificationProperty) *JobUpdate {
- s.NotificationProperty = v
- return s
+// String returns the string representation
+func (s ListJobsOutput) String() string {
+ return awsutil.Prettify(s)
}
-// SetRole sets the Role field's value.
-func (s *JobUpdate) SetRole(v string) *JobUpdate {
- s.Role = &v
- return s
+// GoString returns the string representation
+func (s ListJobsOutput) GoString() string {
+ return s.String()
}
-// SetSecurityConfiguration sets the SecurityConfiguration field's value.
-func (s *JobUpdate) SetSecurityConfiguration(v string) *JobUpdate {
- s.SecurityConfiguration = &v
+// SetJobNames sets the JobNames field's value.
+func (s *ListJobsOutput) SetJobNames(v []*string) *ListJobsOutput {
+ s.JobNames = v
return s
}
-// SetTimeout sets the Timeout field's value.
-func (s *JobUpdate) SetTimeout(v int64) *JobUpdate {
- s.Timeout = &v
+// SetNextToken sets the NextToken field's value.
+func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
+ s.NextToken = &v
return s
}
-// A classifier for JSON content.
-type JsonClassifier struct {
+type ListTriggersInput struct {
_ struct{} `type:"structure"`
- // The time this classifier was registered.
- CreationTime *time.Time `type:"timestamp"`
-
- // 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 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 time this classifier was last updated.
- LastUpdated *time.Time `type:"timestamp"`
+ // The maximum size of a list to return.
+ MaxResults *int64 `min:"1" type:"integer"`
- // The name of the classifier.
- //
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
+ // A continuation token, if this is a continuation request.
+ NextToken *string `type:"string"`
- // The version of this classifier.
- Version *int64 `type:"long"`
+ // Specifies to return only these tagged resources.
+ Tags map[string]*string `type:"map"`
}
// String returns the string representation
-func (s JsonClassifier) String() string {
+func (s ListTriggersInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s JsonClassifier) GoString() string {
+func (s ListTriggersInput) 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
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ListTriggersInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ListTriggersInput"}
+ if s.DependentJobName != nil && len(*s.DependentJobName) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("DependentJobName", 1))
+ }
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
}
-// SetJsonPath sets the JsonPath field's value.
-func (s *JsonClassifier) SetJsonPath(v string) *JsonClassifier {
- s.JsonPath = &v
+// SetDependentJobName sets the DependentJobName field's value.
+func (s *ListTriggersInput) SetDependentJobName(v string) *ListTriggersInput {
+ s.DependentJobName = &v
return s
}
-// SetLastUpdated sets the LastUpdated field's value.
-func (s *JsonClassifier) SetLastUpdated(v time.Time) *JsonClassifier {
- s.LastUpdated = &v
+// SetMaxResults sets the MaxResults field's value.
+func (s *ListTriggersInput) SetMaxResults(v int64) *ListTriggersInput {
+ s.MaxResults = &v
return s
}
-// SetName sets the Name field's value.
-func (s *JsonClassifier) SetName(v string) *JsonClassifier {
- s.Name = &v
+// SetNextToken sets the NextToken field's value.
+func (s *ListTriggersInput) SetNextToken(v string) *ListTriggersInput {
+ s.NextToken = &v
return s
}
-// SetVersion sets the Version field's value.
-func (s *JsonClassifier) SetVersion(v int64) *JsonClassifier {
- s.Version = &v
+// SetTags sets the Tags field's value.
+func (s *ListTriggersInput) SetTags(v map[string]*string) *ListTriggersInput {
+ s.Tags = v
return s
}
-// Status and error information about the most recent crawl.
-type LastCrawlInfo struct {
+type ListTriggersOutput struct {
_ struct{} `type:"structure"`
- // If an error occurred, the error information about the last crawl.
- ErrorMessage *string `type:"string"`
-
- // The log group for the last crawl.
- LogGroup *string `min:"1" type:"string"`
-
- // The log stream for the last crawl.
- LogStream *string `min:"1" type:"string"`
-
- // The prefix for a message about this crawl.
- MessagePrefix *string `min:"1" type:"string"`
-
- // The time at which the crawl started.
- StartTime *time.Time `type:"timestamp"`
+ // A continuation token, if the returned list does not contain the last metric
+ // available.
+ NextToken *string `type:"string"`
- // Status of the last crawl.
- Status *string `type:"string" enum:"LastCrawlStatus"`
+ // The names of all triggers in the account, or the triggers with the specified
+ // tags.
+ TriggerNames []*string `type:"list"`
}
// String returns the string representation
-func (s LastCrawlInfo) String() string {
+func (s ListTriggersOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
-func (s LastCrawlInfo) GoString() string {
+func (s ListTriggersOutput) GoString() string {
return s.String()
}
-// SetErrorMessage sets the ErrorMessage field's value.
-func (s *LastCrawlInfo) SetErrorMessage(v string) *LastCrawlInfo {
- s.ErrorMessage = &v
- return s
-}
-
-// SetLogGroup sets the LogGroup field's value.
-func (s *LastCrawlInfo) SetLogGroup(v string) *LastCrawlInfo {
- s.LogGroup = &v
- return s
-}
-
-// SetLogStream sets the LogStream field's value.
-func (s *LastCrawlInfo) SetLogStream(v string) *LastCrawlInfo {
- s.LogStream = &v
- return s
-}
-
-// SetMessagePrefix sets the MessagePrefix field's value.
-func (s *LastCrawlInfo) SetMessagePrefix(v string) *LastCrawlInfo {
- s.MessagePrefix = &v
- return s
-}
-
-// SetStartTime sets the StartTime field's value.
-func (s *LastCrawlInfo) SetStartTime(v time.Time) *LastCrawlInfo {
- s.StartTime = &v
+// SetNextToken sets the NextToken field's value.
+func (s *ListTriggersOutput) SetNextToken(v string) *ListTriggersOutput {
+ s.NextToken = &v
return s
}
-// SetStatus sets the Status field's value.
-func (s *LastCrawlInfo) SetStatus(v string) *LastCrawlInfo {
- s.Status = &v
+// SetTriggerNames sets the TriggerNames field's value.
+func (s *ListTriggersOutput) SetTriggerNames(v []*string) *ListTriggersOutput {
+ s.TriggerNames = v
return s
}
@@ -18319,7 +20391,8 @@ type PartitionInput struct {
// Provides information about the physical location where the partition is stored.
StorageDescriptor *StorageDescriptor `type:"structure"`
- // The values of the partition.
+ // The values of the partition. Although this parameter is not required by the
+ // SDK, you must specify this parameter for a valid input.
Values []*string `type:"list"`
}
@@ -18421,9 +20494,9 @@ func (s *PartitionValueList) SetValues(v []*string) *PartitionValueList {
type PhysicalConnectionRequirements struct {
_ struct{} `type:"structure"`
- // The connection's availability zone. This field is redundant, since the specified
- // subnet implies the availability zone to be used. The field must be populated
- // now, but will be deprecated in the future.
+ // The connection's Availability Zone. This field is redundant because the specified
+ // subnet implies the Availability Zone to be used. Currently the field must
+ // be populated, but it will be deprecated in the future.
AvailabilityZone *string `min:"1" type:"string"`
// The security group ID list used by the connection.
@@ -18569,7 +20642,7 @@ type PutDataCatalogEncryptionSettingsInput struct {
_ struct{} `type:"structure"`
// The ID of the Data Catalog for which to set the security configuration. If
- // none is supplied, the AWS account ID is used by default.
+ // none is provided, the AWS account ID is used by default.
CatalogId *string `min:"1" type:"string"`
// The security configuration to set.
@@ -18643,7 +20716,7 @@ type PutResourcePolicyInput struct {
// the call will not depend on the existence of a policy.
PolicyExistsCondition *string `type:"string" enum:"ExistCondition"`
- // This is the hash value returned when the previous policy was set using PutResourcePolicy.
+ // The hash value returned when the previous policy was set using PutResourcePolicy.
// Its purpose is to prevent concurrent modifications of a policy. Do not use
// this parameter if no previous policy has been set.
PolicyHashCondition *string `min:"1" type:"string"`
@@ -19295,8 +21368,8 @@ type StartJobRunInput struct {
// Deprecated: This property is deprecated, use MaxCapacity instead.
AllocatedCapacity *int64 `deprecated:"true" type:"integer"`
- // The job arguments specifically for this run. They override the equivalent
- // default arguments set for in the job definition itself.
+ // The job arguments specifically for this run. For this job run, they replace
+ // the default arguments set in the job definition itself.
//
// You can specify arguments here that your own job-execution script consumes,
// as well as arguments that AWS Glue itself consumes.
@@ -19318,9 +21391,20 @@ type StartJobRunInput struct {
// The ID of a previous JobRun to retry.
JobRunId *string `min:"1" type:"string"`
- // AWS Glue supports running jobs on a JobCommand.Name="pythonshell" with allocated
- // processing as low as 0.0625 DPU, which can be specified using MaxCapacity.
- // Glue ETL jobs running in any other way cannot have fractional DPU allocations.
+ // The number of AWS Glue data processing units (DPUs) that can be allocated
+ // when this job runs. 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/).
+ //
+ // The value that can be allocated for MaxCapacity depends on whether you are
+ // running a python shell job, or an Apache Spark ETL job:
+ //
+ // * When you specify a python shell job (JobCommand.Name="pythonshell"),
+ // you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
+ //
+ // * When you specify an Apache Spark ETL job (JobCommand.Name="glueetl"),
+ // you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job
+ // type cannot have a fractional DPU allocation.
MaxCapacity *float64 `type:"double"`
// Specifies configuration properties of a job run notification.
@@ -20297,6 +22381,76 @@ func (s *TableVersionError) SetVersionId(v string) *TableVersionError {
return s
}
+type TagResourceInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ARN of the AWS Glue resource to which to add the tags. For more information
+ // about AWS Glue resource ARNs, see the AWS Glue ARN string pattern (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-common.html#aws-glue-api-regex-aws-glue-arn-id).
+ //
+ // ResourceArn is a required field
+ ResourceArn *string `min:"1" type:"string" required:"true"`
+
+ // Tags to add to this resource.
+ //
+ // TagsToAdd is a required field
+ TagsToAdd map[string]*string `type:"map" 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.ResourceArn == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
+ }
+ if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
+ }
+ if s.TagsToAdd == nil {
+ invalidParams.Add(request.NewErrParamRequired("TagsToAdd"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceArn sets the ResourceArn field's value.
+func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
+ s.ResourceArn = &v
+ return s
+}
+
+// SetTagsToAdd sets the TagsToAdd field's value.
+func (s *TagResourceInput) SetTagsToAdd(v map[string]*string) *TagResourceInput {
+ s.TagsToAdd = v
+ return s
+}
+
+type TagResourceOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// 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()
+}
+
// Information about a specific trigger.
type Trigger struct {
_ struct{} `type:"structure"`
@@ -20479,6 +22633,75 @@ func (s *TriggerUpdate) SetSchedule(v string) *TriggerUpdate {
return s
}
+type UntagResourceInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ARN of the resource from which to remove the tags.
+ //
+ // ResourceArn is a required field
+ ResourceArn *string `min:"1" type:"string" required:"true"`
+
+ // Tags to remove from this resource.
+ //
+ // TagsToRemove is a required field
+ TagsToRemove []*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.ResourceArn == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
+ }
+ if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
+ }
+ if s.TagsToRemove == nil {
+ invalidParams.Add(request.NewErrParamRequired("TagsToRemove"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceArn sets the ResourceArn field's value.
+func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
+ s.ResourceArn = &v
+ return s
+}
+
+// SetTagsToRemove sets the TagsToRemove field's value.
+func (s *UntagResourceInput) SetTagsToRemove(v []*string) *UntagResourceInput {
+ s.TagsToRemove = v
+ return s
+}
+
+type UntagResourceOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// 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()
+}
+
type UpdateClassifierInput struct {
_ struct{} `type:"structure"`
@@ -20562,7 +22785,7 @@ func (s UpdateClassifierOutput) GoString() string {
type UpdateConnectionInput struct {
_ struct{} `type:"structure"`
- // The ID of the Data Catalog in which the connection resides. If none is supplied,
+ // The ID of the Data Catalog in which the connection resides. If none is provided,
// the AWS account ID is used by default.
CatalogId *string `min:"1" type:"string"`
diff --git a/vendor/github.com/aws/aws-sdk-go/service/iot/api.go b/vendor/github.com/aws/aws-sdk-go/service/iot/api.go
index 50a6db288c4..0dec8578027 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/iot/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/iot/api.go
@@ -721,7 +721,9 @@ func (c *IoT) AttachThingPrincipalRequest(input *AttachThingPrincipalInput) (req
// AttachThingPrincipal API operation for AWS IoT.
//
-// Attaches the specified principal to the specified thing.
+// Attaches the specified principal to the specified thing. A principal can
+// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
+// or federated identities.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -6975,7 +6977,9 @@ func (c *IoT) DetachThingPrincipalRequest(input *DetachThingPrincipalInput) (req
// DetachThingPrincipal API operation for AWS IoT.
//
-// Detaches the specified principal from the specified thing.
+// Detaches the specified principal from the specified thing. A principal can
+// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
+// or federated identities.
//
// This call is asynchronous. It might take several seconds for the detachment
// to propagate.
@@ -9822,7 +9826,9 @@ func (c *IoT) ListPrincipalThingsRequest(input *ListPrincipalThingsInput) (req *
// ListPrincipalThings API operation for AWS IoT.
//
-// Lists the things associated with the specified principal.
+// Lists the things associated with the specified principal. A principal can
+// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
+// or federated identities.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -10769,7 +10775,9 @@ func (c *IoT) ListThingPrincipalsRequest(input *ListThingPrincipalsInput) (req *
// ListThingPrincipals API operation for AWS IoT.
//
-// Lists the principals associated with the specified thing.
+// Lists the principals associated with the specified thing. A principal can
+// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
+// or federated identities.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -16853,6 +16861,11 @@ func (s *Behavior) Validate() error {
if s.Name != nil && len(*s.Name) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
+ if s.Criteria != nil {
+ if err := s.Criteria.Validate(); err != nil {
+ invalidParams.AddNested("Criteria", err.(request.ErrInvalidParams))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -16883,13 +16896,30 @@ type BehaviorCriteria struct {
_ struct{} `type:"structure"`
// The operator that relates the thing measured (metric) to the criteria (containing
- // a value.
+ // a value or statisticalThreshold).
ComparisonOperator *string `locationName:"comparisonOperator" type:"string" enum:"ComparisonOperator"`
+ // If a device is in violation of the behavior for the specified number of consecutive
+ // datapoints, an alarm occurs. If not specified, the default is 1.
+ ConsecutiveDatapointsToAlarm *int64 `locationName:"consecutiveDatapointsToAlarm" min:"1" type:"integer"`
+
+ // If an alarm has occurred and the offending device is no longer in violation
+ // of the behavior for the specified number of consecutive datapoints, the alarm
+ // is cleared. If not specified, the default is 1.
+ ConsecutiveDatapointsToClear *int64 `locationName:"consecutiveDatapointsToClear" min:"1" type:"integer"`
+
// Use this to specify the time duration over which the behavior is evaluated,
// for those criteria which have a time dimension (for example, NUM_MESSAGES_SENT).
+ // For a statisticalThreshhold metric comparison, measurements from all devices
+ // are accumulated over this time duration before being used to calculate percentiles,
+ // and later, measurements from an individual device are also accumulated over
+ // this time duration before being given a percentile rank.
DurationSeconds *int64 `locationName:"durationSeconds" type:"integer"`
+ // A statistical ranking (percentile) which indicates a threshold value by which
+ // a behavior is determined to be in compliance or in violation of the behavior.
+ StatisticalThreshold *StatisticalThreshold `locationName:"statisticalThreshold" type:"structure"`
+
// The value to be compared with the metric.
Value *MetricValue `locationName:"value" type:"structure"`
}
@@ -16904,18 +16934,52 @@ func (s BehaviorCriteria) GoString() string {
return s.String()
}
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *BehaviorCriteria) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "BehaviorCriteria"}
+ if s.ConsecutiveDatapointsToAlarm != nil && *s.ConsecutiveDatapointsToAlarm < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToAlarm", 1))
+ }
+ if s.ConsecutiveDatapointsToClear != nil && *s.ConsecutiveDatapointsToClear < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToClear", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
// SetComparisonOperator sets the ComparisonOperator field's value.
func (s *BehaviorCriteria) SetComparisonOperator(v string) *BehaviorCriteria {
s.ComparisonOperator = &v
return s
}
+// SetConsecutiveDatapointsToAlarm sets the ConsecutiveDatapointsToAlarm field's value.
+func (s *BehaviorCriteria) SetConsecutiveDatapointsToAlarm(v int64) *BehaviorCriteria {
+ s.ConsecutiveDatapointsToAlarm = &v
+ return s
+}
+
+// SetConsecutiveDatapointsToClear sets the ConsecutiveDatapointsToClear field's value.
+func (s *BehaviorCriteria) SetConsecutiveDatapointsToClear(v int64) *BehaviorCriteria {
+ s.ConsecutiveDatapointsToClear = &v
+ return s
+}
+
// SetDurationSeconds sets the DurationSeconds field's value.
func (s *BehaviorCriteria) SetDurationSeconds(v int64) *BehaviorCriteria {
s.DurationSeconds = &v
return s
}
+// SetStatisticalThreshold sets the StatisticalThreshold field's value.
+func (s *BehaviorCriteria) SetStatisticalThreshold(v *StatisticalThreshold) *BehaviorCriteria {
+ s.StatisticalThreshold = v
+ return s
+}
+
// SetValue sets the Value field's value.
func (s *BehaviorCriteria) SetValue(v *MetricValue) *BehaviorCriteria {
s.Value = v
@@ -19513,15 +19577,18 @@ func (s *CreateScheduledAuditOutput) SetScheduledAuditArn(v string) *CreateSched
type CreateSecurityProfileInput struct {
_ struct{} `type:"structure"`
+ // A list of metrics whose data is retained (stored). By default, data is retained
+ // for any metric used in the profile's behaviors but it is also retained for
+ // any metric specified here.
+ AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" type:"list"`
+
// Specifies the destinations to which alerts are sent. (Alerts are always sent
// to the console.) Alerts are generated when a device (thing) violates a behavior.
AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
// Specifies the behaviors that, when violated by a device (thing), cause an
// alert.
- //
- // Behaviors is a required field
- Behaviors []*Behavior `locationName:"behaviors" type:"list" required:"true"`
+ Behaviors []*Behavior `locationName:"behaviors" type:"list"`
// A description of the security profile.
SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
@@ -19548,9 +19615,6 @@ func (s CreateSecurityProfileInput) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateSecurityProfileInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "CreateSecurityProfileInput"}
- if s.Behaviors == nil {
- invalidParams.Add(request.NewErrParamRequired("Behaviors"))
- }
if s.SecurityProfileName == nil {
invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
}
@@ -19584,6 +19648,12 @@ func (s *CreateSecurityProfileInput) Validate() error {
return nil
}
+// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
+func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *CreateSecurityProfileInput {
+ s.AdditionalMetricsToRetain = v
+ return s
+}
+
// SetAlertTargets sets the AlertTargets field's value.
func (s *CreateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *CreateSecurityProfileInput {
s.AlertTargets = v
@@ -22789,6 +22859,11 @@ func (s *DescribeSecurityProfileInput) SetSecurityProfileName(v string) *Describ
type DescribeSecurityProfileOutput struct {
_ struct{} `type:"structure"`
+ // A list of metrics whose data is retained (stored). By default, data is retained
+ // for any metric used in the profile's behaviors but it is also retained for
+ // any metric specified here.
+ AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" type:"list"`
+
// Where the alerts are sent. (Alerts are always sent to the console.)
AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
@@ -22827,6 +22902,12 @@ func (s DescribeSecurityProfileOutput) GoString() string {
return s.String()
}
+// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
+func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *DescribeSecurityProfileOutput {
+ s.AdditionalMetricsToRetain = v
+ return s
+}
+
// SetAlertTargets sets the AlertTargets field's value.
func (s *DescribeSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *DescribeSecurityProfileOutput {
s.AlertTargets = v
@@ -33162,6 +33243,38 @@ func (s *StartThingRegistrationTaskOutput) SetTaskId(v string) *StartThingRegist
return s
}
+// A statistical ranking (percentile) which indicates a threshold value by which
+// a behavior is determined to be in compliance or in violation of the behavior.
+type StatisticalThreshold struct {
+ _ struct{} `type:"structure"`
+
+ // The percentile which resolves to a threshold value by which compliance with
+ // a behavior is determined. Metrics are collected over the specified period
+ // (durationSeconds) from all reporting devices in your account and statistical
+ // ranks are calculated. Then, the measurements from a device are collected
+ // over the same period. If the accumulated measurements from the device fall
+ // above or below (comparisonOperator) the value associated with the percentile
+ // specified, then the device is considered to be in compliance with the behavior,
+ // otherwise a violation occurs.
+ Statistic *string `locationName:"statistic" type:"string"`
+}
+
+// String returns the string representation
+func (s StatisticalThreshold) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s StatisticalThreshold) GoString() string {
+ return s.String()
+}
+
+// SetStatistic sets the Statistic field's value.
+func (s *StatisticalThreshold) SetStatistic(v string) *StatisticalThreshold {
+ s.Statistic = &v
+ return s
+}
+
// Starts execution of a Step Functions state machine.
type StepFunctionsAction struct {
_ struct{} `type:"structure"`
@@ -36015,6 +36128,11 @@ func (s *UpdateScheduledAuditOutput) SetScheduledAuditArn(v string) *UpdateSched
type UpdateSecurityProfileInput struct {
_ struct{} `type:"structure"`
+ // A list of metrics whose data is retained (stored). By default, data is retained
+ // for any metric used in the profile's behaviors but it is also retained for
+ // any metric specified here.
+ AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" type:"list"`
+
// Where the alerts are sent. (Alerts are always sent to the console.)
AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
@@ -36022,6 +36140,19 @@ type UpdateSecurityProfileInput struct {
// alert.
Behaviors []*Behavior `locationName:"behaviors" type:"list"`
+ // If true, delete all additionalMetricsToRetain defined for this security profile.
+ // If any additionalMetricsToRetain are defined in the current invocation an
+ // exception occurs.
+ DeleteAdditionalMetricsToRetain *bool `locationName:"deleteAdditionalMetricsToRetain" type:"boolean"`
+
+ // If true, delete all alertTargets defined for this security profile. If any
+ // alertTargets are defined in the current invocation an exception occurs.
+ DeleteAlertTargets *bool `locationName:"deleteAlertTargets" type:"boolean"`
+
+ // If true, delete all behaviors defined for this security profile. If any behaviors
+ // are defined in the current invocation an exception occurs.
+ DeleteBehaviors *bool `locationName:"deleteBehaviors" type:"boolean"`
+
// The expected version of the security profile. A new version is generated
// whenever the security profile is updated. If you specify a value that is
// different than the actual version, a VersionConflictException is thrown.
@@ -36082,6 +36213,12 @@ func (s *UpdateSecurityProfileInput) Validate() error {
return nil
}
+// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
+func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileInput {
+ s.AdditionalMetricsToRetain = v
+ return s
+}
+
// SetAlertTargets sets the AlertTargets field's value.
func (s *UpdateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileInput {
s.AlertTargets = v
@@ -36094,6 +36231,24 @@ func (s *UpdateSecurityProfileInput) SetBehaviors(v []*Behavior) *UpdateSecurity
return s
}
+// SetDeleteAdditionalMetricsToRetain sets the DeleteAdditionalMetricsToRetain field's value.
+func (s *UpdateSecurityProfileInput) SetDeleteAdditionalMetricsToRetain(v bool) *UpdateSecurityProfileInput {
+ s.DeleteAdditionalMetricsToRetain = &v
+ return s
+}
+
+// SetDeleteAlertTargets sets the DeleteAlertTargets field's value.
+func (s *UpdateSecurityProfileInput) SetDeleteAlertTargets(v bool) *UpdateSecurityProfileInput {
+ s.DeleteAlertTargets = &v
+ return s
+}
+
+// SetDeleteBehaviors sets the DeleteBehaviors field's value.
+func (s *UpdateSecurityProfileInput) SetDeleteBehaviors(v bool) *UpdateSecurityProfileInput {
+ s.DeleteBehaviors = &v
+ return s
+}
+
// SetExpectedVersion sets the ExpectedVersion field's value.
func (s *UpdateSecurityProfileInput) SetExpectedVersion(v int64) *UpdateSecurityProfileInput {
s.ExpectedVersion = &v
@@ -36115,6 +36270,11 @@ func (s *UpdateSecurityProfileInput) SetSecurityProfileName(v string) *UpdateSec
type UpdateSecurityProfileOutput struct {
_ struct{} `type:"structure"`
+ // A list of metrics whose data is retained (stored). By default, data is retained
+ // for any metric used in the security profile's behaviors but it is also retained
+ // for any metric specified here.
+ AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" type:"list"`
+
// Where the alerts are sent. (Alerts are always sent to the console.)
AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
@@ -36151,6 +36311,12 @@ func (s UpdateSecurityProfileOutput) GoString() string {
return s.String()
}
+// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
+func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileOutput {
+ s.AdditionalMetricsToRetain = v
+ return s
+}
+
// SetAlertTargets sets the AlertTargets field's value.
func (s *UpdateSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileOutput {
s.AlertTargets = v
diff --git a/vendor/github.com/aws/aws-sdk-go/service/mediaconvert/api.go b/vendor/github.com/aws/aws-sdk-go/service/mediaconvert/api.go
index 34ec0e7d9b7..af2e66c3049 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/mediaconvert/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/mediaconvert/api.go
@@ -148,8 +148,8 @@ func (c *MediaConvert) CancelJobRequest(input *CancelJobInput) (req *request.Req
// CancelJob API operation for AWS Elemental MediaConvert.
//
-// Permanently remove a job from a queue. Once you have canceled a job, you
-// can't start it again. You can't delete a running job.
+// Permanently cancel a job. Once you have canceled a job, you can't start it
+// 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
@@ -4770,7 +4770,16 @@ type ContainerSettings struct {
// Settings for F4v container
F4vSettings *F4vSettings `locationName:"f4vSettings" type:"structure"`
- // Settings for M2TS Container.
+ // MPEG-2 TS container settings. These apply to outputs in a File output group
+ // when the output's container (ContainerType) is MPEG-2 Transport Stream (M2TS).
+ // In these assets, data is organized by the program map table (PMT). Each transport
+ // stream program contains subsets of data, including audio, video, and metadata.
+ // Each of these subsets of data has a numerical label called a packet identifier
+ // (PID). Each transport stream program corresponds to one MediaConvert output.
+ // The PMT lists the types of data in a program along with their PID. Downstream
+ // systems and players use the program map table to look up the PID for each
+ // type of data it accesses and then uses the PIDs to locate specific data within
+ // the asset.
M2tsSettings *M2tsSettings `locationName:"m2tsSettings" type:"structure"`
// Settings for TS segments in HLS
@@ -4888,6 +4897,12 @@ type CreateJobInput struct {
// Settings is a required field
Settings *JobSettings `locationName:"settings" type:"structure" required:"true"`
+ // Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch
+ // Events. Set the interval, in seconds, between status updates. MediaConvert
+ // sends an update at this interval from the time the service begins processing
+ // your job to the time it completes the transcode or encounters an error.
+ StatusUpdateIntervalInSecs *int64 `locationName:"statusUpdateIntervalInSecs" min:"10" type:"long"`
+
// User-defined metadata that you want to associate with an MediaConvert job.
// You specify metadata in key/value pairs.
UserMetadata map[string]*string `locationName:"userMetadata" type:"map"`
@@ -4912,6 +4927,9 @@ func (s *CreateJobInput) Validate() error {
if s.Settings == nil {
invalidParams.Add(request.NewErrParamRequired("Settings"))
}
+ if s.StatusUpdateIntervalInSecs != nil && *s.StatusUpdateIntervalInSecs < 10 {
+ invalidParams.Add(request.NewErrParamMinValue("StatusUpdateIntervalInSecs", 10))
+ }
if s.AccelerationSettings != nil {
if err := s.AccelerationSettings.Validate(); err != nil {
invalidParams.AddNested("AccelerationSettings", err.(request.ErrInvalidParams))
@@ -4971,6 +4989,12 @@ func (s *CreateJobInput) SetSettings(v *JobSettings) *CreateJobInput {
return s
}
+// SetStatusUpdateIntervalInSecs sets the StatusUpdateIntervalInSecs field's value.
+func (s *CreateJobInput) SetStatusUpdateIntervalInSecs(v int64) *CreateJobInput {
+ s.StatusUpdateIntervalInSecs = &v
+ return s
+}
+
// SetUserMetadata sets the UserMetadata field's value.
func (s *CreateJobInput) SetUserMetadata(v map[string]*string) *CreateJobInput {
s.UserMetadata = v
@@ -5033,6 +5057,12 @@ type CreateJobTemplateInput struct {
// Settings is a required field
Settings *JobTemplateSettings `locationName:"settings" type:"structure" required:"true"`
+ // Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch
+ // Events. Set the interval, in seconds, between status updates. MediaConvert
+ // sends an update at this interval from the time the service begins processing
+ // your job to the time it completes the transcode or encounters an error.
+ StatusUpdateIntervalInSecs *int64 `locationName:"statusUpdateIntervalInSecs" min:"10" type:"long"`
+
// The tags that you want to add to the resource. You can tag resources with
// a key-value pair or with only a key.
Tags map[string]*string `locationName:"tags" type:"map"`
@@ -5057,6 +5087,9 @@ func (s *CreateJobTemplateInput) Validate() error {
if s.Settings == nil {
invalidParams.Add(request.NewErrParamRequired("Settings"))
}
+ if s.StatusUpdateIntervalInSecs != nil && *s.StatusUpdateIntervalInSecs < 10 {
+ invalidParams.Add(request.NewErrParamMinValue("StatusUpdateIntervalInSecs", 10))
+ }
if s.AccelerationSettings != nil {
if err := s.AccelerationSettings.Validate(); err != nil {
invalidParams.AddNested("AccelerationSettings", err.(request.ErrInvalidParams))
@@ -5110,6 +5143,12 @@ func (s *CreateJobTemplateInput) SetSettings(v *JobTemplateSettings) *CreateJobT
return s
}
+// SetStatusUpdateIntervalInSecs sets the StatusUpdateIntervalInSecs field's value.
+func (s *CreateJobTemplateInput) SetStatusUpdateIntervalInSecs(v int64) *CreateJobTemplateInput {
+ s.StatusUpdateIntervalInSecs = &v
+ return s
+}
+
// SetTags sets the Tags field's value.
func (s *CreateJobTemplateInput) SetTags(v map[string]*string) *CreateJobTemplateInput {
s.Tags = v
@@ -6604,11 +6643,12 @@ type EmbeddedDestinationSettings struct {
// Ignore this setting unless your input captions are SCC format and your output
// container is MXF. With this combination of input captions format and output
// container, you can optionally use this setting to replace the input channel
- // number with the track number that you specify. If you don't specify an output
- // track number, the system uses the input channel number for the output channel
- // number. This setting applies to each output individually. Channels must be
- // unique and may only be combined in the following combinations: (1+3, 2+4,
- // 1+4, 2+3).
+ // number with the track number that you specify. Specify a different number
+ // for each output captions track. If you don't specify an output track number,
+ // the system uses the input channel number for the output channel number. This
+ // setting applies to each output individually. You can optionally combine two
+ // captions channels in your output. The two output channel numbers can be one
+ // of the following pairs: 1,3; 2,4; 1,4; or 2,3.
Destination608ChannelNumber *int64 `locationName:"destination608ChannelNumber" min:"1" type:"integer"`
}
@@ -6727,6 +6767,115 @@ func (s *Endpoint) SetUrl(v string) *Endpoint {
return s
}
+// ESAM ManifestConfirmConditionNotification defined by OC-SP-ESAM-API-I03-131025.
+type EsamManifestConfirmConditionNotification struct {
+ _ struct{} `type:"structure"`
+
+ // Provide your ESAM ManifestConfirmConditionNotification XML document inside
+ // your JSON job settings. Form the XML document as per OC-SP-ESAM-API-I03-131025.
+ // The transcoder will use the Manifest Conditioning instructions in the message
+ // that you supply.
+ MccXml *string `locationName:"mccXml" type:"string"`
+}
+
+// String returns the string representation
+func (s EsamManifestConfirmConditionNotification) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s EsamManifestConfirmConditionNotification) GoString() string {
+ return s.String()
+}
+
+// SetMccXml sets the MccXml field's value.
+func (s *EsamManifestConfirmConditionNotification) SetMccXml(v string) *EsamManifestConfirmConditionNotification {
+ s.MccXml = &v
+ return s
+}
+
+// Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion,
+// you can ignore these settings.
+type EsamSettings struct {
+ _ struct{} `type:"structure"`
+
+ // Specifies an ESAM ManifestConfirmConditionNotification XML as per OC-SP-ESAM-API-I03-131025.
+ // The transcoder uses the manifest conditioning instructions that you provide
+ // in the setting MCC XML (mccXml).
+ ManifestConfirmConditionNotification *EsamManifestConfirmConditionNotification `locationName:"manifestConfirmConditionNotification" type:"structure"`
+
+ // Specifies the stream distance, in milliseconds, between the SCTE 35 messages
+ // that the transcoder places and the splice points that they refer to. If the
+ // time between the start of the asset and the SCTE-35 message is less than
+ // this value, then the transcoder places the SCTE-35 marker at the beginning
+ // of the stream.
+ ResponseSignalPreroll *int64 `locationName:"responseSignalPreroll" type:"integer"`
+
+ // Specifies an ESAM SignalProcessingNotification XML as per OC-SP-ESAM-API-I03-131025.
+ // The transcoder uses the signal processing instructions that you provide in
+ // the setting SCC XML (sccXml).
+ SignalProcessingNotification *EsamSignalProcessingNotification `locationName:"signalProcessingNotification" type:"structure"`
+}
+
+// String returns the string representation
+func (s EsamSettings) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s EsamSettings) GoString() string {
+ return s.String()
+}
+
+// SetManifestConfirmConditionNotification sets the ManifestConfirmConditionNotification field's value.
+func (s *EsamSettings) SetManifestConfirmConditionNotification(v *EsamManifestConfirmConditionNotification) *EsamSettings {
+ s.ManifestConfirmConditionNotification = v
+ return s
+}
+
+// SetResponseSignalPreroll sets the ResponseSignalPreroll field's value.
+func (s *EsamSettings) SetResponseSignalPreroll(v int64) *EsamSettings {
+ s.ResponseSignalPreroll = &v
+ return s
+}
+
+// SetSignalProcessingNotification sets the SignalProcessingNotification field's value.
+func (s *EsamSettings) SetSignalProcessingNotification(v *EsamSignalProcessingNotification) *EsamSettings {
+ s.SignalProcessingNotification = v
+ return s
+}
+
+// ESAM SignalProcessingNotification data defined by OC-SP-ESAM-API-I03-131025.
+type EsamSignalProcessingNotification struct {
+ _ struct{} `type:"structure"`
+
+ // Provide your ESAM SignalProcessingNotification XML document inside your JSON
+ // job settings. Form the XML document as per OC-SP-ESAM-API-I03-131025. The
+ // transcoder will use the signal processing instructions in the message that
+ // you supply. Provide your ESAM SignalProcessingNotification XML document inside
+ // your JSON job settings. If you want the service to place SCTE-35 markers
+ // at the insertion points you specify in the XML document, you must also enable
+ // SCTE-35 ESAM (scte35Esam). Note that you can either specify an ESAM XML document
+ // or enable SCTE-35 passthrough. You can't do both.
+ SccXml *string `locationName:"sccXml" type:"string"`
+}
+
+// String returns the string representation
+func (s EsamSignalProcessingNotification) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s EsamSignalProcessingNotification) GoString() string {
+ return s.String()
+}
+
+// SetSccXml sets the SccXml field's value.
+func (s *EsamSignalProcessingNotification) SetSccXml(v string) *EsamSignalProcessingNotification {
+ s.SccXml = &v
+ return s
+}
+
// Settings for F4v container
type F4vSettings struct {
_ struct{} `type:"structure"`
@@ -7986,10 +8135,17 @@ type H265Settings struct {
// Inserts timecode for each frame as 4 bytes of an unregistered SEI message.
UnregisteredSeiTimecode *string `locationName:"unregisteredSeiTimecode" type:"string" enum:"H265UnregisteredSeiTimecode"`
- // If HVC1, output that is H.265 will be marked as HVC1 and adhere to the ISO-IECJTC1-SC29_N13798_Text_ISOIEC_FDIS_14496-15_3rd_E
- // spec which states that parameter set NAL units will be stored in the sample
- // headers but not in the samples directly. If HEV1, then H.265 will be marked
- // as HEV1 and parameter set NAL units will be written into the samples.
+ // Use this setting only for outputs encoded with H.265 that are in CMAF or
+ // DASH output groups. If you include writeMp4PackagingType in your JSON job
+ // specification for other outputs, your video might not work properly with
+ // downstream systems and video players. If the location of parameter set NAL
+ // units don't matter in your workflow, ignore this setting. The service defaults
+ // to marking your output as HEV1. Choose HVC1 to mark your output as HVC1.
+ // This makes your output compliant with this specification: ISO IECJTC1 SC29
+ // N13798 Text ISO/IEC FDIS 14496-15 3rd Edition. For these outputs, the service
+ // stores parameter set NAL units in the sample headers but not in the samples
+ // directly. Keep the default HEV1 to mark your output as HEV1. For these outputs,
+ // the service writes parameter set NAL units directly into the samples.
WriteMp4PackagingType *string `locationName:"writeMp4PackagingType" type:"string" enum:"H265WriteMp4PackagingType"`
}
@@ -8513,6 +8669,10 @@ type HlsEncryptionSettings struct {
// in the manifest. Otherwise Initialization Vector is not in the manifest.
InitializationVectorInManifest *string `locationName:"initializationVectorInManifest" type:"string" enum:"HlsInitializationVectorInManifest"`
+ // Enable this setting to insert the EXT-X-SESSION-KEY element into the master
+ // playlist. This allows for offline Apple HLS FairPlay content protection.
+ OfflineEncrypted *string `locationName:"offlineEncrypted" type:"string" enum:"HlsOfflineEncrypted"`
+
// Settings for use with a SPEKE key provider
SpekeKeyProvider *SpekeKeyProvider `locationName:"spekeKeyProvider" type:"structure"`
@@ -8564,6 +8724,12 @@ func (s *HlsEncryptionSettings) SetInitializationVectorInManifest(v string) *Hls
return s
}
+// SetOfflineEncrypted sets the OfflineEncrypted field's value.
+func (s *HlsEncryptionSettings) SetOfflineEncrypted(v string) *HlsEncryptionSettings {
+ s.OfflineEncrypted = &v
+ return s
+}
+
// SetSpekeKeyProvider sets the SpekeKeyProvider field's value.
func (s *HlsEncryptionSettings) SetSpekeKeyProvider(v *SpekeKeyProvider) *HlsEncryptionSettings {
s.SpekeKeyProvider = v
@@ -9831,6 +9997,12 @@ type Job struct {
// A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.
Status *string `locationName:"status" type:"string" enum:"JobStatus"`
+ // Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch
+ // Events. Set the interval, in seconds, between status updates. MediaConvert
+ // sends an update at this interval from the time the service begins processing
+ // your job to the time it completes the transcode or encounters an error.
+ StatusUpdateIntervalInSecs *int64 `locationName:"statusUpdateIntervalInSecs" min:"10" type:"long"`
+
// Information about when jobs are submitted, started, and finished is specified
// in Unix epoch format in seconds.
Timing *Timing `locationName:"timing" type:"structure"`
@@ -9928,6 +10100,12 @@ func (s *Job) SetStatus(v string) *Job {
return s
}
+// SetStatusUpdateIntervalInSecs sets the StatusUpdateIntervalInSecs field's value.
+func (s *Job) SetStatusUpdateIntervalInSecs(v int64) *Job {
+ s.StatusUpdateIntervalInSecs = &v
+ return s
+}
+
// SetTiming sets the Timing field's value.
func (s *Job) SetTiming(v *Timing) *Job {
s.Timing = v
@@ -9952,6 +10130,9 @@ type JobSettings struct {
// image, and audio muted during SCTE-35 triggered ad avails.
AvailBlanking *AvailBlanking `locationName:"availBlanking" type:"structure"`
+ // Settings for Event Signaling And Messaging (ESAM).
+ Esam *EsamSettings `locationName:"esam" type:"structure"`
+
// Use Inputs (inputs) to define source file used in the transcode job. There
// can be multiple inputs add in a job. These inputs will be concantenated together
// to create the output.
@@ -10050,6 +10231,12 @@ func (s *JobSettings) SetAvailBlanking(v *AvailBlanking) *JobSettings {
return s
}
+// SetEsam sets the Esam field's value.
+func (s *JobSettings) SetEsam(v *EsamSettings) *JobSettings {
+ s.Esam = v
+ return s
+}
+
// SetInputs sets the Inputs field's value.
func (s *JobSettings) SetInputs(v []*Input) *JobSettings {
s.Inputs = v
@@ -10125,6 +10312,12 @@ type JobTemplate struct {
// Settings is a required field
Settings *JobTemplateSettings `locationName:"settings" type:"structure" required:"true"`
+ // Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch
+ // Events. Set the interval, in seconds, between status updates. MediaConvert
+ // sends an update at this interval from the time the service begins processing
+ // your job to the time it completes the transcode or encounters an error.
+ StatusUpdateIntervalInSecs *int64 `locationName:"statusUpdateIntervalInSecs" min:"10" type:"long"`
+
// A job template can be of two types: system or custom. System or built-in
// job templates can't be modified or deleted by the user.
Type *string `locationName:"type" type:"string" enum:"Type"`
@@ -10194,6 +10387,12 @@ func (s *JobTemplate) SetSettings(v *JobTemplateSettings) *JobTemplate {
return s
}
+// SetStatusUpdateIntervalInSecs sets the StatusUpdateIntervalInSecs field's value.
+func (s *JobTemplate) SetStatusUpdateIntervalInSecs(v int64) *JobTemplate {
+ s.StatusUpdateIntervalInSecs = &v
+ return s
+}
+
// SetType sets the Type field's value.
func (s *JobTemplate) SetType(v string) *JobTemplate {
s.Type = &v
@@ -10213,6 +10412,9 @@ type JobTemplateSettings struct {
// image, and audio muted during SCTE-35 triggered ad avails.
AvailBlanking *AvailBlanking `locationName:"availBlanking" type:"structure"`
+ // Settings for Event Signaling And Messaging (ESAM).
+ Esam *EsamSettings `locationName:"esam" type:"structure"`
+
// Use Inputs (inputs) to define the source file used in the transcode job.
// There can only be one input in a job template. Using the API, you can include
// multiple inputs when referencing a job template.
@@ -10311,6 +10513,12 @@ func (s *JobTemplateSettings) SetAvailBlanking(v *AvailBlanking) *JobTemplateSet
return s
}
+// SetEsam sets the Esam field's value.
+func (s *JobTemplateSettings) SetEsam(v *EsamSettings) *JobTemplateSettings {
+ s.Esam = v
+ return s
+}
+
// SetInputs sets the Inputs field's value.
func (s *JobTemplateSettings) SetInputs(v []*InputTemplate) *JobTemplateSettings {
s.Inputs = v
@@ -10865,7 +11073,57 @@ func (s *ListTagsForResourceOutput) SetResourceTags(v *ResourceTags) *ListTagsFo
return s
}
-// Settings for M2TS Container.
+// Settings for SCTE-35 signals from ESAM. Include this in your job settings
+// to put SCTE-35 markers in your HLS and transport stream outputs at the insertion
+// points that you specify in an ESAM XML document. Provide the document in
+// the setting SCC XML (sccXml).
+type M2tsScte35Esam struct {
+ _ struct{} `type:"structure"`
+
+ // Packet Identifier (PID) of the SCTE-35 stream in the transport stream generated
+ // by ESAM.
+ Scte35EsamPid *int64 `locationName:"scte35EsamPid" min:"32" type:"integer"`
+}
+
+// String returns the string representation
+func (s M2tsScte35Esam) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s M2tsScte35Esam) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *M2tsScte35Esam) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "M2tsScte35Esam"}
+ if s.Scte35EsamPid != nil && *s.Scte35EsamPid < 32 {
+ invalidParams.Add(request.NewErrParamMinValue("Scte35EsamPid", 32))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetScte35EsamPid sets the Scte35EsamPid field's value.
+func (s *M2tsScte35Esam) SetScte35EsamPid(v int64) *M2tsScte35Esam {
+ s.Scte35EsamPid = &v
+ return s
+}
+
+// MPEG-2 TS container settings. These apply to outputs in a File output group
+// when the output's container (ContainerType) is MPEG-2 Transport Stream (M2TS).
+// In these assets, data is organized by the program map table (PMT). Each transport
+// stream program contains subsets of data, including audio, video, and metadata.
+// Each of these subsets of data has a numerical label called a packet identifier
+// (PID). Each transport stream program corresponds to one MediaConvert output.
+// The PMT lists the types of data in a program along with their PID. Downstream
+// systems and players use the program map table to look up the PID for each
+// type of data it accesses and then uses the PIDs to locate specific data within
+// the asset.
type M2tsSettings struct {
_ struct{} `type:"structure"`
@@ -10875,14 +11133,14 @@ type M2tsSettings struct {
// The number of audio frames to insert for each PES packet.
AudioFramesPerPes *int64 `locationName:"audioFramesPerPes" type:"integer"`
- // Packet Identifier (PID) of the elementary audio stream(s) in the transport
- // stream. Multiple values are accepted, and can be entered in ranges and/or
- // by comma separation.
+ // Specify the packet identifiers (PIDs) for any elementary audio streams you
+ // include in this output. Specify multiple PIDs as a JSON array. Default is
+ // the range 482-492.
AudioPids []*int64 `locationName:"audioPids" type:"list"`
- // The output bitrate of the transport stream in bits per second. Setting to
- // 0 lets the muxer automatically determine the appropriate bitrate. Other common
- // values are 3750000, 7500000, and 15000000.
+ // Specify the output bitrate of the transport stream in bits per second. Setting
+ // to 0 lets the muxer automatically determine the appropriate bitrate. Other
+ // common values are 3750000, 7500000, and 15000000.
Bitrate *int64 `locationName:"bitrate" type:"integer"`
// Controls what buffer model to use for accurate interleaving. If set to MULTIPLEX,
@@ -10898,15 +11156,15 @@ type M2tsSettings struct {
// interval.
DvbSdtSettings *DvbSdtSettings `locationName:"dvbSdtSettings" type:"structure"`
- // Packet Identifier (PID) for input source DVB Subtitle data to this output.
- // Multiple values are accepted, and can be entered in ranges and/or by comma
- // separation.
+ // Specify the packet identifiers (PIDs) for DVB subtitle data included in this
+ // output. Specify multiple PIDs as a JSON array. Default is the range 460-479.
DvbSubPids []*int64 `locationName:"dvbSubPids" type:"list"`
// Inserts DVB Time and Date Table (TDT) at the specified table repetition interval.
DvbTdtSettings *DvbTdtSettings `locationName:"dvbTdtSettings" type:"structure"`
- // Packet Identifier (PID) for input source DVB Teletext data to this output.
+ // Specify the packet identifier (PID) for DVB teletext data you include in
+ // this output. Default is 499.
DvbTeletextPid *int64 `locationName:"dvbTeletextPid" min:"32" type:"integer"`
// When set to VIDEO_AND_FIXED_INTERVALS, audio EBP markers will be added to
@@ -10927,15 +11185,15 @@ type M2tsSettings struct {
EsRateInPes *string `locationName:"esRateInPes" type:"string" enum:"M2tsEsRateInPes"`
// Keep the default value (DEFAULT) unless you know that your audio EBP markers
- // are incorrectly appearing before your video EBP markers. Set this value to
- // Force (FORCE) to correct this problem.
+ // are incorrectly appearing before your video EBP markers. To correct this
+ // problem, set this value to Force (FORCE).
ForceTsVideoEbpOrder *string `locationName:"forceTsVideoEbpOrder" type:"string" enum:"M2tsForceTsVideoEbpOrder"`
- // The length in seconds of each fragment. Only used with EBP markers.
+ // The length, in seconds, of each fragment. Only used with EBP markers.
FragmentTime *float64 `locationName:"fragmentTime" type:"double"`
- // Maximum time in milliseconds between Program Clock References (PCRs) inserted
- // into the transport stream.
+ // Specify the maximum time, in milliseconds, between Program Clock References
+ // (PCRs) inserted into the transport stream.
MaxPcrInterval *int64 `locationName:"maxPcrInterval" type:"integer"`
// When set, enforces that Encoder Boundary Points do not come within the specified
@@ -10964,23 +11222,27 @@ type M2tsSettings struct {
// when the PCR PID is the same as the video or audio elementary stream.
PcrControl *string `locationName:"pcrControl" type:"string" enum:"M2tsPcrControl"`
- // Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
- // stream. When no value is given, the encoder will assign the same value as
- // the Video PID.
+ // Specify the packet identifier (PID) for the program clock reference (PCR)
+ // in this output. If you do not specify a value, the service will use the value
+ // for Video PID (VideoPid).
PcrPid *int64 `locationName:"pcrPid" min:"32" type:"integer"`
- // The number of milliseconds between instances of this table in the output
- // transport stream.
+ // Specify the number of milliseconds between instances of the program map table
+ // (PMT) in the output transport stream.
PmtInterval *int64 `locationName:"pmtInterval" type:"integer"`
- // Packet Identifier (PID) for the Program Map Table (PMT) in the transport
- // stream.
+ // Specify the packet identifier (PID) for the program map table (PMT) itself.
+ // Default is 480.
PmtPid *int64 `locationName:"pmtPid" min:"32" type:"integer"`
- // Packet Identifier (PID) of the private metadata stream in the transport stream.
+ // Specify the packet identifier (PID) of the private metadata stream. Default
+ // is 503.
PrivateMetadataPid *int64 `locationName:"privateMetadataPid" min:"32" type:"integer"`
- // The value of the program number field in the Program Map Table.
+ // Use Program number (programNumber) to specify the program number used in
+ // the program map table (PMT) for this output. Default is 1. Program numbers
+ // and program map tables are parts of MPEG-2 transport stream containers, used
+ // for organizing data.
ProgramNumber *int64 `locationName:"programNumber" type:"integer"`
// When set to CBR, inserts null packets into transport stream to fill specified
@@ -10988,7 +11250,13 @@ type M2tsSettings struct {
// but the output will not be padded up to that bitrate.
RateMode *string `locationName:"rateMode" type:"string" enum:"M2tsRateMode"`
- // Packet Identifier (PID) of the SCTE-35 stream in the transport stream.
+ // Include this in your job settings to put SCTE-35 markers in your HLS and
+ // transport stream outputs at the insertion points that you specify in an ESAM
+ // XML document. Provide the document in the setting SCC XML (sccXml).
+ Scte35Esam *M2tsScte35Esam `locationName:"scte35Esam" type:"structure"`
+
+ // Specify the packet identifier (PID) of the SCTE-35 stream in the transport
+ // stream.
Scte35Pid *int64 `locationName:"scte35Pid" min:"32" type:"integer"`
// Enables SCTE-35 passthrough (scte35Source) to pass any SCTE-35 signals from
@@ -11017,17 +11285,21 @@ type M2tsSettings struct {
// Note that EBP lookahead is a slight exception to this rule.
SegmentationStyle *string `locationName:"segmentationStyle" type:"string" enum:"M2tsSegmentationStyle"`
- // The length in seconds of each segment. Required unless markers is set to
- // _none_.
+ // Specify the length, in seconds, of each segment. Required unless markers
+ // is set to _none_.
SegmentationTime *float64 `locationName:"segmentationTime" type:"double"`
- // Packet Identifier (PID) of the timed metadata stream in the transport stream.
+ // Specify the packet identifier (PID) for timed metadata in this output. Default
+ // is 502.
TimedMetadataPid *int64 `locationName:"timedMetadataPid" min:"32" type:"integer"`
- // The value of the transport stream ID field in the Program Map Table.
+ // Specify the ID for the transport stream itself in the program map table for
+ // this output. Transport stream IDs and program map tables are parts of MPEG-2
+ // transport stream containers, used for organizing data.
TransportStreamId *int64 `locationName:"transportStreamId" type:"integer"`
- // Packet Identifier (PID) of the elementary video stream in the transport stream.
+ // Specify the packet identifier (PID) of the elementary video stream in the
+ // transport stream.
VideoPid *int64 `locationName:"videoPid" min:"32" type:"integer"`
}
@@ -11080,6 +11352,11 @@ func (s *M2tsSettings) Validate() error {
invalidParams.AddNested("DvbTdtSettings", err.(request.ErrInvalidParams))
}
}
+ if s.Scte35Esam != nil {
+ if err := s.Scte35Esam.Validate(); err != nil {
+ invalidParams.AddNested("Scte35Esam", err.(request.ErrInvalidParams))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -11249,6 +11526,12 @@ func (s *M2tsSettings) SetRateMode(v string) *M2tsSettings {
return s
}
+// SetScte35Esam sets the Scte35Esam field's value.
+func (s *M2tsSettings) SetScte35Esam(v *M2tsScte35Esam) *M2tsSettings {
+ s.Scte35Esam = v
+ return s
+}
+
// SetScte35Pid sets the Scte35Pid field's value.
func (s *M2tsSettings) SetScte35Pid(v int64) *M2tsSettings {
s.Scte35Pid = &v
@@ -14478,6 +14761,12 @@ type UpdateJobTemplateInput struct {
// JobTemplateSettings contains all the transcode settings saved in the template
// that will be applied to jobs created from it.
Settings *JobTemplateSettings `locationName:"settings" type:"structure"`
+
+ // Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch
+ // Events. Set the interval, in seconds, between status updates. MediaConvert
+ // sends an update at this interval from the time the service begins processing
+ // your job to the time it completes the transcode or encounters an error.
+ StatusUpdateIntervalInSecs *int64 `locationName:"statusUpdateIntervalInSecs" min:"10" type:"long"`
}
// String returns the string representation
@@ -14499,6 +14788,9 @@ func (s *UpdateJobTemplateInput) Validate() error {
if s.Name != nil && len(*s.Name) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
+ if s.StatusUpdateIntervalInSecs != nil && *s.StatusUpdateIntervalInSecs < 10 {
+ invalidParams.Add(request.NewErrParamMinValue("StatusUpdateIntervalInSecs", 10))
+ }
if s.AccelerationSettings != nil {
if err := s.AccelerationSettings.Validate(); err != nil {
invalidParams.AddNested("AccelerationSettings", err.(request.ErrInvalidParams))
@@ -14552,6 +14844,12 @@ func (s *UpdateJobTemplateInput) SetSettings(v *JobTemplateSettings) *UpdateJobT
return s
}
+// SetStatusUpdateIntervalInSecs sets the StatusUpdateIntervalInSecs field's value.
+func (s *UpdateJobTemplateInput) SetStatusUpdateIntervalInSecs(v int64) *UpdateJobTemplateInput {
+ s.StatusUpdateIntervalInSecs = &v
+ return s
+}
+
// Successful update job template requests will return the new job template
// JSON.
type UpdateJobTemplateOutput struct {
@@ -14916,9 +15214,8 @@ type VideoDescription struct {
// to calculate output AFD values based on the input AFD scaler data.
AfdSignaling *string `locationName:"afdSignaling" type:"string" enum:"AfdSignaling"`
- // Enable Anti-alias (AntiAlias) to enhance sharp edges in video output when
- // your input resolution is much larger than your output resolution. Default
- // is enabled.
+ // You no longer need to specify the anti-alias filter. It's now automatically
+ // applied to all outputs. This property is deprecated.
AntiAlias *string `locationName:"antiAlias" type:"string" enum:"AntiAlias"`
// Video codec settings, (CodecSettings) under (VideoDescription), contains
@@ -14979,11 +15276,11 @@ type VideoDescription struct {
// elsewhere in the job.
ScalingBehavior *string `locationName:"scalingBehavior" type:"string" enum:"ScalingBehavior"`
- // Use Sharpness (Sharpness)setting to specify the strength of anti-aliasing.
+ // Use Sharpness (Sharpness) setting to specify the strength of anti-aliasing.
// This setting changes the width of the anti-alias filter kernel used for scaling.
// Sharpness only applies if your output resolution is different from your input
- // resolution, and if you set Anti-alias (AntiAlias) to ENABLED. 0 is the softest
- // setting, 100 the sharpest, and 50 recommended for most content.
+ // resolution. 0 is the softest setting, 100 the sharpest, and 50 recommended
+ // for most content.
Sharpness *int64 `locationName:"sharpness" type:"integer"`
// Applies only to H.264, H.265, MPEG2, and ProRes outputs. Only enable Timecode
@@ -15323,6 +15620,18 @@ type VideoSelector struct {
// Selects a specific program from within a multi-program transport stream.
// Note that Quad 4K is not currently supported.
ProgramNumber *int64 `locationName:"programNumber" type:"integer"`
+
+ // Use Rotate (InputRotate) to specify how the service rotates your video. You
+ // can choose automatic rotation or specify a rotation. You can specify a clockwise
+ // rotation of 0, 90, 180, or 270 degrees. If your input video container is
+ // .mov or .mp4 and your input has rotation metadata, you can choose Automatic
+ // to have the service rotate your video according to the rotation specified
+ // in the metadata. The rotation must be within one degree of 90, 180, or 270
+ // degrees. If the rotation metadata specifies any other rotation, the service
+ // will default to no rotation. By default, the service does no rotation, even
+ // if your input video has rotation metadata. The service doesn't pass through
+ // rotation metadata.
+ Rotate *string `locationName:"rotate" type:"string" enum:"InputRotate"`
}
// String returns the string representation
@@ -15381,6 +15690,12 @@ func (s *VideoSelector) SetProgramNumber(v int64) *VideoSelector {
return s
}
+// SetRotate sets the Rotate field's value.
+func (s *VideoSelector) SetRotate(v string) *VideoSelector {
+ s.Rotate = &v
+ return s
+}
+
// Required when you set (Codec) under (AudioDescriptions)>(CodecSettings) to
// the value WAV.
type WavSettings struct {
@@ -15652,9 +15967,8 @@ const (
AfdSignalingFixed = "FIXED"
)
-// Enable Anti-alias (AntiAlias) to enhance sharp edges in video output when
-// your input resolution is much larger than your output resolution. Default
-// is enabled.
+// You no longer need to specify the anti-alias filter. It's now automatically
+// applied to all outputs. This property is deprecated.
const (
// AntiAliasDisabled is a AntiAlias enum value
AntiAliasDisabled = "DISABLED"
@@ -17329,10 +17643,17 @@ const (
H265UnregisteredSeiTimecodeEnabled = "ENABLED"
)
-// If HVC1, output that is H.265 will be marked as HVC1 and adhere to the ISO-IECJTC1-SC29_N13798_Text_ISOIEC_FDIS_14496-15_3rd_E
-// spec which states that parameter set NAL units will be stored in the sample
-// headers but not in the samples directly. If HEV1, then H.265 will be marked
-// as HEV1 and parameter set NAL units will be written into the samples.
+// Use this setting only for outputs encoded with H.265 that are in CMAF or
+// DASH output groups. If you include writeMp4PackagingType in your JSON job
+// specification for other outputs, your video might not work properly with
+// downstream systems and video players. If the location of parameter set NAL
+// units don't matter in your workflow, ignore this setting. The service defaults
+// to marking your output as HEV1. Choose HVC1 to mark your output as HVC1.
+// This makes your output compliant with this specification: ISO IECJTC1 SC29
+// N13798 Text ISO/IEC FDIS 14496-15 3rd Edition. For these outputs, the service
+// stores parameter set NAL units in the sample headers but not in the samples
+// directly. Keep the default HEV1 to mark your output as HEV1. For these outputs,
+// the service writes parameter set NAL units directly into the samples.
const (
// H265WriteMp4PackagingTypeHvc1 is a H265WriteMp4PackagingType enum value
H265WriteMp4PackagingTypeHvc1 = "HVC1"
@@ -17482,6 +17803,16 @@ const (
HlsManifestDurationFormatInteger = "INTEGER"
)
+// Enable this setting to insert the EXT-X-SESSION-KEY element into the master
+// playlist. This allows for offline Apple HLS FairPlay content protection.
+const (
+ // HlsOfflineEncryptedEnabled is a HlsOfflineEncrypted enum value
+ HlsOfflineEncryptedEnabled = "ENABLED"
+
+ // HlsOfflineEncryptedDisabled is a HlsOfflineEncrypted enum value
+ HlsOfflineEncryptedDisabled = "DISABLED"
+)
+
// Indicates whether the .m3u8 manifest file should be generated for this HLS
// output group.
const (
@@ -17587,6 +17918,33 @@ const (
InputPsiControlUsePsi = "USE_PSI"
)
+// Use Rotate (InputRotate) to specify how the service rotates your video. You
+// can choose automatic rotation or specify a rotation. You can specify a clockwise
+// rotation of 0, 90, 180, or 270 degrees. If your input video container is
+// .mov or .mp4 and your input has rotation metadata, you can choose Automatic
+// to have the service rotate your video according to the rotation specified
+// in the metadata. The rotation must be within one degree of 90, 180, or 270
+// degrees. If the rotation metadata specifies any other rotation, the service
+// will default to no rotation. By default, the service does no rotation, even
+// if your input video has rotation metadata. The service doesn't pass through
+// rotation metadata.
+const (
+ // InputRotateDegree0 is a InputRotate enum value
+ InputRotateDegree0 = "DEGREE_0"
+
+ // InputRotateDegrees90 is a InputRotate enum value
+ InputRotateDegrees90 = "DEGREES_90"
+
+ // InputRotateDegrees180 is a InputRotate enum value
+ InputRotateDegrees180 = "DEGREES_180"
+
+ // InputRotateDegrees270 is a InputRotate enum value
+ InputRotateDegrees270 = "DEGREES_270"
+
+ // InputRotateAuto is a InputRotate enum value
+ InputRotateAuto = "AUTO"
+)
+
// Timecode source under input settings (InputTimecodeSource) only affects the
// behavior of features that apply to a single input at a time, such as input
// clipping and synchronizing some captions formats. Use this setting to specify
@@ -18269,8 +18627,8 @@ const (
)
// Keep the default value (DEFAULT) unless you know that your audio EBP markers
-// are incorrectly appearing before your video EBP markers. Set this value to
-// Force (FORCE) to correct this problem.
+// are incorrectly appearing before your video EBP markers. To correct this
+// problem, set this value to Force (FORCE).
const (
// M2tsForceTsVideoEbpOrderForce is a M2tsForceTsVideoEbpOrder enum value
M2tsForceTsVideoEbpOrderForce = "FORCE"
diff --git a/vendor/github.com/aws/aws-sdk-go/service/medialive/api.go b/vendor/github.com/aws/aws-sdk-go/service/medialive/api.go
index c23e8e76188..2bce70ef154 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/medialive/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/medialive/api.go
@@ -5183,6 +5183,9 @@ type ChannelSummary struct {
RoleArn *string `locationName:"roleArn" type:"string"`
State *string `locationName:"state" type:"string" enum:"ChannelState"`
+
+ // A collection of key-value pairs.
+ Tags map[string]*string `locationName:"tags" type:"map"`
}
// String returns the string representation
@@ -5261,6 +5264,12 @@ func (s *ChannelSummary) SetState(v string) *ChannelSummary {
return s
}
+// SetTags sets the Tags field's value.
+func (s *ChannelSummary) SetTags(v map[string]*string) *ChannelSummary {
+ s.Tags = v
+ return s
+}
+
type CreateChannelInput struct {
_ struct{} `type:"structure"`
@@ -5423,6 +5432,12 @@ type CreateInputInput struct {
Tags map[string]*string `locationName:"tags" type:"map"`
Type *string `locationName:"type" type:"string" enum:"InputType"`
+
+ // Settings for a private VPC Input.When this property is specified, the input
+ // destination addresses will be created in a VPC rather than with public Internet
+ // addresses.This property requires setting the roleArn property on Input creation.Not
+ // compatible with the inputSecurityGroups property.
+ Vpc *InputVpcRequest `locationName:"vpc" type:"structure"`
}
// String returns the string representation
@@ -5435,6 +5450,21 @@ func (s CreateInputInput) GoString() string {
return s.String()
}
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreateInputInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateInputInput"}
+ if s.Vpc != nil {
+ if err := s.Vpc.Validate(); err != nil {
+ invalidParams.AddNested("Vpc", err.(request.ErrInvalidParams))
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
// SetDestinations sets the Destinations field's value.
func (s *CreateInputInput) SetDestinations(v []*InputDestinationRequest) *CreateInputInput {
s.Destinations = v
@@ -5489,6 +5519,12 @@ func (s *CreateInputInput) SetType(v string) *CreateInputInput {
return s
}
+// SetVpc sets the Vpc field's value.
+func (s *CreateInputInput) SetVpc(v *InputVpcRequest) *CreateInputInput {
+ s.Vpc = v
+ return s
+}
+
type CreateInputOutput struct {
_ struct{} `type:"structure"`
@@ -8976,12 +9012,19 @@ type HlsGroupSettings struct {
// Parameters that control interactions with the CDN.
HlsCdnSettings *HlsCdnSettings `locationName:"hlsCdnSettings" type:"structure"`
- // If enabled, writes out I-Frame only playlists in addition to media playlists.
+ // DISABLED: Do not create an I-frame-only manifest, but do create the master
+ // and media manifests (according to the Output Selection field).STANDARD: Create
+ // an I-frame-only manifest for each output that contains video, as well as
+ // the other manifests (according to the Output Selection field). The I-frame
+ // manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only,
+ // and one or more #EXT-X-BYTERANGE entries identifying the I-frame position.
+ // For example, #EXT-X-BYTERANGE:160364@1461888"
IFrameOnlyPlaylists *string `locationName:"iFrameOnlyPlaylists" type:"string" enum:"IFrameOnlyPlaylistType"`
- // If mode is "live", the number of segments to retain in the manifest (.m3u8)
- // file. This number must be less than or equal to keepSegments. If mode is
- // "vod", this parameter has no effect.
+ // Applies only if Mode field is LIVE. Specifies the maximum number of segments
+ // in the media manifest file. After this maximum, older segments are removed
+ // from the media manifest. This number must be less than or equal to the Keep
+ // Segments field.
IndexNSegments *int64 `locationName:"indexNSegments" min:"3" type:"integer"`
// Parameter that control output group behavior on input loss.
@@ -8999,8 +9042,8 @@ type HlsGroupSettings struct {
// constantIv value.
IvSource *string `locationName:"ivSource" type:"string" enum:"HlsIvSource"`
- // If mode is "live", the number of TS segments to retain in the destination
- // directory. If mode is "vod", this parameter has no effect.
+ // Applies only if Mode field is LIVE. Specifies the number of media segments
+ // (.ts files) to retain in the destination directory.
KeepSegments *int64 `locationName:"keepSegments" min:"1" type:"integer"`
// The value specifies how the key is represented in the resource identified
@@ -9035,8 +9078,9 @@ type HlsGroupSettings struct {
// converting it to a "VOD" type manifest on completion of the stream.
Mode *string `locationName:"mode" type:"string" enum:"HlsMode"`
- // Generates the .m3u8 playlist file for this HLS output group. The segmentsOnly
- // option will output segments without the .m3u8 file.
+ // MANIFESTSANDSEGMENTS: Generates manifests (master manifest, if applicable,
+ // and media manifests) for this output group.SEGMENTSONLY: Does not generate
+ // any manifests for this output group.
OutputSelection *string `locationName:"outputSelection" type:"string" enum:"HlsOutputSelection"`
// Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files.
@@ -9079,9 +9123,12 @@ type HlsGroupSettings struct {
// Provides an extra millisecond delta offset to fine tune the timestamps.
TimestampDeltaMilliseconds *int64 `locationName:"timestampDeltaMilliseconds" type:"integer"`
- // When set to "singleFile", emits the program as a single media resource (.ts)
- // file, and uses #EXT-X-BYTERANGE tags to index segment for playback. Playback
- // of VOD mode content during event is not guaranteed due to HTTP server caching.
+ // SEGMENTEDFILES: Emit the program as segments - multiple .ts media files.SINGLEFILE:
+ // Applies only if Mode field is VOD. Emit the program as a single .ts media
+ // file. The media manifest includes #EXT-X-BYTERANGE tags to index segments
+ // for playback. A typical use for this value is when sending the output to
+ // AWS Elemental MediaConvert, which can accept only a single media file. Playback
+ // while the channel is running is not guaranteed due to HTTP server caching.
TsFileMode *string `locationName:"tsFileMode" type:"string" enum:"HlsTsFileMode"`
}
@@ -9723,7 +9770,7 @@ type Input struct {
// after creation.
RoleArn *string `locationName:"roleArn" type:"string"`
- // A list of IDs for all the security groups attached to the input.
+ // A list of IDs for all the Input Security Groups attached to the input.
SecurityGroups []*string `locationName:"securityGroups" type:"list"`
// A list of the sources of the input (PULL-type).
@@ -9945,6 +9992,9 @@ type InputDestination struct {
// This represents the endpoint that the customer stream will bepushed to.
Url *string `locationName:"url" type:"string"`
+
+ // The properties for a VPC type input destination.
+ Vpc *InputDestinationVpc `locationName:"vpc" type:"structure"`
}
// String returns the string representation
@@ -9975,6 +10025,12 @@ func (s *InputDestination) SetUrl(v string) *InputDestination {
return s
}
+// SetVpc sets the Vpc field's value.
+func (s *InputDestination) SetVpc(v *InputDestinationVpc) *InputDestination {
+ s.Vpc = v
+ return s
+}
+
// Endpoint settings for a PUSH type input.
type InputDestinationRequest struct {
_ struct{} `type:"structure"`
@@ -9999,6 +10055,39 @@ func (s *InputDestinationRequest) SetStreamName(v string) *InputDestinationReque
return s
}
+// The properties for a VPC type input destination.
+type InputDestinationVpc struct {
+ _ struct{} `type:"structure"`
+
+ // The availability zone of the Input destination.
+ AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
+
+ // The network interface ID of the Input destination in the VPC.
+ NetworkInterfaceId *string `locationName:"networkInterfaceId" type:"string"`
+}
+
+// String returns the string representation
+func (s InputDestinationVpc) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s InputDestinationVpc) GoString() string {
+ return s.String()
+}
+
+// SetAvailabilityZone sets the AvailabilityZone field's value.
+func (s *InputDestinationVpc) SetAvailabilityZone(v string) *InputDestinationVpc {
+ s.AvailabilityZone = &v
+ return s
+}
+
+// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
+func (s *InputDestinationVpc) SetNetworkInterfaceId(v string) *InputDestinationVpc {
+ s.NetworkInterfaceId = &v
+ return s
+}
+
type InputLocation struct {
_ struct{} `type:"structure"`
@@ -10512,6 +10601,60 @@ func (s *InputSwitchScheduleActionSettings) SetInputAttachmentNameReference(v st
return s
}
+// Settings for a private VPC Input.When this property is specified, the input
+// destination addresses will be created in a VPC rather than with public Internet
+// addresses.This property requires setting the roleArn property on Input creation.Not
+// compatible with the inputSecurityGroups property.
+type InputVpcRequest struct {
+ _ struct{} `type:"structure"`
+
+ // A list of up to 5 EC2 VPC security group IDs to attach to the Input VPC network
+ // interfaces.Requires subnetIds. If none are specified then the VPC default
+ // security group will be used.
+ SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"`
+
+ // A list of 2 VPC subnet IDs from the same VPC.Subnet IDs must be mapped to
+ // two unique availability zones (AZ).
+ //
+ // SubnetIds is a required field
+ SubnetIds []*string `locationName:"subnetIds" type:"list" required:"true"`
+}
+
+// String returns the string representation
+func (s InputVpcRequest) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s InputVpcRequest) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *InputVpcRequest) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "InputVpcRequest"}
+ if s.SubnetIds == nil {
+ invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetSecurityGroupIds sets the SecurityGroupIds field's value.
+func (s *InputVpcRequest) SetSecurityGroupIds(v []*string) *InputVpcRequest {
+ s.SecurityGroupIds = v
+ return s
+}
+
+// SetSubnetIds sets the SubnetIds field's value.
+func (s *InputVpcRequest) SetSubnetIds(v []*string) *InputVpcRequest {
+ s.SubnetIds = v
+ return s
+}
+
// Whitelist rule
type InputWhitelistRule struct {
_ struct{} `type:"structure"`
@@ -12816,6 +12959,88 @@ func (s PassThroughSettings) GoString() string {
return s.String()
}
+// Settings for the action to set pause state of a channel.
+type PauseStateScheduleActionSettings struct {
+ _ struct{} `type:"structure"`
+
+ Pipelines []*PipelinePauseStateSettings `locationName:"pipelines" type:"list"`
+}
+
+// String returns the string representation
+func (s PauseStateScheduleActionSettings) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PauseStateScheduleActionSettings) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *PauseStateScheduleActionSettings) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "PauseStateScheduleActionSettings"}
+ if s.Pipelines != nil {
+ for i, v := range s.Pipelines {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Pipelines", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetPipelines sets the Pipelines field's value.
+func (s *PauseStateScheduleActionSettings) SetPipelines(v []*PipelinePauseStateSettings) *PauseStateScheduleActionSettings {
+ s.Pipelines = v
+ return s
+}
+
+// Settings for pausing a pipeline.
+type PipelinePauseStateSettings struct {
+ _ struct{} `type:"structure"`
+
+ // Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").
+ //
+ // PipelineId is a required field
+ PipelineId *string `locationName:"pipelineId" type:"string" required:"true" enum:"PipelineId"`
+}
+
+// String returns the string representation
+func (s PipelinePauseStateSettings) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PipelinePauseStateSettings) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *PipelinePauseStateSettings) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "PipelinePauseStateSettings"}
+ if s.PipelineId == nil {
+ invalidParams.Add(request.NewErrParamRequired("PipelineId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetPipelineId sets the PipelineId field's value.
+func (s *PipelinePauseStateSettings) SetPipelineId(v string) *PipelinePauseStateSettings {
+ s.PipelineId = &v
+ return s
+}
+
type PurchaseOfferingInput struct {
_ struct{} `type:"structure"`
@@ -13502,25 +13727,28 @@ func (s *ScheduleAction) SetScheduleActionStartSettings(v *ScheduleActionStartSe
type ScheduleActionSettings struct {
_ struct{} `type:"structure"`
- // Settings to emit HLS metadata
+ // Action to insert HLS metadata
HlsTimedMetadataSettings *HlsTimedMetadataScheduleActionSettings `locationName:"hlsTimedMetadataSettings" type:"structure"`
- // Settings to switch an input
+ // Action to switch the input
InputSwitchSettings *InputSwitchScheduleActionSettings `locationName:"inputSwitchSettings" type:"structure"`
- // Settings for SCTE-35 return_to_network message
+ // Action to pause or unpause one or both channel pipelines
+ PauseStateSettings *PauseStateScheduleActionSettings `locationName:"pauseStateSettings" type:"structure"`
+
+ // Action to insert SCTE-35 return_to_network message
Scte35ReturnToNetworkSettings *Scte35ReturnToNetworkScheduleActionSettings `locationName:"scte35ReturnToNetworkSettings" type:"structure"`
- // Settings for SCTE-35 splice_insert message
+ // Action to insert SCTE-35 splice_insert message
Scte35SpliceInsertSettings *Scte35SpliceInsertScheduleActionSettings `locationName:"scte35SpliceInsertSettings" type:"structure"`
- // Settings for SCTE-35 time_signal message
+ // Action to insert SCTE-35 time_signal message
Scte35TimeSignalSettings *Scte35TimeSignalScheduleActionSettings `locationName:"scte35TimeSignalSettings" type:"structure"`
- // Settings to activate a static image overlay
+ // Action to activate a static image overlay
StaticImageActivateSettings *StaticImageActivateScheduleActionSettings `locationName:"staticImageActivateSettings" type:"structure"`
- // Settings to deactivate a static image overlay
+ // Action to deactivate a static image overlay
StaticImageDeactivateSettings *StaticImageDeactivateScheduleActionSettings `locationName:"staticImageDeactivateSettings" type:"structure"`
}
@@ -13547,6 +13775,11 @@ func (s *ScheduleActionSettings) Validate() error {
invalidParams.AddNested("InputSwitchSettings", err.(request.ErrInvalidParams))
}
}
+ if s.PauseStateSettings != nil {
+ if err := s.PauseStateSettings.Validate(); err != nil {
+ invalidParams.AddNested("PauseStateSettings", err.(request.ErrInvalidParams))
+ }
+ }
if s.Scte35ReturnToNetworkSettings != nil {
if err := s.Scte35ReturnToNetworkSettings.Validate(); err != nil {
invalidParams.AddNested("Scte35ReturnToNetworkSettings", err.(request.ErrInvalidParams))
@@ -13586,6 +13819,12 @@ func (s *ScheduleActionSettings) SetInputSwitchSettings(v *InputSwitchScheduleAc
return s
}
+// SetPauseStateSettings sets the PauseStateSettings field's value.
+func (s *ScheduleActionSettings) SetPauseStateSettings(v *PauseStateScheduleActionSettings) *ScheduleActionSettings {
+ s.PauseStateSettings = v
+ return s
+}
+
// SetScte35ReturnToNetworkSettings sets the Scte35ReturnToNetworkSettings field's value.
func (s *ScheduleActionSettings) SetScte35ReturnToNetworkSettings(v *Scte35ReturnToNetworkScheduleActionSettings) *ScheduleActionSettings {
s.Scte35ReturnToNetworkSettings = v
@@ -17451,6 +17690,15 @@ const (
OfferingTypeNoUpfront = "NO_UPFRONT"
)
+// Pipeline ID
+const (
+ // PipelineIdPipeline0 is a PipelineId enum value
+ PipelineIdPipeline0 = "PIPELINE_0"
+
+ // PipelineIdPipeline1 is a PipelineId enum value
+ PipelineIdPipeline1 = "PIPELINE_1"
+)
+
// Codec, 'MPEG2', 'AVC', 'HEVC', or 'AUDIO'
const (
// ReservationCodecMpeg2 is a ReservationCodec enum value
diff --git a/vendor/github.com/aws/aws-sdk-go/service/mediapackage/api.go b/vendor/github.com/aws/aws-sdk-go/service/mediapackage/api.go
index 58b5e86a39b..a7ca10f3e12 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/mediapackage/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/mediapackage/api.go
@@ -830,6 +830,78 @@ func (c *MediaPackage) ListOriginEndpointsPagesWithContext(ctx aws.Context, inpu
return p.Err()
}
+const opListTagsForResource = "ListTagsForResource"
+
+// ListTagsForResourceRequest generates a "aws/request.Request" representing the
+// client's request for the ListTagsForResource operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ListTagsForResource for more information on using the ListTagsForResource
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ListTagsForResourceRequest method.
+// req, resp := client.ListTagsForResourceRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/ListTagsForResource
+func (c *MediaPackage) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
+ op := &request.Operation{
+ Name: opListTagsForResource,
+ HTTPMethod: "GET",
+ HTTPPath: "/tags/{resource-arn}",
+ }
+
+ if input == nil {
+ input = &ListTagsForResourceInput{}
+ }
+
+ output = &ListTagsForResourceOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ListTagsForResource API operation for AWS Elemental MediaPackage.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 MediaPackage's
+// API operation ListTagsForResource for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/ListTagsForResource
+func (c *MediaPackage) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
+ req, out := c.ListTagsForResourceRequest(input)
+ return out, req.Send()
+}
+
+// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ListTagsForResource for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *MediaPackage) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
+ req, out := c.ListTagsForResourceRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opRotateChannelCredentials = "RotateChannelCredentials"
// RotateChannelCredentialsRequest generates a "aws/request.Request" representing the
@@ -1017,6 +1089,152 @@ func (c *MediaPackage) RotateIngestEndpointCredentialsWithContext(ctx aws.Contex
return out, req.Send()
}
+const opTagResource = "TagResource"
+
+// TagResourceRequest generates a "aws/request.Request" representing the
+// client's request for the TagResource operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See TagResource for more information on using the TagResource
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the TagResourceRequest method.
+// req, resp := client.TagResourceRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/TagResource
+func (c *MediaPackage) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
+ op := &request.Operation{
+ Name: opTagResource,
+ HTTPMethod: "POST",
+ HTTPPath: "/tags/{resource-arn}",
+ }
+
+ if input == nil {
+ input = &TagResourceInput{}
+ }
+
+ output = &TagResourceOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// TagResource API operation for AWS Elemental MediaPackage.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 MediaPackage's
+// API operation TagResource for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/TagResource
+func (c *MediaPackage) 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 *MediaPackage) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
+ req, out := c.TagResourceRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opUntagResource = "UntagResource"
+
+// UntagResourceRequest generates a "aws/request.Request" representing the
+// client's request for the UntagResource operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See UntagResource for more information on using the UntagResource
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the UntagResourceRequest method.
+// req, resp := client.UntagResourceRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/UntagResource
+func (c *MediaPackage) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
+ op := &request.Operation{
+ Name: opUntagResource,
+ HTTPMethod: "DELETE",
+ HTTPPath: "/tags/{resource-arn}",
+ }
+
+ if input == nil {
+ input = &UntagResourceInput{}
+ }
+
+ output = &UntagResourceOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// UntagResource API operation for AWS Elemental MediaPackage.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 MediaPackage's
+// API operation UntagResource for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/mediapackage-2017-10-12/UntagResource
+func (c *MediaPackage) 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 *MediaPackage) 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 opUpdateChannel = "UpdateChannel"
// UpdateChannelRequest generates a "aws/request.Request" representing the
@@ -1208,6 +1426,9 @@ type Channel struct {
// The ID of the Channel.
Id *string `locationName:"id" type:"string"`
+
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
}
// String returns the string representation
@@ -1244,6 +1465,12 @@ func (s *Channel) SetId(v string) *Channel {
return s
}
+// SetTags sets the Tags field's value.
+func (s *Channel) SetTags(v map[string]*string) *Channel {
+ s.Tags = v
+ return s
+}
+
// A Common Media Application Format (CMAF) encryption configuration.
type CmafEncryption struct {
_ struct{} `type:"structure"`
@@ -1454,6 +1681,9 @@ type CreateChannelInput struct {
// Id is a required field
Id *string `locationName:"id" type:"string" required:"true"`
+
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
}
// String returns the string representation
@@ -1491,6 +1721,12 @@ func (s *CreateChannelInput) SetId(v string) *CreateChannelInput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateChannelInput) SetTags(v map[string]*string) *CreateChannelInput {
+ s.Tags = v
+ return s
+}
+
type CreateChannelOutput struct {
_ struct{} `type:"structure"`
@@ -1502,6 +1738,9 @@ type CreateChannelOutput struct {
HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"`
Id *string `locationName:"id" type:"string"`
+
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
}
// String returns the string representation
@@ -1538,6 +1777,12 @@ func (s *CreateChannelOutput) SetId(v string) *CreateChannelOutput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateChannelOutput) SetTags(v map[string]*string) *CreateChannelOutput {
+ s.Tags = v
+ return s
+}
+
type CreateOriginEndpointInput struct {
_ struct{} `type:"structure"`
@@ -1565,6 +1810,9 @@ type CreateOriginEndpointInput struct {
StartoverWindowSeconds *int64 `locationName:"startoverWindowSeconds" type:"integer"`
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
+
TimeDelaySeconds *int64 `locationName:"timeDelaySeconds" type:"integer"`
Whitelist []*string `locationName:"whitelist" type:"list"`
@@ -1670,6 +1918,12 @@ func (s *CreateOriginEndpointInput) SetStartoverWindowSeconds(v int64) *CreateOr
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateOriginEndpointInput) SetTags(v map[string]*string) *CreateOriginEndpointInput {
+ s.Tags = v
+ return s
+}
+
// SetTimeDelaySeconds sets the TimeDelaySeconds field's value.
func (s *CreateOriginEndpointInput) SetTimeDelaySeconds(v int64) *CreateOriginEndpointInput {
s.TimeDelaySeconds = &v
@@ -1709,6 +1963,9 @@ type CreateOriginEndpointOutput struct {
StartoverWindowSeconds *int64 `locationName:"startoverWindowSeconds" type:"integer"`
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
+
TimeDelaySeconds *int64 `locationName:"timeDelaySeconds" type:"integer"`
Url *string `locationName:"url" type:"string"`
@@ -1786,6 +2043,12 @@ func (s *CreateOriginEndpointOutput) SetStartoverWindowSeconds(v int64) *CreateO
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateOriginEndpointOutput) SetTags(v map[string]*string) *CreateOriginEndpointOutput {
+ s.Tags = v
+ return s
+}
+
// SetTimeDelaySeconds sets the TimeDelaySeconds field's value.
func (s *CreateOriginEndpointOutput) SetTimeDelaySeconds(v int64) *CreateOriginEndpointOutput {
s.TimeDelaySeconds = &v
@@ -2157,6 +2420,9 @@ type DescribeChannelOutput struct {
HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"`
Id *string `locationName:"id" type:"string"`
+
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
}
// String returns the string representation
@@ -2193,6 +2459,12 @@ func (s *DescribeChannelOutput) SetId(v string) *DescribeChannelOutput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *DescribeChannelOutput) SetTags(v map[string]*string) *DescribeChannelOutput {
+ s.Tags = v
+ return s
+}
+
type DescribeOriginEndpointInput struct {
_ struct{} `type:"structure"`
@@ -2259,6 +2531,9 @@ type DescribeOriginEndpointOutput struct {
StartoverWindowSeconds *int64 `locationName:"startoverWindowSeconds" type:"integer"`
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
+
TimeDelaySeconds *int64 `locationName:"timeDelaySeconds" type:"integer"`
Url *string `locationName:"url" type:"string"`
@@ -2336,6 +2611,12 @@ func (s *DescribeOriginEndpointOutput) SetStartoverWindowSeconds(v int64) *Descr
return s
}
+// SetTags sets the Tags field's value.
+func (s *DescribeOriginEndpointOutput) SetTags(v map[string]*string) *DescribeOriginEndpointOutput {
+ s.Tags = v
+ return s
+}
+
// SetTimeDelaySeconds sets the TimeDelaySeconds field's value.
func (s *DescribeOriginEndpointOutput) SetTimeDelaySeconds(v int64) *DescribeOriginEndpointOutput {
s.TimeDelaySeconds = &v
@@ -3002,6 +3283,67 @@ func (s *ListOriginEndpointsOutput) SetOriginEndpoints(v []*OriginEndpoint) *Lis
return s
}
+type ListTagsForResourceInput struct {
+ _ struct{} `type:"structure"`
+
+ // ResourceArn is a required field
+ ResourceArn *string `location:"uri" locationName:"resource-arn" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s ListTagsForResourceInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ListTagsForResourceInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ListTagsForResourceInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
+ if s.ResourceArn == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
+ }
+ if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceArn sets the ResourceArn field's value.
+func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
+ s.ResourceArn = &v
+ return s
+}
+
+type ListTagsForResourceOutput struct {
+ _ struct{} `type:"structure"`
+
+ Tags map[string]*string `locationName:"tags" type:"map"`
+}
+
+// String returns the string representation
+func (s ListTagsForResourceOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ListTagsForResourceOutput) GoString() string {
+ return s.String()
+}
+
+// SetTags sets the Tags field's value.
+func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
+ s.Tags = v
+ return s
+}
+
// A Microsoft Smooth Streaming (MSS) encryption configuration.
type MssEncryption struct {
_ struct{} `type:"structure"`
@@ -3148,6 +3490,9 @@ type OriginEndpoint struct {
// not specified, startover playback will be disabled for the OriginEndpoint.
StartoverWindowSeconds *int64 `locationName:"startoverWindowSeconds" type:"integer"`
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
+
// Amount of delay (seconds) to enforce on the playback of live content.If not
// specified, there will be no time delay in effect for the OriginEndpoint.
TimeDelaySeconds *int64 `locationName:"timeDelaySeconds" type:"integer"`
@@ -3229,6 +3574,12 @@ func (s *OriginEndpoint) SetStartoverWindowSeconds(v int64) *OriginEndpoint {
return s
}
+// SetTags sets the Tags field's value.
+func (s *OriginEndpoint) SetTags(v map[string]*string) *OriginEndpoint {
+ s.Tags = v
+ return s
+}
+
// SetTimeDelaySeconds sets the TimeDelaySeconds field's value.
func (s *OriginEndpoint) SetTimeDelaySeconds(v int64) *OriginEndpoint {
s.TimeDelaySeconds = &v
@@ -3299,6 +3650,9 @@ type RotateChannelCredentialsOutput struct {
HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"`
Id *string `locationName:"id" type:"string"`
+
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
}
// String returns the string representation
@@ -3335,6 +3689,12 @@ func (s *RotateChannelCredentialsOutput) SetId(v string) *RotateChannelCredentia
return s
}
+// SetTags sets the Tags field's value.
+func (s *RotateChannelCredentialsOutput) SetTags(v map[string]*string) *RotateChannelCredentialsOutput {
+ s.Tags = v
+ return s
+}
+
type RotateIngestEndpointCredentialsInput struct {
_ struct{} `type:"structure"`
@@ -3400,6 +3760,9 @@ type RotateIngestEndpointCredentialsOutput struct {
HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"`
Id *string `locationName:"id" type:"string"`
+
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
}
// String returns the string representation
@@ -3436,6 +3799,12 @@ func (s *RotateIngestEndpointCredentialsOutput) SetId(v string) *RotateIngestEnd
return s
}
+// SetTags sets the Tags field's value.
+func (s *RotateIngestEndpointCredentialsOutput) SetTags(v map[string]*string) *RotateIngestEndpointCredentialsOutput {
+ s.Tags = v
+ return s
+}
+
// A configuration for accessing an external Secure Packager and Encoder Key
// Exchange (SPEKE) service that will provide encryption keys.
type SpekeKeyProvider struct {
@@ -3572,6 +3941,136 @@ func (s *StreamSelection) SetStreamOrder(v string) *StreamSelection {
return s
}
+type TagResourceInput struct {
+ _ struct{} `type:"structure"`
+
+ // ResourceArn is a required field
+ ResourceArn *string `location:"uri" locationName:"resource-arn" type:"string" required:"true"`
+
+ // Tags is a required field
+ Tags map[string]*string `locationName:"tags" type:"map" 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.ResourceArn == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
+ }
+ if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
+ }
+ if s.Tags == nil {
+ invalidParams.Add(request.NewErrParamRequired("Tags"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceArn sets the ResourceArn field's value.
+func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
+ s.ResourceArn = &v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
+ s.Tags = v
+ return s
+}
+
+type TagResourceOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s TagResourceOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TagResourceOutput) GoString() string {
+ return s.String()
+}
+
+type UntagResourceInput struct {
+ _ struct{} `type:"structure"`
+
+ // ResourceArn is a required field
+ ResourceArn *string `location:"uri" locationName:"resource-arn" type:"string" required:"true"`
+
+ // TagKeys is a required field
+ TagKeys []*string `location:"querystring" locationName:"tagKeys" 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.ResourceArn == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
+ }
+ if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
+ }
+ if s.TagKeys == nil {
+ invalidParams.Add(request.NewErrParamRequired("TagKeys"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceArn sets the ResourceArn field's value.
+func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
+ s.ResourceArn = &v
+ return s
+}
+
+// SetTagKeys sets the TagKeys field's value.
+func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
+ s.TagKeys = v
+ return s
+}
+
+type UntagResourceOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s UntagResourceOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s UntagResourceOutput) GoString() string {
+ return s.String()
+}
+
type UpdateChannelInput struct {
_ struct{} `type:"structure"`
@@ -3630,6 +4129,9 @@ type UpdateChannelOutput struct {
HlsIngest *HlsIngest `locationName:"hlsIngest" type:"structure"`
Id *string `locationName:"id" type:"string"`
+
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
}
// String returns the string representation
@@ -3666,6 +4168,12 @@ func (s *UpdateChannelOutput) SetId(v string) *UpdateChannelOutput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *UpdateChannelOutput) SetTags(v map[string]*string) *UpdateChannelOutput {
+ s.Tags = v
+ return s
+}
+
type UpdateOriginEndpointInput struct {
_ struct{} `type:"structure"`
@@ -3828,6 +4336,9 @@ type UpdateOriginEndpointOutput struct {
StartoverWindowSeconds *int64 `locationName:"startoverWindowSeconds" type:"integer"`
+ // A collection of tags associated with a resource
+ Tags map[string]*string `locationName:"tags" type:"map"`
+
TimeDelaySeconds *int64 `locationName:"timeDelaySeconds" type:"integer"`
Url *string `locationName:"url" type:"string"`
@@ -3905,6 +4416,12 @@ func (s *UpdateOriginEndpointOutput) SetStartoverWindowSeconds(v int64) *UpdateO
return s
}
+// SetTags sets the Tags field's value.
+func (s *UpdateOriginEndpointOutput) SetTags(v map[string]*string) *UpdateOriginEndpointOutput {
+ s.Tags = v
+ return s
+}
+
// SetTimeDelaySeconds sets the TimeDelaySeconds field's value.
func (s *UpdateOriginEndpointOutput) SetTimeDelaySeconds(v int64) *UpdateOriginEndpointOutput {
s.TimeDelaySeconds = &v
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 fdce6d30b1a..7e3997ff0f0 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
@@ -419,7 +419,8 @@ func (c *MediaStore) DeleteLifecyclePolicyRequest(input *DeleteLifecyclePolicyIn
// DeleteLifecyclePolicy API operation for AWS Elemental MediaStore.
//
-// Removes an object lifecycle policy from a container.
+// Removes an object lifecycle policy from a container. It takes up to 20 minutes
+// for the change to take effect.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1064,6 +1065,9 @@ func (c *MediaStore) PutCorsPolicyRequest(input *PutCorsPolicyInput) (req *reque
// 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.
//
+// To learn more about CORS, see Cross-Origin Resource Sharing (CORS) in AWS
+// Elemental MediaStore (https://docs.aws.amazon.com/mediastore/latest/ug/cors-policy.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.
@@ -1151,7 +1155,10 @@ func (c *MediaStore) PutLifecyclePolicyRequest(input *PutLifecyclePolicyInput) (
//
// Writes an object lifecycle policy to a container. If the container already
// has an object lifecycle policy, the service replaces the existing policy
-// with the new policy.
+// with the new policy. It takes up to 20 minutes for the change to take effect.
+//
+// For information about how to construct an object lifecycle policy, see Components
+// of an Object Lifecycle Policy (https://docs.aws.amazon.com/mediastore/latest/ug/policies-object-lifecycle-components.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
@@ -1193,6 +1200,184 @@ func (c *MediaStore) PutLifecyclePolicyWithContext(ctx aws.Context, input *PutLi
return out, req.Send()
}
+const opStartAccessLogging = "StartAccessLogging"
+
+// StartAccessLoggingRequest generates a "aws/request.Request" representing the
+// client's request for the StartAccessLogging operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See StartAccessLogging for more information on using the StartAccessLogging
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the StartAccessLoggingRequest method.
+// req, resp := client.StartAccessLoggingRequest(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/StartAccessLogging
+func (c *MediaStore) StartAccessLoggingRequest(input *StartAccessLoggingInput) (req *request.Request, output *StartAccessLoggingOutput) {
+ op := &request.Operation{
+ Name: opStartAccessLogging,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &StartAccessLoggingInput{}
+ }
+
+ output = &StartAccessLoggingOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// StartAccessLogging API operation for AWS Elemental MediaStore.
+//
+// Starts access logging on the specified container. When you enable access
+// logging on a container, MediaStore delivers access logs for objects stored
+// in that container to Amazon CloudWatch Logs.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 StartAccessLogging for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeContainerInUseException "ContainerInUseException"
+// The container that you specified in the request already exists or is being
+// updated.
+//
+// * ErrCodeContainerNotFoundException "ContainerNotFoundException"
+// The container that you specified in the request does not exist.
+//
+// * ErrCodeInternalServerError "InternalServerError"
+// The service is temporarily unavailable.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/StartAccessLogging
+func (c *MediaStore) StartAccessLogging(input *StartAccessLoggingInput) (*StartAccessLoggingOutput, error) {
+ req, out := c.StartAccessLoggingRequest(input)
+ return out, req.Send()
+}
+
+// StartAccessLoggingWithContext is the same as StartAccessLogging with the addition of
+// the ability to pass a context and additional request options.
+//
+// See StartAccessLogging for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) StartAccessLoggingWithContext(ctx aws.Context, input *StartAccessLoggingInput, opts ...request.Option) (*StartAccessLoggingOutput, error) {
+ req, out := c.StartAccessLoggingRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opStopAccessLogging = "StopAccessLogging"
+
+// StopAccessLoggingRequest generates a "aws/request.Request" representing the
+// client's request for the StopAccessLogging operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See StopAccessLogging for more information on using the StopAccessLogging
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the StopAccessLoggingRequest method.
+// req, resp := client.StopAccessLoggingRequest(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/StopAccessLogging
+func (c *MediaStore) StopAccessLoggingRequest(input *StopAccessLoggingInput) (req *request.Request, output *StopAccessLoggingOutput) {
+ op := &request.Operation{
+ Name: opStopAccessLogging,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &StopAccessLoggingInput{}
+ }
+
+ output = &StopAccessLoggingOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// StopAccessLogging API operation for AWS Elemental MediaStore.
+//
+// Stops access logging on the specified container. When you stop access logging
+// on a container, MediaStore stops sending access logs to Amazon CloudWatch
+// Logs. These access logs are not saved and are not retrievable.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 StopAccessLogging for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeContainerInUseException "ContainerInUseException"
+// The container that you specified in the request already exists or is being
+// updated.
+//
+// * ErrCodeContainerNotFoundException "ContainerNotFoundException"
+// The container that you specified in the request does not exist.
+//
+// * ErrCodeInternalServerError "InternalServerError"
+// The service is temporarily unavailable.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/StopAccessLogging
+func (c *MediaStore) StopAccessLogging(input *StopAccessLoggingInput) (*StopAccessLoggingOutput, error) {
+ req, out := c.StopAccessLoggingRequest(input)
+ return out, req.Send()
+}
+
+// StopAccessLoggingWithContext is the same as StopAccessLogging with the addition of
+// the ability to pass a context and additional request options.
+//
+// See StopAccessLogging for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the 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) StopAccessLoggingWithContext(ctx aws.Context, input *StopAccessLoggingInput, opts ...request.Option) (*StopAccessLoggingOutput, error) {
+ req, out := c.StopAccessLoggingRequest(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.
type Container struct {
@@ -1206,6 +1391,13 @@ type Container struct {
// For example: arn:aws:mediastore:us-west-2:111122223333:container/movies
ARN *string `min:"1" type:"string"`
+ // The state of access logging on the container. This value is false by default,
+ // indicating that AWS Elemental MediaStore does not send access logs to Amazon
+ // CloudWatch Logs. When you enable access logging on the container, MediaStore
+ // changes this value to true, indicating that the service delivers access logs
+ // for objects stored in that container to CloudWatch Logs.
+ AccessLoggingEnabled *bool `type:"boolean"`
+
// Unix timestamp.
CreationTime *time.Time `type:"timestamp"`
@@ -1241,6 +1433,12 @@ func (s *Container) SetARN(v string) *Container {
return s
}
+// SetAccessLoggingEnabled sets the AccessLoggingEnabled field's value.
+func (s *Container) SetAccessLoggingEnabled(v bool) *Container {
+ s.AccessLoggingEnabled = &v
+ return s
+}
+
// SetCreationTime sets the CreationTime field's value.
func (s *Container) SetCreationTime(v time.Time) *Container {
s.CreationTime = &v
@@ -2249,6 +2447,116 @@ func (s PutLifecyclePolicyOutput) GoString() string {
return s.String()
}
+type StartAccessLoggingInput struct {
+ _ struct{} `type:"structure"`
+
+ // The name of the container that you want to start access logging on.
+ //
+ // ContainerName is a required field
+ ContainerName *string `min:"1" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s StartAccessLoggingInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s StartAccessLoggingInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *StartAccessLoggingInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "StartAccessLoggingInput"}
+ 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 *StartAccessLoggingInput) SetContainerName(v string) *StartAccessLoggingInput {
+ s.ContainerName = &v
+ return s
+}
+
+type StartAccessLoggingOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s StartAccessLoggingOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s StartAccessLoggingOutput) GoString() string {
+ return s.String()
+}
+
+type StopAccessLoggingInput struct {
+ _ struct{} `type:"structure"`
+
+ // The name of the container that you want to stop access logging on.
+ //
+ // ContainerName is a required field
+ ContainerName *string `min:"1" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s StopAccessLoggingInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s StopAccessLoggingInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *StopAccessLoggingInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "StopAccessLoggingInput"}
+ 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 *StopAccessLoggingInput) SetContainerName(v string) *StopAccessLoggingInput {
+ s.ContainerName = &v
+ return s
+}
+
+type StopAccessLoggingOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s StopAccessLoggingOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s StopAccessLoggingOutput) GoString() string {
+ return s.String()
+}
+
const (
// ContainerStatusActive is a ContainerStatus enum value
ContainerStatusActive = "ACTIVE"
diff --git a/vendor/github.com/aws/aws-sdk-go/service/organizations/api.go b/vendor/github.com/aws/aws-sdk-go/service/organizations/api.go
index f37a867f071..6d6846090b4 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/organizations/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/organizations/api.go
@@ -76,10 +76,10 @@ func (c *Organizations) AcceptHandshakeRequest(input *AcceptHandshakeInput) (req
// the master account.
//
// For more information about invitations, see Inviting an AWS Account to Join
-// Your Organization (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_invites.html)
+// Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_invites.html)
// in the AWS Organizations User Guide. For more information about requests
// to enable all features in the organization, see Enabling All Features
-// in Your Organization (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)
+// in Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)
// in the AWS Organizations User Guide.
//
// After you accept a handshake, it continues to appear in the results of relevant
@@ -97,7 +97,7 @@ func (c *Organizations) AcceptHandshakeRequest(input *AcceptHandshakeInput) (req
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -229,6 +229,10 @@ func (c *Organizations) AcceptHandshakeRequest(input *AcceptHandshakeInput) (req
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// * ErrCodeAccessDeniedForDependencyException "AccessDeniedForDependencyException"
// The operation that you attempted requires you to have the iam:CreateServiceLinkedRole
// so that AWS Organizations can create the required service-linked role. You
@@ -316,14 +320,15 @@ func (c *Organizations) AttachPolicyRequest(input *AttachPolicyInput) (req *requ
// If you attach the policy directly to an account, then it affects only that
// account.
//
-// SCPs essentially are permission "filters". When you attach one SCP to a higher
-// level root or OU, and you also attach a different SCP to a child OU or
-// to an account, the child policy can further restrict only the permissions
-// that pass through the parent filter and are available to the child. An
-// SCP that is attached to a child cannot grant a permission that is not
-// already granted by the parent. For example, imagine that the parent SCP
-// allows permissions A, B, C, D, and E. The child SCP allows C, D, E, F,
-// and G. The result is that the accounts affected by the child SCP are allowed
+// SCPs are JSON policies that specify the maximum permissions for an organization
+// or organizational unit (OU). When you attach one SCP to a higher level
+// root or OU, and you also attach a different SCP to a child OU or to an
+// account, the child policy can further restrict only the permissions that
+// pass through the parent filter and are available to the child. An SCP
+// that is attached to a child cannot grant a permission that is not already
+// granted by the parent. For example, imagine that the parent SCP allows
+// permissions A, B, C, D, and E. The child SCP allows C, D, E, F, and G.
+// The result is that the accounts affected by the child SCP are allowed
// to use only C, D, and E. They cannot use A or B because they were filtered
// out by the child OU. They also cannot use F and G because they were filtered
// out by the parent OU. They cannot be granted back by the child SCP; child
@@ -336,7 +341,7 @@ func (c *Organizations) AttachPolicyRequest(input *AttachPolicyInput) (req *requ
// that specifies the permissions that you want to allow in that OU or account.
//
// For more information about how Organizations policies permissions work, see
-// Using Service Control Policies (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html)
+// Using Service Control Policies (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html)
// in the AWS Organizations User Guide.
//
// This operation can be called only from the organization's master account.
@@ -353,7 +358,7 @@ func (c *Organizations) AttachPolicyRequest(input *AttachPolicyInput) (req *requ
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -526,7 +531,7 @@ func (c *Organizations) AttachPolicyRequest(input *AttachPolicyInput) (req *requ
// The specified policy type isn't currently enabled in this root. You can't
// attach policies of the specified type to entities in a root until you enable
// that type in the root. For more information, see Enabling All Features in
-// Your Organization (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)
+// Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)
// in the AWS Organizations User Guide.
//
// * ErrCodeServiceException "ServiceException"
@@ -540,6 +545,10 @@ func (c *Organizations) AttachPolicyRequest(input *AttachPolicyInput) (req *requ
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/AttachPolicy
func (c *Organizations) AttachPolicy(input *AttachPolicyInput) (*AttachPolicyOutput, error) {
req, out := c.AttachPolicyRequest(input)
@@ -628,7 +637,7 @@ func (c *Organizations) CancelHandshakeRequest(input *CancelHandshakeInput) (req
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeConcurrentModificationException "ConcurrentModificationException"
@@ -714,6 +723,10 @@ func (c *Organizations) CancelHandshakeRequest(input *CancelHandshakeInput) (req
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/CancelHandshake
func (c *Organizations) CancelHandshake(input *CancelHandshakeInput) (*CancelHandshakeOutput, error) {
req, out := c.CancelHandshakeRequest(input)
@@ -808,7 +821,7 @@ func (c *Organizations) CreateAccountRequest(input *CreateAccountInput) (req *re
// This operation can be called only from the organization's master account.
//
// For more information about creating accounts, see Creating an AWS Account
-// in Your Organization (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_create.html)in the AWS Organizations User Guide.
+// in Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_create.html)in the AWS Organizations User Guide.
//
// When you create an account in an organization using the AWS Organizations
// console, API, or CLI commands, the information required for the account to
@@ -826,7 +839,7 @@ func (c *Organizations) CreateAccountRequest(input *CreateAccountInput) (req *re
// your organization is still initializing, wait one hour and then try again.
// If the error persists, contact AWS Support (https://console.aws.amazon.com/support/home#/).
//
-// Using CreateAccount to create multiple temporary accounts is not recommended.
+// Using CreateAccount to create multiple temporary accounts isn't recommended.
// You can only close an account from the Billing and Cost Management Console,
// and you must be signed in as the root user. For information on the requirements
// and process for closing an account, see Closing an AWS Account (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_close.html)
@@ -838,7 +851,7 @@ func (c *Organizations) CreateAccountRequest(input *CreateAccountInput) (req *re
// permissions can view billing information for the account. If you disable
// it, only the account root user can access billing information. For information
// about how to disable this switch for an account, see Granting Access to Your
-// Billing Information and Tools (http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/grantaccess.html).
+// Billing Information and Tools (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/grantaccess.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
@@ -852,7 +865,7 @@ func (c *Organizations) CreateAccountRequest(input *CreateAccountInput) (req *re
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -1029,6 +1042,10 @@ func (c *Organizations) CreateAccountRequest(input *CreateAccountInput) (req *re
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/CreateAccount
func (c *Organizations) CreateAccount(input *CreateAccountInput) (*CreateAccountOutput, error) {
req, out := c.CreateAccountRequest(input)
@@ -1096,7 +1113,7 @@ func (c *Organizations) CreateOrganizationRequest(input *CreateOrganizationInput
// CreateOrganization API operation for AWS Organizations.
//
// Creates an AWS organization. The account whose user is calling the CreateOrganization
-// operation automatically becomes the master account (http://docs.aws.amazon.com/IAM/latest/UserGuide/orgs_getting-started_concepts.html#account)
+// operation automatically becomes the master account (https://docs.aws.amazon.com/IAM/latest/UserGuide/orgs_getting-started_concepts.html#account)
// of the new organization.
//
// This operation must be called using credentials from the account that is
@@ -1122,7 +1139,7 @@ func (c *Organizations) CreateOrganizationRequest(input *CreateOrganizationInput
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAlreadyInOrganizationException "AlreadyInOrganizationException"
@@ -1293,6 +1310,10 @@ func (c *Organizations) CreateOrganizationRequest(input *CreateOrganizationInput
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// * ErrCodeAccessDeniedForDependencyException "AccessDeniedForDependencyException"
// The operation that you attempted requires you to have the iam:CreateServiceLinkedRole
// so that AWS Organizations can create the required service-linked role. You
@@ -1370,7 +1391,7 @@ func (c *Organizations) CreateOrganizationalUnitRequest(input *CreateOrganizatio
// that you can nest OUs is dependent upon the policy types enabled for that
// root. For service control policies, the limit is five.
//
-// For more information about OUs, see Managing Organizational Units (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html)
+// For more information about OUs, see Managing Organizational Units (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html)
// in the AWS Organizations User Guide.
//
// This operation can be called only from the organization's master account.
@@ -1387,7 +1408,7 @@ func (c *Organizations) CreateOrganizationalUnitRequest(input *CreateOrganizatio
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -1564,6 +1585,10 @@ func (c *Organizations) CreateOrganizationalUnitRequest(input *CreateOrganizatio
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/CreateOrganizationalUnit
func (c *Organizations) CreateOrganizationalUnit(input *CreateOrganizationalUnitInput) (*CreateOrganizationalUnitOutput, error) {
req, out := c.CreateOrganizationalUnitRequest(input)
@@ -1634,7 +1659,7 @@ func (c *Organizations) CreatePolicyRequest(input *CreatePolicyInput) (req *requ
// unit (OU), or an individual AWS account.
//
// For more information about policies and their use, see Managing Organization
-// Policies (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html).
+// Policies (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html).
//
// This operation can be called only from the organization's master account.
//
@@ -1650,7 +1675,7 @@ func (c *Organizations) CreatePolicyRequest(input *CreatePolicyInput) (req *requ
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -1819,14 +1844,14 @@ func (c *Organizations) CreatePolicyRequest(input *CreatePolicyInput) (req *requ
// * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocumentException"
// The provided policy document doesn't meet the requirements of the specified
// policy type. For example, the syntax might be incorrect. For details about
-// service control policy syntax, see Service Control Policy Syntax (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html)
+// service control policy syntax, see Service Control Policy Syntax (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html)
// in the AWS Organizations User Guide.
//
// * ErrCodePolicyTypeNotAvailableForOrganizationException "PolicyTypeNotAvailableForOrganizationException"
// You can't use the specified policy type with the feature set currently enabled
// for this organization. For example, you can enable SCPs only after you enable
// all features in the organization. For more information, see Enabling and
-// Disabling a Policy Type on a Root (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html#enable_policies_on_root)
+// Disabling a Policy Type on a Root (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html#enable_policies_on_root)
// in the AWS Organizations User Guide.
//
// * ErrCodeServiceException "ServiceException"
@@ -1837,6 +1862,10 @@ func (c *Organizations) CreatePolicyRequest(input *CreatePolicyInput) (req *requ
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/CreatePolicy
func (c *Organizations) CreatePolicy(input *CreatePolicyInput) (*CreatePolicyOutput, error) {
req, out := c.CreatePolicyRequest(input)
@@ -1926,7 +1955,7 @@ func (c *Organizations) DeclineHandshakeRequest(input *DeclineHandshakeInput) (r
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeConcurrentModificationException "ConcurrentModificationException"
@@ -2012,6 +2041,10 @@ func (c *Organizations) DeclineHandshakeRequest(input *DeclineHandshakeInput) (r
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DeclineHandshake
func (c *Organizations) DeclineHandshake(input *DeclineHandshakeInput) (*DeclineHandshakeOutput, error) {
req, out := c.DeclineHandshakeRequest(input)
@@ -2094,7 +2127,7 @@ func (c *Organizations) DeleteOrganizationRequest(input *DeleteOrganizationInput
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -2176,6 +2209,10 @@ func (c *Organizations) DeleteOrganizationRequest(input *DeleteOrganizationInput
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DeleteOrganization
func (c *Organizations) DeleteOrganization(input *DeleteOrganizationInput) (*DeleteOrganizationOutput, error) {
req, out := c.DeleteOrganizationRequest(input)
@@ -2260,7 +2297,7 @@ func (c *Organizations) DeleteOrganizationalUnitRequest(input *DeleteOrganizatio
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -2345,6 +2382,10 @@ func (c *Organizations) DeleteOrganizationalUnitRequest(input *DeleteOrganizatio
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DeleteOrganizationalUnit
func (c *Organizations) DeleteOrganizationalUnit(input *DeleteOrganizationalUnitInput) (*DeleteOrganizationalUnitOutput, error) {
req, out := c.DeleteOrganizationalUnitRequest(input)
@@ -2430,7 +2471,7 @@ func (c *Organizations) DeletePolicyRequest(input *DeletePolicyInput) (req *requ
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -2515,6 +2556,10 @@ func (c *Organizations) DeletePolicyRequest(input *DeletePolicyInput) (req *requ
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DeletePolicy
func (c *Organizations) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
req, out := c.DeletePolicyRequest(input)
@@ -2597,7 +2642,7 @@ func (c *Organizations) DescribeAccountRequest(input *DescribeAccountInput) (req
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAccountNotFoundException "AccountNotFoundException"
@@ -2676,6 +2721,10 @@ func (c *Organizations) DescribeAccountRequest(input *DescribeAccountInput) (req
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DescribeAccount
func (c *Organizations) DescribeAccount(input *DescribeAccountInput) (*DescribeAccountOutput, error) {
req, out := c.DescribeAccountRequest(input)
@@ -2758,7 +2807,7 @@ func (c *Organizations) DescribeCreateAccountStatusRequest(input *DescribeCreate
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -2836,6 +2885,10 @@ func (c *Organizations) DescribeCreateAccountStatusRequest(input *DescribeCreate
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DescribeCreateAccountStatus
func (c *Organizations) DescribeCreateAccountStatus(input *DescribeCreateAccountStatusInput) (*DescribeCreateAccountStatusOutput, error) {
req, out := c.DescribeCreateAccountStatusRequest(input)
@@ -2924,7 +2977,7 @@ func (c *Organizations) DescribeHandshakeRequest(input *DescribeHandshakeInput)
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeConcurrentModificationException "ConcurrentModificationException"
@@ -3001,6 +3054,10 @@ func (c *Organizations) DescribeHandshakeRequest(input *DescribeHandshakeInput)
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DescribeHandshake
func (c *Organizations) DescribeHandshake(input *DescribeHandshakeInput) (*DescribeHandshakeOutput, error) {
req, out := c.DescribeHandshakeRequest(input)
@@ -3088,7 +3145,7 @@ func (c *Organizations) DescribeOrganizationRequest(input *DescribeOrganizationI
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -3107,6 +3164,10 @@ func (c *Organizations) DescribeOrganizationRequest(input *DescribeOrganizationI
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DescribeOrganization
func (c *Organizations) DescribeOrganization(input *DescribeOrganizationInput) (*DescribeOrganizationOutput, error) {
req, out := c.DescribeOrganizationRequest(input)
@@ -3189,7 +3250,7 @@ func (c *Organizations) DescribeOrganizationalUnitRequest(input *DescribeOrganiz
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -3266,6 +3327,10 @@ func (c *Organizations) DescribeOrganizationalUnitRequest(input *DescribeOrganiz
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DescribeOrganizationalUnit
func (c *Organizations) DescribeOrganizationalUnit(input *DescribeOrganizationalUnitInput) (*DescribeOrganizationalUnitOutput, error) {
req, out := c.DescribeOrganizationalUnitRequest(input)
@@ -3348,7 +3413,7 @@ func (c *Organizations) DescribePolicyRequest(input *DescribePolicyInput) (req *
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -3425,6 +3490,10 @@ func (c *Organizations) DescribePolicyRequest(input *DescribePolicyInput) (req *
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DescribePolicy
func (c *Organizations) DescribePolicy(input *DescribePolicyInput) (*DescribePolicyOutput, error) {
req, out := c.DescribePolicyRequest(input)
@@ -3500,11 +3569,11 @@ func (c *Organizations) DetachPolicyRequest(input *DetachPolicyInput) (req *requ
// you want to replace the default FullAWSAccess policy with one that limits
// the permissions that can be delegated, then you must attach the replacement
// policy before you can remove the default one. This is the authorization strategy
-// of whitelisting (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html#orgs_policies_whitelist).
+// of whitelisting (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html#orgs_policies_whitelist).
// If you instead attach a second SCP and leave the FullAWSAccess SCP still
// attached, and specify "Effect": "Deny" in the second SCP to override the
// "Effect": "Allow" in the FullAWSAccess policy (or any other attached SCP),
-// then you are using the authorization strategy of blacklisting (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html#orgs_policies_blacklist).
+// then you are using the authorization strategy of blacklisting (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_about-scps.html#orgs_policies_blacklist).
//
// This operation can be called only from the organization's master account.
//
@@ -3520,7 +3589,7 @@ func (c *Organizations) DetachPolicyRequest(input *DetachPolicyInput) (req *requ
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -3700,6 +3769,10 @@ func (c *Organizations) DetachPolicyRequest(input *DetachPolicyInput) (req *requ
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DetachPolicy
func (c *Organizations) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
req, out := c.DetachPolicyRequest(input)
@@ -3803,7 +3876,7 @@ func (c *Organizations) DisableAWSServiceAccessRequest(input *DisableAWSServiceA
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -3974,6 +4047,10 @@ func (c *Organizations) DisableAWSServiceAccessRequest(input *DisableAWSServiceA
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DisableAWSServiceAccess
func (c *Organizations) DisableAWSServiceAccess(input *DisableAWSServiceAccessInput) (*DisableAWSServiceAccessOutput, error) {
req, out := c.DisableAWSServiceAccessRequest(input)
@@ -4065,7 +4142,7 @@ func (c *Organizations) DisablePolicyTypeRequest(input *DisablePolicyTypeInput)
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -4232,7 +4309,7 @@ func (c *Organizations) DisablePolicyTypeRequest(input *DisablePolicyTypeInput)
// The specified policy type isn't currently enabled in this root. You can't
// attach policies of the specified type to entities in a root until you enable
// that type in the root. For more information, see Enabling All Features in
-// Your Organization (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)
+// Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)
// in the AWS Organizations User Guide.
//
// * ErrCodeRootNotFoundException "RootNotFoundException"
@@ -4246,6 +4323,10 @@ func (c *Organizations) DisablePolicyTypeRequest(input *DisablePolicyTypeInput)
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/DisablePolicyType
func (c *Organizations) DisablePolicyType(input *DisablePolicyTypeInput) (*DisablePolicyTypeOutput, error) {
req, out := c.DisablePolicyTypeRequest(input)
@@ -4346,7 +4427,7 @@ func (c *Organizations) EnableAWSServiceAccessRequest(input *EnableAWSServiceAcc
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -4517,6 +4598,10 @@ func (c *Organizations) EnableAWSServiceAccessRequest(input *EnableAWSServiceAcc
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/EnableAWSServiceAccess
func (c *Organizations) EnableAWSServiceAccess(input *EnableAWSServiceAccessInput) (*EnableAWSServiceAccessOutput, error) {
req, out := c.EnableAWSServiceAccessRequest(input)
@@ -4588,7 +4673,7 @@ func (c *Organizations) EnableAllFeaturesRequest(input *EnableAllFeaturesInput)
// each account. Until you enable all features, you have access only to consolidated
// billing, and you can't use any of the advanced account administration features
// that AWS Organizations supports. For more information, see Enabling All Features
-// in Your Organization (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)
+// in Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)
// in the AWS Organizations User Guide.
//
// This operation is required only for organizations that were created explicitly
@@ -4626,7 +4711,7 @@ func (c *Organizations) EnableAllFeaturesRequest(input *EnableAllFeaturesInput)
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -4746,6 +4831,10 @@ func (c *Organizations) EnableAllFeaturesRequest(input *EnableAllFeaturesInput)
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/EnableAllFeatures
func (c *Organizations) EnableAllFeatures(input *EnableAllFeaturesInput) (*EnableAllFeaturesOutput, error) {
req, out := c.EnableAllFeaturesRequest(input)
@@ -4837,7 +4926,7 @@ func (c *Organizations) EnablePolicyTypeRequest(input *EnablePolicyTypeInput) (r
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -5014,11 +5103,15 @@ func (c *Organizations) EnablePolicyTypeRequest(input *EnablePolicyTypeInput) (r
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// * ErrCodePolicyTypeNotAvailableForOrganizationException "PolicyTypeNotAvailableForOrganizationException"
// You can't use the specified policy type with the feature set currently enabled
// for this organization. For example, you can enable SCPs only after you enable
// all features in the organization. For more information, see Enabling and
-// Disabling a Policy Type on a Root (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html#enable_policies_on_root)
+// Disabling a Policy Type on a Root (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html#enable_policies_on_root)
// in the AWS Organizations User Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/EnablePolicyType
@@ -5118,7 +5211,7 @@ func (c *Organizations) InviteAccountToOrganizationRequest(input *InviteAccountT
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -5257,6 +5350,10 @@ func (c *Organizations) InviteAccountToOrganizationRequest(input *InviteAccountT
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/InviteAccountToOrganization
func (c *Organizations) InviteAccountToOrganization(input *InviteAccountToOrganizationInput) (*InviteAccountToOrganizationOutput, error) {
req, out := c.InviteAccountToOrganizationRequest(input)
@@ -5366,7 +5463,7 @@ func (c *Organizations) LeaveOrganizationRequest(input *LeaveOrganizationInput)
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAccountNotFoundException "AccountNotFoundException"
@@ -5547,6 +5644,10 @@ func (c *Organizations) LeaveOrganizationRequest(input *LeaveOrganizationInput)
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/LeaveOrganization
func (c *Organizations) LeaveOrganization(input *LeaveOrganizationInput) (*LeaveOrganizationOutput, error) {
req, out := c.LeaveOrganizationRequest(input)
@@ -5643,7 +5744,7 @@ func (c *Organizations) ListAWSServiceAccessForOrganizationRequest(input *ListAW
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -5810,6 +5911,10 @@ func (c *Organizations) ListAWSServiceAccessForOrganizationRequest(input *ListAW
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListAWSServiceAccessForOrganization
func (c *Organizations) ListAWSServiceAccessForOrganization(input *ListAWSServiceAccessForOrganizationInput) (*ListAWSServiceAccessForOrganizationOutput, error) {
req, out := c.ListAWSServiceAccessForOrganizationRequest(input)
@@ -5955,7 +6060,7 @@ func (c *Organizations) ListAccountsRequest(input *ListAccountsInput) (req *requ
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -6029,6 +6134,10 @@ func (c *Organizations) ListAccountsRequest(input *ListAccountsInput) (req *requ
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListAccounts
func (c *Organizations) ListAccounts(input *ListAccountsInput) (*ListAccountsOutput, error) {
req, out := c.ListAccountsRequest(input)
@@ -6177,7 +6286,7 @@ func (c *Organizations) ListAccountsForParentRequest(input *ListAccountsForParen
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -6254,6 +6363,10 @@ func (c *Organizations) ListAccountsForParentRequest(input *ListAccountsForParen
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListAccountsForParent
func (c *Organizations) ListAccountsForParent(input *ListAccountsForParentInput) (*ListAccountsForParentOutput, error) {
req, out := c.ListAccountsForParentRequest(input)
@@ -6399,7 +6512,7 @@ func (c *Organizations) ListChildrenRequest(input *ListChildrenInput) (req *requ
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -6476,6 +6589,10 @@ func (c *Organizations) ListChildrenRequest(input *ListChildrenInput) (req *requ
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListChildren
func (c *Organizations) ListChildren(input *ListChildrenInput) (*ListChildrenOutput, error) {
req, out := c.ListChildrenRequest(input)
@@ -6620,7 +6737,7 @@ func (c *Organizations) ListCreateAccountStatusRequest(input *ListCreateAccountS
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -6694,6 +6811,10 @@ func (c *Organizations) ListCreateAccountStatusRequest(input *ListCreateAccountS
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListCreateAccountStatus
func (c *Organizations) ListCreateAccountStatus(input *ListCreateAccountStatusInput) (*ListCreateAccountStatusOutput, error) {
req, out := c.ListCreateAccountStatusRequest(input)
@@ -6842,7 +6963,7 @@ func (c *Organizations) ListHandshakesForAccountRequest(input *ListHandshakesFor
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeConcurrentModificationException "ConcurrentModificationException"
@@ -6916,6 +7037,10 @@ func (c *Organizations) ListHandshakesForAccountRequest(input *ListHandshakesFor
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListHandshakesForAccount
func (c *Organizations) ListHandshakesForAccount(input *ListHandshakesForAccountInput) (*ListHandshakesForAccountOutput, error) {
req, out := c.ListHandshakesForAccountRequest(input)
@@ -7066,7 +7191,7 @@ func (c *Organizations) ListHandshakesForOrganizationRequest(input *ListHandshak
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -7144,6 +7269,10 @@ func (c *Organizations) ListHandshakesForOrganizationRequest(input *ListHandshak
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListHandshakesForOrganization
func (c *Organizations) ListHandshakesForOrganization(input *ListHandshakesForOrganizationInput) (*ListHandshakesForOrganizationOutput, error) {
req, out := c.ListHandshakesForOrganizationRequest(input)
@@ -7287,7 +7416,7 @@ func (c *Organizations) ListOrganizationalUnitsForParentRequest(input *ListOrgan
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -7364,6 +7493,10 @@ func (c *Organizations) ListOrganizationalUnitsForParentRequest(input *ListOrgan
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListOrganizationalUnitsForParent
func (c *Organizations) ListOrganizationalUnitsForParent(input *ListOrganizationalUnitsForParentInput) (*ListOrganizationalUnitsForParentOutput, error) {
req, out := c.ListOrganizationalUnitsForParentRequest(input)
@@ -7511,7 +7644,7 @@ func (c *Organizations) ListParentsRequest(input *ListParentsInput) (req *reques
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -7589,6 +7722,10 @@ func (c *Organizations) ListParentsRequest(input *ListParentsInput) (req *reques
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListParents
func (c *Organizations) ListParents(input *ListParentsInput) (*ListParentsOutput, error) {
req, out := c.ListParentsRequest(input)
@@ -7732,7 +7869,7 @@ func (c *Organizations) ListPoliciesRequest(input *ListPoliciesInput) (req *requ
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -7806,6 +7943,10 @@ func (c *Organizations) ListPoliciesRequest(input *ListPoliciesInput) (req *requ
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListPolicies
func (c *Organizations) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
req, out := c.ListPoliciesRequest(input)
@@ -7951,7 +8092,7 @@ func (c *Organizations) ListPoliciesForTargetRequest(input *ListPoliciesForTarge
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -8028,6 +8169,10 @@ func (c *Organizations) ListPoliciesForTargetRequest(input *ListPoliciesForTarge
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListPoliciesForTarget
func (c *Organizations) ListPoliciesForTarget(input *ListPoliciesForTargetInput) (*ListPoliciesForTargetOutput, error) {
req, out := c.ListPoliciesForTargetRequest(input)
@@ -8177,7 +8322,7 @@ func (c *Organizations) ListRootsRequest(input *ListRootsInput) (req *request.Re
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -8251,6 +8396,10 @@ func (c *Organizations) ListRootsRequest(input *ListRootsInput) (req *request.Re
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListRoots
func (c *Organizations) ListRoots(input *ListRootsInput) (*ListRootsOutput, error) {
req, out := c.ListRootsRequest(input)
@@ -8395,7 +8544,7 @@ func (c *Organizations) ListTargetsForPolicyRequest(input *ListTargetsForPolicyI
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -8472,6 +8621,10 @@ func (c *Organizations) ListTargetsForPolicyRequest(input *ListTargetsForPolicyI
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/ListTargetsForPolicy
func (c *Organizations) ListTargetsForPolicy(input *ListTargetsForPolicyInput) (*ListTargetsForPolicyOutput, error) {
req, out := c.ListTargetsForPolicyRequest(input)
@@ -8606,7 +8759,7 @@ func (c *Organizations) MoveAccountRequest(input *MoveAccountInput) (req *reques
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeInvalidInputException "InvalidInputException"
@@ -8687,6 +8840,10 @@ func (c *Organizations) MoveAccountRequest(input *MoveAccountInput) (req *reques
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// * ErrCodeConcurrentModificationException "ConcurrentModificationException"
// The target of the operation is currently being modified by a different request.
// Try again later.
@@ -8804,7 +8961,7 @@ func (c *Organizations) RemoveAccountFromOrganizationRequest(input *RemoveAccoun
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAccountNotFoundException "AccountNotFoundException"
@@ -8985,6 +9142,10 @@ func (c *Organizations) RemoveAccountFromOrganizationRequest(input *RemoveAccoun
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/RemoveAccountFromOrganization
func (c *Organizations) RemoveAccountFromOrganization(input *RemoveAccountFromOrganizationInput) (*RemoveAccountFromOrganizationOutput, error) {
req, out := c.RemoveAccountFromOrganizationRequest(input)
@@ -9069,7 +9230,7 @@ func (c *Organizations) UpdateOrganizationalUnitRequest(input *UpdateOrganizatio
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -9153,6 +9314,10 @@ func (c *Organizations) UpdateOrganizationalUnitRequest(input *UpdateOrganizatio
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/UpdateOrganizationalUnit
func (c *Organizations) UpdateOrganizationalUnit(input *UpdateOrganizationalUnitInput) (*UpdateOrganizationalUnitOutput, error) {
req, out := c.UpdateOrganizationalUnitRequest(input)
@@ -9237,7 +9402,7 @@ func (c *Organizations) UpdatePolicyRequest(input *UpdatePolicyInput) (req *requ
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
-// Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
//
// * ErrCodeAWSOrganizationsNotInUseException "AWSOrganizationsNotInUseException"
@@ -9406,7 +9571,7 @@ func (c *Organizations) UpdatePolicyRequest(input *UpdatePolicyInput) (req *requ
// * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocumentException"
// The provided policy document doesn't meet the requirements of the specified
// policy type. For example, the syntax might be incorrect. For details about
-// service control policy syntax, see Service Control Policy Syntax (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html)
+// service control policy syntax, see Service Control Policy Syntax (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html)
// in the AWS Organizations User Guide.
//
// * ErrCodePolicyNotFoundException "PolicyNotFoundException"
@@ -9420,6 +9585,10 @@ func (c *Organizations) UpdatePolicyRequest(input *UpdatePolicyInput) (req *requ
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
//
+// For information on limits that affect Organizations, see Limits of AWS Organizations
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+// in the AWS Organizations User Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28/UpdatePolicy
func (c *Organizations) UpdatePolicy(input *UpdatePolicyInput) (*UpdatePolicyOutput, error) {
req, out := c.UpdatePolicyRequest(input)
@@ -9513,7 +9682,7 @@ type Account struct {
// The Amazon Resource Name (ARN) of the account.
//
// For more information about ARNs in Organizations, see ARN Formats Supported
- // by Organizations (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
+ // by Organizations (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
// in the AWS Organizations User Guide.
Arn *string `type:"string"`
@@ -9812,7 +9981,7 @@ type CreateAccountInput struct {
// information if they have the required permissions. If set to DENY, only the
// root user of the new account can access account billing information. For
// more information, see Activating Access to the Billing and Cost Management
- // Console (http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/grantaccess.html#ControllingAccessWebsite-Activate)
+ // Console (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/grantaccess.html#ControllingAccessWebsite-Activate)
// in the AWS Billing and Cost Management User Guide.
//
// If you don't specify this parameter, the value defaults to ALLOW, and IAM
@@ -9832,9 +10001,9 @@ type CreateAccountInput struct {
//
// For more information about how to use this role to access the member account,
// see Accessing and Administering the Member Accounts in Your Organization
- // (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_access.html#orgs_manage_accounts_create-cross-account-role)
+ // (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_access.html#orgs_manage_accounts_create-cross-account-role)
// in the AWS Organizations User Guide, and steps 2 and 3 in Tutorial: Delegate
- // Access Across AWS Accounts Using IAM Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html)
+ // Access Across AWS Accounts Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html)
// in the IAM User Guide.
//
// The regex pattern (http://wikipedia.org/wiki/regex) that is used to validate
@@ -10041,13 +10210,13 @@ type CreateOrganizationInput struct {
//
// * CONSOLIDATED_BILLING: All member accounts have their bills consolidated
// to and paid by the master account. For more information, see Consolidated
- // billing (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set-cb-only)
+ // billing (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set-cb-only)
// in the AWS Organizations User Guide.
//
// * ALL: In addition to all the features supported by the consolidated billing
// feature set, the master account can also apply any type of policy to any
// member account in the organization. For more information, see All features
- // (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set-all)
+ // (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set-all)
// in the AWS Organizations User Guide.
FeatureSet *string `type:"string" enum:"OrganizationFeatureSet"`
}
@@ -10185,11 +10354,11 @@ type CreatePolicyInput struct {
_ struct{} `type:"structure"`
// The policy content to add to the new policy. For example, if you create a
- // service control policy (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html)
+ // service control policy (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html)
// (SCP), this string must be JSON text that specifies the permissions that
// admins in attached accounts can delegate to their users, groups, and roles.
// For more information about the SCP syntax, see Service Control Policy Syntax
- // (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html)
+ // (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html)
// in the AWS Organizations User Guide.
//
// Content is a required field
@@ -11341,7 +11510,7 @@ type Handshake struct {
// The Amazon Resource Name (ARN) of a handshake.
//
// For more information about ARNs in Organizations, see ARN Formats Supported
- // by Organizations (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
+ // by Organizations (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
// in the AWS Organizations User Guide.
Arn *string `type:"string"`
@@ -12264,8 +12433,8 @@ type ListHandshakesForAccountInput struct {
// Filters the handshakes that you want included in the response. The default
// is all types. Use the ActionType element to limit the output to only a specified
- // type, such as INVITE, ENABLE-FULL-CONTROL, or APPROVE-FULL-CONTROL. Alternatively,
- // for the ENABLE-FULL-CONTROL handshake that generates a separate child handshake
+ // type, such as INVITE, ENABLE_ALL_FEATURES, or APPROVE_ALL_FEATURES. Alternatively,
+ // for the ENABLE_ALL_FEATURES handshake that generates a separate child handshake
// for each member account, you can specify ParentHandshakeId to see only the
// handshakes that were generated by that parent request.
Filter *HandshakeFilter `type:"structure"`
@@ -13269,7 +13438,7 @@ type Organization struct {
// The Amazon Resource Name (ARN) of an organization.
//
// For more information about ARNs in Organizations, see ARN Formats Supported
- // by Organizations (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
+ // by Organizations (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
// in the AWS Organizations User Guide.
Arn *string `type:"string"`
@@ -13287,7 +13456,7 @@ type Organization struct {
// If set to "ALL", then all features are enabled and policies can be applied
// to accounts in the organization. If set to "CONSOLIDATED_BILLING", then only
// consolidated billing functionality is available. For more information, see
- // Enabling All Features in Your Organization (http://docs.aws.amazon.com/IAM/latest/UserGuide/orgs_manage_org_support-all-features.html)
+ // Enabling All Features in Your Organization (https://docs.aws.amazon.com/IAM/latest/UserGuide/orgs_manage_org_support-all-features.html)
// in the AWS Organizations User Guide.
FeatureSet *string `type:"string" enum:"OrganizationFeatureSet"`
@@ -13301,7 +13470,7 @@ type Organization struct {
// account for the organization.
//
// For more information about ARNs in Organizations, see ARN Formats Supported
- // by Organizations (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
+ // by Organizations (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
// in the AWS Organizations User Guide.
MasterAccountArn *string `type:"string"`
@@ -13377,7 +13546,7 @@ type OrganizationalUnit struct {
// The Amazon Resource Name (ARN) of this OU.
//
// For more information about ARNs in Organizations, see ARN Formats Supported
- // by Organizations (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
+ // by Organizations (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
// in the AWS Organizations User Guide.
Arn *string `type:"string"`
@@ -13513,7 +13682,7 @@ type PolicySummary struct {
// The Amazon Resource Name (ARN) of the policy.
//
// For more information about ARNs in Organizations, see ARN Formats Supported
- // by Organizations (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
+ // by Organizations (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
// in the AWS Organizations User Guide.
Arn *string `type:"string"`
@@ -13596,7 +13765,7 @@ type PolicyTargetSummary struct {
// The Amazon Resource Name (ARN) of the policy target.
//
// For more information about ARNs in Organizations, see ARN Formats Supported
- // by Organizations (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
+ // by Organizations (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
// in the AWS Organizations User Guide.
Arn *string `type:"string"`
@@ -13764,7 +13933,7 @@ type Root struct {
// The Amazon Resource Name (ARN) of the root.
//
// For more information about ARNs in Organizations, see ARN Formats Supported
- // by Organizations (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
+ // by Organizations (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_permissions.html#orgs-permissions-arns)
// in the AWS Organizations User Guide.
Arn *string `type:"string"`
@@ -13914,7 +14083,7 @@ type UpdatePolicyInput struct {
// If provided, the new content for the policy. The text must be correctly formatted
// JSON that complies with the syntax for the policy's type. For more information,
- // see Service Control Policy Syntax (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html)
+ // see Service Control Policy Syntax (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html)
// in the AWS Organizations User Guide.
Content *string `min:"1" type:"string"`
diff --git a/vendor/github.com/aws/aws-sdk-go/service/organizations/doc.go b/vendor/github.com/aws/aws-sdk-go/service/organizations/doc.go
index cc704a61a84..d23748a00db 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/organizations/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/organizations/doc.go
@@ -8,7 +8,7 @@
// their resources.
//
// This guide provides descriptions of the Organizations API. For more information
-// about using this service, see the AWS Organizations User Guide (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html).
+// about using this service, see the AWS Organizations User Guide (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html).
//
// API Version
//
@@ -27,7 +27,7 @@
// We recommend that you use the AWS SDKs to make programmatic API calls to
// Organizations. However, you also can use the Organizations Query API to make
// direct calls to the Organizations web service. To learn more about the Organizations
-// Query API, see Making Query Requests (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_query-requests.html)
+// Query API, see Making Query Requests (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_query-requests.html)
// in the AWS Organizations User Guide. Organizations supports GET and POST
// requests for all actions. That is, the API does not require you to use GET
// for some actions and POST for others. However, GET requests are subject to
@@ -46,7 +46,7 @@
// Service to generate temporary security credentials, and use those credentials
// to sign requests.
//
-// To sign requests, we recommend that you use Signature Version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
+// To sign requests, we recommend that you use Signature Version 4 (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
// If you have an existing application that uses Signature Version 2, you do
// not have to update it to use Signature Version 4. However, some operations
// now require Signature Version 4. The documentation for operations that require
@@ -88,7 +88,7 @@
//
// For the various SDKs used to call the APIs, see the documentation for the
// SDK of interest to learn how to direct the requests to a specific endpoint.
-// For more information, see Regions and Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region)
+// For more information, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region)
// in the AWS General Reference.
//
// How examples are presented
@@ -109,10 +109,10 @@
// requests were successfully made to Organizations, who made the request, when
// it was made, and so on. For more about AWS Organizations and its support
// for AWS CloudTrail, see Logging AWS Organizations Events with AWS CloudTrail
-// (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_monitoring.html#orgs_cloudtrail-integration)
+// (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_monitoring.html#orgs_cloudtrail-integration)
// in the AWS Organizations User Guide. To learn more about CloudTrail, including
// how to turn it on and find your log files, see the AWS CloudTrail User Guide
-// (http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html).
+// (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html).
//
// See https://docs.aws.amazon.com/goto/WebAPI/organizations-2016-11-28 for more information on this service.
//
diff --git a/vendor/github.com/aws/aws-sdk-go/service/organizations/errors.go b/vendor/github.com/aws/aws-sdk-go/service/organizations/errors.go
index 5d886170ef4..a6659f7a471 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/organizations/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/organizations/errors.go
@@ -17,7 +17,7 @@ const (
// You don't have permissions to perform the requested operation. The user or
// role that is making the request must have at least one IAM permissions policy
// attached that grants the required permissions. For more information, see
- // Access Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
+ // Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
// in the IAM User Guide.
ErrCodeAccessDeniedException = "AccessDeniedException"
@@ -353,7 +353,7 @@ const (
//
// The provided policy document doesn't meet the requirements of the specified
// policy type. For example, the syntax might be incorrect. For details about
- // service control policy syntax, see Service Control Policy Syntax (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html)
+ // service control policy syntax, see Service Control Policy Syntax (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html)
// in the AWS Organizations User Guide.
ErrCodeMalformedPolicyDocumentException = "MalformedPolicyDocumentException"
@@ -422,7 +422,7 @@ const (
// You can't use the specified policy type with the feature set currently enabled
// for this organization. For example, you can enable SCPs only after you enable
// all features in the organization. For more information, see Enabling and
- // Disabling a Policy Type on a Root (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html#enable_policies_on_root)
+ // Disabling a Policy Type on a Root (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html#enable_policies_on_root)
// in the AWS Organizations User Guide.
ErrCodePolicyTypeNotAvailableForOrganizationException = "PolicyTypeNotAvailableForOrganizationException"
@@ -432,7 +432,7 @@ const (
// The specified policy type isn't currently enabled in this root. You can't
// attach policies of the specified type to entities in a root until you enable
// that type in the root. For more information, see Enabling All Features in
- // Your Organization (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)
+ // Your Organization (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html)
// in the AWS Organizations User Guide.
ErrCodePolicyTypeNotEnabledException = "PolicyTypeNotEnabledException"
@@ -466,5 +466,9 @@ const (
//
// You've sent too many requests in too short a period of time. The limit helps
// protect against denial-of-service attacks. Try again later.
+ //
+ // For information on limits that affect Organizations, see Limits of AWS Organizations
+ // (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html)
+ // in the AWS Organizations User Guide.
ErrCodeTooManyRequestsException = "TooManyRequestsException"
)
diff --git a/vendor/github.com/aws/aws-sdk-go/service/pinpoint/api.go b/vendor/github.com/aws/aws-sdk-go/service/pinpoint/api.go
index a93bdb91cdc..416eb6012dd 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/pinpoint/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/pinpoint/api.go
@@ -6,6 +6,8 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awsutil"
"github.com/aws/aws-sdk-go/aws/request"
+ "github.com/aws/aws-sdk-go/private/protocol"
+ "github.com/aws/aws-sdk-go/private/protocol/restjson"
)
const opCreateApp = "CreateApp"
@@ -4990,6 +4992,80 @@ func (c *Pinpoint) GetVoiceChannelWithContext(ctx aws.Context, input *GetVoiceCh
return out, req.Send()
}
+const opListTagsForResource = "ListTagsForResource"
+
+// ListTagsForResourceRequest generates a "aws/request.Request" representing the
+// client's request for the ListTagsForResource operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ListTagsForResource for more information on using the ListTagsForResource
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ListTagsForResourceRequest method.
+// req, resp := client.ListTagsForResourceRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ListTagsForResource
+func (c *Pinpoint) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
+ op := &request.Operation{
+ Name: opListTagsForResource,
+ HTTPMethod: "GET",
+ HTTPPath: "/v1/tags/{resource-arn}",
+ }
+
+ if input == nil {
+ input = &ListTagsForResourceInput{}
+ }
+
+ output = &ListTagsForResourceOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ListTagsForResource API operation for Amazon Pinpoint.
+//
+// Get list of all tags for a given resource arn
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 Pinpoint's
+// API operation ListTagsForResource for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ListTagsForResource
+func (c *Pinpoint) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
+ req, out := c.ListTagsForResourceRequest(input)
+ return out, req.Send()
+}
+
+// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ListTagsForResource for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *Pinpoint) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
+ req, out := c.ListTagsForResourceRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opPhoneNumberValidate = "PhoneNumberValidate"
// PhoneNumberValidateRequest generates a "aws/request.Request" representing the
@@ -5555,6 +5631,156 @@ func (c *Pinpoint) SendUsersMessagesWithContext(ctx aws.Context, input *SendUser
return out, req.Send()
}
+const opTagResource = "TagResource"
+
+// TagResourceRequest generates a "aws/request.Request" representing the
+// client's request for the TagResource operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See TagResource for more information on using the TagResource
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the TagResourceRequest method.
+// req, resp := client.TagResourceRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/TagResource
+func (c *Pinpoint) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
+ op := &request.Operation{
+ Name: opTagResource,
+ HTTPMethod: "POST",
+ HTTPPath: "/v1/tags/{resource-arn}",
+ }
+
+ if input == nil {
+ input = &TagResourceInput{}
+ }
+
+ output = &TagResourceOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// TagResource API operation for Amazon Pinpoint.
+//
+// Adds tags to a resource.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Pinpoint's
+// API operation TagResource for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/TagResource
+func (c *Pinpoint) 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 *Pinpoint) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
+ req, out := c.TagResourceRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opUntagResource = "UntagResource"
+
+// UntagResourceRequest generates a "aws/request.Request" representing the
+// client's request for the UntagResource operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See UntagResource for more information on using the UntagResource
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the UntagResourceRequest method.
+// req, resp := client.UntagResourceRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UntagResource
+func (c *Pinpoint) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
+ op := &request.Operation{
+ Name: opUntagResource,
+ HTTPMethod: "DELETE",
+ HTTPPath: "/v1/tags/{resource-arn}",
+ }
+
+ if input == nil {
+ input = &UntagResourceInput{}
+ }
+
+ output = &UntagResourceOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// UntagResource API operation for Amazon Pinpoint.
+//
+// Remove tags from a resource.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Pinpoint's
+// API operation UntagResource for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UntagResource
+func (c *Pinpoint) 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 *Pinpoint) 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 opUpdateAdmChannel = "UpdateAdmChannel"
// UpdateAdmChannelRequest generates a "aws/request.Request" representing the
@@ -8583,11 +8809,17 @@ func (s *AddressConfiguration) SetTitleOverride(v string) *AddressConfiguration
type ApplicationResponse struct {
_ struct{} `type:"structure"`
+ // The arn for the application.
+ Arn *string `type:"string"`
+
// The unique application ID.
Id *string `type:"string"`
// The display name of the application.
Name *string `type:"string"`
+
+ // The Tags for the application.
+ Tags map[string]*string `locationName:"tags" type:"map"`
}
// String returns the string representation
@@ -8600,6 +8832,12 @@ func (s ApplicationResponse) GoString() string {
return s.String()
}
+// SetArn sets the Arn field's value.
+func (s *ApplicationResponse) SetArn(v string) *ApplicationResponse {
+ s.Arn = &v
+ return s
+}
+
// SetId sets the Id field's value.
func (s *ApplicationResponse) SetId(v string) *ApplicationResponse {
s.Id = &v
@@ -8612,6 +8850,12 @@ func (s *ApplicationResponse) SetName(v string) *ApplicationResponse {
return s
}
+// SetTags sets the Tags field's value.
+func (s *ApplicationResponse) SetTags(v map[string]*string) *ApplicationResponse {
+ s.Tags = v
+ return s
+}
+
// Application settings.
type ApplicationSettingsResource struct {
_ struct{} `type:"structure"`
@@ -9312,6 +9556,9 @@ type CampaignResponse struct {
// The ID of the application to which the campaign applies.
ApplicationId *string `type:"string"`
+ // The arn for the campaign.
+ Arn *string `type:"string"`
+
// The date the campaign was created in ISO 8601 format.
CreationDate *string `type:"string"`
@@ -9361,6 +9608,9 @@ type CampaignResponse struct {
// only when all treatments have a status of COMPLETED.
State *CampaignState `type:"structure"`
+ // The Tags for the campaign.
+ Tags map[string]*string `locationName:"tags" type:"map"`
+
// A custom description for the treatment.
TreatmentDescription *string `type:"string"`
@@ -9393,6 +9643,12 @@ func (s *CampaignResponse) SetApplicationId(v string) *CampaignResponse {
return s
}
+// SetArn sets the Arn field's value.
+func (s *CampaignResponse) SetArn(v string) *CampaignResponse {
+ s.Arn = &v
+ return s
+}
+
// SetCreationDate sets the CreationDate field's value.
func (s *CampaignResponse) SetCreationDate(v string) *CampaignResponse {
s.CreationDate = &v
@@ -9483,6 +9739,12 @@ func (s *CampaignResponse) SetState(v *CampaignState) *CampaignResponse {
return s
}
+// SetTags sets the Tags field's value.
+func (s *CampaignResponse) SetTags(v map[string]*string) *CampaignResponse {
+ s.Tags = v
+ return s
+}
+
// SetTreatmentDescription sets the TreatmentDescription field's value.
func (s *CampaignResponse) SetTreatmentDescription(v string) *CampaignResponse {
s.TreatmentDescription = &v
@@ -9793,6 +10055,9 @@ type CreateApplicationRequest struct {
// The display name of the application. Used in the Amazon Pinpoint console.
Name *string `type:"string"`
+
+ // The Tags for the app.
+ Tags map[string]*string `locationName:"tags" type:"map"`
}
// String returns the string representation
@@ -9811,6 +10076,12 @@ func (s *CreateApplicationRequest) SetName(v string) *CreateApplicationRequest {
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateApplicationRequest) SetTags(v map[string]*string) *CreateApplicationRequest {
+ s.Tags = v
+ return s
+}
+
type CreateCampaignInput struct {
_ struct{} `type:"structure" payload:"WriteCampaignRequest"`
@@ -16432,6 +16703,68 @@ func (s *ItemResponse) SetEventsItemResponse(v map[string]*EventItemResponse) *I
return s
}
+type ListTagsForResourceInput struct {
+ _ struct{} `type:"structure"`
+
+ // ResourceArn is a required field
+ ResourceArn *string `location:"uri" locationName:"resource-arn" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s ListTagsForResourceInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ListTagsForResourceInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ListTagsForResourceInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
+ if s.ResourceArn == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
+ }
+ if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceArn sets the ResourceArn field's value.
+func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
+ s.ResourceArn = &v
+ return s
+}
+
+type ListTagsForResourceOutput struct {
+ _ struct{} `type:"structure" payload:"TagsModel"`
+
+ // TagsModel is a required field
+ TagsModel *TagsModel `type:"structure" required:"true"`
+}
+
+// String returns the string representation
+func (s ListTagsForResourceOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ListTagsForResourceOutput) GoString() string {
+ return s.String()
+}
+
+// SetTagsModel sets the TagsModel field's value.
+func (s *ListTagsForResourceOutput) SetTagsModel(v *TagsModel) *ListTagsForResourceOutput {
+ s.TagsModel = v
+ return s
+}
+
// Message to send
type Message struct {
_ struct{} `type:"structure"`
@@ -18385,6 +18718,9 @@ type SegmentResponse struct {
// The ID of the application that the segment applies to.
ApplicationId *string `type:"string"`
+ // The arn for the segment.
+ Arn *string `type:"string"`
+
// The date and time when the segment was created.
CreationDate *string `type:"string"`
@@ -18416,6 +18752,9 @@ type SegmentResponse struct {
// request to the jobs/import resource.
SegmentType *string `type:"string" enum:"SegmentType"`
+ // The Tags for the segment.
+ Tags map[string]*string `locationName:"tags" type:"map"`
+
// The segment version number.
Version *int64 `type:"integer"`
}
@@ -18436,6 +18775,12 @@ func (s *SegmentResponse) SetApplicationId(v string) *SegmentResponse {
return s
}
+// SetArn sets the Arn field's value.
+func (s *SegmentResponse) SetArn(v string) *SegmentResponse {
+ s.Arn = &v
+ return s
+}
+
// SetCreationDate sets the CreationDate field's value.
func (s *SegmentResponse) SetCreationDate(v string) *SegmentResponse {
s.CreationDate = &v
@@ -18484,6 +18829,12 @@ func (s *SegmentResponse) SetSegmentType(v string) *SegmentResponse {
return s
}
+// SetTags sets the Tags field's value.
+func (s *SegmentResponse) SetTags(v map[string]*string) *SegmentResponse {
+ s.Tags = v
+ return s
+}
+
// SetVersion sets the Version field's value.
func (s *SegmentResponse) SetVersion(v int64) *SegmentResponse {
s.Version = &v
@@ -18949,6 +19300,112 @@ func (s *SimpleEmailPart) SetData(v string) *SimpleEmailPart {
return s
}
+type TagResourceInput struct {
+ _ struct{} `type:"structure" payload:"TagsModel"`
+
+ // ResourceArn is a required field
+ ResourceArn *string `location:"uri" locationName:"resource-arn" type:"string" required:"true"`
+
+ // TagsModel is a required field
+ TagsModel *TagsModel `type:"structure" 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.ResourceArn == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
+ }
+ if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
+ }
+ if s.TagsModel == nil {
+ invalidParams.Add(request.NewErrParamRequired("TagsModel"))
+ }
+ if s.TagsModel != nil {
+ if err := s.TagsModel.Validate(); err != nil {
+ invalidParams.AddNested("TagsModel", err.(request.ErrInvalidParams))
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceArn sets the ResourceArn field's value.
+func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
+ s.ResourceArn = &v
+ return s
+}
+
+// SetTagsModel sets the TagsModel field's value.
+func (s *TagResourceInput) SetTagsModel(v *TagsModel) *TagResourceInput {
+ s.TagsModel = v
+ return s
+}
+
+type TagResourceOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// 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()
+}
+
+type TagsModel struct {
+ _ struct{} `type:"structure"`
+
+ // Tags is a required field
+ Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
+}
+
+// String returns the string representation
+func (s TagsModel) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TagsModel) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *TagsModel) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "TagsModel"}
+ if s.Tags == nil {
+ invalidParams.Add(request.NewErrParamRequired("Tags"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetTags sets the Tags field's value.
+func (s *TagsModel) SetTags(v map[string]*string) *TagsModel {
+ s.Tags = v
+ return s
+}
+
// Treatment resource
type TreatmentResource struct {
_ struct{} `type:"structure"`
@@ -19027,6 +19484,71 @@ func (s *TreatmentResource) SetTreatmentName(v string) *TreatmentResource {
return s
}
+type UntagResourceInput struct {
+ _ struct{} `type:"structure"`
+
+ // ResourceArn is a required field
+ ResourceArn *string `location:"uri" locationName:"resource-arn" type:"string" required:"true"`
+
+ // TagKeys is a required field
+ TagKeys []*string `location:"querystring" locationName:"tagKeys" 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.ResourceArn == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
+ }
+ if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
+ }
+ if s.TagKeys == nil {
+ invalidParams.Add(request.NewErrParamRequired("TagKeys"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceArn sets the ResourceArn field's value.
+func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
+ s.ResourceArn = &v
+ return s
+}
+
+// SetTagKeys sets the TagKeys field's value.
+func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
+ s.TagKeys = v
+ return s
+}
+
+type UntagResourceOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s UntagResourceOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s UntagResourceOutput) GoString() string {
+ return s.String()
+}
+
type UpdateAdmChannelInput struct {
_ struct{} `type:"structure" payload:"ADMChannelRequest"`
@@ -20559,6 +21081,9 @@ type WriteCampaignRequest struct {
// The version of the segment to which the campaign sends messages.
SegmentVersion *int64 `type:"integer"`
+ // The Tags for the campaign.
+ Tags map[string]*string `locationName:"tags" type:"map"`
+
// A custom description for the treatment.
TreatmentDescription *string `type:"string"`
@@ -20642,6 +21167,12 @@ func (s *WriteCampaignRequest) SetSegmentVersion(v int64) *WriteCampaignRequest
return s
}
+// SetTags sets the Tags field's value.
+func (s *WriteCampaignRequest) SetTags(v map[string]*string) *WriteCampaignRequest {
+ s.Tags = v
+ return s
+}
+
// SetTreatmentDescription sets the TreatmentDescription field's value.
func (s *WriteCampaignRequest) SetTreatmentDescription(v string) *WriteCampaignRequest {
s.TreatmentDescription = &v
@@ -20705,6 +21236,9 @@ type WriteSegmentRequest struct {
// one segment group. Your request can include either a SegmentGroups object
// or a Dimensions object, but not both.
SegmentGroups *SegmentGroupList `type:"structure"`
+
+ // The Tags for the segments.
+ Tags map[string]*string `locationName:"tags" type:"map"`
}
// String returns the string representation
@@ -20735,6 +21269,12 @@ func (s *WriteSegmentRequest) SetSegmentGroups(v *SegmentGroupList) *WriteSegmen
return s
}
+// SetTags sets the Tags field's value.
+func (s *WriteSegmentRequest) SetTags(v map[string]*string) *WriteSegmentRequest {
+ s.Tags = v
+ return s
+}
+
// Used to create a campaign treatment.
type WriteTreatmentResource struct {
_ struct{} `type:"structure"`
diff --git a/vendor/github.com/aws/aws-sdk-go/service/resourcegroups/api.go b/vendor/github.com/aws/aws-sdk-go/service/resourcegroups/api.go
index 3343d13d4c7..13bdc4c42e7 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/resourcegroups/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/resourcegroups/api.go
@@ -986,8 +986,8 @@ func (c *ResourceGroups) TagRequest(input *TagInput) (req *request.Request, outp
// Tag API operation for AWS Resource Groups.
//
-// Adds specified tags to a resource with the specified ARN. Existing tags on
-// a resource are not changed if they are not specified in the request parameters.
+// Adds tags to a resource group with the specified ARN. Existing tags on a
+// resource group are not changed if they are not specified in the request 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
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 fc6ffb5d289..142ce93e9da 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
@@ -64,6 +64,9 @@ func (c *SFN) CreateActivityRequest(input *CreateActivityInput) (req *request.Re
// of your activity and returns an identifier for use in a state machine and
// when polling from the activity.
//
+// This operation is eventually consistent. The results are best effort and
+// may not reflect very recent updates and changes.
+//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
@@ -79,6 +82,11 @@ func (c *SFN) CreateActivityRequest(input *CreateActivityInput) (req *request.Re
// * ErrCodeInvalidName "InvalidName"
// The provided name is invalid.
//
+// * ErrCodeTooManyTags "TooManyTags"
+// You've exceeded the number of tags allowed for a resource. See the Limits
+// Topic (https://docs.aws.amazon.com/step-functions/latest/dg/limits.html)
+// in the AWS Step Functions Developer Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/CreateActivity
func (c *SFN) CreateActivity(input *CreateActivityInput) (*CreateActivityOutput, error) {
req, out := c.CreateActivityRequest(input)
@@ -150,6 +158,9 @@ func (c *SFN) CreateStateMachineRequest(input *CreateStateMachineInput) (req *re
// (Choice states), stop an execution with an error (Fail states), and so on.
// State machines are specified using a JSON-based, structured language.
//
+// This operation is eventually consistent. The results are best effort and
+// may not reflect very recent updates and changes.
+//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
@@ -178,6 +189,11 @@ func (c *SFN) CreateStateMachineRequest(input *CreateStateMachineInput) (req *re
// The maximum number of state machines has been reached. Existing state machines
// must be deleted before a new state machine can be created.
//
+// * ErrCodeTooManyTags "TooManyTags"
+// You've exceeded the number of tags allowed for a resource. See the Limits
+// Topic (https://docs.aws.amazon.com/step-functions/latest/dg/limits.html)
+// in the AWS Step Functions Developer Guide.
+//
// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/CreateStateMachine
func (c *SFN) CreateStateMachine(input *CreateStateMachineInput) (*CreateStateMachineOutput, error) {
req, out := c.CreateStateMachineRequest(input)
@@ -761,7 +777,7 @@ func (c *SFN) GetActivityTaskRequest(input *GetActivityTaskInput) (req *request.
// (5 seconds higher than the maximum time the service may hold the poll request).
//
// Polling with GetActivityTask can cause latency in some implementations. See
-// Avoid Latency When Polling for Activity Tasks (http://docs.aws.amazon.com/step-functions/latest/dg/bp-activity-pollers.html)
+// Avoid Latency When Polling for Activity Tasks (https://docs.aws.amazon.com/step-functions/latest/dg/bp-activity-pollers.html)
// in the Step Functions Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -1995,8 +2011,8 @@ func (c *SFN) TagResourceRequest(input *TagResourceInput) (req *request.Request,
//
// * ErrCodeTooManyTags "TooManyTags"
// You've exceeded the number of tags allowed for a resource. See the Limits
-// Topic (http://docs.aws.amazon.com/step-functions/latest/dg/limits.html) in
-// the AWS Step Functions Developer Guide.
+// Topic (https://docs.aws.amazon.com/step-functions/latest/dg/limits.html)
+// in the AWS Step Functions Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/TagResource
func (c *SFN) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
@@ -2471,7 +2487,7 @@ type CreateActivityInput struct {
// The name of the activity to create. This name must be unique for your AWS
// account and region for 90 days. For more information, see Limits Related
- // to State Machine Executions (http://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions)
+ // to State Machine Executions (https://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions)
// in the AWS Step Functions Developer Guide.
//
// A name must not contain:
@@ -2488,6 +2504,9 @@ type CreateActivityInput struct {
//
// Name is a required field
Name *string `locationName:"name" min:"1" type:"string" required:"true"`
+
+ // The list of tags to add to a resource.
+ Tags []*Tag `locationName:"tags" type:"list"`
}
// String returns the string representation
@@ -2509,6 +2528,16 @@ func (s *CreateActivityInput) Validate() error {
if s.Name != nil && len(*s.Name) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
+ if s.Tags != nil {
+ for i, v := range s.Tags {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -2522,6 +2551,12 @@ func (s *CreateActivityInput) SetName(v string) *CreateActivityInput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateActivityInput) SetTags(v []*Tag) *CreateActivityInput {
+ s.Tags = v
+ return s
+}
+
type CreateActivityOutput struct {
_ struct{} `type:"structure"`
@@ -2562,7 +2597,7 @@ type CreateStateMachineInput struct {
_ struct{} `type:"structure"`
// The Amazon States Language definition of the state machine. See Amazon States
- // Language (http://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).
+ // Language (https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).
//
// Definition is a required field
Definition *string `locationName:"definition" min:"1" type:"string" required:"true" sensitive:"true"`
@@ -2588,6 +2623,9 @@ type CreateStateMachineInput struct {
//
// RoleArn is a required field
RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
+
+ // Tags to be added when creating a state machine.
+ Tags []*Tag `locationName:"tags" type:"list"`
}
// String returns the string representation
@@ -2621,6 +2659,16 @@ func (s *CreateStateMachineInput) Validate() error {
if s.RoleArn != nil && len(*s.RoleArn) < 1 {
invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
}
+ if s.Tags != nil {
+ for i, v := range s.Tags {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -2646,6 +2694,12 @@ func (s *CreateStateMachineInput) SetRoleArn(v string) *CreateStateMachineInput
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateStateMachineInput) SetTags(v []*Tag) *CreateStateMachineInput {
+ s.Tags = v
+ return s
+}
+
type CreateStateMachineOutput struct {
_ struct{} `type:"structure"`
@@ -3090,7 +3144,7 @@ type DescribeStateMachineForExecutionOutput struct {
_ struct{} `type:"structure"`
// The Amazon States Language definition of the state machine. See Amazon States
- // Language (http://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).
+ // Language (https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).
//
// Definition is a required field
Definition *string `locationName:"definition" min:"1" type:"string" required:"true" sensitive:"true"`
@@ -3208,7 +3262,7 @@ type DescribeStateMachineOutput struct {
CreationDate *time.Time `locationName:"creationDate" type:"timestamp" required:"true"`
// The Amazon States Language definition of the state machine. See Amazon States
- // Language (http://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).
+ // Language (https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).
//
// Definition is a required field
Definition *string `locationName:"definition" min:"1" type:"string" required:"true" sensitive:"true"`
@@ -3821,28 +3875,28 @@ type HistoryEvent struct {
// Contains details about an exit from a state during an execution.
StateExitedEventDetails *StateExitedEventDetails `locationName:"stateExitedEventDetails" type:"structure"`
- // Contains details about a task failure event.
+ // Contains details about the failure of a task.
TaskFailedEventDetails *TaskFailedEventDetails `locationName:"taskFailedEventDetails" type:"structure"`
- // Contains details about a task scheduled during an execution.
+ // Contains details about a task that was scheduled.
TaskScheduledEventDetails *TaskScheduledEventDetails `locationName:"taskScheduledEventDetails" type:"structure"`
- // Contains details about a task that failed to start during an execution.
+ // Contains details about a task that failed to start.
TaskStartFailedEventDetails *TaskStartFailedEventDetails `locationName:"taskStartFailedEventDetails" type:"structure"`
- // Contains details about the start of a task during an execution.
+ // Contains details about a task that was started.
TaskStartedEventDetails *TaskStartedEventDetails `locationName:"taskStartedEventDetails" type:"structure"`
- // Contains details about a task that failed to submit during an execution.
+ // Contains details about a task that where the submit failed.
TaskSubmitFailedEventDetails *TaskSubmitFailedEventDetails `locationName:"taskSubmitFailedEventDetails" type:"structure"`
- // Contains details about a task submitted to a resource .
+ // Contains details about a submitted task.
TaskSubmittedEventDetails *TaskSubmittedEventDetails `locationName:"taskSubmittedEventDetails" type:"structure"`
- // Contains details about the successful completion of a task state.
+ // Contains details about a task that succeeded.
TaskSucceededEventDetails *TaskSucceededEventDetails `locationName:"taskSucceededEventDetails" type:"structure"`
- // Contains details about a resource timeout that occurred during an execution.
+ // Contains details about a task that timed out.
TaskTimedOutEventDetails *TaskTimedOutEventDetails `locationName:"taskTimedOutEventDetails" type:"structure"`
// The date and time the event occurred.
@@ -4831,9 +4885,9 @@ type StartExecutionInput struct {
// braces, for example: "input": "{}"
Input *string `locationName:"input" type:"string" sensitive:"true"`
- // The name of the execution. This name must be unique for your AWS account
- // and region for 90 days. For more information, see Limits Related to State
- // Machine Executions (http://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions)
+ // The name of the execution. This name must be unique for your AWS account,
+ // region, and state machine for 90 days. For more information, see Limits
+ // Related to State Machine Executions (https://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions)
// in the AWS Step Functions Developer Guide.
//
// A name must not contain:
@@ -5784,7 +5838,7 @@ type UpdateStateMachineInput struct {
_ struct{} `type:"structure"`
// The Amazon States Language definition of the state machine. See Amazon States
- // Language (http://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).
+ // Language (https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).
Definition *string `locationName:"definition" min:"1" type:"string" sensitive:"true"`
// The Amazon Resource Name (ARN) of the IAM role of the state machine.
diff --git a/vendor/github.com/aws/aws-sdk-go/service/sfn/doc.go b/vendor/github.com/aws/aws-sdk-go/service/sfn/doc.go
index d212dce747e..d1faff58d7e 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/sfn/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/sfn/doc.go
@@ -20,7 +20,7 @@
// own servers, or any system that has access to AWS. You can access and use
// Step Functions using the console, the AWS SDKs, or an HTTP API. For more
// information about Step Functions, see the AWS Step Functions Developer Guide
-// (http://docs.aws.amazon.com/step-functions/latest/dg/welcome.html).
+// (https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html).
//
// See https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23 for more information on this service.
//
diff --git a/vendor/github.com/aws/aws-sdk-go/service/sfn/errors.go b/vendor/github.com/aws/aws-sdk-go/service/sfn/errors.go
index fcf27534ffe..f73333973a5 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/sfn/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/sfn/errors.go
@@ -133,7 +133,7 @@ const (
// "TooManyTags".
//
// You've exceeded the number of tags allowed for a resource. See the Limits
- // Topic (http://docs.aws.amazon.com/step-functions/latest/dg/limits.html) in
- // the AWS Step Functions Developer Guide.
+ // Topic (https://docs.aws.amazon.com/step-functions/latest/dg/limits.html)
+ // in the AWS Step Functions Developer Guide.
ErrCodeTooManyTags = "TooManyTags"
)
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 db90e6236d1..9408e2c33fe 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
@@ -999,8 +999,8 @@ func (c *SSM) CreateResourceDataSyncRequest(input *CreateResourceDataSyncInput)
// By default, data is not encrypted in Amazon S3. We strongly recommend that
// you enable encryption in Amazon S3 to ensure secure data storage. We also
// recommend that you secure access to the Amazon S3 bucket by creating a restrictive
-// bucket policy. To view an example of a restrictive Amazon S3 bucket policy
-// for Resource Data Sync, see Create a Resource Data Sync for Inventory (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-datasync-create.html)
+// bucket policy. For more information, see Configuring Resource Data Sync for
+// Inventory (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-datasync.html)
// in the AWS Systems Manager User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -6825,6 +6825,103 @@ func (c *SSM) GetPatchBaselineForPatchGroupWithContext(ctx aws.Context, input *G
return out, req.Send()
}
+const opGetServiceSetting = "GetServiceSetting"
+
+// GetServiceSettingRequest generates a "aws/request.Request" representing the
+// client's request for the GetServiceSetting operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetServiceSetting for more information on using the GetServiceSetting
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetServiceSettingRequest method.
+// req, resp := client.GetServiceSettingRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetServiceSetting
+func (c *SSM) GetServiceSettingRequest(input *GetServiceSettingInput) (req *request.Request, output *GetServiceSettingOutput) {
+ op := &request.Operation{
+ Name: opGetServiceSetting,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &GetServiceSettingInput{}
+ }
+
+ output = &GetServiceSettingOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetServiceSetting API operation for Amazon Simple Systems Manager (SSM).
+//
+// ServiceSetting is an account-level setting for an AWS service. This setting
+// defines how a user interacts with or uses a service or a feature of a service.
+// For example, if an AWS service charges money to the account based on feature
+// or service usage, then the AWS service team might create a default setting
+// of "false". This means the user can't use this feature unless they change
+// the setting to "true" and intentionally opt in for a paid feature.
+//
+// Services map a SettingId object to a setting value. AWS services teams define
+// the default value for a SettingId. You can't create a new SettingId, but
+// you can overwrite the default value if you have the ssm:UpdateServiceSetting
+// permission for the setting. Use the UpdateServiceSetting API action to change
+// the default setting. Or use the ResetServiceSetting to change the value back
+// to the original value defined by the AWS service team.
+//
+// Query the current service setting for the account.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s
+// API operation GetServiceSetting for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInternalServerError "InternalServerError"
+// An error occurred on the server side.
+//
+// * ErrCodeServiceSettingNotFound "ServiceSettingNotFound"
+// The specified service setting was not found. Either the service name or the
+// setting has not been provisioned by the AWS service team.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetServiceSetting
+func (c *SSM) GetServiceSetting(input *GetServiceSettingInput) (*GetServiceSettingOutput, error) {
+ req, out := c.GetServiceSettingRequest(input)
+ return out, req.Send()
+}
+
+// GetServiceSettingWithContext is the same as GetServiceSetting with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetServiceSetting for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *SSM) GetServiceSettingWithContext(ctx aws.Context, input *GetServiceSettingInput, opts ...request.Option) (*GetServiceSettingOutput, error) {
+ req, out := c.GetServiceSettingRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opLabelParameterVersion = "LabelParameterVersion"
// LabelParameterVersionRequest generates a "aws/request.Request" representing the
@@ -9238,6 +9335,108 @@ func (c *SSM) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTa
return out, req.Send()
}
+const opResetServiceSetting = "ResetServiceSetting"
+
+// ResetServiceSettingRequest generates a "aws/request.Request" representing the
+// client's request for the ResetServiceSetting operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ResetServiceSetting for more information on using the ResetServiceSetting
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ResetServiceSettingRequest method.
+// req, resp := client.ResetServiceSettingRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResetServiceSetting
+func (c *SSM) ResetServiceSettingRequest(input *ResetServiceSettingInput) (req *request.Request, output *ResetServiceSettingOutput) {
+ op := &request.Operation{
+ Name: opResetServiceSetting,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ResetServiceSettingInput{}
+ }
+
+ output = &ResetServiceSettingOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ResetServiceSetting API operation for Amazon Simple Systems Manager (SSM).
+//
+// ServiceSetting is an account-level setting for an AWS service. This setting
+// defines how a user interacts with or uses a service or a feature of a service.
+// For example, if an AWS service charges money to the account based on feature
+// or service usage, then the AWS service team might create a default setting
+// of "false". This means the user can't use this feature unless they change
+// the setting to "true" and intentionally opt in for a paid feature.
+//
+// Services map a SettingId object to a setting value. AWS services teams define
+// the default value for a SettingId. You can't create a new SettingId, but
+// you can overwrite the default value if you have the ssm:UpdateServiceSetting
+// permission for the setting. Use the GetServiceSetting API action to view
+// the current value. Use the UpdateServiceSetting API action to change the
+// default setting.
+//
+// Reset the service setting for the account to the default value as provisioned
+// by the AWS service team.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime 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 Simple Systems Manager (SSM)'s
+// API operation ResetServiceSetting for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInternalServerError "InternalServerError"
+// An error occurred on the server side.
+//
+// * ErrCodeServiceSettingNotFound "ServiceSettingNotFound"
+// The specified service setting was not found. Either the service name or the
+// setting has not been provisioned by the AWS service team.
+//
+// * ErrCodeTooManyUpdates "TooManyUpdates"
+// There are concurrent updates for a resource that supports one update at a
+// time.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResetServiceSetting
+func (c *SSM) ResetServiceSetting(input *ResetServiceSettingInput) (*ResetServiceSettingOutput, error) {
+ req, out := c.ResetServiceSettingRequest(input)
+ return out, req.Send()
+}
+
+// ResetServiceSettingWithContext is the same as ResetServiceSetting with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ResetServiceSetting for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *SSM) ResetServiceSettingWithContext(ctx aws.Context, input *ResetServiceSettingInput, opts ...request.Option) (*ResetServiceSettingOutput, error) {
+ req, out := c.ResetServiceSettingRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opResumeSession = "ResumeSession"
// ResumeSessionRequest generates a "aws/request.Request" representing the
@@ -10911,6 +11110,108 @@ func (c *SSM) UpdatePatchBaselineWithContext(ctx aws.Context, input *UpdatePatch
return out, req.Send()
}
+const opUpdateServiceSetting = "UpdateServiceSetting"
+
+// UpdateServiceSettingRequest generates a "aws/request.Request" representing the
+// client's request for the UpdateServiceSetting operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See UpdateServiceSetting for more information on using the UpdateServiceSetting
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the UpdateServiceSettingRequest method.
+// req, resp := client.UpdateServiceSettingRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateServiceSetting
+func (c *SSM) UpdateServiceSettingRequest(input *UpdateServiceSettingInput) (req *request.Request, output *UpdateServiceSettingOutput) {
+ op := &request.Operation{
+ Name: opUpdateServiceSetting,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &UpdateServiceSettingInput{}
+ }
+
+ output = &UpdateServiceSettingOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// UpdateServiceSetting API operation for Amazon Simple Systems Manager (SSM).
+//
+// ServiceSetting is an account-level setting for an AWS service. This setting
+// defines how a user interacts with or uses a service or a feature of a service.
+// For example, if an AWS service charges money to the account based on feature
+// or service usage, then the AWS service team might create a default setting
+// of "false". This means the user can't use this feature unless they change
+// the setting to "true" and intentionally opt in for a paid feature.
+//
+// Services map a SettingId object to a setting value. AWS services teams define
+// the default value for a SettingId. You can't create a new SettingId, but
+// you can overwrite the default value if you have the ssm:UpdateServiceSetting
+// permission for the setting. Use the GetServiceSetting API action to view
+// the current value. Or, use the ResetServiceSetting to change the value back
+// to the original value defined by the AWS service team.
+//
+// Update the service setting for the account.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s
+// API operation UpdateServiceSetting for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInternalServerError "InternalServerError"
+// An error occurred on the server side.
+//
+// * ErrCodeServiceSettingNotFound "ServiceSettingNotFound"
+// The specified service setting was not found. Either the service name or the
+// setting has not been provisioned by the AWS service team.
+//
+// * ErrCodeTooManyUpdates "TooManyUpdates"
+// There are concurrent updates for a resource that supports one update at a
+// time.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateServiceSetting
+func (c *SSM) UpdateServiceSetting(input *UpdateServiceSettingInput) (*UpdateServiceSettingOutput, error) {
+ req, out := c.UpdateServiceSettingRequest(input)
+ return out, req.Send()
+}
+
+// UpdateServiceSettingWithContext is the same as UpdateServiceSetting with the addition of
+// the ability to pass a context and additional request options.
+//
+// See UpdateServiceSetting for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *SSM) UpdateServiceSettingWithContext(ctx aws.Context, input *UpdateServiceSettingInput, opts ...request.Option) (*UpdateServiceSettingOutput, error) {
+ req, out := c.UpdateServiceSettingRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
// 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.
@@ -10945,6 +11246,9 @@ type Activation struct {
// The number of managed instances already registered with this activation.
RegistrationsCount *int64 `min:"1" type:"integer"`
+
+ // Tags assigned to the activation.
+ Tags []*Tag `type:"list"`
}
// String returns the string representation
@@ -11011,6 +11315,12 @@ func (s *Activation) SetRegistrationsCount(v int64) *Activation {
return s
}
+// SetTags sets the Tags field's value.
+func (s *Activation) SetTags(v []*Tag) *Activation {
+ s.Tags = v
+ return s
+}
+
type AddTagsToResourceInput struct {
_ struct{} `type:"structure"`
@@ -14135,6 +14445,30 @@ type CreateActivationInput struct {
// Specify the maximum number of managed instances you want to register. The
// default value is 1 instance.
RegistrationLimit *int64 `min:"1" type:"integer"`
+
+ // Optional metadata that you assign to a resource. Tags enable you to categorize
+ // a resource in different ways, such as by purpose, owner, or environment.
+ // For example, you might want to tag an activation to identify which servers
+ // or virtual machines (VMs) in your on-premises environment you intend to activate.
+ // In this case, you could specify the following key name/value pairs:
+ //
+ // * Key=OS,Value=Windows
+ //
+ // * Key=Environment,Value=Production
+ //
+ // When you install SSM Agent on your on-premises servers and VMs, you specify
+ // an activation ID and code. When you specify the activation ID and code, tags
+ // assigned to the activation are automatically applied to the on-premises servers
+ // or VMs.
+ //
+ // You can't add tags to or delete tags from an existing activation. You can
+ // tag your on-premises servers and VMs after they connect to Systems Manager
+ // for the first time and are assigned a managed instance ID. This means they
+ // are listed in the AWS Systems Manager console with an ID that is prefixed
+ // with "mi-". For information about how to add tags to your managed instances,
+ // see AddTagsToResource. For information about how to remove tags from your
+ // managed instances, see RemoveTagsFromResource.
+ Tags []*Tag `type:"list"`
}
// String returns the string representation
@@ -14156,6 +14490,16 @@ func (s *CreateActivationInput) Validate() error {
if s.RegistrationLimit != nil && *s.RegistrationLimit < 1 {
invalidParams.Add(request.NewErrParamMinValue("RegistrationLimit", 1))
}
+ if s.Tags != nil {
+ for i, v := range s.Tags {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -14193,6 +14537,12 @@ func (s *CreateActivationInput) SetRegistrationLimit(v int64) *CreateActivationI
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateActivationInput) SetTags(v []*Tag) *CreateActivationInput {
+ s.Tags = v
+ return s
+}
+
type CreateActivationOutput struct {
_ struct{} `type:"structure"`
@@ -14356,7 +14706,24 @@ type CreateAssociationBatchRequestEntry struct {
// set MaxConcurrency to 1 so that executions proceed one at a time.
MaxErrors *string `min:"1" type:"string"`
- // The name of the configuration document.
+ // The name of the SSM document that contains the configuration information
+ // for the instance. You can specify Command, Policy, or Automation documents.
+ //
+ // You can specify AWS-predefined documents, documents you created, or a document
+ // that is shared with you from another account.
+ //
+ // For SSM documents that are shared with you from other AWS accounts, you must
+ // specify the complete SSM document ARN, in the following format:
+ //
+ // arn:aws:ssm:region:account-id:document/document-name
+ //
+ // For example:
+ //
+ // arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document
+ //
+ // For AWS-predefined documents and SSM documents you created in your account,
+ // you only need to specify the document name. For example, AWS-ApplyPatchBaseline
+ // or My-Document.
//
// Name is a required field
Name *string `type:"string" required:"true"`
@@ -14542,7 +14909,24 @@ type CreateAssociationInput struct {
// set MaxConcurrency to 1 so that executions proceed one at a time.
MaxErrors *string `min:"1" type:"string"`
- // The name of the Systems Manager document.
+ // The name of the SSM document that contains the configuration information
+ // for the instance. You can specify Command, Policy, or Automation documents.
+ //
+ // You can specify AWS-predefined documents, documents you created, or a document
+ // that is shared with you from another account.
+ //
+ // For SSM documents that are shared with you from other AWS accounts, you must
+ // specify the complete SSM document ARN, in the following format:
+ //
+ // arn:partition:ssm:region:account-id:document/document-name
+ //
+ // For example:
+ //
+ // arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document
+ //
+ // For AWS-predefined documents and SSM documents you created in your account,
+ // you only need to specify the document name. For example, AWS-ApplyPatchBaseline
+ // or My-Document.
//
// Name is a required field
Name *string `type:"string" required:"true"`
@@ -14739,6 +15123,19 @@ type CreateDocumentInput struct {
// Name is a required field
Name *string `type:"string" required:"true"`
+ // Optional metadata that you assign to a resource. Tags enable you to categorize
+ // a resource in different ways, such as by purpose, owner, or environment.
+ // For example, you might want to tag an SSM document to identify the types
+ // of targets or the environment where it will run. In this case, you could
+ // specify the following key name/value pairs:
+ //
+ // * Key=OS,Value=Windows
+ //
+ // * Key=Environment,Value=Production
+ //
+ // To add tags to an existing SSM document, use the AddTagsToResource action.
+ Tags []*Tag `type:"list"`
+
// Specify a target type to define the kinds of resources the document can run
// on. For example, to run a document on EC2 instances, specify the following
// value: /AWS::EC2::Instance. If you specify a value of '/' the document can
@@ -14786,6 +15183,16 @@ func (s *CreateDocumentInput) Validate() error {
}
}
}
+ 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
@@ -14823,6 +15230,12 @@ func (s *CreateDocumentInput) SetName(v string) *CreateDocumentInput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateDocumentInput) SetTags(v []*Tag) *CreateDocumentInput {
+ s.Tags = v
+ return s
+}
+
// SetTargetType sets the TargetType field's value.
func (s *CreateDocumentInput) SetTargetType(v string) *CreateDocumentInput {
s.TargetType = &v
@@ -14915,6 +15328,22 @@ type CreateMaintenanceWindowInput struct {
// Window to become active. StartDate allows you to delay activation of the
// Maintenance Window until the specified future date.
StartDate *string `type:"string"`
+
+ // Optional metadata that you assign to a resource. Tags enable you to categorize
+ // a resource in different ways, such as by purpose, owner, or environment.
+ // For example, you might want to tag a Maintenance Window to identify the type
+ // of tasks it will run, the types of targets, and the environment it will run
+ // in. In this case, you could specify the following key name/value pairs:
+ //
+ // * Key=TaskType,Value=AgentUpdate
+ //
+ // * Key=OS,Value=Windows
+ //
+ // * Key=Environment,Value=Production
+ //
+ // To add tags to an existing Maintenance Window, use the AddTagsToResource
+ // action.
+ Tags []*Tag `type:"list"`
}
// String returns the string representation
@@ -14960,6 +15389,16 @@ func (s *CreateMaintenanceWindowInput) Validate() error {
if s.Schedule != nil && len(*s.Schedule) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Schedule", 1))
}
+ if s.Tags != nil {
+ for i, v := range s.Tags {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -15027,6 +15466,12 @@ func (s *CreateMaintenanceWindowInput) SetStartDate(v string) *CreateMaintenance
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateMaintenanceWindowInput) SetTags(v []*Tag) *CreateMaintenanceWindowInput {
+ s.Tags = v
+ return s
+}
+
type CreateMaintenanceWindowOutput struct {
_ struct{} `type:"structure"`
@@ -15080,7 +15525,7 @@ type CreatePatchBaselineInput struct {
// A description of the patch baseline.
Description *string `min:"1" type:"string"`
- // A set of global filters used to exclude patches from the baseline.
+ // A set of global filters used to include patches in the baseline.
GlobalFilters *PatchFilterGroup `type:"structure"`
// The name of the patch baseline.
@@ -15118,6 +15563,19 @@ type CreatePatchBaselineInput struct {
// 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"`
+
+ // Optional metadata that you assign to a resource. Tags enable you to categorize
+ // a resource in different ways, such as by purpose, owner, or environment.
+ // For example, you might want to tag a patch baseline to identify the severity
+ // level of patches it specifies and the operating system family it applies
+ // to. In this case, you could specify the following key name/value pairs:
+ //
+ // * Key=PatchSeverity,Value=Critical
+ //
+ // * Key=OS,Value=Windows
+ //
+ // To add tags to an existing patch baseline, use the AddTagsToResource action.
+ Tags []*Tag `type:"list"`
}
// String returns the string representation
@@ -15165,6 +15623,16 @@ func (s *CreatePatchBaselineInput) Validate() error {
}
}
}
+ 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
@@ -15244,6 +15712,12 @@ func (s *CreatePatchBaselineInput) SetSources(v []*PatchSource) *CreatePatchBase
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreatePatchBaselineInput) SetTags(v []*Tag) *CreatePatchBaselineInput {
+ s.Tags = v
+ return s
+}
+
type CreatePatchBaselineOutput struct {
_ struct{} `type:"structure"`
@@ -16668,8 +17142,8 @@ type DescribeAssociationInput struct {
// Specify the association version to retrieve. To view the latest version,
// either specify $LATEST for this parameter, or omit this parameter. To view
- // a list of all associations for an instance, use ListInstanceAssociations.
- // To get a list of versions for a specific association, use ListAssociationVersions.
+ // a list of all associations for an instance, use ListAssociations. To get
+ // a list of versions for a specific association, use ListAssociationVersions.
AssociationVersion *string `type:"string"`
// The instance ID.
@@ -23044,6 +23518,72 @@ func (s *GetPatchBaselineOutput) SetSources(v []*PatchSource) *GetPatchBaselineO
return s
}
+// The request body of the GetServiceSetting API action.
+type GetServiceSettingInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the service setting to get.
+ //
+ // SettingId is a required field
+ SettingId *string `min:"1" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s GetServiceSettingInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetServiceSettingInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetServiceSettingInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetServiceSettingInput"}
+ if s.SettingId == nil {
+ invalidParams.Add(request.NewErrParamRequired("SettingId"))
+ }
+ if s.SettingId != nil && len(*s.SettingId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("SettingId", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetSettingId sets the SettingId field's value.
+func (s *GetServiceSettingInput) SetSettingId(v string) *GetServiceSettingInput {
+ s.SettingId = &v
+ return s
+}
+
+// The query result body of the GetServiceSetting API action.
+type GetServiceSettingOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The query result of the current service setting.
+ ServiceSetting *ServiceSetting `type:"structure"`
+}
+
+// String returns the string representation
+func (s GetServiceSettingOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetServiceSettingOutput) GoString() string {
+ return s.String()
+}
+
+// SetServiceSetting sets the ServiceSetting field's value.
+func (s *GetServiceSettingOutput) SetServiceSetting(v *ServiceSetting) *GetServiceSettingOutput {
+ s.ServiceSetting = v
+ return s
+}
+
// Status information about the aggregated associations.
type InstanceAggregatedAssociationOverview struct {
_ struct{} `type:"structure"`
@@ -28193,6 +28733,8 @@ func (s *PatchComplianceData) SetTitle(v string) *PatchComplianceData {
//
// * WindowsServer2016
//
+// * WindowsServer2019
+//
// * *
//
// Use a wildcard character (*) to target all supported operating system versions.
@@ -28409,6 +28951,10 @@ func (s *PatchComplianceData) SetTitle(v string) *PatchComplianceData {
//
// * RedhatEnterpriseLinux7.4
//
+// * RedhatEnterpriseLinux7.5
+//
+// * RedhatEnterpriseLinux7.6
+//
// * *
//
// Use a wildcard character (*) to target all supported operating system versions.
@@ -28531,6 +29077,10 @@ func (s *PatchComplianceData) SetTitle(v string) *PatchComplianceData {
//
// * CentOS7.4
//
+// * CentOS7.5
+//
+// * CentOS7.6
+//
// * *
//
// Use a wildcard character (*) to target all supported operating system versions.
@@ -29374,6 +29924,23 @@ type PutParameterInput struct {
// Overwrite an existing parameter. If not specified, will default to "false".
Overwrite *bool `type:"boolean"`
+ // Optional metadata that you assign to a resource. Tags enable you to categorize
+ // a resource in different ways, such as by purpose, owner, or environment.
+ // For example, you might want to tag a Systems Manager parameter to identify
+ // the type of resource to which it applies, the environment, or the type of
+ // configuration data referenced by the parameter. In this case, you could specify
+ // the following key name/value pairs:
+ //
+ // * Key=Resource,Value=S3bucket
+ //
+ // * Key=OS,Value=Windows
+ //
+ // * Key=ParameterType,Value=LicenseKey
+ //
+ // To add tags to an existing Systems Manager parameter, use the AddTagsToResource
+ // action.
+ Tags []*Tag `type:"list"`
+
// The type of parameter that you want to add to the system.
//
// Items in a StringList must be separated by a comma (,). You can't use other
@@ -29423,6 +29990,16 @@ func (s *PutParameterInput) Validate() error {
if s.Value != nil && len(*s.Value) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Value", 1))
}
+ if s.Tags != nil {
+ for i, v := range s.Tags {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -29460,6 +30037,12 @@ func (s *PutParameterInput) SetOverwrite(v bool) *PutParameterInput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *PutParameterInput) SetTags(v []*Tag) *PutParameterInput {
+ s.Tags = v
+ return s
+}
+
// SetType sets the Type field's value.
func (s *PutParameterInput) SetType(v string) *PutParameterInput {
s.Type = &v
@@ -30190,6 +30773,73 @@ func (s RemoveTagsFromResourceOutput) GoString() string {
return s.String()
}
+// The request body of the ResetServiceSetting API action.
+type ResetServiceSettingInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the service setting to reset.
+ //
+ // SettingId is a required field
+ SettingId *string `min:"1" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s ResetServiceSettingInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ResetServiceSettingInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ResetServiceSettingInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ResetServiceSettingInput"}
+ if s.SettingId == nil {
+ invalidParams.Add(request.NewErrParamRequired("SettingId"))
+ }
+ if s.SettingId != nil && len(*s.SettingId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("SettingId", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetSettingId sets the SettingId field's value.
+func (s *ResetServiceSettingInput) SetSettingId(v string) *ResetServiceSettingInput {
+ s.SettingId = &v
+ return s
+}
+
+// The result body of the ResetServiceSetting API action.
+type ResetServiceSettingOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The current, effective service setting after calling the ResetServiceSetting
+ // API action.
+ ServiceSetting *ServiceSetting `type:"structure"`
+}
+
+// String returns the string representation
+func (s ResetServiceSettingOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ResetServiceSettingOutput) GoString() string {
+ return s.String()
+}
+
+// SetServiceSetting sets the ServiceSetting field's value.
+func (s *ResetServiceSettingOutput) SetServiceSetting(v *ServiceSetting) *ResetServiceSettingOutput {
+ s.ServiceSetting = v
+ return s
+}
+
// Information about targets that resolved during the Automation execution.
type ResolvedTargets struct {
_ struct{} `type:"structure"`
@@ -31111,6 +31761,100 @@ func (s *SendCommandOutput) SetCommand(v *Command) *SendCommandOutput {
return s
}
+// The service setting data structure.
+//
+// ServiceSetting is an account-level setting for an AWS service. This setting
+// defines how a user interacts with or uses a service or a feature of a service.
+// For example, if an AWS service charges money to the account based on feature
+// or service usage, then the AWS service team might create a default setting
+// of "false". This means the user can't use this feature unless they change
+// the setting to "true" and intentionally opt in for a paid feature.
+//
+// Services map a SettingId object to a setting value. AWS services teams define
+// the default value for a SettingId. You can't create a new SettingId, but
+// you can overwrite the default value if you have the ssm:UpdateServiceSetting
+// permission for the setting. Use the UpdateServiceSetting API action to change
+// the default setting. Or, use the ResetServiceSetting to change the value
+// back to the original value defined by the AWS service team.
+type ServiceSetting struct {
+ _ struct{} `type:"structure"`
+
+ // The ARN of the service setting.
+ ARN *string `type:"string"`
+
+ // The last time the service setting was modified.
+ LastModifiedDate *time.Time `type:"timestamp"`
+
+ // The ARN of the last modified user. This field is populated only if the setting
+ // value was overwritten.
+ LastModifiedUser *string `type:"string"`
+
+ // The ID of the service setting.
+ SettingId *string `min:"1" type:"string"`
+
+ // The value of the service setting.
+ SettingValue *string `min:"1" type:"string"`
+
+ // The status of the service setting. The value can be Default, Customized or
+ // PendingUpdate.
+ //
+ // * Default: The current setting uses a default value provisioned by the
+ // AWS service team.
+ //
+ // * Customized: The current setting use a custom value specified by the
+ // customer.
+ //
+ // * PendingUpdate: The current setting uses a default or custom value, but
+ // a setting change request is pending approval.
+ Status *string `type:"string"`
+}
+
+// String returns the string representation
+func (s ServiceSetting) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ServiceSetting) GoString() string {
+ return s.String()
+}
+
+// SetARN sets the ARN field's value.
+func (s *ServiceSetting) SetARN(v string) *ServiceSetting {
+ s.ARN = &v
+ return s
+}
+
+// SetLastModifiedDate sets the LastModifiedDate field's value.
+func (s *ServiceSetting) SetLastModifiedDate(v time.Time) *ServiceSetting {
+ s.LastModifiedDate = &v
+ return s
+}
+
+// SetLastModifiedUser sets the LastModifiedUser field's value.
+func (s *ServiceSetting) SetLastModifiedUser(v string) *ServiceSetting {
+ s.LastModifiedUser = &v
+ return s
+}
+
+// SetSettingId sets the SettingId field's value.
+func (s *ServiceSetting) SetSettingId(v string) *ServiceSetting {
+ s.SettingId = &v
+ return s
+}
+
+// SetSettingValue sets the SettingValue field's value.
+func (s *ServiceSetting) SetSettingValue(v string) *ServiceSetting {
+ s.SettingValue = &v
+ return s
+}
+
+// SetStatus sets the Status field's value.
+func (s *ServiceSetting) SetStatus(v string) *ServiceSetting {
+ s.Status = &v
+ return s
+}
+
// Information about a Session Manager connection to an instance.
type Session struct {
_ struct{} `type:"structure"`
@@ -32459,7 +33203,24 @@ type UpdateAssociationInput struct {
// set MaxConcurrency to 1 so that executions proceed one at a time.
MaxErrors *string `min:"1" type:"string"`
- // The name of the association document.
+ // The name of the SSM document that contains the configuration information
+ // for the instance. You can specify Command, Policy, or Automation documents.
+ //
+ // You can specify AWS-predefined documents, documents you created, or a document
+ // that is shared with you from another account.
+ //
+ // For SSM documents that are shared with you from other AWS accounts, you must
+ // specify the complete SSM document ARN, in the following format:
+ //
+ // arn:aws:ssm:region:account-id:document/document-name
+ //
+ // For example:
+ //
+ // arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document
+ //
+ // For AWS-predefined documents and SSM documents you created in your account,
+ // you only need to specify the document name. For example, AWS-ApplyPatchBaseline
+ // or My-Document.
Name *string `type:"string"`
// An Amazon S3 bucket where you want to store the results of this request.
@@ -33888,7 +34649,7 @@ type UpdatePatchBaselineInput struct {
// A description of the patch baseline.
Description *string `min:"1" type:"string"`
- // A set of global filters used to exclude patches from the baseline.
+ // A set of global filters used to include patches in the baseline.
GlobalFilters *PatchFilterGroup `type:"structure"`
// The name of the patch baseline.
@@ -34197,6 +34958,80 @@ func (s *UpdatePatchBaselineOutput) SetSources(v []*PatchSource) *UpdatePatchBas
return s
}
+// The request body of the UpdateServiceSetting API action.
+type UpdateServiceSettingInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the service setting to update.
+ //
+ // SettingId is a required field
+ SettingId *string `min:"1" type:"string" required:"true"`
+
+ // The new value to specify for the service setting.
+ //
+ // SettingValue is a required field
+ SettingValue *string `min:"1" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s UpdateServiceSettingInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s UpdateServiceSettingInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *UpdateServiceSettingInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "UpdateServiceSettingInput"}
+ if s.SettingId == nil {
+ invalidParams.Add(request.NewErrParamRequired("SettingId"))
+ }
+ if s.SettingId != nil && len(*s.SettingId) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("SettingId", 1))
+ }
+ if s.SettingValue == nil {
+ invalidParams.Add(request.NewErrParamRequired("SettingValue"))
+ }
+ if s.SettingValue != nil && len(*s.SettingValue) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("SettingValue", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetSettingId sets the SettingId field's value.
+func (s *UpdateServiceSettingInput) SetSettingId(v string) *UpdateServiceSettingInput {
+ s.SettingId = &v
+ return s
+}
+
+// SetSettingValue sets the SettingValue field's value.
+func (s *UpdateServiceSettingInput) SetSettingValue(v string) *UpdateServiceSettingInput {
+ s.SettingValue = &v
+ return s
+}
+
+// The result body of the UpdateServiceSetting API action.
+type UpdateServiceSettingOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s UpdateServiceSettingOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s UpdateServiceSettingOutput) GoString() string {
+ return s.String()
+}
+
const (
// AssociationComplianceSeverityCritical is a AssociationComplianceSeverity enum value
AssociationComplianceSeverityCritical = "CRITICAL"
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 44d3bac89f6..4a473c6f816 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
@@ -598,6 +598,13 @@ const (
// Manager Limits (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_ssm).
ErrCodeResourceLimitExceededException = "ResourceLimitExceededException"
+ // ErrCodeServiceSettingNotFound for service response error code
+ // "ServiceSettingNotFound".
+ //
+ // The specified service setting was not found. Either the service name or the
+ // setting has not been provisioned by the AWS service team.
+ ErrCodeServiceSettingNotFound = "ServiceSettingNotFound"
+
// ErrCodeStatusUnchanged for service response error code
// "StatusUnchanged".
//
diff --git a/vendor/github.com/aws/aws-sdk-go/service/storagegateway/api.go b/vendor/github.com/aws/aws-sdk-go/service/storagegateway/api.go
index f1ba98b9b2d..336d3d738a3 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/storagegateway/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/storagegateway/api.go
@@ -148,7 +148,7 @@ func (c *StorageGateway) AddCacheRequest(input *AddCacheInput) (req *request.Req
//
// Configures one or more gateway local disks as cache for a gateway. This operation
// is only supported in the cached volume, tape and file gateway type (see Storage
-// Gateway Concepts (http://docs.aws.amazon.com/storagegateway/latest/userguide/StorageGatewayConcepts.html)).
+// Gateway Concepts (https://docs.aws.amazon.com/storagegateway/latest/userguide/StorageGatewayConcepts.html)).
//
// In the request, you specify the gateway Amazon Resource Name (ARN) to which
// you want to add cache, and one or more disk IDs that you want to configure
@@ -248,6 +248,8 @@ func (c *StorageGateway) AddTagsToResourceRequest(input *AddTagsToResourceInput)
//
// * Virtual Tapes
//
+// * NFS and SMB File Shares
+//
// You can create a maximum of 10 tags for each resource. Virtual tapes and
// storage volumes that are recovered to a new gateway maintain their tags.
//
@@ -982,7 +984,7 @@ func (c *StorageGateway) CreateSMBFileShareRequest(input *CreateSMBFileShareInpu
// to enable you to create a file share. Make sure that AWS STS is activated
// in the AWS Region you are creating your file gateway in. If AWS STS is not
// activated in this AWS Region, activate it. For information about how to activate
-// AWS STS, see Activating and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
+// AWS STS, see Activating and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the AWS Identity and Access Management User Guide.
//
// File gateways don't support creating hard or symbolic links on a file share.
@@ -1076,7 +1078,7 @@ func (c *StorageGateway) CreateSnapshotRequest(input *CreateSnapshotInput) (req
// as well as import the data to an Amazon Elastic Block Store (EBS) volume
// in Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway
// volume on a scheduled or ad-hoc basis. This API enables you to take ad-hoc
-// snapshot. For more information, see Editing a Snapshot Schedule (http://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#SchedulingSnapshot).
+// snapshot. For more information, see Editing a Snapshot Schedule (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#SchedulingSnapshot).
//
// In the CreateSnapshot request you identify the volume by providing its Amazon
// Resource Name (ARN). You must also provide description for the snapshot.
@@ -1088,10 +1090,10 @@ func (c *StorageGateway) CreateSnapshotRequest(input *CreateSnapshotInput) (req
// cached volume gateway type.
//
// To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
-// see DescribeSnapshots or DeleteSnapshot in the EC2 API reference (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html).
+// see DescribeSnapshots or DeleteSnapshot in the EC2 API reference (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html).
//
// Volume and snapshot IDs are changing to a longer length ID format. For more
-// information, see the important note on the Welcome (http://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html)
+// information, see the important note on the Welcome (https://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html)
// page.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -1920,7 +1922,7 @@ func (c *StorageGateway) DeleteSnapshotScheduleRequest(input *DeleteSnapshotSche
//
// You can take snapshots of your gateway volumes on a scheduled or ad hoc basis.
// This API action enables you to delete a snapshot schedule for a volume. For
-// more information, see Working with Snapshots (http://docs.aws.amazon.com/storagegateway/latest/userguide/WorkingWithSnapshots.html).
+// more information, see Working with Snapshots (https://docs.aws.amazon.com/storagegateway/latest/userguide/WorkingWithSnapshots.html).
// In the DeleteSnapshotSchedule request, you identify the volume by providing
// its Amazon Resource Name (ARN). This operation is only supported in stored
// and cached volume gateway types.
@@ -2190,7 +2192,7 @@ func (c *StorageGateway) DeleteVolumeRequest(input *DeleteVolumeInput) (req *req
// volume you are deleting. You should also make sure there is no snapshot in
// progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to
// query snapshots on the volume you are deleting and check the snapshot status.
-// For more information, go to DescribeSnapshots (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
+// For more information, go to DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
// in the Amazon Elastic Compute Cloud API Reference.
//
// In the request, you must provide the Amazon Resource Name (ARN) of the storage
@@ -6294,8 +6296,8 @@ func (c *StorageGateway) UpdateGatewaySoftwareNowRequest(input *UpdateGatewaySof
// the chance of any disruption to your applications by increasing your iSCSI
// Initiators' timeouts. For more information about increasing iSCSI Initiator
// timeouts for Windows and Linux, see Customizing Your Windows iSCSI Settings
-// (http://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorWindowsClient.html#CustomizeWindowsiSCSISettings)
-// and Customizing Your Linux iSCSI Settings (http://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorRedHatClient.html#CustomizeLinuxiSCSISettings),
+// (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorWindowsClient.html#CustomizeWindowsiSCSISettings)
+// and Customizing Your Linux iSCSI Settings (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorRedHatClient.html#CustomizeLinuxiSCSISettings),
// respectively.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -6578,7 +6580,7 @@ func (c *StorageGateway) UpdateSMBFileShareRequest(input *UpdateSMBFileShareInpu
// to enable you to create a file share. Make sure that AWS STS is activated
// in the AWS Region you are creating your file gateway in. If AWS STS is not
// activated in this AWS Region, activate it. For information about how to activate
-// AWS STS, see Activating and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
+// AWS STS, see Activating and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the AWS Identity and Access Management User Guide.
//
// File gateways don't support creating hard or symbolic links on a file share.
@@ -6842,12 +6844,11 @@ type ActivateGatewayInput struct {
// A value that indicates the region where you want to store your data. The
// gateway region specified must be the same region as the region in your Host
// header in the request. For more information about available regions and endpoints
- // for AWS Storage Gateway, see Regions and Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#sg_region)
+ // for AWS Storage Gateway, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#sg_region)
// in the Amazon Web Services Glossary.
//
- // Valid Values: "us-east-1", "us-east-2", "us-west-1", "us-west-2", "ca-central-1",
- // "eu-west-1", "eu-central-1", "eu-west-2", "eu-west-3", "ap-northeast-1",
- // "ap-northeast-2", "ap-southeast-1", "ap-southeast-2", "ap-south-1", "sa-east-1"
+ // Valid Values: See AWS Storage Gateway Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#sg_region)
+ // in the AWS General Reference.
//
// GatewayRegion is a required field
GatewayRegion *string `min:"1" type:"string" required:"true"`
@@ -6874,6 +6875,15 @@ type ActivateGatewayInput struct {
// Valid Values: "STK-L700", "AWS-Gateway-VTL"
MediumChangerType *string `min:"2" type:"string"`
+ // A list of up to ten (10) tags assigned to the gateway may be specified. Every
+ // tag is a key-value pair.
+ //
+ // Valid characters for key and value are letters, spaces, and numbers representable
+ // in UTF-8 format, and the following special characters: + - = . _ : / @. The
+ // maximum length of a tag's key is 128 characters, and the maximum length for
+ // a tag's value is 256.
+ Tags []*Tag `type:"list"`
+
// The value that indicates the type of tape drive to use for tape gateway.
// This field is optional.
//
@@ -6927,6 +6937,16 @@ func (s *ActivateGatewayInput) Validate() error {
if s.TapeDriveType != nil && len(*s.TapeDriveType) < 2 {
invalidParams.Add(request.NewErrParamMinLen("TapeDriveType", 2))
}
+ 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
@@ -6970,6 +6990,12 @@ func (s *ActivateGatewayInput) SetMediumChangerType(v string) *ActivateGatewayIn
return s
}
+// SetTags sets the Tags field's value.
+func (s *ActivateGatewayInput) SetTags(v []*Tag) *ActivateGatewayInput {
+ s.Tags = v
+ return s
+}
+
// SetTapeDriveType sets the TapeDriveType field's value.
func (s *ActivateGatewayInput) SetTapeDriveType(v string) *ActivateGatewayInput {
s.TapeDriveType = &v
@@ -7011,6 +7037,10 @@ func (s *ActivateGatewayOutput) SetGatewayARN(v string) *ActivateGatewayOutput {
type AddCacheInput struct {
_ struct{} `type:"structure"`
+ // An array of strings that identify disks that are to be configured as working
+ // storage. Each string have a minimum length of 1 and maximum length of 300.
+ // You can get the disk IDs from the ListLocalDisks API.
+ //
// DiskIds is a required field
DiskIds []*string `type:"list" required:"true"`
@@ -7099,7 +7129,9 @@ type AddTagsToResourceInput struct {
// The value can be an empty string.
//
// Valid characters for key and value are letters, spaces, and numbers representable
- // in UTF-8 format, and the following special characters: + - = . _ : / @.
+ // in UTF-8 format, and the following special characters: + - = . _ : / @. The
+ // maximum length of a tag's key is 128 characters, and the maximum length for
+ // a tag's value is 256.
//
// Tags is a required field
Tags []*Tag `type:"list" required:"true"`
@@ -7183,6 +7215,10 @@ func (s *AddTagsToResourceOutput) SetResourceARN(v string) *AddTagsToResourceOut
type AddUploadBufferInput struct {
_ struct{} `type:"structure"`
+ // An array of strings that identify disks that are to be configured as working
+ // storage. Each string have a minimum length of 1 and maximum length of 300.
+ // You can get the disk IDs from the ListLocalDisks API.
+ //
// DiskIds is a required field
DiskIds []*string `type:"list" required:"true"`
@@ -7499,22 +7535,27 @@ type CachediSCSIVolume struct {
// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// If the cached volume was created from a snapshot, this field contains the
// snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
SourceSnapshotId *string `type:"string"`
- // The name of the iSCSI target that is used by an initiator to connect to a
- // volume and used as a suffix for the target ARN. For example, specifying TargetName
+ // The name of the iSCSI target used by an initiator to connect to a volume
+ // and used as a suffix for the target ARN. For example, specifying TargetName
// as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
+ // The target name must be unique across all volumes on a gateway.
+ //
+ // If you don't specify a value, Storage Gateway uses the value that was previously
+ // used for this volume as the new target name.
TargetName *string `min:"1" type:"string"`
// The Amazon Resource Name (ARN) of the storage volume.
VolumeARN *string `min:"50" type:"string"`
// A value that indicates whether a storage volume is attached to or detached
- // from a gateway.
+ // from a gateway. For more information, see Moving Your Volumes to a Different
+ // Gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
VolumeAttachmentStatus *string `min:"3" type:"string"`
// The unique identifier of the volume, e.g. vol-AE4B946D.
@@ -7883,7 +7924,7 @@ type CreateCachediSCSIVolumeInput struct {
// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// The network interface of the gateway on which to expose the iSCSI target.
// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
@@ -7897,7 +7938,7 @@ type CreateCachediSCSIVolumeInput struct {
// The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the
// new cached volume. Specify this field if you want to create the iSCSI storage
// volume from a snapshot otherwise do not include this field. To list snapshots
- // for your account use DescribeSnapshots (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
+ // for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
// in the Amazon Elastic Compute Cloud API Reference.
SnapshotId *string `type:"string"`
@@ -7907,10 +7948,13 @@ type CreateCachediSCSIVolumeInput struct {
// than the size of the existing volume, in bytes.
SourceVolumeARN *string `min:"50" type:"string"`
- // The name of the iSCSI target used by initiators to connect to the target
- // and as a suffix for the target ARN. For example, specifying TargetName as
- // myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
- // The target name must be unique across all volumes of a gateway.
+ // The name of the iSCSI target used by an initiator to connect to a volume
+ // and used as a suffix for the target ARN. For example, specifying TargetName
+ // as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
+ // The target name must be unique across all volumes on a gateway.
+ //
+ // If you don't specify a value, Storage Gateway uses the value that was previously
+ // used for this volume as the new target name.
//
// TargetName is a required field
TargetName *string `min:"1" type:"string" required:"true"`
@@ -7946,8 +7990,8 @@ func (s *CreateCachediSCSIVolumeInput) Validate() error {
if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
}
- if s.KMSKey != nil && len(*s.KMSKey) < 20 {
- invalidParams.Add(request.NewErrParamMinLen("KMSKey", 20))
+ if s.KMSKey != nil && len(*s.KMSKey) < 7 {
+ invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
}
if s.NetworkInterfaceId == nil {
invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
@@ -8094,7 +8138,7 @@ type CreateNFSFileShareInput struct {
// The Amazon Resource Name (ARN) AWS KMS key used for Amazon S3 server side
// encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// The ARN of the backed storage used for storing file data.
//
@@ -8130,6 +8174,15 @@ type CreateNFSFileShareInput struct {
//
// * AllSquash - Everyone is mapped to anonymous user.
Squash *string `min:"5" type:"string"`
+
+ // A list of up to ten (10) tags can be assigned to the NFS file share. Every
+ // tag is a key-value pair.
+ //
+ // Valid characters for key and value are letters, spaces, and numbers representable
+ // in UTF-8 format, and the following special characters: + - = . _ : / @. The
+ // maximum length of a tag's key is 128 characters, and the maximum length for
+ // a tag's value is 256.
+ Tags []*Tag `type:"list"`
}
// String returns the string representation
@@ -8163,8 +8216,8 @@ func (s *CreateNFSFileShareInput) Validate() error {
if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
}
- if s.KMSKey != nil && len(*s.KMSKey) < 20 {
- invalidParams.Add(request.NewErrParamMinLen("KMSKey", 20))
+ if s.KMSKey != nil && len(*s.KMSKey) < 7 {
+ invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
}
if s.LocationARN == nil {
invalidParams.Add(request.NewErrParamRequired("LocationARN"))
@@ -8186,6 +8239,16 @@ func (s *CreateNFSFileShareInput) Validate() error {
invalidParams.AddNested("NFSFileShareDefaults", 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
@@ -8277,6 +8340,12 @@ func (s *CreateNFSFileShareInput) SetSquash(v string) *CreateNFSFileShareInput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateNFSFileShareInput) SetTags(v []*Tag) *CreateNFSFileShareInput {
+ s.Tags = v
+ return s
+}
+
// CreateNFSFileShareOutput
type CreateNFSFileShareOutput struct {
_ struct{} `type:"structure"`
@@ -8343,7 +8412,7 @@ type CreateSMBFileShareInput struct {
// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// The ARN of the backed storage used for storing file data.
//
@@ -8368,6 +8437,15 @@ type CreateSMBFileShareInput struct {
// Role is a required field
Role *string `min:"20" type:"string" required:"true"`
+ // A list of up to ten (10) tags can be assigned to the NFS file share. Every
+ // tag is a key-value pair.
+ //
+ // Valid characters for key and value are letters, spaces, and numbers representable
+ // in UTF-8 format, and the following special characters: + - = . _ : / @. The
+ // maximum length of a tag's key is 128 characters, and the maximum length for
+ // a tag's value is 256.
+ Tags []*Tag `type:"list"`
+
// A list of users or groups in the Active Directory that are allowed to access
// the file share. A group must be prefixed with the @ character. For example
// @group1. Can only be set if Authentication is set to ActiveDirectory.
@@ -8405,8 +8483,8 @@ func (s *CreateSMBFileShareInput) Validate() error {
if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
}
- if s.KMSKey != nil && len(*s.KMSKey) < 20 {
- invalidParams.Add(request.NewErrParamMinLen("KMSKey", 20))
+ if s.KMSKey != nil && len(*s.KMSKey) < 7 {
+ invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
}
if s.LocationARN == nil {
invalidParams.Add(request.NewErrParamRequired("LocationARN"))
@@ -8420,6 +8498,16 @@ func (s *CreateSMBFileShareInput) Validate() error {
if s.Role != nil && len(*s.Role) < 20 {
invalidParams.Add(request.NewErrParamMinLen("Role", 20))
}
+ 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
@@ -8505,6 +8593,12 @@ func (s *CreateSMBFileShareInput) SetRole(v string) *CreateSMBFileShareInput {
return s
}
+// SetTags sets the Tags field's value.
+func (s *CreateSMBFileShareInput) SetTags(v []*Tag) *CreateSMBFileShareInput {
+ s.Tags = v
+ return s
+}
+
// SetValidUserList sets the ValidUserList field's value.
func (s *CreateSMBFileShareInput) SetValidUserList(v []*string) *CreateSMBFileShareInput {
s.ValidUserList = v
@@ -8538,9 +8632,16 @@ func (s *CreateSMBFileShareOutput) SetFileShareARN(v string) *CreateSMBFileShare
type CreateSnapshotFromVolumeRecoveryPointInput struct {
_ struct{} `type:"structure"`
+ // Textual description of the snapshot that appears in the Amazon EC2 console,
+ // Elastic Block Store snapshots panel in the Description field, and in the
+ // AWS Storage Gateway snapshot Details pane, Description field
+ //
// SnapshotDescription is a required field
SnapshotDescription *string `min:"1" type:"string" required:"true"`
+ // The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
+ // operation to return to retrieve the TargetARN for specified VolumeARN.
+ //
// VolumeARN is a required field
VolumeARN *string `min:"50" type:"string" required:"true"`
}
@@ -8592,10 +8693,14 @@ func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetVolumeARN(v string) *Cre
type CreateSnapshotFromVolumeRecoveryPointOutput struct {
_ struct{} `type:"structure"`
+ // The ID of the snapshot.
SnapshotId *string `type:"string"`
+ // The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
+ // operation to return to retrieve the TargetARN for specified VolumeARN.
VolumeARN *string `min:"50" type:"string"`
+ // The time the volume was created from the recovery point.
VolumeRecoveryPointTime *string `type:"string"`
}
@@ -8743,7 +8848,7 @@ type CreateStorediSCSIVolumeInput struct {
_ struct{} `type:"structure"`
// The unique identifier for the gateway local disk that is configured as a
- // stored volume. Use ListLocalDisks (http://docs.aws.amazon.com/storagegateway/latest/userguide/API_ListLocalDisks.html)
+ // stored volume. Use ListLocalDisks (https://docs.aws.amazon.com/storagegateway/latest/userguide/API_ListLocalDisks.html)
// to list disk IDs for a gateway.
//
// DiskId is a required field
@@ -8761,7 +8866,7 @@ type CreateStorediSCSIVolumeInput struct {
// The Amazon Resource Name (ARN) of the KMS key used for Amazon S3 server side
// encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// The network interface of the gateway on which to expose the iSCSI target.
// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
@@ -8783,14 +8888,17 @@ type CreateStorediSCSIVolumeInput struct {
// The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the
// new stored volume. Specify this field if you want to create the iSCSI storage
// volume from a snapshot otherwise do not include this field. To list snapshots
- // for your account use DescribeSnapshots (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
+ // for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
// in the Amazon Elastic Compute Cloud API Reference.
SnapshotId *string `type:"string"`
- // The name of the iSCSI target used by initiators to connect to the target
- // and as a suffix for the target ARN. For example, specifying TargetName as
- // myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
- // The target name must be unique across all volumes of a gateway.
+ // The name of the iSCSI target used by an initiator to connect to a volume
+ // and used as a suffix for the target ARN. For example, specifying TargetName
+ // as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
+ // The target name must be unique across all volumes on a gateway.
+ //
+ // If you don't specify a value, Storage Gateway uses the value that was previously
+ // used for this volume as the new target name.
//
// TargetName is a required field
TargetName *string `min:"1" type:"string" required:"true"`
@@ -8821,8 +8929,8 @@ func (s *CreateStorediSCSIVolumeInput) Validate() error {
if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
}
- if s.KMSKey != nil && len(*s.KMSKey) < 20 {
- invalidParams.Add(request.NewErrParamMinLen("KMSKey", 20))
+ if s.KMSKey != nil && len(*s.KMSKey) < 7 {
+ invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
}
if s.NetworkInterfaceId == nil {
invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
@@ -8951,7 +9059,7 @@ type CreateTapeWithBarcodeInput struct {
// The Amazon Resource Name (ARN) of the AWS KMS Key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// The barcode that you want to assign to the tape.
//
@@ -8988,8 +9096,8 @@ func (s *CreateTapeWithBarcodeInput) Validate() error {
if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
}
- if s.KMSKey != nil && len(*s.KMSKey) < 20 {
- invalidParams.Add(request.NewErrParamMinLen("KMSKey", 20))
+ if s.KMSKey != nil && len(*s.KMSKey) < 7 {
+ invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
}
if s.TapeBarcode == nil {
invalidParams.Add(request.NewErrParamRequired("TapeBarcode"))
@@ -9087,7 +9195,7 @@ type CreateTapesInput struct {
// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// The number of virtual tapes that you want to create.
//
@@ -9136,8 +9244,8 @@ func (s *CreateTapesInput) Validate() error {
if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
}
- if s.KMSKey != nil && len(*s.KMSKey) < 20 {
- invalidParams.Add(request.NewErrParamMinLen("KMSKey", 20))
+ if s.KMSKey != nil && len(*s.KMSKey) < 7 {
+ invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
}
if s.NumTapesToCreate == nil {
invalidParams.Add(request.NewErrParamRequired("NumTapesToCreate"))
@@ -9565,6 +9673,8 @@ func (s *DeleteGatewayOutput) SetGatewayARN(v string) *DeleteGatewayOutput {
type DeleteSnapshotScheduleInput struct {
_ struct{} `type:"structure"`
+ // The volume which snapshot schedule to delete.
+ //
// VolumeARN is a required field
VolumeARN *string `min:"50" type:"string" required:"true"`
}
@@ -9604,6 +9714,7 @@ func (s *DeleteSnapshotScheduleInput) SetVolumeARN(v string) *DeleteSnapshotSche
type DeleteSnapshotScheduleOutput struct {
_ struct{} `type:"structure"`
+ // The volume which snapshot schedule was deleted.
VolumeARN *string `min:"50" type:"string"`
}
@@ -9977,16 +10088,28 @@ func (s *DescribeCacheInput) SetGatewayARN(v string) *DescribeCacheInput {
type DescribeCacheOutput struct {
_ struct{} `type:"structure"`
+ // The amount of cache in bytes allocated to the a gateway.
CacheAllocatedInBytes *int64 `type:"long"`
+ // The file share's contribution to the overall percentage of the gateway's
+ // cache that has not been persisted to AWS. The sample is taken at the end
+ // of the reporting period.
CacheDirtyPercentage *float64 `type:"double"`
+ // Percent of application read operations from the file shares that are served
+ // from cache. The sample is taken at the end of the reporting period.
CacheHitPercentage *float64 `type:"double"`
CacheMissPercentage *float64 `type:"double"`
+ // Percent use of the gateway's cache storage. This metric applies only to the
+ // gateway-cached volume setup. The sample is taken at the end of the reporting
+ // period.
CacheUsedPercentage *float64 `type:"double"`
+ // An array of strings that identify disks that are to be configured as working
+ // storage. Each string have a minimum length of 1 and maximum length of 300.
+ // You can get the disk IDs from the ListLocalDisks API.
DiskIds []*string `type:"list"`
// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
@@ -10049,6 +10172,10 @@ func (s *DescribeCacheOutput) SetGatewayARN(v string) *DescribeCacheOutput {
type DescribeCachediSCSIVolumesInput struct {
_ struct{} `type:"structure"`
+ // An array of strings where each string represents the Amazon Resource Name
+ // (ARN) of a cached volume. All of the specified cached volumes must from the
+ // same gateway. Use ListVolumes to get volume ARNs for a gateway.
+ //
// VolumeARNs is a required field
VolumeARNs []*string `type:"list" required:"true"`
}
@@ -10270,6 +10397,12 @@ type DescribeGatewayInformationOutput struct {
// the time zone of the gateway. If the gateway is not available for an update
// this field is not returned in the response.
NextUpdateAvailabilityDate *string `min:"1" type:"string"`
+
+ // A list of up to ten (10) tags assigned to the gateway are returned, sorted
+ // alphabetically by key name. Every tag is a key-value pair. For a gateway
+ // with more than 10 tags assigned, you can view all tags using the ListTagsForResource
+ // API.
+ Tags []*Tag `type:"list"`
}
// String returns the string representation
@@ -10336,6 +10469,12 @@ func (s *DescribeGatewayInformationOutput) SetNextUpdateAvailabilityDate(v strin
return s
}
+// SetTags sets the Tags field's value.
+func (s *DescribeGatewayInformationOutput) SetTags(v []*Tag) *DescribeGatewayInformationOutput {
+ s.Tags = v
+ return s
+}
+
// A JSON object containing the of the gateway.
type DescribeMaintenanceStartTimeInput struct {
_ struct{} `type:"structure"`
@@ -10410,6 +10549,8 @@ type DescribeMaintenanceStartTimeOutput struct {
// the gateway.
MinuteOfHour *int64 `type:"integer"`
+ // A value that indicates the time zone that is set for the gateway. The start
+ // time and day of week specified should be in the time zone of the gateway.
Timezone *string `min:"3" type:"string"`
}
@@ -10719,14 +10860,21 @@ func (s *DescribeSnapshotScheduleInput) SetVolumeARN(v string) *DescribeSnapshot
type DescribeSnapshotScheduleOutput struct {
_ struct{} `type:"structure"`
+ // The snapshot description.
Description *string `min:"1" type:"string"`
+ // The number of hours between snapshots.
RecurrenceInHours *int64 `min:"1" type:"integer"`
+ // The hour of the day at which the snapshot schedule begins represented as
+ // hh, where hh is the hour (0 to 23). The hour of the day is in the time zone
+ // of the gateway.
StartAt *int64 `type:"integer"`
+ // A value that indicates the time zone of the gateway.
Timezone *string `min:"3" type:"string"`
+ // The Amazon Resource Name (ARN) of the volume that was specified in the request.
VolumeARN *string `min:"50" type:"string"`
}
@@ -10814,6 +10962,53 @@ func (s *DescribeStorediSCSIVolumesInput) SetVolumeARNs(v []*string) *DescribeSt
type DescribeStorediSCSIVolumesOutput struct {
_ struct{} `type:"structure"`
+ // Describes a single unit of output from DescribeStorediSCSIVolumes. The following
+ // fields are returned:
+ //
+ // * ChapEnabled: Indicates whether mutual CHAP is enabled for the iSCSI
+ // target.
+ //
+ // * LunNumber: The logical disk number.
+ //
+ // * NetworkInterfaceId: The network interface ID of the stored volume that
+ // initiator use to map the stored volume as an iSCSI target.
+ //
+ // * NetworkInterfacePort: The port used to communicate with iSCSI targets.
+ //
+ // * PreservedExistingData: Indicates if when the stored volume was created,
+ // existing data on the underlying local disk was preserved.
+ //
+ // * SourceSnapshotId: If the stored volume was created from a snapshot,
+ // this field contains the snapshot ID used, e.g. snap-1122aabb. Otherwise,
+ // this field is not included.
+ //
+ // * StorediSCSIVolumes: An array of StorediSCSIVolume objects where each
+ // object contains metadata about one stored volume.
+ //
+ // * TargetARN: The Amazon Resource Name (ARN) of the volume target.
+ //
+ // * VolumeARN: The Amazon Resource Name (ARN) of the stored volume.
+ //
+ // * VolumeDiskId: The disk ID of the local disk that was specified in the
+ // CreateStorediSCSIVolume operation.
+ //
+ // * VolumeId: The unique identifier of the storage volume, e.g. vol-1122AABB.
+ //
+ // * VolumeiSCSIAttributes: An VolumeiSCSIAttributes object that represents
+ // a collection of iSCSI attributes for one stored volume.
+ //
+ // * VolumeProgress: Represents the percentage complete if the volume is
+ // restoring or bootstrapping that represents the percent of data transferred.
+ // This field does not appear in the response if the stored volume is not
+ // restoring or bootstrapping.
+ //
+ // * VolumeSizeInBytes: The size of the volume in bytes.
+ //
+ // * VolumeStatus: One of the VolumeStatus values that indicates the state
+ // of the volume.
+ //
+ // * VolumeType: One of the enumeration values describing the type of the
+ // volume. Currently, on STORED volumes are supported.
StorediSCSIVolumes []*StorediSCSIVolume `type:"list"`
}
@@ -11218,14 +11413,20 @@ func (s *DescribeUploadBufferInput) SetGatewayARN(v string) *DescribeUploadBuffe
type DescribeUploadBufferOutput struct {
_ struct{} `type:"structure"`
+ // An array of the gateway's local disk IDs that are configured as working storage.
+ // Each local disk ID is specified as a string (minimum length of 1 and maximum
+ // length of 300). If no local disks are configured as working storage, then
+ // the DiskIds array is empty.
DiskIds []*string `type:"list"`
// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
// to return a list of gateways for your account and region.
GatewayARN *string `min:"50" type:"string"`
+ // The total number of bytes allocated in the gateway's as upload buffer.
UploadBufferAllocatedInBytes *int64 `type:"long"`
+ // The total number of bytes being used in the gateway's upload buffer.
UploadBufferUsedInBytes *int64 `type:"long"`
}
@@ -12255,8 +12456,12 @@ func (s *ListGatewaysInput) SetMarker(v string) *ListGatewaysInput {
type ListGatewaysOutput struct {
_ struct{} `type:"structure"`
+ // An array of GatewayInfo objects.
Gateways []*GatewayInfo `type:"list"`
+ // Use the marker in your next request to fetch the next set of gateways in
+ // the list. If there are no more gateways to list, this field does not appear
+ // in the response.
Marker *string `min:"1" type:"string"`
}
@@ -12328,6 +12533,9 @@ func (s *ListLocalDisksInput) SetGatewayARN(v string) *ListLocalDisksInput {
type ListLocalDisksOutput struct {
_ struct{} `type:"structure"`
+ // A JSON object containing the following fields:
+ //
+ // * ListLocalDisksOutput$Disks
Disks []*Disk `type:"list"`
// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
@@ -12696,6 +12904,7 @@ type ListVolumeRecoveryPointsOutput struct {
// to return a list of gateways for your account and region.
GatewayARN *string `min:"50" type:"string"`
+ // An array of VolumeRecoveryPointInfo objects.
VolumeRecoveryPointInfos []*VolumeRecoveryPointInfo `type:"list"`
}
@@ -12790,6 +12999,11 @@ func (s *ListVolumesInput) SetMarker(v string) *ListVolumesInput {
return s
}
+// A JSON object containing the following fields:
+//
+// * ListVolumesOutput$Marker
+//
+// * ListVolumesOutput$VolumeInfos
type ListVolumesOutput struct {
_ struct{} `type:"structure"`
@@ -12797,8 +13011,14 @@ type ListVolumesOutput struct {
// to return a list of gateways for your account and region.
GatewayARN *string `min:"50" type:"string"`
+ // Use the marker in your next request to continue pagination of iSCSI volumes.
+ // If there are no more volumes to list, this field does not appear in the response
+ // body.
Marker *string `min:"1" type:"string"`
+ // An array of VolumeInfo objects, where each object describes an iSCSI volume.
+ // If no volumes are defined for the gateway, then VolumeInfos is an empty array
+ // "[]".
VolumeInfos []*VolumeInfo `type:"list"`
}
@@ -12947,7 +13167,7 @@ type NFSFileShareInfo struct {
// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// The ARN of the backend storage used for storing file data.
LocationARN *string `min:"16" type:"string"`
@@ -12987,6 +13207,12 @@ type NFSFileShareInfo struct {
//
// * AllSquash - Everyone is mapped to anonymous user.
Squash *string `min:"5" type:"string"`
+
+ // A list of up to ten (10) tags assigned to the NFS file share are returned,
+ // sorted alphabetically by key name. Every tag is a key-value pair. For a gateway
+ // with more than 10 tags assigned, you can view all tags using the ListTagsForResource
+ // API.
+ Tags []*Tag `type:"list"`
}
// String returns the string representation
@@ -13101,6 +13327,12 @@ func (s *NFSFileShareInfo) SetSquash(v string) *NFSFileShareInfo {
return s
}
+// SetTags sets the Tags field's value.
+func (s *NFSFileShareInfo) SetTags(v []*Tag) *NFSFileShareInfo {
+ s.Tags = v
+ return s
+}
+
// Describes a gateway's network interface.
type NetworkInterface struct {
_ struct{} `type:"structure"`
@@ -13696,7 +13928,7 @@ type SMBFileShareInfo struct {
// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// The ARN of the backend storage used for storing file data.
LocationARN *string `min:"16" type:"string"`
@@ -13720,6 +13952,12 @@ type SMBFileShareInfo struct {
// storage.
Role *string `min:"20" type:"string"`
+ // A list of up to ten (10) tags assigned to the SMB file share are returned,
+ // sorted alphabetically by key name. Every tag is a key-value pair. For a gateway
+ // with more than 10 tags assigned, you can view all tags using the ListTagsForResource
+ // API.
+ Tags []*Tag `type:"list"`
+
// A list of users or groups in the Active Directory that are allowed to access
// the file share. A group must be prefixed with the @ character. For example
// @group1. Can only be set if Authentication is set to ActiveDirectory.
@@ -13832,6 +14070,12 @@ func (s *SMBFileShareInfo) SetRole(v string) *SMBFileShareInfo {
return s
}
+// SetTags sets the Tags field's value.
+func (s *SMBFileShareInfo) SetTags(v []*Tag) *SMBFileShareInfo {
+ s.Tags = v
+ return s
+}
+
// SetValidUserList sets the ValidUserList field's value.
func (s *SMBFileShareInfo) SetValidUserList(v []*string) *SMBFileShareInfo {
s.ValidUserList = v
@@ -14152,7 +14396,7 @@ type StorediSCSIVolume struct {
// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// Indicates if when the stored volume was created, existing data on the underlying
// local disk was preserved.
@@ -14164,16 +14408,21 @@ type StorediSCSIVolume struct {
// snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
SourceSnapshotId *string `type:"string"`
- // The name of the iSCSI target that is used by an initiator to connect to a
- // volume and used as a suffix for the target ARN. For example, specifying TargetName
+ // The name of the iSCSI target used by an initiator to connect to a volume
+ // and used as a suffix for the target ARN. For example, specifying TargetName
// as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
+ // The target name must be unique across all volumes on a gateway.
+ //
+ // If you don't specify a value, Storage Gateway uses the value that was previously
+ // used for this volume as the new target name.
TargetName *string `min:"1" type:"string"`
// The Amazon Resource Name (ARN) of the storage volume.
VolumeARN *string `min:"50" type:"string"`
// A value that indicates whether a storage volume is attached to, detached
- // from, or is in the process of detaching from a gateway.
+ // from, or is in the process of detaching from a gateway. For more information,
+ // see Moving Your Volumes to a Different Gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
VolumeAttachmentStatus *string `min:"3" type:"string"`
// The ID of the local disk that was specified in the CreateStorediSCSIVolume
@@ -14308,12 +14557,19 @@ func (s *StorediSCSIVolume) SetVolumeiSCSIAttributes(v *VolumeiSCSIAttributes) *
return s
}
+// A key-value pair that helps you manage, filter, and search for your resource.
+// Allowed characters: letters, white space, and numbers, representable in UTF-8,
+// and the following characters: + - = . _ : /
type Tag struct {
_ struct{} `type:"structure"`
+ // Tag key (String). The key can't start with aws:.
+ //
// Key is a required field
Key *string `min:"1" type:"string" required:"true"`
+ // Value of the tag key.
+ //
// Value is a required field
Value *string `type:"string" required:"true"`
}
@@ -14365,7 +14621,7 @@ type Tape struct {
// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// For archiving virtual tapes, indicates how much data remains to be uploaded
// before archiving is complete.
@@ -14474,7 +14730,7 @@ type TapeArchive struct {
// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// The Amazon Resource Name (ARN) of the tape gateway that the virtual tape
// is being retrieved to.
@@ -14645,6 +14901,7 @@ type TapeRecoveryPointInfo struct {
// The size, in bytes, of the virtual tapes to recover.
TapeSizeInBytes *int64 `type:"long"`
+ // The status of the virtual tapes.
TapeStatus *string `type:"string"`
}
@@ -14931,6 +15188,7 @@ type UpdateGatewayInformationInput struct {
// The name you configured for your gateway.
GatewayName *string `min:"2" type:"string"`
+ // A value that indicates the time zone of the gateway.
GatewayTimezone *string `min:"3" type:"string"`
}
@@ -14992,6 +15250,7 @@ type UpdateGatewayInformationOutput struct {
// to return a list of gateways for your account and region.
GatewayARN *string `min:"50" type:"string"`
+ // The name you configured for your gateway.
GatewayName *string `type:"string"`
}
@@ -15236,7 +15495,7 @@ type UpdateNFSFileShareInput struct {
// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// The default values for the file share. Optional.
NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
@@ -15288,8 +15547,8 @@ func (s *UpdateNFSFileShareInput) Validate() error {
if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
}
- if s.KMSKey != nil && len(*s.KMSKey) < 20 {
- invalidParams.Add(request.NewErrParamMinLen("KMSKey", 20))
+ if s.KMSKey != nil && len(*s.KMSKey) < 7 {
+ invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
}
if s.Squash != nil && len(*s.Squash) < 5 {
invalidParams.Add(request.NewErrParamMinLen("Squash", 5))
@@ -15426,7 +15685,7 @@ type UpdateSMBFileShareInput struct {
// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
// side encryption. This value can only be set when KMSEncrypted is true. Optional.
- KMSKey *string `min:"20" type:"string"`
+ KMSKey *string `min:"7" type:"string"`
// A value that sets the access control list permission for objects in the S3
// bucket that a file gateway puts objects into. The default value is "private".
@@ -15468,8 +15727,8 @@ func (s *UpdateSMBFileShareInput) Validate() error {
if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
}
- if s.KMSKey != nil && len(*s.KMSKey) < 20 {
- invalidParams.Add(request.NewErrParamMinLen("KMSKey", 20))
+ if s.KMSKey != nil && len(*s.KMSKey) < 7 {
+ invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
}
if invalidParams.Len() > 0 {
@@ -15662,6 +15921,8 @@ func (s *UpdateSnapshotScheduleInput) SetVolumeARN(v string) *UpdateSnapshotSche
type UpdateSnapshotScheduleOutput struct {
_ struct{} `type:"structure"`
+ // The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
+ // to return a list of gateway volumes.
VolumeARN *string `min:"50" type:"string"`
}
@@ -15776,10 +16037,13 @@ type VTLDevice struct {
// or media changer).
VTLDeviceARN *string `min:"50" type:"string"`
+ // Specifies the model number of device that the VTL device emulates.
VTLDeviceProductIdentifier *string `type:"string"`
+ // Specifies the type of device that the VTL device emulates.
VTLDeviceType *string `type:"string"`
+ // Specifies the vendor of the device that the VTL device object emulates.
VTLDeviceVendor *string `type:"string"`
}
@@ -15848,6 +16112,7 @@ type VolumeInfo struct {
// (-).
VolumeARN *string `min:"50" type:"string"`
+ // One of the VolumeStatus values that indicates the state of the storage volume.
VolumeAttachmentStatus *string `min:"3" type:"string"`
// The unique identifier assigned to the volume. This ID becomes part of the
@@ -15863,6 +16128,7 @@ type VolumeInfo struct {
// (-).
VolumeSizeInBytes *int64 `type:"long"`
+ // One of the VolumeType enumeration values describing the type of the volume.
VolumeType *string `min:"3" type:"string"`
}
@@ -15918,15 +16184,23 @@ func (s *VolumeInfo) SetVolumeType(v string) *VolumeInfo {
return s
}
+// Describes a storage volume recovery point object.
type VolumeRecoveryPointInfo struct {
_ struct{} `type:"structure"`
+ // The Amazon Resource Name (ARN) of the volume target.
VolumeARN *string `min:"50" type:"string"`
+ // The time the recovery point was taken.
VolumeRecoveryPointTime *string `type:"string"`
+ // The size of the volume in bytes.
VolumeSizeInBytes *int64 `type:"long"`
+ // The size of the data stored on the volume in bytes.
+ //
+ // This value is not available for volumes created prior to May 13, 2015, until
+ // you store data on the volume.
VolumeUsageInBytes *int64 `type:"long"`
}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/storagegateway/doc.go b/vendor/github.com/aws/aws-sdk-go/service/storagegateway/doc.go
index b53d442235a..39192bbe747 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/storagegateway/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/storagegateway/doc.go
@@ -12,18 +12,18 @@
// Use the following links to get started using the AWS Storage Gateway Service
// API Reference:
//
-// * AWS Storage Gateway Required Request Headers (http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#AWSStorageGatewayHTTPRequestsHeaders):
+// * AWS Storage Gateway Required Request Headers (https://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#AWSStorageGatewayHTTPRequestsHeaders):
// Describes the required headers that you must send with every POST request
// to AWS Storage Gateway.
//
-// * Signing Requests (http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#AWSStorageGatewaySigningRequests):
+// * Signing Requests (https://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#AWSStorageGatewaySigningRequests):
// AWS Storage Gateway requires that you authenticate every request you send;
// this topic describes how sign such a request.
//
-// * Error Responses (http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#APIErrorResponses):
+// * Error Responses (https://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#APIErrorResponses):
// Provides reference information about AWS Storage Gateway errors.
//
-// * Operations in AWS Storage Gateway (http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_Operations.html):
+// * Operations in AWS Storage Gateway (https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_Operations.html):
// Contains detailed descriptions of all AWS Storage Gateway operations,
// their request parameters, response elements, possible errors, and examples
// of requests and responses.
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 ee908f9167b..81130896491 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
@@ -7,6 +7,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awsutil"
+ "github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/request"
)
@@ -243,6 +244,7 @@ func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *re
output = &AssumeRoleWithSAMLOutput{}
req = c.newRequest(op, input, output)
+ req.Config.Credentials = credentials.AnonymousCredentials
return
}
@@ -425,6 +427,7 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI
output = &AssumeRoleWithWebIdentityOutput{}
req = c.newRequest(op, input, output)
+ req.Config.Credentials = credentials.AnonymousCredentials
return
}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go b/vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go
deleted file mode 100644
index 4010cc7fa14..00000000000
--- a/vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go
+++ /dev/null
@@ -1,12 +0,0 @@
-package sts
-
-import "github.com/aws/aws-sdk-go/aws/request"
-
-func init() {
- initRequest = func(r *request.Request) {
- switch r.Operation.Name {
- case opAssumeRoleWithSAML, opAssumeRoleWithWebIdentity:
- r.Handlers.Sign.Clear() // these operations are unsigned
- }
- }
-}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/transfer/api.go b/vendor/github.com/aws/aws-sdk-go/service/transfer/api.go
index de472a8a000..e4641e7b8e4 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/transfer/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/transfer/api.go
@@ -2780,8 +2780,13 @@ type ListTagsForResourceInput struct {
// Arn is a required field
Arn *string `min:"20" type:"string" required:"true"`
+ // Specifies the number of tags to return as a response to the ListTagsForResource
+ // request.
MaxResults *int64 `min:"1" type:"integer"`
+ // When you request additional results from the ListTagsForResource call, a
+ // NextToken parameter is returned in the input. You can then pass in a subsequent
+ // command the NextToken parameter to continue listing additional tags.
NextToken *string `min:"1" type:"string"`
}
@@ -2841,6 +2846,9 @@ type ListTagsForResourceOutput struct {
// This value is the ARN you specified to list the tags of.
Arn *string `min:"20" type:"string"`
+ // When you can get additional results from the ListTagsForResource call, a
+ // NextToken parameter is returned in the output. You can then pass in a subsequent
+ // command the NextToken parameter to continue listing additional tags.
NextToken *string `min:"1" type:"string"`
// Key-value pairs that are assigned to a resource, usually for the purpose
@@ -2883,7 +2891,7 @@ type ListUsersInput struct {
// Specifies the number of users to return as a response to the ListUsers request.
MaxResults *int64 `min:"1" type:"integer"`
- // When you can get additional results from the ListUsersListUsers call, a NextToken
+ // When you can get additional results from the ListUsers call, a NextToken
// parameter is returned in the output. You can then pass in a subsequent command
// the NextToken parameter to continue listing additional users.
NextToken *string `min:"1" type:"string"`
diff --git a/vendor/github.com/aws/aws-sdk-go/service/transfer/doc.go b/vendor/github.com/aws/aws-sdk-go/service/transfer/doc.go
index 8bdc2fd1ce7..b741ff05542 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/transfer/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/transfer/doc.go
@@ -3,6 +3,17 @@
// Package transfer provides the client and types for making API
// requests to AWS Transfer for SFTP.
//
+// AWS Transfer for SFTP is a fully managed service that enables the transfer
+// of files directly into and out of Amazon S3 using the Secure File Transfer
+// Protocol (SFTP)—also known as Secure Shell (SSH) File Transfer Protocol.
+// AWS helps you seamlessly migrate your file transfer workflows to AWS Transfer
+// for SFTP—by integrating with existing authentication systems, and providing
+// DNS routing with Amazon Route 53—so nothing changes for your customers and
+// partners, or their applications. With your data in S3, you can use it with
+// AWS services for processing, analytics, machine learning, and archiving.
+// Getting started with AWS Transfer for SFTP (AWS SFTP) is easy; there is no
+// infrastructure to buy and setup.
+//
// See https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05 for more information on this service.
//
// See transfer package documentation for more information.
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 1c62375bbc8..f6b917a941f 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
@@ -78,7 +78,7 @@ func (c *WAF) CreateByteMatchSetRequest(input *CreateByteMatchSetInput) (req *re
// value that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -135,7 +135,7 @@ func (c *WAF) CreateByteMatchSetRequest(input *CreateByteMatchSetInput) (req *re
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateByteMatchSet
@@ -224,7 +224,7 @@ func (c *WAF) CreateGeoMatchSetRequest(input *CreateGeoMatchSetInput) (req *requ
// want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -281,7 +281,7 @@ func (c *WAF) CreateGeoMatchSetRequest(input *CreateGeoMatchSetInput) (req *requ
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateGeoMatchSet
@@ -371,7 +371,7 @@ func (c *WAF) CreateIPSetRequest(input *CreateIPSetInput) (req *request.Request,
// WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -428,7 +428,7 @@ func (c *WAF) CreateIPSetRequest(input *CreateIPSetInput) (req *request.Request,
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateIPSet
@@ -557,7 +557,7 @@ func (c *WAF) CreateRateBasedRuleRequest(input *CreateRateBasedRuleInput) (req *
// see CreateWebACL.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -610,7 +610,7 @@ func (c *WAF) CreateRateBasedRuleRequest(input *CreateRateBasedRuleInput) (req *
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRule
@@ -701,7 +701,7 @@ func (c *WAF) CreateRegexMatchSetRequest(input *CreateRegexMatchSetInput) (req *
// the value, using a RegexPatternSet, that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -725,7 +725,7 @@ func (c *WAF) CreateRegexMatchSetRequest(input *CreateRegexMatchSetInput) (req *
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRegexMatchSet
@@ -812,7 +812,7 @@ func (c *WAF) CreateRegexPatternSetRequest(input *CreateRegexPatternSetInput) (r
// AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -836,7 +836,7 @@ func (c *WAF) CreateRegexPatternSetRequest(input *CreateRegexPatternSetInput) (r
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRegexPatternSet
@@ -940,7 +940,7 @@ func (c *WAF) CreateRuleRequest(input *CreateRuleInput) (req *request.Request, o
// see CreateWebACL.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -993,7 +993,7 @@ func (c *WAF) CreateRuleRequest(input *CreateRuleInput) (req *request.Request, o
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRule
@@ -1075,7 +1075,7 @@ func (c *WAF) CreateRuleGroupRequest(input *CreateRuleGroupInput) (req *request.
// * Ten rules per rule group.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1099,7 +1099,7 @@ func (c *WAF) CreateRuleGroupRequest(input *CreateRuleGroupInput) (req *request.
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRuleGroup
@@ -1190,7 +1190,7 @@ func (c *WAF) CreateSizeConstraintSetRequest(input *CreateSizeConstraintSetInput
// the value that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1247,7 +1247,7 @@ func (c *WAF) CreateSizeConstraintSetRequest(input *CreateSizeConstraintSetInput
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSizeConstraintSet
@@ -1334,7 +1334,7 @@ func (c *WAF) CreateSqlInjectionMatchSetRequest(input *CreateSqlInjectionMatchSe
// requests in which you want to allow, block, or count malicious SQL code.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1391,7 +1391,7 @@ func (c *WAF) CreateSqlInjectionMatchSetRequest(input *CreateSqlInjectionMatchSe
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSqlInjectionMatchSet
@@ -1490,7 +1490,7 @@ func (c *WAF) CreateWebACLRequest(input *CreateWebACLInput) (req *request.Reques
// with a CloudFront distribution.
//
// For more information about how to use the AWS WAF API, see the AWS WAF Developer
-// Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1547,7 +1547,7 @@ func (c *WAF) CreateWebACLRequest(input *CreateWebACLInput) (req *request.Reques
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACL
@@ -1635,7 +1635,7 @@ func (c *WAF) CreateXssMatchSetRequest(input *CreateXssMatchSetInput) (req *requ
// in which you want to allow, block, or count cross-site scripting attacks.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1692,7 +1692,7 @@ func (c *WAF) CreateXssMatchSetRequest(input *CreateXssMatchSetInput) (req *requ
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateXssMatchSet
@@ -3649,7 +3649,7 @@ func (c *WAF) GetChangeTokenStatusRequest(input *GetChangeTokenStatusInput) (req
// * PENDING: AWS WAF is propagating the create, update, or delete request
// to all AWS WAF servers.
//
-// * IN_SYNC: Propagation is complete.
+// * INSYNC: Propagation is complete.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -6386,12 +6386,16 @@ func (c *WAF) PutLoggingConfigurationRequest(input *PutLoggingConfigurationInput
//
// Create an Amazon Kinesis Data Firehose .
//
+// Create the data firehose with a PUT source and in the region that you are
+// operating. However, if you are capturing logs for Amazon CloudFront, always
+// create the firehose in US East (N. Virginia).
+//
// Associate that firehose to your web ACL using a PutLoggingConfiguration request.
//
// When you successfully enable logging using a PutLoggingConfiguration request,
// AWS WAF will create a service linked role with the necessary permissions
// to write logs to the Amazon Kinesis Data Firehose. For more information,
-// see Logging Web ACL Traffic Information (http://docs.aws.amazon.com/waf/latest/developerguide/logging.html)
+// see Logging Web ACL Traffic Information (https://docs.aws.amazon.com/waf/latest/developerguide/logging.html)
// in the AWS WAF Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -6663,7 +6667,7 @@ func (c *WAF) UpdateByteMatchSetRequest(input *UpdateByteMatchSetInput) (req *re
// value that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -6754,7 +6758,7 @@ func (c *WAF) UpdateByteMatchSetRequest(input *UpdateByteMatchSetInput) (req *re
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateByteMatchSet
@@ -6850,7 +6854,7 @@ func (c *WAF) UpdateGeoMatchSetRequest(input *UpdateGeoMatchSetInput) (req *requ
// you delete the existing country and add the new one.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -6949,7 +6953,7 @@ func (c *WAF) UpdateGeoMatchSetRequest(input *UpdateGeoMatchSetInput) (req *requ
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateGeoMatchSet
@@ -7032,9 +7036,9 @@ func (c *WAF) UpdateIPSetRequest(input *UpdateIPSetInput) (req *request.Request,
// (for the individual IP address 192.0.2.44).
//
// AWS WAF supports IPv4 address ranges: /8 and any range between /16 through
-// /32. AWS WAF supports IPv6 address ranges: /16, /24, /32, /48, /56, /64,
-// and /128. For more information about CIDR notation, see the Wikipedia entry
-// Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
+// /32. AWS WAF supports IPv6 address ranges: /24, /32, /48, /56, /64, and /128.
+// For more information about CIDR notation, see the Wikipedia entry Classless
+// Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
//
// IPv6 addresses can be represented using any of the following formats:
//
@@ -7069,7 +7073,7 @@ func (c *WAF) UpdateIPSetRequest(input *UpdateIPSetInput) (req *request.Request,
// You can insert a maximum of 1000 addresses in a single request.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -7168,7 +7172,7 @@ func (c *WAF) UpdateIPSetRequest(input *UpdateIPSetInput) (req *request.Request,
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateIPSet
@@ -7373,7 +7377,7 @@ func (c *WAF) UpdateRateBasedRuleRequest(input *UpdateRateBasedRuleInput) (req *
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRule
@@ -7475,7 +7479,7 @@ func (c *WAF) UpdateRegexMatchSetRequest(input *UpdateRegexMatchSetInput) (req *
// patters you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -7499,7 +7503,7 @@ func (c *WAF) UpdateRegexMatchSetRequest(input *UpdateRegexMatchSetInput) (req *
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// * ErrCodeNonexistentItemException "WAFNonexistentItemException"
@@ -7639,7 +7643,7 @@ func (c *WAF) UpdateRegexPatternSetRequest(input *UpdateRegexPatternSetInput) (r
// pattern that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -7660,7 +7664,7 @@ func (c *WAF) UpdateRegexPatternSetRequest(input *UpdateRegexPatternSetInput) (r
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// * ErrCodeNonexistentItemException "WAFNonexistentItemException"
@@ -7806,7 +7810,7 @@ func (c *WAF) UpdateRuleRequest(input *UpdateRuleInput) (req *request.Request, o
// the existing one and add the new one.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -7905,7 +7909,7 @@ func (c *WAF) UpdateRuleRequest(input *UpdateRuleInput) (req *request.Request, o
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRule
@@ -7996,7 +8000,7 @@ func (c *WAF) UpdateRuleGroupRequest(input *UpdateRuleGroupInput) (req *request.
// and add the new one.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -8054,7 +8058,7 @@ func (c *WAF) UpdateRuleGroupRequest(input *UpdateRuleGroupInput) (req *request.
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// * ErrCodeInvalidParameterException "WAFInvalidParameterException"
@@ -8192,7 +8196,7 @@ func (c *WAF) UpdateSizeConstraintSetRequest(input *UpdateSizeConstraintSetInput
// the value that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -8291,7 +8295,7 @@ func (c *WAF) UpdateSizeConstraintSetRequest(input *UpdateSizeConstraintSetInput
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSizeConstraintSet
@@ -8394,7 +8398,7 @@ func (c *WAF) UpdateSqlInjectionMatchSetRequest(input *UpdateSqlInjectionMatchSe
// requests that you want AWS WAF to inspect for snippets of SQL code.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -8485,7 +8489,7 @@ func (c *WAF) UpdateSqlInjectionMatchSetRequest(input *UpdateSqlInjectionMatchSe
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSqlInjectionMatchSet
@@ -8609,7 +8613,7 @@ func (c *WAF) UpdateWebACLRequest(input *UpdateWebACLInput) (req *request.Reques
// with the specified ID, which does not exist.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -8708,7 +8712,7 @@ func (c *WAF) UpdateWebACLRequest(input *UpdateWebACLInput) (req *request.Reques
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// * ErrCodeSubscriptionNotFoundException "WAFSubscriptionNotFoundException"
@@ -8814,7 +8818,7 @@ func (c *WAF) UpdateXssMatchSetRequest(input *UpdateXssMatchSetInput) (req *requ
// that you want AWS WAF to inspect for cross-site scripting attacks.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -8905,7 +8909,7 @@ func (c *WAF) UpdateXssMatchSetRequest(input *UpdateXssMatchSetInput) (req *requ
// * ErrCodeLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateXssMatchSet
@@ -8976,7 +8980,7 @@ type ActivatedRule struct {
//
// Use the AWS WAF logs to identify the IDs of the rules that you want to exclude.
// For more information about the logs, see Logging Web ACL Traffic Information
- // (http://docs.aws.amazon.com/waf/latest/developerguide/logging.html).
+ // (https://docs.aws.amazon.com/waf/latest/developerguide/logging.html).
//
// Submit an UpdateWebACL request that has two actions:
//
@@ -13700,13 +13704,13 @@ func (s *HTTPRequest) SetURI(v string) *HTTPRequest {
// Contains one or more IP addresses or blocks of IP addresses specified in
// Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports IPv4 address
// ranges: /8 and any range between /16 through /32. AWS WAF supports IPv6 address
-// ranges: /16, /24, /32, /48, /56, /64, and /128.
+// ranges: /24, /32, /48, /56, /64, and /128.
//
// To specify an individual IP address, you specify the four-part IP address
// followed by a /32, for example, 192.0.2.0/31. To block a range of IP addresses,
-// you can specify /8 or any range between /16 through /32 (for IPv4) or /16,
-// /24, /32, /48, /56, /64, or /128 (for IPv6). For more information about CIDR
-// notation, see the Wikipedia entry Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
+// you can specify /8 or any range between /16 through /32 (for IPv4) or /24,
+// /32, /48, /56, /64, or /128 (for IPv6). For more information about CIDR notation,
+// see the Wikipedia entry Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
type IPSet struct {
_ struct{} `type:"structure"`
diff --git a/vendor/github.com/aws/aws-sdk-go/service/waf/doc.go b/vendor/github.com/aws/aws-sdk-go/service/waf/doc.go
index 40318337974..a3399aaa724 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/waf/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/waf/doc.go
@@ -9,7 +9,7 @@
// and data types via the endpoint waf.amazonaws.com. This guide is for developers
// who need detailed information about the AWS WAF API actions, data types,
// and errors. For detailed information about AWS WAF features and an overview
-// of how to use the AWS WAF API, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// of how to use the AWS WAF API, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// See https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24 for more information on this service.
//
diff --git a/vendor/github.com/aws/aws-sdk-go/service/waf/errors.go b/vendor/github.com/aws/aws-sdk-go/service/waf/errors.go
index 3e9995d8dee..ee66380259f 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/waf/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/waf/errors.go
@@ -115,7 +115,7 @@ const (
//
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
- // see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+ // see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
ErrCodeLimitsExceededException = "WAFLimitsExceededException"
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 2e5fb159c43..b9d1b5b5424 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
@@ -198,7 +198,7 @@ func (c *WAFRegional) CreateByteMatchSetRequest(input *waf.CreateByteMatchSetInp
// value that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -255,7 +255,7 @@ func (c *WAFRegional) CreateByteMatchSetRequest(input *waf.CreateByteMatchSetInp
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateByteMatchSet
@@ -344,7 +344,7 @@ func (c *WAFRegional) CreateGeoMatchSetRequest(input *waf.CreateGeoMatchSetInput
// want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -401,7 +401,7 @@ func (c *WAFRegional) CreateGeoMatchSetRequest(input *waf.CreateGeoMatchSetInput
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateGeoMatchSet
@@ -491,7 +491,7 @@ func (c *WAFRegional) CreateIPSetRequest(input *waf.CreateIPSetInput) (req *requ
// WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -548,7 +548,7 @@ func (c *WAFRegional) CreateIPSetRequest(input *waf.CreateIPSetInput) (req *requ
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateIPSet
@@ -677,7 +677,7 @@ func (c *WAFRegional) CreateRateBasedRuleRequest(input *waf.CreateRateBasedRuleI
// see CreateWebACL.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -730,7 +730,7 @@ func (c *WAFRegional) CreateRateBasedRuleRequest(input *waf.CreateRateBasedRuleI
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRateBasedRule
@@ -821,7 +821,7 @@ func (c *WAFRegional) CreateRegexMatchSetRequest(input *waf.CreateRegexMatchSetI
// the value, using a RegexPatternSet, that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -845,7 +845,7 @@ func (c *WAFRegional) CreateRegexMatchSetRequest(input *waf.CreateRegexMatchSetI
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRegexMatchSet
@@ -932,7 +932,7 @@ func (c *WAFRegional) CreateRegexPatternSetRequest(input *waf.CreateRegexPattern
// AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -956,7 +956,7 @@ func (c *WAFRegional) CreateRegexPatternSetRequest(input *waf.CreateRegexPattern
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRegexPatternSet
@@ -1060,7 +1060,7 @@ func (c *WAFRegional) CreateRuleRequest(input *waf.CreateRuleInput) (req *reques
// see CreateWebACL.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1113,7 +1113,7 @@ func (c *WAFRegional) CreateRuleRequest(input *waf.CreateRuleInput) (req *reques
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRule
@@ -1195,7 +1195,7 @@ func (c *WAFRegional) CreateRuleGroupRequest(input *waf.CreateRuleGroupInput) (r
// * Ten rules per rule group.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1219,7 +1219,7 @@ func (c *WAFRegional) CreateRuleGroupRequest(input *waf.CreateRuleGroupInput) (r
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRuleGroup
@@ -1310,7 +1310,7 @@ func (c *WAFRegional) CreateSizeConstraintSetRequest(input *waf.CreateSizeConstr
// the value that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1367,7 +1367,7 @@ func (c *WAFRegional) CreateSizeConstraintSetRequest(input *waf.CreateSizeConstr
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateSizeConstraintSet
@@ -1454,7 +1454,7 @@ func (c *WAFRegional) CreateSqlInjectionMatchSetRequest(input *waf.CreateSqlInje
// requests in which you want to allow, block, or count malicious SQL code.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1511,7 +1511,7 @@ func (c *WAFRegional) CreateSqlInjectionMatchSetRequest(input *waf.CreateSqlInje
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateSqlInjectionMatchSet
@@ -1610,7 +1610,7 @@ func (c *WAFRegional) CreateWebACLRequest(input *waf.CreateWebACLInput) (req *re
// with a CloudFront distribution.
//
// For more information about how to use the AWS WAF API, see the AWS WAF Developer
-// Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1667,7 +1667,7 @@ func (c *WAFRegional) CreateWebACLRequest(input *waf.CreateWebACLInput) (req *re
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateWebACL
@@ -1755,7 +1755,7 @@ func (c *WAFRegional) CreateXssMatchSetRequest(input *waf.CreateXssMatchSetInput
// in which you want to allow, block, or count cross-site scripting attacks.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1812,7 +1812,7 @@ func (c *WAFRegional) CreateXssMatchSetRequest(input *waf.CreateXssMatchSetInput
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateXssMatchSet
@@ -3887,7 +3887,7 @@ func (c *WAFRegional) GetChangeTokenStatusRequest(input *waf.GetChangeTokenStatu
// * PENDING: AWS WAF is propagating the create, update, or delete request
// to all AWS WAF servers.
//
-// * IN_SYNC: Propagation is complete.
+// * INSYNC: Propagation is complete.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -6861,12 +6861,16 @@ func (c *WAFRegional) PutLoggingConfigurationRequest(input *waf.PutLoggingConfig
//
// Create an Amazon Kinesis Data Firehose .
//
+// Create the data firehose with a PUT source and in the region that you are
+// operating. However, if you are capturing logs for Amazon CloudFront, always
+// create the firehose in US East (N. Virginia).
+//
// Associate that firehose to your web ACL using a PutLoggingConfiguration request.
//
// When you successfully enable logging using a PutLoggingConfiguration request,
// AWS WAF will create a service linked role with the necessary permissions
// to write logs to the Amazon Kinesis Data Firehose. For more information,
-// see Logging Web ACL Traffic Information (http://docs.aws.amazon.com/waf/latest/developerguide/logging.html)
+// see Logging Web ACL Traffic Information (https://docs.aws.amazon.com/waf/latest/developerguide/logging.html)
// in the AWS WAF Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -7138,7 +7142,7 @@ func (c *WAFRegional) UpdateByteMatchSetRequest(input *waf.UpdateByteMatchSetInp
// value that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -7229,7 +7233,7 @@ func (c *WAFRegional) UpdateByteMatchSetRequest(input *waf.UpdateByteMatchSetInp
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateByteMatchSet
@@ -7325,7 +7329,7 @@ func (c *WAFRegional) UpdateGeoMatchSetRequest(input *waf.UpdateGeoMatchSetInput
// you delete the existing country and add the new one.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -7424,7 +7428,7 @@ func (c *WAFRegional) UpdateGeoMatchSetRequest(input *waf.UpdateGeoMatchSetInput
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateGeoMatchSet
@@ -7507,9 +7511,9 @@ func (c *WAFRegional) UpdateIPSetRequest(input *waf.UpdateIPSetInput) (req *requ
// (for the individual IP address 192.0.2.44).
//
// AWS WAF supports IPv4 address ranges: /8 and any range between /16 through
-// /32. AWS WAF supports IPv6 address ranges: /16, /24, /32, /48, /56, /64,
-// and /128. For more information about CIDR notation, see the Wikipedia entry
-// Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
+// /32. AWS WAF supports IPv6 address ranges: /24, /32, /48, /56, /64, and /128.
+// For more information about CIDR notation, see the Wikipedia entry Classless
+// Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
//
// IPv6 addresses can be represented using any of the following formats:
//
@@ -7544,7 +7548,7 @@ func (c *WAFRegional) UpdateIPSetRequest(input *waf.UpdateIPSetInput) (req *requ
// You can insert a maximum of 1000 addresses in a single request.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -7643,7 +7647,7 @@ func (c *WAFRegional) UpdateIPSetRequest(input *waf.UpdateIPSetInput) (req *requ
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateIPSet
@@ -7848,7 +7852,7 @@ func (c *WAFRegional) UpdateRateBasedRuleRequest(input *waf.UpdateRateBasedRuleI
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRateBasedRule
@@ -7950,7 +7954,7 @@ func (c *WAFRegional) UpdateRegexMatchSetRequest(input *waf.UpdateRegexMatchSetI
// patters you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -7974,7 +7978,7 @@ func (c *WAFRegional) UpdateRegexMatchSetRequest(input *waf.UpdateRegexMatchSetI
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
@@ -8114,7 +8118,7 @@ func (c *WAFRegional) UpdateRegexPatternSetRequest(input *waf.UpdateRegexPattern
// pattern that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -8135,7 +8139,7 @@ func (c *WAFRegional) UpdateRegexPatternSetRequest(input *waf.UpdateRegexPattern
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
@@ -8281,7 +8285,7 @@ func (c *WAFRegional) UpdateRuleRequest(input *waf.UpdateRuleInput) (req *reques
// the existing one and add the new one.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -8380,7 +8384,7 @@ func (c *WAFRegional) UpdateRuleRequest(input *waf.UpdateRuleInput) (req *reques
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRule
@@ -8471,7 +8475,7 @@ func (c *WAFRegional) UpdateRuleGroupRequest(input *waf.UpdateRuleGroupInput) (r
// and add the new one.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -8529,7 +8533,7 @@ func (c *WAFRegional) UpdateRuleGroupRequest(input *waf.UpdateRuleGroupInput) (r
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
@@ -8667,7 +8671,7 @@ func (c *WAFRegional) UpdateSizeConstraintSetRequest(input *waf.UpdateSizeConstr
// the value that you want AWS WAF to watch for.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -8766,7 +8770,7 @@ func (c *WAFRegional) UpdateSizeConstraintSetRequest(input *waf.UpdateSizeConstr
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateSizeConstraintSet
@@ -8869,7 +8873,7 @@ func (c *WAFRegional) UpdateSqlInjectionMatchSetRequest(input *waf.UpdateSqlInje
// requests that you want AWS WAF to inspect for snippets of SQL code.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -8960,7 +8964,7 @@ func (c *WAFRegional) UpdateSqlInjectionMatchSetRequest(input *waf.UpdateSqlInje
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateSqlInjectionMatchSet
@@ -9084,7 +9088,7 @@ func (c *WAFRegional) UpdateWebACLRequest(input *waf.UpdateWebACLInput) (req *re
// with the specified ID, which does not exist.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -9183,7 +9187,7 @@ func (c *WAFRegional) UpdateWebACLRequest(input *waf.UpdateWebACLInput) (req *re
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// * ErrCodeWAFSubscriptionNotFoundException "WAFSubscriptionNotFoundException"
@@ -9289,7 +9293,7 @@ func (c *WAFRegional) UpdateXssMatchSetRequest(input *waf.UpdateXssMatchSetInput
// that you want AWS WAF to inspect for cross-site scripting attacks.
//
// For more information about how to use the AWS WAF API to allow or block HTTP
-// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -9380,7 +9384,7 @@ func (c *WAFRegional) UpdateXssMatchSetRequest(input *waf.UpdateXssMatchSetInput
// * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
-// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateXssMatchSet
diff --git a/vendor/github.com/aws/aws-sdk-go/service/wafregional/doc.go b/vendor/github.com/aws/aws-sdk-go/service/wafregional/doc.go
index 8431ff1d54a..861b0ae88d5 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/wafregional/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/wafregional/doc.go
@@ -7,11 +7,11 @@
// Load Balancing (ELB) Application Load Balancers. The AWS WAF actions and
// data types listed in the reference are available for protecting Application
// Load Balancers. You can use these actions and data types by means of the
-// endpoints listed in AWS Regions and Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#waf_region).
+// endpoints listed in AWS Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#waf_region).
// This guide is for developers who need detailed information about the AWS
// WAF API actions, data types, and errors. For detailed information about AWS
// WAF features and an overview of how to use the AWS WAF API, see the AWS WAF
-// Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).
+// Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
//
// See https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28 for more information on this service.
//
diff --git a/vendor/github.com/aws/aws-sdk-go/service/wafregional/errors.go b/vendor/github.com/aws/aws-sdk-go/service/wafregional/errors.go
index b82c80fc6f2..15380ca2ec9 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/wafregional/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/wafregional/errors.go
@@ -115,7 +115,7 @@ const (
//
// The operation exceeds a resource limit, for example, the maximum number of
// WebACL objects that you can create for an AWS account. For more information,
- // see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
+ // see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
// in the AWS WAF Developer Guide.
ErrCodeWAFLimitsExceededException = "WAFLimitsExceededException"
diff --git a/vendor/github.com/davecgh/go-spew/LICENSE b/vendor/github.com/davecgh/go-spew/LICENSE
index bc52e96f2b0..c836416192d 100644
--- a/vendor/github.com/davecgh/go-spew/LICENSE
+++ b/vendor/github.com/davecgh/go-spew/LICENSE
@@ -2,7 +2,7 @@ ISC License
Copyright (c) 2012-2016 Dave Collins
-Permission to use, copy, modify, and/or distribute this software for any
+Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
diff --git a/vendor/github.com/davecgh/go-spew/spew/bypass.go b/vendor/github.com/davecgh/go-spew/spew/bypass.go
index 792994785e3..8a4a6589a2d 100644
--- a/vendor/github.com/davecgh/go-spew/spew/bypass.go
+++ b/vendor/github.com/davecgh/go-spew/spew/bypass.go
@@ -16,9 +16,7 @@
// when the code is not running on Google App Engine, compiled by GopherJS, and
// "-tags safe" is not added to the go build command line. The "disableunsafe"
// tag is deprecated and thus should not be used.
-// Go versions prior to 1.4 are disabled because they use a different layout
-// for interfaces which make the implementation of unsafeReflectValue more complex.
-// +build !js,!appengine,!safe,!disableunsafe,go1.4
+// +build !js,!appengine,!safe,!disableunsafe
package spew
@@ -36,49 +34,80 @@ const (
ptrSize = unsafe.Sizeof((*byte)(nil))
)
-type flag uintptr
-
var (
- // flagRO indicates whether the value field of a reflect.Value
- // is read-only.
- flagRO flag
-
- // flagAddr indicates whether the address of the reflect.Value's
- // value may be taken.
- flagAddr flag
+ // offsetPtr, offsetScalar, and offsetFlag are the offsets for the
+ // internal reflect.Value fields. These values are valid before golang
+ // commit ecccf07e7f9d which changed the format. The are also valid
+ // after commit 82f48826c6c7 which changed the format again to mirror
+ // the original format. Code in the init function updates these offsets
+ // as necessary.
+ offsetPtr = uintptr(ptrSize)
+ offsetScalar = uintptr(0)
+ offsetFlag = uintptr(ptrSize * 2)
+
+ // flagKindWidth and flagKindShift indicate various bits that the
+ // reflect package uses internally to track kind information.
+ //
+ // flagRO indicates whether or not the value field of a reflect.Value is
+ // read-only.
+ //
+ // flagIndir indicates whether the value field of a reflect.Value is
+ // the actual data or a pointer to the data.
+ //
+ // These values are valid before golang commit 90a7c3c86944 which
+ // changed their positions. Code in the init function updates these
+ // flags as necessary.
+ flagKindWidth = uintptr(5)
+ flagKindShift = uintptr(flagKindWidth - 1)
+ flagRO = uintptr(1 << 0)
+ flagIndir = uintptr(1 << 1)
)
-// flagKindMask holds the bits that make up the kind
-// part of the flags field. In all the supported versions,
-// it is in the lower 5 bits.
-const flagKindMask = flag(0x1f)
-
-// Different versions of Go have used different
-// bit layouts for the flags type. This table
-// records the known combinations.
-var okFlags = []struct {
- ro, addr flag
-}{{
- // From Go 1.4 to 1.5
- ro: 1 << 5,
- addr: 1 << 7,
-}, {
- // Up to Go tip.
- ro: 1<<5 | 1<<6,
- addr: 1 << 8,
-}}
-
-var flagValOffset = func() uintptr {
- field, ok := reflect.TypeOf(reflect.Value{}).FieldByName("flag")
- if !ok {
- panic("reflect.Value has no flag field")
+func init() {
+ // Older versions of reflect.Value stored small integers directly in the
+ // ptr field (which is named val in the older versions). Versions
+ // between commits ecccf07e7f9d and 82f48826c6c7 added a new field named
+ // scalar for this purpose which unfortunately came before the flag
+ // field, so the offset of the flag field is different for those
+ // versions.
+ //
+ // This code constructs a new reflect.Value from a known small integer
+ // and checks if the size of the reflect.Value struct indicates it has
+ // the scalar field. When it does, the offsets are updated accordingly.
+ vv := reflect.ValueOf(0xf00)
+ if unsafe.Sizeof(vv) == (ptrSize * 4) {
+ offsetScalar = ptrSize * 2
+ offsetFlag = ptrSize * 3
}
- return field.Offset
-}()
-// flagField returns a pointer to the flag field of a reflect.Value.
-func flagField(v *reflect.Value) *flag {
- return (*flag)(unsafe.Pointer(uintptr(unsafe.Pointer(v)) + flagValOffset))
+ // Commit 90a7c3c86944 changed the flag positions such that the low
+ // order bits are the kind. This code extracts the kind from the flags
+ // field and ensures it's the correct type. When it's not, the flag
+ // order has been changed to the newer format, so the flags are updated
+ // accordingly.
+ upf := unsafe.Pointer(uintptr(unsafe.Pointer(&vv)) + offsetFlag)
+ upfv := *(*uintptr)(upf)
+ flagKindMask := uintptr((1<>flagKindShift != uintptr(reflect.Int) {
+ flagKindShift = 0
+ flagRO = 1 << 5
+ flagIndir = 1 << 6
+
+ // Commit adf9b30e5594 modified the flags to separate the
+ // flagRO flag into two bits which specifies whether or not the
+ // field is embedded. This causes flagIndir to move over a bit
+ // and means that flagRO is the combination of either of the
+ // original flagRO bit and the new bit.
+ //
+ // This code detects the change by extracting what used to be
+ // the indirect bit to ensure it's set. When it's not, the flag
+ // order has been changed to the newer format, so the flags are
+ // updated accordingly.
+ if upfv&flagIndir == 0 {
+ flagRO = 3 << 5
+ flagIndir = 1 << 7
+ }
+ }
}
// unsafeReflectValue converts the passed reflect.Value into a one that bypasses
@@ -90,56 +119,34 @@ func flagField(v *reflect.Value) *flag {
// This allows us to check for implementations of the Stringer and error
// interfaces to be used for pretty printing ordinarily unaddressable and
// inaccessible values such as unexported struct fields.
-func unsafeReflectValue(v reflect.Value) reflect.Value {
- if !v.IsValid() || (v.CanInterface() && v.CanAddr()) {
- return v
- }
- flagFieldPtr := flagField(&v)
- *flagFieldPtr &^= flagRO
- *flagFieldPtr |= flagAddr
- return v
-}
-
-// Sanity checks against future reflect package changes
-// to the type or semantics of the Value.flag field.
-func init() {
- field, ok := reflect.TypeOf(reflect.Value{}).FieldByName("flag")
- if !ok {
- panic("reflect.Value has no flag field")
- }
- if field.Type.Kind() != reflect.TypeOf(flag(0)).Kind() {
- panic("reflect.Value flag field has changed kind")
- }
- type t0 int
- var t struct {
- A t0
- // t0 will have flagEmbedRO set.
- t0
- // a will have flagStickyRO set
- a t0
+func unsafeReflectValue(v reflect.Value) (rv reflect.Value) {
+ indirects := 1
+ vt := v.Type()
+ upv := unsafe.Pointer(uintptr(unsafe.Pointer(&v)) + offsetPtr)
+ rvf := *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&v)) + offsetFlag))
+ if rvf&flagIndir != 0 {
+ vt = reflect.PtrTo(v.Type())
+ indirects++
+ } else if offsetScalar != 0 {
+ // The value is in the scalar field when it's not one of the
+ // reference types.
+ switch vt.Kind() {
+ case reflect.Uintptr:
+ case reflect.Chan:
+ case reflect.Func:
+ case reflect.Map:
+ case reflect.Ptr:
+ case reflect.UnsafePointer:
+ default:
+ upv = unsafe.Pointer(uintptr(unsafe.Pointer(&v)) +
+ offsetScalar)
+ }
}
- vA := reflect.ValueOf(t).FieldByName("A")
- va := reflect.ValueOf(t).FieldByName("a")
- vt0 := reflect.ValueOf(t).FieldByName("t0")
-
- // Infer flagRO from the difference between the flags
- // for the (otherwise identical) fields in t.
- flagPublic := *flagField(&vA)
- flagWithRO := *flagField(&va) | *flagField(&vt0)
- flagRO = flagPublic ^ flagWithRO
- // Infer flagAddr from the difference between a value
- // taken from a pointer and not.
- vPtrA := reflect.ValueOf(&t).Elem().FieldByName("A")
- flagNoPtr := *flagField(&vA)
- flagPtr := *flagField(&vPtrA)
- flagAddr = flagNoPtr ^ flagPtr
-
- // Check that the inferred flags tally with one of the known versions.
- for _, f := range okFlags {
- if flagRO == f.ro && flagAddr == f.addr {
- return
- }
+ pv := reflect.NewAt(vt, upv)
+ rv = pv
+ for i := 0; i < indirects; i++ {
+ rv = rv.Elem()
}
- panic("reflect.Value read-only flag has changed semantics")
+ return rv
}
diff --git a/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go b/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go
index 205c28d68c4..1fe3cf3d5d1 100644
--- a/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go
+++ b/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go
@@ -16,7 +16,7 @@
// when the code is running on Google App Engine, compiled by GopherJS, or
// "-tags safe" is added to the go build command line. The "disableunsafe"
// tag is deprecated and thus should not be used.
-// +build js appengine safe disableunsafe !go1.4
+// +build js appengine safe disableunsafe
package spew
diff --git a/vendor/github.com/davecgh/go-spew/spew/common.go b/vendor/github.com/davecgh/go-spew/spew/common.go
index 1be8ce94576..7c519ff47ac 100644
--- a/vendor/github.com/davecgh/go-spew/spew/common.go
+++ b/vendor/github.com/davecgh/go-spew/spew/common.go
@@ -180,7 +180,7 @@ func printComplex(w io.Writer, c complex128, floatPrecision int) {
w.Write(closeParenBytes)
}
-// printHexPtr outputs a uintptr formatted as hexadecimal with a leading '0x'
+// printHexPtr outputs a uintptr formatted as hexidecimal with a leading '0x'
// prefix to Writer w.
func printHexPtr(w io.Writer, p uintptr) {
// Null pointer.
diff --git a/vendor/github.com/davecgh/go-spew/spew/dump.go b/vendor/github.com/davecgh/go-spew/spew/dump.go
index f78d89fc1f6..df1d582a728 100644
--- a/vendor/github.com/davecgh/go-spew/spew/dump.go
+++ b/vendor/github.com/davecgh/go-spew/spew/dump.go
@@ -35,16 +35,16 @@ var (
// cCharRE is a regular expression that matches a cgo char.
// It is used to detect character arrays to hexdump them.
- cCharRE = regexp.MustCompile(`^.*\._Ctype_char$`)
+ cCharRE = regexp.MustCompile("^.*\\._Ctype_char$")
// cUnsignedCharRE is a regular expression that matches a cgo unsigned
// char. It is used to detect unsigned character arrays to hexdump
// them.
- cUnsignedCharRE = regexp.MustCompile(`^.*\._Ctype_unsignedchar$`)
+ cUnsignedCharRE = regexp.MustCompile("^.*\\._Ctype_unsignedchar$")
// cUint8tCharRE is a regular expression that matches a cgo uint8_t.
// It is used to detect uint8_t arrays to hexdump them.
- cUint8tCharRE = regexp.MustCompile(`^.*\._Ctype_uint8_t$`)
+ cUint8tCharRE = regexp.MustCompile("^.*\\._Ctype_uint8_t$")
)
// dumpState contains information about the state of a dump operation.
@@ -143,10 +143,10 @@ func (d *dumpState) dumpPtr(v reflect.Value) {
// Display dereferenced value.
d.w.Write(openParenBytes)
switch {
- case nilFound:
+ case nilFound == true:
d.w.Write(nilAngleBytes)
- case cycleFound:
+ case cycleFound == true:
d.w.Write(circularBytes)
default:
diff --git a/vendor/github.com/davecgh/go-spew/spew/format.go b/vendor/github.com/davecgh/go-spew/spew/format.go
index b04edb7d7ac..c49875bacbb 100644
--- a/vendor/github.com/davecgh/go-spew/spew/format.go
+++ b/vendor/github.com/davecgh/go-spew/spew/format.go
@@ -182,10 +182,10 @@ func (f *formatState) formatPtr(v reflect.Value) {
// Display dereferenced value.
switch {
- case nilFound:
+ case nilFound == true:
f.fs.Write(nilAngleBytes)
- case cycleFound:
+ case cycleFound == true:
f.fs.Write(circularShortBytes)
default:
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/.golangci.yml b/vendor/github.com/hashicorp/aws-sdk-go-base/.golangci.yml
new file mode 100644
index 00000000000..59ef674ca41
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/.golangci.yml
@@ -0,0 +1,19 @@
+issues:
+ max-per-linter: 0
+ max-same-issues: 0
+
+linters:
+ disable-all: true
+ enable:
+ - deadcode
+ - errcheck
+ - gofmt
+ - gosimple
+ - ineffassign
+ - misspell
+ - staticcheck
+ - structcheck
+ - unconvert
+ - unused
+ - varcheck
+ - vet
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/.travis.yml b/vendor/github.com/hashicorp/aws-sdk-go-base/.travis.yml
new file mode 100644
index 00000000000..d29b4720580
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/.travis.yml
@@ -0,0 +1,21 @@
+dist: xenial
+language: go
+go:
+- "1.11.x"
+env:
+ GOFLAGS=-mod=vendor
+
+install:
+- make tools
+
+script:
+- make lint
+- make test
+
+branches:
+ only:
+ - master
+matrix:
+ fast_finish: true
+ allow_failures:
+ - go: tip
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/CHANGELOG.md b/vendor/github.com/hashicorp/aws-sdk-go-base/CHANGELOG.md
new file mode 100644
index 00000000000..ed0d5878d03
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/CHANGELOG.md
@@ -0,0 +1,15 @@
+# v0.3.0 (February 26, 2019)
+
+BUG FIXES
+
+* session: Return error instead of logging with AWS Account ID lookup failure [GH-3]
+
+# v0.2.0 (February 20, 2019)
+
+ENHANCEMENTS
+
+* validation: Add `ValidateAccountID` and `ValidateRegion` functions [GH-1]
+
+# v0.1.0 (February 18, 2019)
+
+* Initial release after split from github.com/terraform-providers/terraform-provider-aws
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/GNUmakefile b/vendor/github.com/hashicorp/aws-sdk-go-base/GNUmakefile
new file mode 100644
index 00000000000..ef101a1117f
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/GNUmakefile
@@ -0,0 +1,13 @@
+default: test lint
+
+lint:
+ @echo "==> Checking source code against linters..."
+ @golangci-lint run ./...
+
+test:
+ go test -timeout=30s -parallel=4 ./...
+
+tools:
+ GO111MODULE=off go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
+
+.PHONY: lint test tools
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/LICENSE b/vendor/github.com/hashicorp/aws-sdk-go-base/LICENSE
new file mode 100644
index 00000000000..a612ad9813b
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/LICENSE
@@ -0,0 +1,373 @@
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+ means each individual or legal entity that creates, contributes to
+ the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+ means the combination of the Contributions of others (if any) used
+ by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+ means Source Code Form to which the initial Contributor has attached
+ the notice in Exhibit A, the Executable Form of such Source Code
+ Form, and Modifications of such Source Code Form, in each case
+ including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ (a) that the initial Contributor has attached the notice described
+ in Exhibit B to the Covered Software; or
+
+ (b) that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the
+ terms of a Secondary License.
+
+1.6. "Executable Form"
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+ means a work that combines Covered Software with other material, in
+ a separate file or files, that is not Covered Software.
+
+1.8. "License"
+ means this document.
+
+1.9. "Licensable"
+ means having the right to grant, to the maximum extent possible,
+ whether at the time of the initial grant or subsequently, any and
+ all of the rights conveyed by this License.
+
+1.10. "Modifications"
+ means any of the following:
+
+ (a) any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered
+ Software; or
+
+ (b) any new file in Source Code Form that contains any Covered
+ Software.
+
+1.11. "Patent Claims" of a Contributor
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the
+ License, by the making, using, selling, offering for sale, having
+ made, import, or transfer of either its Contributions or its
+ Contributor Version.
+
+1.12. "Secondary License"
+ means either the GNU General Public License, Version 2.0, the GNU
+ Lesser General Public License, Version 2.1, the GNU Affero General
+ Public License, Version 3.0, or any later versions of those
+ licenses.
+
+1.13. "Source Code Form"
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that
+ controls, is controlled by, or is under common control with You. For
+ purposes of this definition, "control" means (a) the power, direct
+ or indirect, to cause the direction or management of such entity,
+ whether by contract or otherwise, or (b) ownership of more than
+ fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+ for sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+ or
+
+(b) for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+ Form, as described in Section 3.1, and You must inform recipients of
+ the Executable Form how they can obtain a copy of such Source Code
+ Form by reasonable means in a timely manner, at a charge no more
+ than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter
+ the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+* *
+* 6. Disclaimer of Warranty *
+* ------------------------- *
+* *
+* Covered Software is provided under this License on an "as is" *
+* basis, without warranty of any kind, either expressed, implied, or *
+* statutory, including, without limitation, warranties that the *
+* Covered Software is free of defects, merchantable, fit for a *
+* particular purpose or non-infringing. The entire risk as to the *
+* quality and performance of the Covered Software is with You. *
+* Should any Covered Software prove defective in any respect, You *
+* (not any Contributor) assume the cost of any necessary servicing, *
+* repair, or correction. This disclaimer of warranty constitutes an *
+* essential part of this License. No use of any Covered Software is *
+* authorized under this License except under this disclaimer. *
+* *
+************************************************************************
+
+************************************************************************
+* *
+* 7. Limitation of Liability *
+* -------------------------- *
+* *
+* Under no circumstances and under no legal theory, whether tort *
+* (including negligence), contract, or otherwise, shall any *
+* Contributor, or anyone who distributes Covered Software as *
+* permitted above, be liable to You for any direct, indirect, *
+* special, incidental, or consequential damages of any character *
+* including, without limitation, damages for lost profits, loss of *
+* goodwill, work stoppage, computer failure or malfunction, or any *
+* and all other commercial damages or losses, even if such party *
+* shall have been informed of the possibility of such damages. This *
+* limitation of liability shall not apply to liability for death or *
+* personal injury resulting from such party's negligence to the *
+* extent applicable law prohibits such limitation. Some *
+* jurisdictions do not allow the exclusion or limitation of *
+* incidental or consequential damages, so this exclusion and *
+* limitation may not apply to You. *
+* *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+ This Source Code Form is "Incompatible With Secondary Licenses", as
+ defined by the Mozilla Public License, v. 2.0.
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/README.md b/vendor/github.com/hashicorp/aws-sdk-go-base/README.md
new file mode 100644
index 00000000000..dc410ebd401
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/README.md
@@ -0,0 +1,27 @@
+# aws-sdk-go-base
+
+An opinionated [AWS Go SDK](https://github.com/aws/aws-sdk-go) library for consistent authentication configuration between projects and additional helper functions. This library was originally started in [HashiCorp Terraform](https://github.com/hashicorp/terraform), migrated with the [Terraform AWS Provider](https://github.com/terraform-providers/terraform-provider-aws) during the Terraform 0.10 Core and Provider split, and now is offered as a separate library to allow easier dependency management in the Terraform ecosystem.
+
+**NOTE:** This library is not currently designed or intended for usage outside the [Terraform S3 Backend](https://www.terraform.io/docs/backends/types/s3.html) and the [Terraform AWS Provider](https://www.terraform.io/docs/providers/aws/index.html).
+
+## Requirements
+
+- [Go](https://golang.org/doc/install) 1.11.4+
+
+## Development
+
+Testing this project can be done through Go standard library functionality or if [Make](https://www.gnu.org/software/make/) is available:
+
+```sh
+$ go test -v ./...
+# Optionally if Make is available; both run the same testing
+$ make test
+```
+
+Code quality assurance uses [golangci-lint](https://github.com/golangci/golangci-lint):
+
+```sh
+$ golangci-lint run ./...
+# Optionally if Make is available; both run the same linting
+$ make lint
+```
diff --git a/aws/auth_helpers.go b/vendor/github.com/hashicorp/aws-sdk-go-base/awsauth.go
similarity index 93%
rename from aws/auth_helpers.go
rename to vendor/github.com/hashicorp/aws-sdk-go-base/awsauth.go
index f0a8cbf3a1c..17bc443d570 100644
--- a/aws/auth_helpers.go
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/awsauth.go
@@ -1,4 +1,4 @@
-package aws
+package awsbase
import (
"errors"
@@ -82,14 +82,11 @@ func GetAccountIDAndPartitionFromIAMGetUser(iamconn *iam.IAM) (string, string, e
if err != nil {
// AccessDenied and ValidationError can be raised
// if credentials belong to federated profile, so we ignore these
- if isAWSErr(err, "AccessDenied", "") {
- return "", "", nil
- }
- if isAWSErr(err, "InvalidClientTokenId", "") {
- return "", "", nil
- }
- if isAWSErr(err, "ValidationError", "") {
- return "", "", nil
+ if awsErr, ok := err.(awserr.Error); ok {
+ switch awsErr.Code() {
+ case "AccessDenied", "InvalidClientTokenId", "ValidationError":
+ return "", "", nil
+ }
}
err = fmt.Errorf("failed getting account information via iam:GetUser: %s", err)
log.Printf("[DEBUG] %s", err)
@@ -206,7 +203,13 @@ func GetCredentials(c *Config) (*awsCredentials.Credentials, error) {
// Real AWS should reply to a simple metadata request.
// We check it actually does to ensure something else didn't just
// happen to be listening on the same IP:Port
- metadataClient := ec2metadata.New(session.New(cfg))
+ ec2Session, err := session.NewSession(cfg)
+
+ if err != nil {
+ return nil, fmt.Errorf("error creating EC2 Metadata session: %s", err)
+ }
+
+ metadataClient := ec2metadata.New(ec2Session)
if metadataClient.Available() {
providers = append(providers, &ec2rolecreds.EC2RoleProvider{
Client: metadataClient,
@@ -247,14 +250,19 @@ func GetCredentials(c *Config) (*awsCredentials.Credentials, error) {
log.Printf("[INFO] AWS Auth provider used: %q", cp.ProviderName)
awsConfig := &aws.Config{
- Credentials: creds,
- Region: aws.String(c.Region),
- MaxRetries: aws.Int(c.MaxRetries),
- HTTPClient: cleanhttp.DefaultClient(),
- S3ForcePathStyle: aws.Bool(c.S3ForcePathStyle),
+ Credentials: creds,
+ Region: aws.String(c.Region),
+ MaxRetries: aws.Int(c.MaxRetries),
+ HTTPClient: cleanhttp.DefaultClient(),
+ }
+
+ assumeRoleSession, err := session.NewSession(awsConfig)
+
+ if err != nil {
+ return nil, fmt.Errorf("error creating assume role session: %s", err)
}
- stsclient := sts.New(session.New(awsConfig))
+ stsclient := sts.New(assumeRoleSession)
assumeRoleProvider := &stscreds.AssumeRoleProvider{
Client: stsclient,
RoleARN: c.AssumeRoleARN,
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/awserr.go b/vendor/github.com/hashicorp/aws-sdk-go-base/awserr.go
new file mode 100644
index 00000000000..28295483518
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/awserr.go
@@ -0,0 +1,37 @@
+package awsbase
+
+import (
+ "strings"
+
+ "github.com/aws/aws-sdk-go/aws/awserr"
+)
+
+// IsAWSErr returns true if the error matches all these conditions:
+// * err is of type awserr.Error
+// * Error.Code() matches code
+// * Error.Message() contains message
+func IsAWSErr(err error, code string, message string) bool {
+ awsErr, ok := err.(awserr.Error)
+
+ if !ok {
+ return false
+ }
+
+ if awsErr.Code() != code {
+ return false
+ }
+
+ return strings.Contains(awsErr.Message(), message)
+}
+
+// IsAWSErrExtended returns true if the error matches all these conditions:
+// * err is of type awserr.Error
+// * Error.Code() matches code
+// * Error.Message() contains message
+// * Error.OrigErr() contains origErrMessage
+func IsAWSErrExtended(err error, code string, message string, origErrMessage string) bool {
+ if !IsAWSErr(err, code, message) {
+ return false
+ }
+ return strings.Contains(err.(awserr.Error).OrigErr().Error(), origErrMessage)
+}
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/config.go b/vendor/github.com/hashicorp/aws-sdk-go-base/config.go
new file mode 100644
index 00000000000..fb57e44e41d
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/config.go
@@ -0,0 +1,29 @@
+package awsbase
+
+type Config struct {
+ AccessKey string
+ AssumeRoleARN string
+ AssumeRoleExternalID string
+ AssumeRolePolicy string
+ AssumeRoleSessionName string
+ CredsFilename string
+ DebugLogging bool
+ IamEndpoint string
+ Insecure bool
+ MaxRetries int
+ Profile string
+ Region string
+ SecretKey string
+ SkipCredsValidation bool
+ SkipMetadataApiCheck bool
+ SkipRequestingAccountId bool
+ StsEndpoint string
+ Token string
+ UserAgentProducts []*UserAgentProduct
+}
+
+type UserAgentProduct struct {
+ Extra []string
+ Name string
+ Version string
+}
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/go.mod b/vendor/github.com/hashicorp/aws-sdk-go-base/go.mod
new file mode 100644
index 00000000000..9df74cb3395
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/go.mod
@@ -0,0 +1,10 @@
+module github.com/hashicorp/aws-sdk-go-base
+
+require (
+ github.com/aws/aws-sdk-go v1.16.36
+ github.com/hashicorp/go-cleanhttp v0.5.0
+ github.com/hashicorp/go-multierror v1.0.0
+ github.com/stretchr/testify v1.3.0 // indirect
+ golang.org/x/net v0.0.0-20190213061140-3a22650c66bd // indirect
+ golang.org/x/text v0.3.0 // indirect
+)
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/go.sum b/vendor/github.com/hashicorp/aws-sdk-go-base/go.sum
new file mode 100644
index 00000000000..fe20b5e5547
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/go.sum
@@ -0,0 +1,21 @@
+github.com/aws/aws-sdk-go v1.16.36 h1:POeH34ZME++pr7GBGh+ZO6Y5kOwSMQpqp5BGUgooJ6k=
+github.com/aws/aws-sdk-go v1.16.36/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
+github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
+github.com/hashicorp/go-cleanhttp v0.5.0 h1:wvCrVc9TjDls6+YGAF2hAifE1E5U1+b4tH6KdvN3Gig=
+github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
+github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o=
+github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
+github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM=
+github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd h1:HuTn7WObtcDo9uEEU7rEqL0jYthdXAmZ6PP+meazmaU=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/logger.go b/vendor/github.com/hashicorp/aws-sdk-go-base/logger.go
new file mode 100644
index 00000000000..467d7acea4d
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/logger.go
@@ -0,0 +1,18 @@
+package awsbase
+
+import (
+ "log"
+ "strings"
+)
+
+type DebugLogger struct{}
+
+func (l DebugLogger) Log(args ...interface{}) {
+ tokens := make([]string, 0, len(args))
+ for _, arg := range args {
+ if token, ok := arg.(string); ok {
+ tokens = append(tokens, token)
+ }
+ }
+ log.Printf("[DEBUG] [aws-sdk-go] %s", strings.Join(tokens, " "))
+}
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/mock.go b/vendor/github.com/hashicorp/aws-sdk-go-base/mock.go
new file mode 100644
index 00000000000..66d17256404
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/mock.go
@@ -0,0 +1,76 @@
+package awsbase
+
+import (
+ "bytes"
+ "fmt"
+ "log"
+ "net/http"
+ "net/http/httptest"
+ "time"
+
+ "github.com/aws/aws-sdk-go/aws"
+ awsCredentials "github.com/aws/aws-sdk-go/aws/credentials"
+ "github.com/aws/aws-sdk-go/aws/session"
+)
+
+// GetMockedAwsApiSession establishes a httptest server to simulate behaviour
+// of a real AWS API server
+func GetMockedAwsApiSession(svcName string, endpoints []*MockEndpoint) (func(), *session.Session, error) {
+ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ buf := new(bytes.Buffer)
+ if _, err := buf.ReadFrom(r.Body); err != nil {
+ w.WriteHeader(500)
+ fmt.Fprintf(w, "Error reading from HTTP Request Body: %s", err)
+ return
+ }
+ requestBody := buf.String()
+
+ log.Printf("[DEBUG] Received %s API %q request to %q: %s",
+ svcName, r.Method, r.RequestURI, requestBody)
+
+ for _, e := range endpoints {
+ if r.Method == e.Request.Method && r.RequestURI == e.Request.Uri && requestBody == e.Request.Body {
+ log.Printf("[DEBUG] Mocked %s API responding with %d: %s",
+ svcName, e.Response.StatusCode, e.Response.Body)
+
+ w.WriteHeader(e.Response.StatusCode)
+ w.Header().Set("Content-Type", e.Response.ContentType)
+ w.Header().Set("X-Amzn-Requestid", "1b206dd1-f9a8-11e5-becf-051c60f11c4a")
+ w.Header().Set("Date", time.Now().Format(time.RFC1123))
+
+ fmt.Fprintln(w, e.Response.Body)
+ return
+ }
+ }
+
+ w.WriteHeader(400)
+ }))
+
+ sc := awsCredentials.NewStaticCredentials("accessKey", "secretKey", "")
+
+ sess, err := session.NewSession(&aws.Config{
+ Credentials: sc,
+ Region: aws.String("us-east-1"),
+ Endpoint: aws.String(ts.URL),
+ CredentialsChainVerboseErrors: aws.Bool(true),
+ })
+
+ return ts.Close, sess, err
+}
+
+type MockEndpoint struct {
+ Request *MockRequest
+ Response *MockResponse
+}
+
+type MockRequest struct {
+ Method string
+ Uri string
+ Body string
+}
+
+type MockResponse struct {
+ StatusCode int
+ Body string
+ ContentType string
+}
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/session.go b/vendor/github.com/hashicorp/aws-sdk-go-base/session.go
new file mode 100644
index 00000000000..35b991bbf39
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/session.go
@@ -0,0 +1,200 @@
+package awsbase
+
+import (
+ "crypto/tls"
+ "errors"
+ "fmt"
+ "log"
+ "net/http"
+
+ "github.com/aws/aws-sdk-go/aws"
+ "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/iam"
+ "github.com/aws/aws-sdk-go/service/sts"
+ "github.com/hashicorp/go-cleanhttp"
+)
+
+// GetSessionOptions attempts to return valid AWS Go SDK session authentication
+// options based on pre-existing credential provider, configured profile, or
+// fallback to automatically a determined session via the AWS Go SDK.
+func GetSessionOptions(c *Config) (*session.Options, error) {
+ options := &session.Options{
+ Config: aws.Config{
+ HTTPClient: cleanhttp.DefaultClient(),
+ MaxRetries: aws.Int(0),
+ Region: aws.String(c.Region),
+ },
+ }
+
+ creds, err := GetCredentials(c)
+ if err != nil {
+ return nil, err
+ }
+
+ // Call Get to check for credential provider. If nothing found, we'll get an
+ // error, and we can present it nicely to the user
+ cp, err := creds.Get()
+ if err != nil {
+ if IsAWSErr(err, "NoCredentialProviders", "") {
+ // If a profile wasn't specified, the session may still be able to resolve credentials from shared config.
+ if c.Profile == "" {
+ sess, err := session.NewSession()
+ if err != nil {
+ return nil, errors.New(`No valid credential sources found for AWS Provider.
+ Please see https://terraform.io/docs/providers/aws/index.html for more information on
+ providing credentials for the AWS Provider`)
+ }
+ _, err = sess.Config.Credentials.Get()
+ if err != nil {
+ return nil, errors.New(`No valid credential sources found for AWS Provider.
+ Please see https://terraform.io/docs/providers/aws/index.html for more information on
+ providing credentials for the AWS Provider`)
+ }
+ log.Printf("[INFO] Using session-derived AWS Auth")
+ options.Config.Credentials = sess.Config.Credentials
+ } else {
+ log.Printf("[INFO] AWS Auth using Profile: %q", c.Profile)
+ options.Profile = c.Profile
+ options.SharedConfigState = session.SharedConfigEnable
+ }
+ } else {
+ return nil, fmt.Errorf("Error loading credentials for AWS Provider: %s", err)
+ }
+ } else {
+ // add the validated credentials to the session options
+ log.Printf("[INFO] AWS Auth provider used: %q", cp.ProviderName)
+ options.Config.Credentials = creds
+ }
+
+ if c.Insecure {
+ transport := options.Config.HTTPClient.Transport.(*http.Transport)
+ transport.TLSClientConfig = &tls.Config{
+ InsecureSkipVerify: true,
+ }
+ }
+
+ if c.DebugLogging {
+ options.Config.LogLevel = aws.LogLevel(aws.LogDebugWithHTTPBody | aws.LogDebugWithRequestRetries | aws.LogDebugWithRequestErrors)
+ options.Config.Logger = DebugLogger{}
+ }
+
+ return options, nil
+}
+
+// GetSession attempts to return valid AWS Go SDK session
+func GetSession(c *Config) (*session.Session, error) {
+ options, err := GetSessionOptions(c)
+
+ if err != nil {
+ return nil, err
+ }
+
+ sess, err := session.NewSessionWithOptions(*options)
+ if err != nil {
+ if IsAWSErr(err, "NoCredentialProviders", "") {
+ return nil, errors.New(`No valid credential sources found for AWS Provider.
+ Please see https://terraform.io/docs/providers/aws/index.html for more information on
+ providing credentials for the AWS Provider`)
+ }
+ return nil, fmt.Errorf("Error creating AWS session: %s", err)
+ }
+
+ if c.MaxRetries > 0 {
+ sess = sess.Copy(&aws.Config{MaxRetries: aws.Int(c.MaxRetries)})
+ }
+
+ for _, product := range c.UserAgentProducts {
+ sess.Handlers.Build.PushBack(request.MakeAddToUserAgentHandler(product.Name, product.Version, product.Extra...))
+ }
+
+ // Generally, we want to configure a lower retry theshold for networking issues
+ // as the session retry threshold is very high by default and can mask permanent
+ // networking failures, such as a non-existent service endpoint.
+ // MaxRetries will override this logic if it has a lower retry threshold.
+ // NOTE: This logic can be fooled by other request errors raising the retry count
+ // before any networking error occurs
+ sess.Handlers.Retry.PushBack(func(r *request.Request) {
+ // We currently depend on the DefaultRetryer exponential backoff here.
+ // ~10 retries gives a fair backoff of a few seconds.
+ if r.RetryCount < 9 {
+ return
+ }
+ // RequestError: send request failed
+ // caused by: Post https://FQDN/: dial tcp: lookup FQDN: no such host
+ if IsAWSErrExtended(r.Error, "RequestError", "send request failed", "no such host") {
+ log.Printf("[WARN] Disabling retries after next request due to networking issue")
+ r.Retryable = aws.Bool(false)
+ }
+ // RequestError: send request failed
+ // caused by: Post https://FQDN/: dial tcp IPADDRESS:443: connect: connection refused
+ if IsAWSErrExtended(r.Error, "RequestError", "send request failed", "connection refused") {
+ log.Printf("[WARN] Disabling retries after next request due to networking issue")
+ r.Retryable = aws.Bool(false)
+ }
+ })
+
+ if !c.SkipCredsValidation {
+ stsClient := sts.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.StsEndpoint)}))
+ if _, _, err := GetAccountIDAndPartitionFromSTSGetCallerIdentity(stsClient); err != nil {
+ return nil, fmt.Errorf("error validating provider credentials: %s", err)
+ }
+ }
+
+ return sess, nil
+}
+
+// GetSessionWithAccountIDAndPartition attempts to return valid AWS Go SDK session
+// along with account ID and partition information if available
+func GetSessionWithAccountIDAndPartition(c *Config) (*session.Session, string, string, error) {
+ sess, err := GetSession(c)
+
+ if err != nil {
+ return nil, "", "", err
+ }
+
+ if c.AssumeRoleARN != "" {
+ accountID, partition, _ := parseAccountIDAndPartitionFromARN(c.AssumeRoleARN)
+ return sess, accountID, partition, nil
+ }
+
+ iamClient := iam.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.IamEndpoint)}))
+ stsClient := sts.New(sess.Copy(&aws.Config{Endpoint: aws.String(c.StsEndpoint)}))
+
+ if !c.SkipCredsValidation {
+ accountID, partition, err := GetAccountIDAndPartitionFromSTSGetCallerIdentity(stsClient)
+
+ if err != nil {
+ return nil, "", "", fmt.Errorf("error validating provider credentials: %s", err)
+ }
+
+ return sess, accountID, partition, nil
+ }
+
+ if !c.SkipRequestingAccountId {
+ credentialsProviderName := ""
+
+ if credentialsValue, err := sess.Config.Credentials.Get(); err == nil {
+ credentialsProviderName = credentialsValue.ProviderName
+ }
+
+ accountID, partition, err := GetAccountIDAndPartition(iamClient, stsClient, credentialsProviderName)
+
+ if err == nil {
+ return sess, accountID, partition, nil
+ }
+
+ return nil, "", "", fmt.Errorf(
+ "AWS account ID not previously found and failed retrieving via all available methods. "+
+ "See https://www.terraform.io/docs/providers/aws/index.html#skip_requesting_account_id for workaround and implications. "+
+ "Errors: %s", err)
+ }
+
+ var partition string
+ if p, ok := endpoints.PartitionForRegion(endpoints.DefaultPartitions(), c.Region); ok {
+ partition = p.ID()
+ }
+
+ return sess, "", partition, nil
+}
diff --git a/vendor/github.com/hashicorp/aws-sdk-go-base/validation.go b/vendor/github.com/hashicorp/aws-sdk-go-base/validation.go
new file mode 100644
index 00000000000..bf320351fc2
--- /dev/null
+++ b/vendor/github.com/hashicorp/aws-sdk-go-base/validation.go
@@ -0,0 +1,44 @@
+package awsbase
+
+import (
+ "fmt"
+
+ "github.com/aws/aws-sdk-go/aws/endpoints"
+)
+
+// ValidateAccountID checks if the given AWS account ID is specifically allowed or forbidden.
+// The allowedAccountIDs can be used as a whitelist and forbiddenAccountIDs can be used as a blacklist.
+func ValidateAccountID(accountID string, allowedAccountIDs, forbiddenAccountIDs []string) error {
+ if len(forbiddenAccountIDs) > 0 {
+ for _, forbiddenAccountID := range forbiddenAccountIDs {
+ if accountID == forbiddenAccountID {
+ return fmt.Errorf("Forbidden AWS Account ID: %s", accountID)
+ }
+ }
+ }
+
+ if len(allowedAccountIDs) > 0 {
+ for _, allowedAccountID := range allowedAccountIDs {
+ if accountID == allowedAccountID {
+ return nil
+ }
+ }
+
+ return fmt.Errorf("AWS Account ID not allowed: %s)", accountID)
+ }
+
+ return nil
+}
+
+// ValidateRegion checks if the given region is a valid AWS region.
+func ValidateRegion(region string) error {
+ for _, partition := range endpoints.DefaultPartitions() {
+ for _, partitionRegion := range partition.Regions() {
+ if region == partitionRegion.ID() {
+ return nil
+ }
+ }
+ }
+
+ return fmt.Errorf("Invalid AWS Region: %s", region)
+}
diff --git a/vendor/golang.org/x/net/html/atom/gen.go b/vendor/golang.org/x/net/html/atom/gen.go
index cc5dc5dbcee..5d052781bce 100644
--- a/vendor/golang.org/x/net/html/atom/gen.go
+++ b/vendor/golang.org/x/net/html/atom/gen.go
@@ -306,7 +306,7 @@ func (t *table) push(i uint32, depth int) bool {
// The lists of element names and attribute keys were taken from
// https://html.spec.whatwg.org/multipage/indices.html#index
-// as of the "HTML Living Standard - Last Updated 18 September 2017" version.
+// as of the "HTML Living Standard - Last Updated 16 April 2018" version.
// "command", "keygen" and "menuitem" have been removed from the spec,
// but are kept here for backwards compatibility.
@@ -665,6 +665,7 @@ var eventHandlers = []string{
// extra are ad-hoc values not covered by any of the lists above.
var extra = []string{
+ "acronym",
"align",
"annotation",
"annotation-xml",
@@ -700,6 +701,8 @@ var extra = []string{
"plaintext",
"prompt",
"public",
+ "rb",
+ "rtc",
"spacer",
"strike",
"svg",
diff --git a/vendor/golang.org/x/net/html/atom/table.go b/vendor/golang.org/x/net/html/atom/table.go
index f74018ecea1..2a938864cb9 100644
--- a/vendor/golang.org/x/net/html/atom/table.go
+++ b/vendor/golang.org/x/net/html/atom/table.go
@@ -10,366 +10,369 @@ const (
Accept Atom = 0x1a06
AcceptCharset Atom = 0x1a0e
Accesskey Atom = 0x2c09
- Action Atom = 0x25a06
- Address Atom = 0x6ed07
- Align Atom = 0x6d405
- Allowfullscreen Atom = 0x1f00f
- Allowpaymentrequest Atom = 0x6913
- Allowusermedia Atom = 0x850e
- Alt Atom = 0xb003
- Annotation Atom = 0x1b90a
- AnnotationXml Atom = 0x1b90e
- Applet Atom = 0x30106
- Area Atom = 0x34a04
- Article Atom = 0x3f007
- As Atom = 0xb902
- Aside Atom = 0xc105
- Async Atom = 0xb905
- Audio Atom = 0xcf05
- Autocomplete Atom = 0x2600c
- Autofocus Atom = 0xeb09
- Autoplay Atom = 0x10608
+ Acronym Atom = 0xaa07
+ Action Atom = 0x27206
+ Address Atom = 0x6f307
+ Align Atom = 0xb105
+ Allowfullscreen Atom = 0x2080f
+ Allowpaymentrequest Atom = 0xc113
+ Allowusermedia Atom = 0xdd0e
+ Alt Atom = 0xf303
+ Annotation Atom = 0x1c90a
+ AnnotationXml Atom = 0x1c90e
+ Applet Atom = 0x31906
+ Area Atom = 0x35604
+ Article Atom = 0x3fc07
+ As Atom = 0x3c02
+ Aside Atom = 0x10705
+ Async Atom = 0xff05
+ Audio Atom = 0x11505
+ Autocomplete Atom = 0x2780c
+ Autofocus Atom = 0x12109
+ Autoplay Atom = 0x13c08
B Atom = 0x101
- Base Atom = 0x11504
- Basefont Atom = 0x11508
- Bdi Atom = 0x16103
- Bdo Atom = 0x13403
- Bgsound Atom = 0x14707
- Big Atom = 0x15903
- Blink Atom = 0x15c05
- Blockquote Atom = 0x1680a
+ Base Atom = 0x3b04
+ Basefont Atom = 0x3b08
+ Bdi Atom = 0xba03
+ Bdo Atom = 0x14b03
+ Bgsound Atom = 0x15e07
+ Big Atom = 0x17003
+ Blink Atom = 0x17305
+ Blockquote Atom = 0x1870a
Body Atom = 0x2804
Br Atom = 0x202
- Button Atom = 0x17206
- Canvas Atom = 0xbd06
- Caption Atom = 0x21907
- Center Atom = 0x20806
- Challenge Atom = 0x28309
+ Button Atom = 0x19106
+ Canvas Atom = 0x10306
+ Caption Atom = 0x23107
+ Center Atom = 0x22006
+ Challenge Atom = 0x29b09
Charset Atom = 0x2107
- Checked Atom = 0x46d07
- Cite Atom = 0x55804
- Class Atom = 0x5b905
- Code Atom = 0x19004
- Col Atom = 0x19703
- Colgroup Atom = 0x19708
- Color Atom = 0x1af05
- Cols Atom = 0x1b404
- Colspan Atom = 0x1b407
- Command Atom = 0x1c707
- Content Atom = 0x57f07
- Contenteditable Atom = 0x57f0f
- Contextmenu Atom = 0x3740b
- Controls Atom = 0x1ce08
- Coords Atom = 0x1da06
- Crossorigin Atom = 0x1e30b
- Data Atom = 0x49904
- Datalist Atom = 0x49908
- Datetime Atom = 0x2a008
- Dd Atom = 0x2bf02
- Default Atom = 0xc407
- Defer Atom = 0x19205
- Del Atom = 0x44603
- Desc Atom = 0x55504
- Details Atom = 0x4607
- Dfn Atom = 0x5f03
- Dialog Atom = 0x16206
- Dir Atom = 0xa303
- Dirname Atom = 0xa307
- Disabled Atom = 0x14d08
- Div Atom = 0x15403
- Dl Atom = 0x5e202
- Download Atom = 0x45708
- Draggable Atom = 0x18309
- Dropzone Atom = 0x3f908
- Dt Atom = 0x64702
- Em Atom = 0x4202
- Embed Atom = 0x4205
- Enctype Atom = 0x27507
- Face Atom = 0x20604
- Fieldset Atom = 0x20e08
- Figcaption Atom = 0x2160a
- Figure Atom = 0x23006
- Font Atom = 0x11904
- Footer Atom = 0xb306
- For Atom = 0x23c03
- ForeignObject Atom = 0x23c0d
- Foreignobject Atom = 0x2490d
- Form Atom = 0x25604
- Formaction Atom = 0x2560a
- Formenctype Atom = 0x2710b
- Formmethod Atom = 0x28c0a
- Formnovalidate Atom = 0x2960e
- Formtarget Atom = 0x2a80a
- Frame Atom = 0x5705
- Frameset Atom = 0x5708
- H1 Atom = 0x14502
- H2 Atom = 0x2c602
- H3 Atom = 0x2f502
- H4 Atom = 0x33902
- H5 Atom = 0x34302
- H6 Atom = 0x64902
- Head Atom = 0x32504
- Header Atom = 0x32506
- Headers Atom = 0x32507
- Height Atom = 0x12c06
- Hgroup Atom = 0x2b206
- Hidden Atom = 0x2bd06
- High Atom = 0x2c304
- Hr Atom = 0x14002
- Href Atom = 0x2c804
- Hreflang Atom = 0x2c808
- Html Atom = 0x13004
- HttpEquiv Atom = 0x2d00a
+ Checked Atom = 0x47907
+ Cite Atom = 0x19c04
+ Class Atom = 0x56405
+ Code Atom = 0x5c504
+ Col Atom = 0x1ab03
+ Colgroup Atom = 0x1ab08
+ Color Atom = 0x1bf05
+ Cols Atom = 0x1c404
+ Colspan Atom = 0x1c407
+ Command Atom = 0x1d707
+ Content Atom = 0x58b07
+ Contenteditable Atom = 0x58b0f
+ Contextmenu Atom = 0x3800b
+ Controls Atom = 0x1de08
+ Coords Atom = 0x1ea06
+ Crossorigin Atom = 0x1fb0b
+ Data Atom = 0x4a504
+ Datalist Atom = 0x4a508
+ Datetime Atom = 0x2b808
+ Dd Atom = 0x2d702
+ Default Atom = 0x10a07
+ Defer Atom = 0x5c705
+ Del Atom = 0x45203
+ Desc Atom = 0x56104
+ Details Atom = 0x7207
+ Dfn Atom = 0x8703
+ Dialog Atom = 0xbb06
+ Dir Atom = 0x9303
+ Dirname Atom = 0x9307
+ Disabled Atom = 0x16408
+ Div Atom = 0x16b03
+ Dl Atom = 0x5e602
+ Download Atom = 0x46308
+ Draggable Atom = 0x17a09
+ Dropzone Atom = 0x40508
+ Dt Atom = 0x64b02
+ Em Atom = 0x6e02
+ Embed Atom = 0x6e05
+ Enctype Atom = 0x28d07
+ Face Atom = 0x21e04
+ Fieldset Atom = 0x22608
+ Figcaption Atom = 0x22e0a
+ Figure Atom = 0x24806
+ Font Atom = 0x3f04
+ Footer Atom = 0xf606
+ For Atom = 0x25403
+ ForeignObject Atom = 0x2540d
+ Foreignobject Atom = 0x2610d
+ Form Atom = 0x26e04
+ Formaction Atom = 0x26e0a
+ Formenctype Atom = 0x2890b
+ Formmethod Atom = 0x2a40a
+ Formnovalidate Atom = 0x2ae0e
+ Formtarget Atom = 0x2c00a
+ Frame Atom = 0x8b05
+ Frameset Atom = 0x8b08
+ H1 Atom = 0x15c02
+ H2 Atom = 0x2de02
+ H3 Atom = 0x30d02
+ H4 Atom = 0x34502
+ H5 Atom = 0x34f02
+ H6 Atom = 0x64d02
+ Head Atom = 0x33104
+ Header Atom = 0x33106
+ Headers Atom = 0x33107
+ Height Atom = 0x5206
+ Hgroup Atom = 0x2ca06
+ Hidden Atom = 0x2d506
+ High Atom = 0x2db04
+ Hr Atom = 0x15702
+ Href Atom = 0x2e004
+ Hreflang Atom = 0x2e008
+ Html Atom = 0x5604
+ HttpEquiv Atom = 0x2e80a
I Atom = 0x601
- Icon Atom = 0x57e04
- Id Atom = 0xc302
- Iframe Atom = 0x2e406
- Image Atom = 0x2ea05
- Img Atom = 0x2ef03
- Input Atom = 0x43f05
- Inputmode Atom = 0x43f09
- Ins Atom = 0x1ec03
- Integrity Atom = 0x22709
- Is Atom = 0x14e02
- Isindex Atom = 0x2f707
- Ismap Atom = 0x2fe05
- Itemid Atom = 0x37f06
- Itemprop Atom = 0x55908
- Itemref Atom = 0x3c107
- Itemscope Atom = 0x66d09
- Itemtype Atom = 0x30708
- Kbd Atom = 0x16003
+ Icon Atom = 0x58a04
+ Id Atom = 0x10902
+ Iframe Atom = 0x2fc06
+ Image Atom = 0x30205
+ Img Atom = 0x30703
+ Input Atom = 0x44b05
+ Inputmode Atom = 0x44b09
+ Ins Atom = 0x20403
+ Integrity Atom = 0x23f09
+ Is Atom = 0x16502
+ Isindex Atom = 0x30f07
+ Ismap Atom = 0x31605
+ Itemid Atom = 0x38b06
+ Itemprop Atom = 0x19d08
+ Itemref Atom = 0x3cd07
+ Itemscope Atom = 0x67109
+ Itemtype Atom = 0x31f08
+ Kbd Atom = 0xb903
Keygen Atom = 0x3206
- Keytype Atom = 0x7e07
- Kind Atom = 0x18004
- Label Atom = 0xda05
- Lang Atom = 0x2cc04
- Legend Atom = 0x18a06
- Li Atom = 0x11102
- Link Atom = 0x15d04
- List Atom = 0x49d04
- Listing Atom = 0x49d07
- Loop Atom = 0xde04
- Low Atom = 0x6b03
+ Keytype Atom = 0xd607
+ Kind Atom = 0x17704
+ Label Atom = 0x5905
+ Lang Atom = 0x2e404
+ Legend Atom = 0x18106
+ Li Atom = 0xb202
+ Link Atom = 0x17404
+ List Atom = 0x4a904
+ Listing Atom = 0x4a907
+ Loop Atom = 0x5d04
+ Low Atom = 0xc303
Main Atom = 0x1004
- Malignmark Atom = 0x6d30a
- Manifest Atom = 0x30f08
- Map Atom = 0x30003
- Mark Atom = 0x6d904
- Marquee Atom = 0x31b07
- Math Atom = 0x32204
- Max Atom = 0x33103
- Maxlength Atom = 0x33109
- Media Atom = 0x8e05
- Mediagroup Atom = 0x8e0a
- Menu Atom = 0x37b04
- Menuitem Atom = 0x37b08
- Meta Atom = 0x4ac04
- Meter Atom = 0xa805
- Method Atom = 0x29006
- Mglyph Atom = 0x2f006
- Mi Atom = 0x33b02
- Min Atom = 0x33b03
- Minlength Atom = 0x33b09
- Mn Atom = 0x29902
- Mo Atom = 0x6302
- Ms Atom = 0x67002
- Mtext Atom = 0x34505
- Multiple Atom = 0x35308
- Muted Atom = 0x35b05
- Name Atom = 0xa604
+ Malignmark Atom = 0xb00a
+ Manifest Atom = 0x6d708
+ Map Atom = 0x31803
+ Mark Atom = 0xb604
+ Marquee Atom = 0x32707
+ Math Atom = 0x32e04
+ Max Atom = 0x33d03
+ Maxlength Atom = 0x33d09
+ Media Atom = 0xe605
+ Mediagroup Atom = 0xe60a
+ Menu Atom = 0x38704
+ Menuitem Atom = 0x38708
+ Meta Atom = 0x4b804
+ Meter Atom = 0x9805
+ Method Atom = 0x2a806
+ Mglyph Atom = 0x30806
+ Mi Atom = 0x34702
+ Min Atom = 0x34703
+ Minlength Atom = 0x34709
+ Mn Atom = 0x2b102
+ Mo Atom = 0xa402
+ Ms Atom = 0x67402
+ Mtext Atom = 0x35105
+ Multiple Atom = 0x35f08
+ Muted Atom = 0x36705
+ Name Atom = 0x9604
Nav Atom = 0x1303
Nobr Atom = 0x3704
- Noembed Atom = 0x4007
- Noframes Atom = 0x5508
- Nomodule Atom = 0x6108
- Nonce Atom = 0x56205
- Noscript Atom = 0x1fe08
- Novalidate Atom = 0x29a0a
- Object Atom = 0x25006
- Ol Atom = 0x10102
- Onabort Atom = 0x17607
- Onafterprint Atom = 0x21e0c
- Onautocomplete Atom = 0x25e0e
- Onautocompleteerror Atom = 0x25e13
- Onauxclick Atom = 0x61b0a
- Onbeforeprint Atom = 0x69a0d
- Onbeforeunload Atom = 0x6e10e
- Onblur Atom = 0x5c206
- Oncancel Atom = 0xd308
- Oncanplay Atom = 0x13609
- Oncanplaythrough Atom = 0x13610
- Onchange Atom = 0x40f08
- Onclick Atom = 0x2dd07
- Onclose Atom = 0x36007
- Oncontextmenu Atom = 0x3720d
- Oncopy Atom = 0x38506
- Oncuechange Atom = 0x38b0b
- Oncut Atom = 0x39605
- Ondblclick Atom = 0x39b0a
- Ondrag Atom = 0x3a506
- Ondragend Atom = 0x3a509
- Ondragenter Atom = 0x3ae0b
- Ondragexit Atom = 0x3b90a
- Ondragleave Atom = 0x3d30b
- Ondragover Atom = 0x3de0a
- Ondragstart Atom = 0x3e80b
- Ondrop Atom = 0x3f706
- Ondurationchange Atom = 0x40710
- Onemptied Atom = 0x3fe09
- Onended Atom = 0x41707
- Onerror Atom = 0x41e07
- Onfocus Atom = 0x42507
- Onhashchange Atom = 0x4310c
- Oninput Atom = 0x43d07
- Oninvalid Atom = 0x44909
- Onkeydown Atom = 0x45209
- Onkeypress Atom = 0x45f0a
- Onkeyup Atom = 0x47407
- Onlanguagechange Atom = 0x48110
- Onload Atom = 0x49106
- Onloadeddata Atom = 0x4910c
- Onloadedmetadata Atom = 0x4a410
- Onloadend Atom = 0x4ba09
- Onloadstart Atom = 0x4c30b
- Onmessage Atom = 0x4ce09
- Onmessageerror Atom = 0x4ce0e
- Onmousedown Atom = 0x4dc0b
- Onmouseenter Atom = 0x4e70c
- Onmouseleave Atom = 0x4f30c
- Onmousemove Atom = 0x4ff0b
- Onmouseout Atom = 0x50a0a
- Onmouseover Atom = 0x5170b
- Onmouseup Atom = 0x52209
- Onmousewheel Atom = 0x5300c
- Onoffline Atom = 0x53c09
- Ononline Atom = 0x54508
- Onpagehide Atom = 0x54d0a
- Onpageshow Atom = 0x5670a
- Onpaste Atom = 0x57307
- Onpause Atom = 0x58e07
- Onplay Atom = 0x59806
- Onplaying Atom = 0x59809
- Onpopstate Atom = 0x5a10a
- Onprogress Atom = 0x5ab0a
- Onratechange Atom = 0x5c80c
- Onrejectionhandled Atom = 0x5d412
- Onreset Atom = 0x5e607
- Onresize Atom = 0x5ed08
- Onscroll Atom = 0x5fc08
- Onsecuritypolicyviolation Atom = 0x60419
- Onseeked Atom = 0x62508
- Onseeking Atom = 0x62d09
- Onselect Atom = 0x63608
- Onshow Atom = 0x64006
- Onsort Atom = 0x64b06
- Onstalled Atom = 0x65509
- Onstorage Atom = 0x65e09
- Onsubmit Atom = 0x66708
- Onsuspend Atom = 0x67709
- Ontimeupdate Atom = 0x11a0c
- Ontoggle Atom = 0x68008
- Onunhandledrejection Atom = 0x68814
- Onunload Atom = 0x6a708
- Onvolumechange Atom = 0x6af0e
- Onwaiting Atom = 0x6bd09
- Onwheel Atom = 0x6c607
- Open Atom = 0x55f04
- Optgroup Atom = 0xe008
- Optimum Atom = 0x6cd07
- Option Atom = 0x6dd06
- Output Atom = 0x51106
+ Noembed Atom = 0x6c07
+ Noframes Atom = 0x8908
+ Nomodule Atom = 0xa208
+ Nonce Atom = 0x1a605
+ Noscript Atom = 0x21608
+ Novalidate Atom = 0x2b20a
+ Object Atom = 0x26806
+ Ol Atom = 0x13702
+ Onabort Atom = 0x19507
+ Onafterprint Atom = 0x2360c
+ Onautocomplete Atom = 0x2760e
+ Onautocompleteerror Atom = 0x27613
+ Onauxclick Atom = 0x61f0a
+ Onbeforeprint Atom = 0x69e0d
+ Onbeforeunload Atom = 0x6e70e
+ Onblur Atom = 0x56d06
+ Oncancel Atom = 0x11908
+ Oncanplay Atom = 0x14d09
+ Oncanplaythrough Atom = 0x14d10
+ Onchange Atom = 0x41b08
+ Onclick Atom = 0x2f507
+ Onclose Atom = 0x36c07
+ Oncontextmenu Atom = 0x37e0d
+ Oncopy Atom = 0x39106
+ Oncuechange Atom = 0x3970b
+ Oncut Atom = 0x3a205
+ Ondblclick Atom = 0x3a70a
+ Ondrag Atom = 0x3b106
+ Ondragend Atom = 0x3b109
+ Ondragenter Atom = 0x3ba0b
+ Ondragexit Atom = 0x3c50a
+ Ondragleave Atom = 0x3df0b
+ Ondragover Atom = 0x3ea0a
+ Ondragstart Atom = 0x3f40b
+ Ondrop Atom = 0x40306
+ Ondurationchange Atom = 0x41310
+ Onemptied Atom = 0x40a09
+ Onended Atom = 0x42307
+ Onerror Atom = 0x42a07
+ Onfocus Atom = 0x43107
+ Onhashchange Atom = 0x43d0c
+ Oninput Atom = 0x44907
+ Oninvalid Atom = 0x45509
+ Onkeydown Atom = 0x45e09
+ Onkeypress Atom = 0x46b0a
+ Onkeyup Atom = 0x48007
+ Onlanguagechange Atom = 0x48d10
+ Onload Atom = 0x49d06
+ Onloadeddata Atom = 0x49d0c
+ Onloadedmetadata Atom = 0x4b010
+ Onloadend Atom = 0x4c609
+ Onloadstart Atom = 0x4cf0b
+ Onmessage Atom = 0x4da09
+ Onmessageerror Atom = 0x4da0e
+ Onmousedown Atom = 0x4e80b
+ Onmouseenter Atom = 0x4f30c
+ Onmouseleave Atom = 0x4ff0c
+ Onmousemove Atom = 0x50b0b
+ Onmouseout Atom = 0x5160a
+ Onmouseover Atom = 0x5230b
+ Onmouseup Atom = 0x52e09
+ Onmousewheel Atom = 0x53c0c
+ Onoffline Atom = 0x54809
+ Ononline Atom = 0x55108
+ Onpagehide Atom = 0x5590a
+ Onpageshow Atom = 0x5730a
+ Onpaste Atom = 0x57f07
+ Onpause Atom = 0x59a07
+ Onplay Atom = 0x5a406
+ Onplaying Atom = 0x5a409
+ Onpopstate Atom = 0x5ad0a
+ Onprogress Atom = 0x5b70a
+ Onratechange Atom = 0x5cc0c
+ Onrejectionhandled Atom = 0x5d812
+ Onreset Atom = 0x5ea07
+ Onresize Atom = 0x5f108
+ Onscroll Atom = 0x60008
+ Onsecuritypolicyviolation Atom = 0x60819
+ Onseeked Atom = 0x62908
+ Onseeking Atom = 0x63109
+ Onselect Atom = 0x63a08
+ Onshow Atom = 0x64406
+ Onsort Atom = 0x64f06
+ Onstalled Atom = 0x65909
+ Onstorage Atom = 0x66209
+ Onsubmit Atom = 0x66b08
+ Onsuspend Atom = 0x67b09
+ Ontimeupdate Atom = 0x400c
+ Ontoggle Atom = 0x68408
+ Onunhandledrejection Atom = 0x68c14
+ Onunload Atom = 0x6ab08
+ Onvolumechange Atom = 0x6b30e
+ Onwaiting Atom = 0x6c109
+ Onwheel Atom = 0x6ca07
+ Open Atom = 0x1a304
+ Optgroup Atom = 0x5f08
+ Optimum Atom = 0x6d107
+ Option Atom = 0x6e306
+ Output Atom = 0x51d06
P Atom = 0xc01
Param Atom = 0xc05
- Pattern Atom = 0x4f07
- Picture Atom = 0x9707
- Ping Atom = 0xe704
- Placeholder Atom = 0xfb0b
- Plaintext Atom = 0x19e09
- Playsinline Atom = 0x10a0b
- Poster Atom = 0x2b706
- Pre Atom = 0x46403
- Preload Atom = 0x47a07
- Progress Atom = 0x5ad08
- Prompt Atom = 0x52a06
- Public Atom = 0x57a06
- Q Atom = 0x7701
+ Pattern Atom = 0x6607
+ Picture Atom = 0x7b07
+ Ping Atom = 0xef04
+ Placeholder Atom = 0x1310b
+ Plaintext Atom = 0x1b209
+ Playsinline Atom = 0x1400b
+ Poster Atom = 0x2cf06
+ Pre Atom = 0x47003
+ Preload Atom = 0x48607
+ Progress Atom = 0x5b908
+ Prompt Atom = 0x53606
+ Public Atom = 0x58606
+ Q Atom = 0xcf01
Radiogroup Atom = 0x30a
- Readonly Atom = 0x34b08
- Referrerpolicy Atom = 0x3c50e
- Rel Atom = 0x47b03
- Required Atom = 0x23408
- Reversed Atom = 0x9c08
- Rows Atom = 0x3a04
- Rowspan Atom = 0x3a07
- Rp Atom = 0x22402
- Rt Atom = 0x17b02
- Ruby Atom = 0xac04
+ Rb Atom = 0x3a02
+ Readonly Atom = 0x35708
+ Referrerpolicy Atom = 0x3d10e
+ Rel Atom = 0x48703
+ Required Atom = 0x24c08
+ Reversed Atom = 0x8008
+ Rows Atom = 0x9c04
+ Rowspan Atom = 0x9c07
+ Rp Atom = 0x23c02
+ Rt Atom = 0x19a02
+ Rtc Atom = 0x19a03
+ Ruby Atom = 0xfb04
S Atom = 0x2501
- Samp Atom = 0x4c04
- Sandbox Atom = 0xf307
- Scope Atom = 0x67105
- Scoped Atom = 0x67106
- Script Atom = 0x20006
- Seamless Atom = 0x36508
- Section Atom = 0x5bd07
- Select Atom = 0x63806
- Selected Atom = 0x63808
- Shape Atom = 0x1d505
- Size Atom = 0x5f104
- Sizes Atom = 0x5f105
- Slot Atom = 0x1df04
- Small Atom = 0x1ee05
- Sortable Atom = 0x64d08
- Sorted Atom = 0x32b06
- Source Atom = 0x36c06
- Spacer Atom = 0x42b06
- Span Atom = 0x3d04
- Spellcheck Atom = 0x4680a
- Src Atom = 0x5b403
- Srcdoc Atom = 0x5b406
- Srclang Atom = 0x5f507
- Srcset Atom = 0x6f306
- Start Atom = 0x3ee05
- Step Atom = 0x57704
- Strike Atom = 0x7a06
- Strong Atom = 0x31506
- Style Atom = 0x6f905
- Sub Atom = 0x66903
- Summary Atom = 0x6fe07
- Sup Atom = 0x70503
- Svg Atom = 0x70803
- System Atom = 0x70b06
- Tabindex Atom = 0x4b208
- Table Atom = 0x58905
- Target Atom = 0x2ac06
+ Samp Atom = 0x7804
+ Sandbox Atom = 0x12907
+ Scope Atom = 0x67505
+ Scoped Atom = 0x67506
+ Script Atom = 0x21806
+ Seamless Atom = 0x37108
+ Section Atom = 0x56807
+ Select Atom = 0x63c06
+ Selected Atom = 0x63c08
+ Shape Atom = 0x1e505
+ Size Atom = 0x5f504
+ Sizes Atom = 0x5f505
+ Slot Atom = 0x1ef04
+ Small Atom = 0x20605
+ Sortable Atom = 0x65108
+ Sorted Atom = 0x33706
+ Source Atom = 0x37806
+ Spacer Atom = 0x43706
+ Span Atom = 0x9f04
+ Spellcheck Atom = 0x4740a
+ Src Atom = 0x5c003
+ Srcdoc Atom = 0x5c006
+ Srclang Atom = 0x5f907
+ Srcset Atom = 0x6f906
+ Start Atom = 0x3fa05
+ Step Atom = 0x58304
+ Strike Atom = 0xd206
+ Strong Atom = 0x6dd06
+ Style Atom = 0x6ff05
+ Sub Atom = 0x66d03
+ Summary Atom = 0x70407
+ Sup Atom = 0x70b03
+ Svg Atom = 0x70e03
+ System Atom = 0x71106
+ Tabindex Atom = 0x4be08
+ Table Atom = 0x59505
+ Target Atom = 0x2c406
Tbody Atom = 0x2705
- Td Atom = 0x5e02
- Template Atom = 0x70e08
- Textarea Atom = 0x34608
- Tfoot Atom = 0xb205
- Th Atom = 0x13f02
- Thead Atom = 0x32405
- Time Atom = 0x11c04
- Title Atom = 0xca05
- Tr Atom = 0x7402
- Track Atom = 0x17c05
- Translate Atom = 0x1a609
- Tt Atom = 0x5102
- Type Atom = 0x8104
- Typemustmatch Atom = 0x2780d
+ Td Atom = 0x9202
+ Template Atom = 0x71408
+ Textarea Atom = 0x35208
+ Tfoot Atom = 0xf505
+ Th Atom = 0x15602
+ Thead Atom = 0x33005
+ Time Atom = 0x4204
+ Title Atom = 0x11005
+ Tr Atom = 0xcc02
+ Track Atom = 0x1ba05
+ Translate Atom = 0x1f209
+ Tt Atom = 0x6802
+ Type Atom = 0xd904
+ Typemustmatch Atom = 0x2900d
U Atom = 0xb01
- Ul Atom = 0x6602
- Updateviacache Atom = 0x1200e
- Usemap Atom = 0x59206
+ Ul Atom = 0xa702
+ Updateviacache Atom = 0x460e
+ Usemap Atom = 0x59e06
Value Atom = 0x1505
- Var Atom = 0x15603
- Video Atom = 0x2d905
- Wbr Atom = 0x57003
- Width Atom = 0x64505
- Workertype Atom = 0x7160a
- Wrap Atom = 0x72004
- Xmp Atom = 0xf903
+ Var Atom = 0x16d03
+ Video Atom = 0x2f105
+ Wbr Atom = 0x57c03
+ Width Atom = 0x64905
+ Workertype Atom = 0x71c0a
+ Wrap Atom = 0x72604
+ Xmp Atom = 0x12f03
)
const hash0 = 0x81cdf10e
@@ -377,401 +380,404 @@ const hash0 = 0x81cdf10e
const maxAtomLen = 25
var table = [1 << 9]Atom{
- 0x1: 0x8e0a, // mediagroup
- 0x2: 0x2cc04, // lang
+ 0x1: 0xe60a, // mediagroup
+ 0x2: 0x2e404, // lang
0x4: 0x2c09, // accesskey
- 0x5: 0x5708, // frameset
- 0x7: 0x63608, // onselect
- 0x8: 0x70b06, // system
- 0xa: 0x64505, // width
- 0xc: 0x2710b, // formenctype
- 0xd: 0x10102, // ol
- 0xe: 0x38b0b, // oncuechange
- 0x10: 0x13403, // bdo
- 0x11: 0xcf05, // audio
- 0x12: 0x18309, // draggable
- 0x14: 0x2d905, // video
- 0x15: 0x29902, // mn
- 0x16: 0x37b04, // menu
- 0x17: 0x2b706, // poster
- 0x19: 0xb306, // footer
- 0x1a: 0x29006, // method
- 0x1b: 0x2a008, // datetime
- 0x1c: 0x17607, // onabort
- 0x1d: 0x1200e, // updateviacache
- 0x1e: 0xb905, // async
- 0x1f: 0x49106, // onload
- 0x21: 0xd308, // oncancel
- 0x22: 0x62508, // onseeked
- 0x23: 0x2ea05, // image
- 0x24: 0x5d412, // onrejectionhandled
- 0x26: 0x15d04, // link
- 0x27: 0x51106, // output
- 0x28: 0x32504, // head
- 0x29: 0x4f30c, // onmouseleave
- 0x2a: 0x57307, // onpaste
- 0x2b: 0x59809, // onplaying
- 0x2c: 0x1b407, // colspan
- 0x2f: 0x1af05, // color
- 0x30: 0x5f104, // size
- 0x31: 0x2d00a, // http-equiv
+ 0x5: 0x8b08, // frameset
+ 0x7: 0x63a08, // onselect
+ 0x8: 0x71106, // system
+ 0xa: 0x64905, // width
+ 0xc: 0x2890b, // formenctype
+ 0xd: 0x13702, // ol
+ 0xe: 0x3970b, // oncuechange
+ 0x10: 0x14b03, // bdo
+ 0x11: 0x11505, // audio
+ 0x12: 0x17a09, // draggable
+ 0x14: 0x2f105, // video
+ 0x15: 0x2b102, // mn
+ 0x16: 0x38704, // menu
+ 0x17: 0x2cf06, // poster
+ 0x19: 0xf606, // footer
+ 0x1a: 0x2a806, // method
+ 0x1b: 0x2b808, // datetime
+ 0x1c: 0x19507, // onabort
+ 0x1d: 0x460e, // updateviacache
+ 0x1e: 0xff05, // async
+ 0x1f: 0x49d06, // onload
+ 0x21: 0x11908, // oncancel
+ 0x22: 0x62908, // onseeked
+ 0x23: 0x30205, // image
+ 0x24: 0x5d812, // onrejectionhandled
+ 0x26: 0x17404, // link
+ 0x27: 0x51d06, // output
+ 0x28: 0x33104, // head
+ 0x29: 0x4ff0c, // onmouseleave
+ 0x2a: 0x57f07, // onpaste
+ 0x2b: 0x5a409, // onplaying
+ 0x2c: 0x1c407, // colspan
+ 0x2f: 0x1bf05, // color
+ 0x30: 0x5f504, // size
+ 0x31: 0x2e80a, // http-equiv
0x33: 0x601, // i
- 0x34: 0x54d0a, // onpagehide
- 0x35: 0x68814, // onunhandledrejection
- 0x37: 0x41e07, // onerror
- 0x3a: 0x11508, // basefont
+ 0x34: 0x5590a, // onpagehide
+ 0x35: 0x68c14, // onunhandledrejection
+ 0x37: 0x42a07, // onerror
+ 0x3a: 0x3b08, // basefont
0x3f: 0x1303, // nav
- 0x40: 0x18004, // kind
- 0x41: 0x34b08, // readonly
- 0x42: 0x2f006, // mglyph
- 0x44: 0x11102, // li
- 0x46: 0x2bd06, // hidden
- 0x47: 0x70803, // svg
- 0x48: 0x57704, // step
- 0x49: 0x22709, // integrity
- 0x4a: 0x57a06, // public
- 0x4c: 0x19703, // col
- 0x4d: 0x1680a, // blockquote
- 0x4e: 0x34302, // h5
- 0x50: 0x5ad08, // progress
- 0x51: 0x5f105, // sizes
- 0x52: 0x33902, // h4
- 0x56: 0x32405, // thead
- 0x57: 0x7e07, // keytype
- 0x58: 0x5ab0a, // onprogress
- 0x59: 0x43f09, // inputmode
- 0x5a: 0x3a509, // ondragend
- 0x5d: 0x39605, // oncut
- 0x5e: 0x42b06, // spacer
- 0x5f: 0x19708, // colgroup
- 0x62: 0x14e02, // is
- 0x65: 0xb902, // as
- 0x66: 0x53c09, // onoffline
- 0x67: 0x32b06, // sorted
- 0x69: 0x48110, // onlanguagechange
- 0x6c: 0x4310c, // onhashchange
- 0x6d: 0xa604, // name
- 0x6e: 0xb205, // tfoot
- 0x6f: 0x55504, // desc
- 0x70: 0x33103, // max
- 0x72: 0x1da06, // coords
- 0x73: 0x2f502, // h3
- 0x74: 0x6e10e, // onbeforeunload
- 0x75: 0x3a04, // rows
- 0x76: 0x63806, // select
- 0x77: 0xa805, // meter
- 0x78: 0x37f06, // itemid
- 0x79: 0x5300c, // onmousewheel
- 0x7a: 0x5b406, // srcdoc
- 0x7d: 0x17c05, // track
- 0x7f: 0x30708, // itemtype
- 0x82: 0x6302, // mo
- 0x83: 0x40f08, // onchange
- 0x84: 0x32507, // headers
- 0x85: 0x5c80c, // onratechange
- 0x86: 0x60419, // onsecuritypolicyviolation
- 0x88: 0x49908, // datalist
- 0x89: 0x4dc0b, // onmousedown
- 0x8a: 0x1df04, // slot
- 0x8b: 0x4a410, // onloadedmetadata
+ 0x40: 0x17704, // kind
+ 0x41: 0x35708, // readonly
+ 0x42: 0x30806, // mglyph
+ 0x44: 0xb202, // li
+ 0x46: 0x2d506, // hidden
+ 0x47: 0x70e03, // svg
+ 0x48: 0x58304, // step
+ 0x49: 0x23f09, // integrity
+ 0x4a: 0x58606, // public
+ 0x4c: 0x1ab03, // col
+ 0x4d: 0x1870a, // blockquote
+ 0x4e: 0x34f02, // h5
+ 0x50: 0x5b908, // progress
+ 0x51: 0x5f505, // sizes
+ 0x52: 0x34502, // h4
+ 0x56: 0x33005, // thead
+ 0x57: 0xd607, // keytype
+ 0x58: 0x5b70a, // onprogress
+ 0x59: 0x44b09, // inputmode
+ 0x5a: 0x3b109, // ondragend
+ 0x5d: 0x3a205, // oncut
+ 0x5e: 0x43706, // spacer
+ 0x5f: 0x1ab08, // colgroup
+ 0x62: 0x16502, // is
+ 0x65: 0x3c02, // as
+ 0x66: 0x54809, // onoffline
+ 0x67: 0x33706, // sorted
+ 0x69: 0x48d10, // onlanguagechange
+ 0x6c: 0x43d0c, // onhashchange
+ 0x6d: 0x9604, // name
+ 0x6e: 0xf505, // tfoot
+ 0x6f: 0x56104, // desc
+ 0x70: 0x33d03, // max
+ 0x72: 0x1ea06, // coords
+ 0x73: 0x30d02, // h3
+ 0x74: 0x6e70e, // onbeforeunload
+ 0x75: 0x9c04, // rows
+ 0x76: 0x63c06, // select
+ 0x77: 0x9805, // meter
+ 0x78: 0x38b06, // itemid
+ 0x79: 0x53c0c, // onmousewheel
+ 0x7a: 0x5c006, // srcdoc
+ 0x7d: 0x1ba05, // track
+ 0x7f: 0x31f08, // itemtype
+ 0x82: 0xa402, // mo
+ 0x83: 0x41b08, // onchange
+ 0x84: 0x33107, // headers
+ 0x85: 0x5cc0c, // onratechange
+ 0x86: 0x60819, // onsecuritypolicyviolation
+ 0x88: 0x4a508, // datalist
+ 0x89: 0x4e80b, // onmousedown
+ 0x8a: 0x1ef04, // slot
+ 0x8b: 0x4b010, // onloadedmetadata
0x8c: 0x1a06, // accept
- 0x8d: 0x25006, // object
- 0x91: 0x6af0e, // onvolumechange
+ 0x8d: 0x26806, // object
+ 0x91: 0x6b30e, // onvolumechange
0x92: 0x2107, // charset
- 0x93: 0x25e13, // onautocompleteerror
- 0x94: 0x6913, // allowpaymentrequest
+ 0x93: 0x27613, // onautocompleteerror
+ 0x94: 0xc113, // allowpaymentrequest
0x95: 0x2804, // body
- 0x96: 0xc407, // default
- 0x97: 0x63808, // selected
- 0x98: 0x20604, // face
- 0x99: 0x1d505, // shape
- 0x9b: 0x68008, // ontoggle
- 0x9e: 0x64702, // dt
- 0x9f: 0x6d904, // mark
+ 0x96: 0x10a07, // default
+ 0x97: 0x63c08, // selected
+ 0x98: 0x21e04, // face
+ 0x99: 0x1e505, // shape
+ 0x9b: 0x68408, // ontoggle
+ 0x9e: 0x64b02, // dt
+ 0x9f: 0xb604, // mark
0xa1: 0xb01, // u
- 0xa4: 0x6a708, // onunload
- 0xa5: 0xde04, // loop
- 0xa6: 0x14d08, // disabled
- 0xaa: 0x41707, // onended
- 0xab: 0x6d30a, // malignmark
- 0xad: 0x67709, // onsuspend
- 0xae: 0x34505, // mtext
- 0xaf: 0x64b06, // onsort
- 0xb0: 0x55908, // itemprop
- 0xb3: 0x66d09, // itemscope
- 0xb4: 0x15c05, // blink
- 0xb6: 0x3a506, // ondrag
- 0xb7: 0x6602, // ul
- 0xb8: 0x25604, // form
- 0xb9: 0xf307, // sandbox
- 0xba: 0x5705, // frame
+ 0xa4: 0x6ab08, // onunload
+ 0xa5: 0x5d04, // loop
+ 0xa6: 0x16408, // disabled
+ 0xaa: 0x42307, // onended
+ 0xab: 0xb00a, // malignmark
+ 0xad: 0x67b09, // onsuspend
+ 0xae: 0x35105, // mtext
+ 0xaf: 0x64f06, // onsort
+ 0xb0: 0x19d08, // itemprop
+ 0xb3: 0x67109, // itemscope
+ 0xb4: 0x17305, // blink
+ 0xb6: 0x3b106, // ondrag
+ 0xb7: 0xa702, // ul
+ 0xb8: 0x26e04, // form
+ 0xb9: 0x12907, // sandbox
+ 0xba: 0x8b05, // frame
0xbb: 0x1505, // value
- 0xbc: 0x65e09, // onstorage
- 0xc0: 0x17b02, // rt
+ 0xbc: 0x66209, // onstorage
+ 0xbf: 0xaa07, // acronym
+ 0xc0: 0x19a02, // rt
0xc2: 0x202, // br
- 0xc3: 0x20e08, // fieldset
- 0xc4: 0x2780d, // typemustmatch
- 0xc5: 0x6108, // nomodule
- 0xc6: 0x4007, // noembed
- 0xc7: 0x69a0d, // onbeforeprint
- 0xc8: 0x17206, // button
- 0xc9: 0x2dd07, // onclick
- 0xca: 0x6fe07, // summary
- 0xcd: 0xac04, // ruby
- 0xce: 0x5b905, // class
- 0xcf: 0x3e80b, // ondragstart
- 0xd0: 0x21907, // caption
- 0xd4: 0x850e, // allowusermedia
- 0xd5: 0x4c30b, // onloadstart
- 0xd9: 0x15403, // div
- 0xda: 0x49d04, // list
- 0xdb: 0x32204, // math
- 0xdc: 0x43f05, // input
- 0xdf: 0x3de0a, // ondragover
- 0xe0: 0x2c602, // h2
- 0xe2: 0x19e09, // plaintext
- 0xe4: 0x4e70c, // onmouseenter
- 0xe7: 0x46d07, // checked
- 0xe8: 0x46403, // pre
- 0xea: 0x35308, // multiple
- 0xeb: 0x16103, // bdi
- 0xec: 0x33109, // maxlength
- 0xed: 0x7701, // q
- 0xee: 0x61b0a, // onauxclick
- 0xf0: 0x57003, // wbr
- 0xf2: 0x11504, // base
- 0xf3: 0x6dd06, // option
- 0xf5: 0x40710, // ondurationchange
- 0xf7: 0x5508, // noframes
- 0xf9: 0x3f908, // dropzone
- 0xfb: 0x67105, // scope
- 0xfc: 0x9c08, // reversed
- 0xfd: 0x3ae0b, // ondragenter
- 0xfe: 0x3ee05, // start
- 0xff: 0xf903, // xmp
- 0x100: 0x5f507, // srclang
- 0x101: 0x2ef03, // img
+ 0xc3: 0x22608, // fieldset
+ 0xc4: 0x2900d, // typemustmatch
+ 0xc5: 0xa208, // nomodule
+ 0xc6: 0x6c07, // noembed
+ 0xc7: 0x69e0d, // onbeforeprint
+ 0xc8: 0x19106, // button
+ 0xc9: 0x2f507, // onclick
+ 0xca: 0x70407, // summary
+ 0xcd: 0xfb04, // ruby
+ 0xce: 0x56405, // class
+ 0xcf: 0x3f40b, // ondragstart
+ 0xd0: 0x23107, // caption
+ 0xd4: 0xdd0e, // allowusermedia
+ 0xd5: 0x4cf0b, // onloadstart
+ 0xd9: 0x16b03, // div
+ 0xda: 0x4a904, // list
+ 0xdb: 0x32e04, // math
+ 0xdc: 0x44b05, // input
+ 0xdf: 0x3ea0a, // ondragover
+ 0xe0: 0x2de02, // h2
+ 0xe2: 0x1b209, // plaintext
+ 0xe4: 0x4f30c, // onmouseenter
+ 0xe7: 0x47907, // checked
+ 0xe8: 0x47003, // pre
+ 0xea: 0x35f08, // multiple
+ 0xeb: 0xba03, // bdi
+ 0xec: 0x33d09, // maxlength
+ 0xed: 0xcf01, // q
+ 0xee: 0x61f0a, // onauxclick
+ 0xf0: 0x57c03, // wbr
+ 0xf2: 0x3b04, // base
+ 0xf3: 0x6e306, // option
+ 0xf5: 0x41310, // ondurationchange
+ 0xf7: 0x8908, // noframes
+ 0xf9: 0x40508, // dropzone
+ 0xfb: 0x67505, // scope
+ 0xfc: 0x8008, // reversed
+ 0xfd: 0x3ba0b, // ondragenter
+ 0xfe: 0x3fa05, // start
+ 0xff: 0x12f03, // xmp
+ 0x100: 0x5f907, // srclang
+ 0x101: 0x30703, // img
0x104: 0x101, // b
- 0x105: 0x23c03, // for
- 0x106: 0xc105, // aside
- 0x107: 0x43d07, // oninput
- 0x108: 0x34a04, // area
- 0x109: 0x28c0a, // formmethod
- 0x10a: 0x72004, // wrap
- 0x10c: 0x22402, // rp
- 0x10d: 0x45f0a, // onkeypress
- 0x10e: 0x5102, // tt
- 0x110: 0x33b02, // mi
- 0x111: 0x35b05, // muted
- 0x112: 0xb003, // alt
- 0x113: 0x19004, // code
- 0x114: 0x4202, // em
- 0x115: 0x3b90a, // ondragexit
- 0x117: 0x3d04, // span
- 0x119: 0x30f08, // manifest
- 0x11a: 0x37b08, // menuitem
- 0x11b: 0x57f07, // content
- 0x11d: 0x6bd09, // onwaiting
- 0x11f: 0x4ba09, // onloadend
- 0x121: 0x3720d, // oncontextmenu
- 0x123: 0x5c206, // onblur
- 0x124: 0x3f007, // article
- 0x125: 0xa303, // dir
- 0x126: 0xe704, // ping
- 0x127: 0x23408, // required
- 0x128: 0x44909, // oninvalid
- 0x129: 0x6d405, // align
- 0x12b: 0x57e04, // icon
- 0x12c: 0x64902, // h6
- 0x12d: 0x1b404, // cols
- 0x12e: 0x2160a, // figcaption
- 0x12f: 0x45209, // onkeydown
- 0x130: 0x66708, // onsubmit
- 0x131: 0x13609, // oncanplay
- 0x132: 0x70503, // sup
+ 0x105: 0x25403, // for
+ 0x106: 0x10705, // aside
+ 0x107: 0x44907, // oninput
+ 0x108: 0x35604, // area
+ 0x109: 0x2a40a, // formmethod
+ 0x10a: 0x72604, // wrap
+ 0x10c: 0x23c02, // rp
+ 0x10d: 0x46b0a, // onkeypress
+ 0x10e: 0x6802, // tt
+ 0x110: 0x34702, // mi
+ 0x111: 0x36705, // muted
+ 0x112: 0xf303, // alt
+ 0x113: 0x5c504, // code
+ 0x114: 0x6e02, // em
+ 0x115: 0x3c50a, // ondragexit
+ 0x117: 0x9f04, // span
+ 0x119: 0x6d708, // manifest
+ 0x11a: 0x38708, // menuitem
+ 0x11b: 0x58b07, // content
+ 0x11d: 0x6c109, // onwaiting
+ 0x11f: 0x4c609, // onloadend
+ 0x121: 0x37e0d, // oncontextmenu
+ 0x123: 0x56d06, // onblur
+ 0x124: 0x3fc07, // article
+ 0x125: 0x9303, // dir
+ 0x126: 0xef04, // ping
+ 0x127: 0x24c08, // required
+ 0x128: 0x45509, // oninvalid
+ 0x129: 0xb105, // align
+ 0x12b: 0x58a04, // icon
+ 0x12c: 0x64d02, // h6
+ 0x12d: 0x1c404, // cols
+ 0x12e: 0x22e0a, // figcaption
+ 0x12f: 0x45e09, // onkeydown
+ 0x130: 0x66b08, // onsubmit
+ 0x131: 0x14d09, // oncanplay
+ 0x132: 0x70b03, // sup
0x133: 0xc01, // p
- 0x135: 0x3fe09, // onemptied
- 0x136: 0x38506, // oncopy
- 0x137: 0x55804, // cite
- 0x138: 0x39b0a, // ondblclick
- 0x13a: 0x4ff0b, // onmousemove
- 0x13c: 0x66903, // sub
- 0x13d: 0x47b03, // rel
- 0x13e: 0xe008, // optgroup
- 0x142: 0x3a07, // rowspan
- 0x143: 0x36c06, // source
- 0x144: 0x1fe08, // noscript
- 0x145: 0x55f04, // open
- 0x146: 0x1ec03, // ins
- 0x147: 0x23c0d, // foreignObject
- 0x148: 0x5a10a, // onpopstate
- 0x14a: 0x27507, // enctype
- 0x14b: 0x25e0e, // onautocomplete
- 0x14c: 0x34608, // textarea
- 0x14e: 0x2600c, // autocomplete
- 0x14f: 0x14002, // hr
- 0x150: 0x1ce08, // controls
- 0x151: 0xc302, // id
- 0x153: 0x21e0c, // onafterprint
- 0x155: 0x2490d, // foreignobject
- 0x156: 0x31b07, // marquee
- 0x157: 0x58e07, // onpause
- 0x158: 0x5e202, // dl
- 0x159: 0x12c06, // height
- 0x15a: 0x33b03, // min
- 0x15b: 0xa307, // dirname
- 0x15c: 0x1a609, // translate
- 0x15d: 0x13004, // html
- 0x15e: 0x33b09, // minlength
- 0x15f: 0x47a07, // preload
- 0x160: 0x70e08, // template
- 0x161: 0x3d30b, // ondragleave
- 0x164: 0x5b403, // src
- 0x165: 0x31506, // strong
- 0x167: 0x4c04, // samp
- 0x168: 0x6ed07, // address
- 0x169: 0x54508, // ononline
- 0x16b: 0xfb0b, // placeholder
- 0x16c: 0x2ac06, // target
- 0x16d: 0x1ee05, // small
- 0x16e: 0x6c607, // onwheel
- 0x16f: 0x1b90a, // annotation
- 0x170: 0x4680a, // spellcheck
- 0x171: 0x4607, // details
- 0x172: 0xbd06, // canvas
- 0x173: 0xeb09, // autofocus
+ 0x135: 0x40a09, // onemptied
+ 0x136: 0x39106, // oncopy
+ 0x137: 0x19c04, // cite
+ 0x138: 0x3a70a, // ondblclick
+ 0x13a: 0x50b0b, // onmousemove
+ 0x13c: 0x66d03, // sub
+ 0x13d: 0x48703, // rel
+ 0x13e: 0x5f08, // optgroup
+ 0x142: 0x9c07, // rowspan
+ 0x143: 0x37806, // source
+ 0x144: 0x21608, // noscript
+ 0x145: 0x1a304, // open
+ 0x146: 0x20403, // ins
+ 0x147: 0x2540d, // foreignObject
+ 0x148: 0x5ad0a, // onpopstate
+ 0x14a: 0x28d07, // enctype
+ 0x14b: 0x2760e, // onautocomplete
+ 0x14c: 0x35208, // textarea
+ 0x14e: 0x2780c, // autocomplete
+ 0x14f: 0x15702, // hr
+ 0x150: 0x1de08, // controls
+ 0x151: 0x10902, // id
+ 0x153: 0x2360c, // onafterprint
+ 0x155: 0x2610d, // foreignobject
+ 0x156: 0x32707, // marquee
+ 0x157: 0x59a07, // onpause
+ 0x158: 0x5e602, // dl
+ 0x159: 0x5206, // height
+ 0x15a: 0x34703, // min
+ 0x15b: 0x9307, // dirname
+ 0x15c: 0x1f209, // translate
+ 0x15d: 0x5604, // html
+ 0x15e: 0x34709, // minlength
+ 0x15f: 0x48607, // preload
+ 0x160: 0x71408, // template
+ 0x161: 0x3df0b, // ondragleave
+ 0x162: 0x3a02, // rb
+ 0x164: 0x5c003, // src
+ 0x165: 0x6dd06, // strong
+ 0x167: 0x7804, // samp
+ 0x168: 0x6f307, // address
+ 0x169: 0x55108, // ononline
+ 0x16b: 0x1310b, // placeholder
+ 0x16c: 0x2c406, // target
+ 0x16d: 0x20605, // small
+ 0x16e: 0x6ca07, // onwheel
+ 0x16f: 0x1c90a, // annotation
+ 0x170: 0x4740a, // spellcheck
+ 0x171: 0x7207, // details
+ 0x172: 0x10306, // canvas
+ 0x173: 0x12109, // autofocus
0x174: 0xc05, // param
- 0x176: 0x45708, // download
- 0x177: 0x44603, // del
- 0x178: 0x36007, // onclose
- 0x179: 0x16003, // kbd
- 0x17a: 0x30106, // applet
- 0x17b: 0x2c804, // href
- 0x17c: 0x5ed08, // onresize
- 0x17e: 0x4910c, // onloadeddata
- 0x180: 0x7402, // tr
- 0x181: 0x2a80a, // formtarget
- 0x182: 0xca05, // title
- 0x183: 0x6f905, // style
- 0x184: 0x7a06, // strike
- 0x185: 0x59206, // usemap
- 0x186: 0x2e406, // iframe
+ 0x176: 0x46308, // download
+ 0x177: 0x45203, // del
+ 0x178: 0x36c07, // onclose
+ 0x179: 0xb903, // kbd
+ 0x17a: 0x31906, // applet
+ 0x17b: 0x2e004, // href
+ 0x17c: 0x5f108, // onresize
+ 0x17e: 0x49d0c, // onloadeddata
+ 0x180: 0xcc02, // tr
+ 0x181: 0x2c00a, // formtarget
+ 0x182: 0x11005, // title
+ 0x183: 0x6ff05, // style
+ 0x184: 0xd206, // strike
+ 0x185: 0x59e06, // usemap
+ 0x186: 0x2fc06, // iframe
0x187: 0x1004, // main
- 0x189: 0x9707, // picture
- 0x18c: 0x2fe05, // ismap
- 0x18e: 0x49904, // data
- 0x18f: 0xda05, // label
- 0x191: 0x3c50e, // referrerpolicy
- 0x192: 0x13f02, // th
- 0x194: 0x52a06, // prompt
- 0x195: 0x5bd07, // section
- 0x197: 0x6cd07, // optimum
- 0x198: 0x2c304, // high
- 0x199: 0x14502, // h1
- 0x19a: 0x65509, // onstalled
- 0x19b: 0x15603, // var
- 0x19c: 0x11c04, // time
- 0x19e: 0x67002, // ms
- 0x19f: 0x32506, // header
- 0x1a0: 0x4ce09, // onmessage
- 0x1a1: 0x56205, // nonce
- 0x1a2: 0x2560a, // formaction
- 0x1a3: 0x20806, // center
+ 0x189: 0x7b07, // picture
+ 0x18c: 0x31605, // ismap
+ 0x18e: 0x4a504, // data
+ 0x18f: 0x5905, // label
+ 0x191: 0x3d10e, // referrerpolicy
+ 0x192: 0x15602, // th
+ 0x194: 0x53606, // prompt
+ 0x195: 0x56807, // section
+ 0x197: 0x6d107, // optimum
+ 0x198: 0x2db04, // high
+ 0x199: 0x15c02, // h1
+ 0x19a: 0x65909, // onstalled
+ 0x19b: 0x16d03, // var
+ 0x19c: 0x4204, // time
+ 0x19e: 0x67402, // ms
+ 0x19f: 0x33106, // header
+ 0x1a0: 0x4da09, // onmessage
+ 0x1a1: 0x1a605, // nonce
+ 0x1a2: 0x26e0a, // formaction
+ 0x1a3: 0x22006, // center
0x1a4: 0x3704, // nobr
- 0x1a5: 0x58905, // table
- 0x1a6: 0x49d07, // listing
- 0x1a7: 0x18a06, // legend
- 0x1a9: 0x28309, // challenge
- 0x1aa: 0x23006, // figure
- 0x1ab: 0x8e05, // media
- 0x1ae: 0x8104, // type
- 0x1af: 0x11904, // font
- 0x1b0: 0x4ce0e, // onmessageerror
- 0x1b1: 0x36508, // seamless
- 0x1b2: 0x5f03, // dfn
- 0x1b3: 0x19205, // defer
- 0x1b4: 0x6b03, // low
- 0x1b5: 0x62d09, // onseeking
- 0x1b6: 0x5170b, // onmouseover
- 0x1b7: 0x29a0a, // novalidate
- 0x1b8: 0x7160a, // workertype
- 0x1ba: 0x3c107, // itemref
+ 0x1a5: 0x59505, // table
+ 0x1a6: 0x4a907, // listing
+ 0x1a7: 0x18106, // legend
+ 0x1a9: 0x29b09, // challenge
+ 0x1aa: 0x24806, // figure
+ 0x1ab: 0xe605, // media
+ 0x1ae: 0xd904, // type
+ 0x1af: 0x3f04, // font
+ 0x1b0: 0x4da0e, // onmessageerror
+ 0x1b1: 0x37108, // seamless
+ 0x1b2: 0x8703, // dfn
+ 0x1b3: 0x5c705, // defer
+ 0x1b4: 0xc303, // low
+ 0x1b5: 0x19a03, // rtc
+ 0x1b6: 0x5230b, // onmouseover
+ 0x1b7: 0x2b20a, // novalidate
+ 0x1b8: 0x71c0a, // workertype
+ 0x1ba: 0x3cd07, // itemref
0x1bd: 0x1, // a
- 0x1be: 0x30003, // map
- 0x1bf: 0x11a0c, // ontimeupdate
- 0x1c0: 0x14707, // bgsound
+ 0x1be: 0x31803, // map
+ 0x1bf: 0x400c, // ontimeupdate
+ 0x1c0: 0x15e07, // bgsound
0x1c1: 0x3206, // keygen
0x1c2: 0x2705, // tbody
- 0x1c5: 0x64006, // onshow
+ 0x1c5: 0x64406, // onshow
0x1c7: 0x2501, // s
- 0x1c8: 0x4f07, // pattern
- 0x1cc: 0x13610, // oncanplaythrough
- 0x1ce: 0x2bf02, // dd
- 0x1cf: 0x6f306, // srcset
- 0x1d0: 0x15903, // big
- 0x1d2: 0x64d08, // sortable
- 0x1d3: 0x47407, // onkeyup
- 0x1d5: 0x59806, // onplay
- 0x1d7: 0x4ac04, // meta
- 0x1d8: 0x3f706, // ondrop
- 0x1da: 0x5fc08, // onscroll
- 0x1db: 0x1e30b, // crossorigin
- 0x1dc: 0x5670a, // onpageshow
+ 0x1c8: 0x6607, // pattern
+ 0x1cc: 0x14d10, // oncanplaythrough
+ 0x1ce: 0x2d702, // dd
+ 0x1cf: 0x6f906, // srcset
+ 0x1d0: 0x17003, // big
+ 0x1d2: 0x65108, // sortable
+ 0x1d3: 0x48007, // onkeyup
+ 0x1d5: 0x5a406, // onplay
+ 0x1d7: 0x4b804, // meta
+ 0x1d8: 0x40306, // ondrop
+ 0x1da: 0x60008, // onscroll
+ 0x1db: 0x1fb0b, // crossorigin
+ 0x1dc: 0x5730a, // onpageshow
0x1dd: 0x4, // abbr
- 0x1de: 0x5e02, // td
- 0x1df: 0x57f0f, // contenteditable
- 0x1e0: 0x25a06, // action
- 0x1e1: 0x10a0b, // playsinline
- 0x1e2: 0x42507, // onfocus
- 0x1e3: 0x2c808, // hreflang
- 0x1e5: 0x50a0a, // onmouseout
- 0x1e6: 0x5e607, // onreset
- 0x1e7: 0x10608, // autoplay
- 0x1ea: 0x67106, // scoped
+ 0x1de: 0x9202, // td
+ 0x1df: 0x58b0f, // contenteditable
+ 0x1e0: 0x27206, // action
+ 0x1e1: 0x1400b, // playsinline
+ 0x1e2: 0x43107, // onfocus
+ 0x1e3: 0x2e008, // hreflang
+ 0x1e5: 0x5160a, // onmouseout
+ 0x1e6: 0x5ea07, // onreset
+ 0x1e7: 0x13c08, // autoplay
+ 0x1e8: 0x63109, // onseeking
+ 0x1ea: 0x67506, // scoped
0x1ec: 0x30a, // radiogroup
- 0x1ee: 0x3740b, // contextmenu
- 0x1ef: 0x52209, // onmouseup
- 0x1f1: 0x2b206, // hgroup
- 0x1f2: 0x1f00f, // allowfullscreen
- 0x1f3: 0x4b208, // tabindex
- 0x1f6: 0x2f707, // isindex
+ 0x1ee: 0x3800b, // contextmenu
+ 0x1ef: 0x52e09, // onmouseup
+ 0x1f1: 0x2ca06, // hgroup
+ 0x1f2: 0x2080f, // allowfullscreen
+ 0x1f3: 0x4be08, // tabindex
+ 0x1f6: 0x30f07, // isindex
0x1f7: 0x1a0e, // accept-charset
- 0x1f8: 0x2960e, // formnovalidate
- 0x1fb: 0x1b90e, // annotation-xml
- 0x1fc: 0x4205, // embed
- 0x1fd: 0x20006, // script
- 0x1fe: 0x16206, // dialog
- 0x1ff: 0x1c707, // command
+ 0x1f8: 0x2ae0e, // formnovalidate
+ 0x1fb: 0x1c90e, // annotation-xml
+ 0x1fc: 0x6e05, // embed
+ 0x1fd: 0x21806, // script
+ 0x1fe: 0xbb06, // dialog
+ 0x1ff: 0x1d707, // command
}
-const atomText = "abbradiogrouparamainavalueaccept-charsetbodyaccesskeygenobro" +
- "wspanoembedetailsampatternoframesetdfnomoduleallowpaymentreq" +
- "uestrikeytypeallowusermediagroupictureversedirnameterubyaltf" +
- "ooterasyncanvasidefaultitleaudioncancelabelooptgroupingautof" +
- "ocusandboxmplaceholderautoplaysinlinebasefontimeupdateviacac" +
- "heightmlbdoncanplaythrough1bgsoundisabledivarbigblinkbdialog" +
- "blockquotebuttonabortrackindraggablegendcodefercolgrouplaint" +
- "extranslatecolorcolspannotation-xmlcommandcontrolshapecoords" +
- "lotcrossoriginsmallowfullscreenoscriptfacenterfieldsetfigcap" +
- "tionafterprintegrityfigurequiredforeignObjectforeignobjectfo" +
- "rmactionautocompleteerrorformenctypemustmatchallengeformmeth" +
- "odformnovalidatetimeformtargethgrouposterhiddenhigh2hreflang" +
- "http-equivideonclickiframeimageimglyph3isindexismappletitemt" +
- "ypemanifestrongmarqueematheadersortedmaxlength4minlength5mte" +
- "xtareadonlymultiplemutedoncloseamlessourceoncontextmenuitemi" +
- "doncopyoncuechangeoncutondblclickondragendondragenterondrage" +
- "xitemreferrerpolicyondragleaveondragoverondragstarticleondro" +
- "pzonemptiedondurationchangeonendedonerroronfocuspaceronhashc" +
- "hangeoninputmodeloninvalidonkeydownloadonkeypresspellchecked" +
- "onkeyupreloadonlanguagechangeonloadeddatalistingonloadedmeta" +
- "databindexonloadendonloadstartonmessageerroronmousedownonmou" +
- "seenteronmouseleaveonmousemoveonmouseoutputonmouseoveronmous" +
- "eupromptonmousewheelonofflineononlineonpagehidescitempropeno" +
- "nceonpageshowbronpastepublicontenteditableonpausemaponplayin" +
- "gonpopstateonprogressrcdoclassectionbluronratechangeonreject" +
- "ionhandledonresetonresizesrclangonscrollonsecuritypolicyviol" +
- "ationauxclickonseekedonseekingonselectedonshowidth6onsortabl" +
- "eonstalledonstorageonsubmitemscopedonsuspendontoggleonunhand" +
- "ledrejectionbeforeprintonunloadonvolumechangeonwaitingonwhee" +
- "loptimumalignmarkoptionbeforeunloaddressrcsetstylesummarysup" +
- "svgsystemplateworkertypewrap"
+const atomText = "abbradiogrouparamainavalueaccept-charsetbodyaccesskeygenobrb" +
+ "asefontimeupdateviacacheightmlabelooptgroupatternoembedetail" +
+ "sampictureversedfnoframesetdirnameterowspanomoduleacronymali" +
+ "gnmarkbdialogallowpaymentrequestrikeytypeallowusermediagroup" +
+ "ingaltfooterubyasyncanvasidefaultitleaudioncancelautofocusan" +
+ "dboxmplaceholderautoplaysinlinebdoncanplaythrough1bgsoundisa" +
+ "bledivarbigblinkindraggablegendblockquotebuttonabortcitempro" +
+ "penoncecolgrouplaintextrackcolorcolspannotation-xmlcommandco" +
+ "ntrolshapecoordslotranslatecrossoriginsmallowfullscreenoscri" +
+ "ptfacenterfieldsetfigcaptionafterprintegrityfigurequiredfore" +
+ "ignObjectforeignobjectformactionautocompleteerrorformenctype" +
+ "mustmatchallengeformmethodformnovalidatetimeformtargethgroup" +
+ "osterhiddenhigh2hreflanghttp-equivideonclickiframeimageimgly" +
+ "ph3isindexismappletitemtypemarqueematheadersortedmaxlength4m" +
+ "inlength5mtextareadonlymultiplemutedoncloseamlessourceoncont" +
+ "extmenuitemidoncopyoncuechangeoncutondblclickondragendondrag" +
+ "enterondragexitemreferrerpolicyondragleaveondragoverondragst" +
+ "articleondropzonemptiedondurationchangeonendedonerroronfocus" +
+ "paceronhashchangeoninputmodeloninvalidonkeydownloadonkeypres" +
+ "spellcheckedonkeyupreloadonlanguagechangeonloadeddatalisting" +
+ "onloadedmetadatabindexonloadendonloadstartonmessageerroronmo" +
+ "usedownonmouseenteronmouseleaveonmousemoveonmouseoutputonmou" +
+ "seoveronmouseupromptonmousewheelonofflineononlineonpagehides" +
+ "classectionbluronpageshowbronpastepublicontenteditableonpaus" +
+ "emaponplayingonpopstateonprogressrcdocodeferonratechangeonre" +
+ "jectionhandledonresetonresizesrclangonscrollonsecuritypolicy" +
+ "violationauxclickonseekedonseekingonselectedonshowidth6onsor" +
+ "tableonstalledonstorageonsubmitemscopedonsuspendontoggleonun" +
+ "handledrejectionbeforeprintonunloadonvolumechangeonwaitingon" +
+ "wheeloptimumanifestrongoptionbeforeunloaddressrcsetstylesumm" +
+ "arysupsvgsystemplateworkertypewrap"
diff --git a/vendor/golang.org/x/net/html/const.go b/vendor/golang.org/x/net/html/const.go
index b37e6212471..a3a918f0b38 100644
--- a/vendor/golang.org/x/net/html/const.go
+++ b/vendor/golang.org/x/net/html/const.go
@@ -4,7 +4,7 @@
package html
-// Section 12.2.3.2 of the HTML5 specification says "The following elements
+// Section 12.2.4.2 of the HTML5 specification says "The following elements
// have varying levels of special parsing rules".
// https://html.spec.whatwg.org/multipage/syntax.html#the-stack-of-open-elements
var isSpecialElementMap = map[string]bool{
@@ -97,8 +97,16 @@ func isSpecialElement(element *Node) bool {
switch element.Namespace {
case "", "html":
return isSpecialElementMap[element.Data]
+ case "math":
+ switch element.Data {
+ case "mi", "mo", "mn", "ms", "mtext", "annotation-xml":
+ return true
+ }
case "svg":
- return element.Data == "foreignObject"
+ switch element.Data {
+ case "foreignObject", "desc", "title":
+ return true
+ }
}
return false
}
diff --git a/vendor/golang.org/x/net/html/doc.go b/vendor/golang.org/x/net/html/doc.go
index 94f496874ab..822ed42a04c 100644
--- a/vendor/golang.org/x/net/html/doc.go
+++ b/vendor/golang.org/x/net/html/doc.go
@@ -49,18 +49,18 @@ call to Next. For example, to extract an HTML page's anchor text:
for {
tt := z.Next()
switch tt {
- case ErrorToken:
+ case html.ErrorToken:
return z.Err()
- case TextToken:
+ case html.TextToken:
if depth > 0 {
// emitBytes should copy the []byte it receives,
// if it doesn't process it immediately.
emitBytes(z.Text())
}
- case StartTagToken, EndTagToken:
+ case html.StartTagToken, html.EndTagToken:
tn, _ := z.TagName()
if len(tn) == 1 && tn[0] == 'a' {
- if tt == StartTagToken {
+ if tt == html.StartTagToken {
depth++
} else {
depth--
diff --git a/vendor/golang.org/x/net/html/entity.go b/vendor/golang.org/x/net/html/entity.go
index a50c04c60e9..b628880a014 100644
--- a/vendor/golang.org/x/net/html/entity.go
+++ b/vendor/golang.org/x/net/html/entity.go
@@ -75,2083 +75,2083 @@ var entity = map[string]rune{
"Copf;": '\U00002102',
"Coproduct;": '\U00002210',
"CounterClockwiseContourIntegral;": '\U00002233',
- "Cross;": '\U00002A2F',
- "Cscr;": '\U0001D49E',
- "Cup;": '\U000022D3',
- "CupCap;": '\U0000224D',
- "DD;": '\U00002145',
- "DDotrahd;": '\U00002911',
- "DJcy;": '\U00000402',
- "DScy;": '\U00000405',
- "DZcy;": '\U0000040F',
- "Dagger;": '\U00002021',
- "Darr;": '\U000021A1',
- "Dashv;": '\U00002AE4',
- "Dcaron;": '\U0000010E',
- "Dcy;": '\U00000414',
- "Del;": '\U00002207',
- "Delta;": '\U00000394',
- "Dfr;": '\U0001D507',
- "DiacriticalAcute;": '\U000000B4',
- "DiacriticalDot;": '\U000002D9',
- "DiacriticalDoubleAcute;": '\U000002DD',
- "DiacriticalGrave;": '\U00000060',
- "DiacriticalTilde;": '\U000002DC',
- "Diamond;": '\U000022C4',
- "DifferentialD;": '\U00002146',
- "Dopf;": '\U0001D53B',
- "Dot;": '\U000000A8',
- "DotDot;": '\U000020DC',
- "DotEqual;": '\U00002250',
- "DoubleContourIntegral;": '\U0000222F',
- "DoubleDot;": '\U000000A8',
- "DoubleDownArrow;": '\U000021D3',
- "DoubleLeftArrow;": '\U000021D0',
- "DoubleLeftRightArrow;": '\U000021D4',
- "DoubleLeftTee;": '\U00002AE4',
- "DoubleLongLeftArrow;": '\U000027F8',
- "DoubleLongLeftRightArrow;": '\U000027FA',
- "DoubleLongRightArrow;": '\U000027F9',
- "DoubleRightArrow;": '\U000021D2',
- "DoubleRightTee;": '\U000022A8',
- "DoubleUpArrow;": '\U000021D1',
- "DoubleUpDownArrow;": '\U000021D5',
- "DoubleVerticalBar;": '\U00002225',
- "DownArrow;": '\U00002193',
- "DownArrowBar;": '\U00002913',
- "DownArrowUpArrow;": '\U000021F5',
- "DownBreve;": '\U00000311',
- "DownLeftRightVector;": '\U00002950',
- "DownLeftTeeVector;": '\U0000295E',
- "DownLeftVector;": '\U000021BD',
- "DownLeftVectorBar;": '\U00002956',
- "DownRightTeeVector;": '\U0000295F',
- "DownRightVector;": '\U000021C1',
- "DownRightVectorBar;": '\U00002957',
- "DownTee;": '\U000022A4',
- "DownTeeArrow;": '\U000021A7',
- "Downarrow;": '\U000021D3',
- "Dscr;": '\U0001D49F',
- "Dstrok;": '\U00000110',
- "ENG;": '\U0000014A',
- "ETH;": '\U000000D0',
- "Eacute;": '\U000000C9',
- "Ecaron;": '\U0000011A',
- "Ecirc;": '\U000000CA',
- "Ecy;": '\U0000042D',
- "Edot;": '\U00000116',
- "Efr;": '\U0001D508',
- "Egrave;": '\U000000C8',
- "Element;": '\U00002208',
- "Emacr;": '\U00000112',
- "EmptySmallSquare;": '\U000025FB',
- "EmptyVerySmallSquare;": '\U000025AB',
- "Eogon;": '\U00000118',
- "Eopf;": '\U0001D53C',
- "Epsilon;": '\U00000395',
- "Equal;": '\U00002A75',
- "EqualTilde;": '\U00002242',
- "Equilibrium;": '\U000021CC',
- "Escr;": '\U00002130',
- "Esim;": '\U00002A73',
- "Eta;": '\U00000397',
- "Euml;": '\U000000CB',
- "Exists;": '\U00002203',
- "ExponentialE;": '\U00002147',
- "Fcy;": '\U00000424',
- "Ffr;": '\U0001D509',
- "FilledSmallSquare;": '\U000025FC',
- "FilledVerySmallSquare;": '\U000025AA',
- "Fopf;": '\U0001D53D',
- "ForAll;": '\U00002200',
- "Fouriertrf;": '\U00002131',
- "Fscr;": '\U00002131',
- "GJcy;": '\U00000403',
- "GT;": '\U0000003E',
- "Gamma;": '\U00000393',
- "Gammad;": '\U000003DC',
- "Gbreve;": '\U0000011E',
- "Gcedil;": '\U00000122',
- "Gcirc;": '\U0000011C',
- "Gcy;": '\U00000413',
- "Gdot;": '\U00000120',
- "Gfr;": '\U0001D50A',
- "Gg;": '\U000022D9',
- "Gopf;": '\U0001D53E',
- "GreaterEqual;": '\U00002265',
- "GreaterEqualLess;": '\U000022DB',
- "GreaterFullEqual;": '\U00002267',
- "GreaterGreater;": '\U00002AA2',
- "GreaterLess;": '\U00002277',
- "GreaterSlantEqual;": '\U00002A7E',
- "GreaterTilde;": '\U00002273',
- "Gscr;": '\U0001D4A2',
- "Gt;": '\U0000226B',
- "HARDcy;": '\U0000042A',
- "Hacek;": '\U000002C7',
- "Hat;": '\U0000005E',
- "Hcirc;": '\U00000124',
- "Hfr;": '\U0000210C',
- "HilbertSpace;": '\U0000210B',
- "Hopf;": '\U0000210D',
- "HorizontalLine;": '\U00002500',
- "Hscr;": '\U0000210B',
- "Hstrok;": '\U00000126',
- "HumpDownHump;": '\U0000224E',
- "HumpEqual;": '\U0000224F',
- "IEcy;": '\U00000415',
- "IJlig;": '\U00000132',
- "IOcy;": '\U00000401',
- "Iacute;": '\U000000CD',
- "Icirc;": '\U000000CE',
- "Icy;": '\U00000418',
- "Idot;": '\U00000130',
- "Ifr;": '\U00002111',
- "Igrave;": '\U000000CC',
- "Im;": '\U00002111',
- "Imacr;": '\U0000012A',
- "ImaginaryI;": '\U00002148',
- "Implies;": '\U000021D2',
- "Int;": '\U0000222C',
- "Integral;": '\U0000222B',
- "Intersection;": '\U000022C2',
- "InvisibleComma;": '\U00002063',
- "InvisibleTimes;": '\U00002062',
- "Iogon;": '\U0000012E',
- "Iopf;": '\U0001D540',
- "Iota;": '\U00000399',
- "Iscr;": '\U00002110',
- "Itilde;": '\U00000128',
- "Iukcy;": '\U00000406',
- "Iuml;": '\U000000CF',
- "Jcirc;": '\U00000134',
- "Jcy;": '\U00000419',
- "Jfr;": '\U0001D50D',
- "Jopf;": '\U0001D541',
- "Jscr;": '\U0001D4A5',
- "Jsercy;": '\U00000408',
- "Jukcy;": '\U00000404',
- "KHcy;": '\U00000425',
- "KJcy;": '\U0000040C',
- "Kappa;": '\U0000039A',
- "Kcedil;": '\U00000136',
- "Kcy;": '\U0000041A',
- "Kfr;": '\U0001D50E',
- "Kopf;": '\U0001D542',
- "Kscr;": '\U0001D4A6',
- "LJcy;": '\U00000409',
- "LT;": '\U0000003C',
- "Lacute;": '\U00000139',
- "Lambda;": '\U0000039B',
- "Lang;": '\U000027EA',
- "Laplacetrf;": '\U00002112',
- "Larr;": '\U0000219E',
- "Lcaron;": '\U0000013D',
- "Lcedil;": '\U0000013B',
- "Lcy;": '\U0000041B',
- "LeftAngleBracket;": '\U000027E8',
- "LeftArrow;": '\U00002190',
- "LeftArrowBar;": '\U000021E4',
- "LeftArrowRightArrow;": '\U000021C6',
- "LeftCeiling;": '\U00002308',
- "LeftDoubleBracket;": '\U000027E6',
- "LeftDownTeeVector;": '\U00002961',
- "LeftDownVector;": '\U000021C3',
- "LeftDownVectorBar;": '\U00002959',
- "LeftFloor;": '\U0000230A',
- "LeftRightArrow;": '\U00002194',
- "LeftRightVector;": '\U0000294E',
- "LeftTee;": '\U000022A3',
- "LeftTeeArrow;": '\U000021A4',
- "LeftTeeVector;": '\U0000295A',
- "LeftTriangle;": '\U000022B2',
- "LeftTriangleBar;": '\U000029CF',
- "LeftTriangleEqual;": '\U000022B4',
- "LeftUpDownVector;": '\U00002951',
- "LeftUpTeeVector;": '\U00002960',
- "LeftUpVector;": '\U000021BF',
- "LeftUpVectorBar;": '\U00002958',
- "LeftVector;": '\U000021BC',
- "LeftVectorBar;": '\U00002952',
- "Leftarrow;": '\U000021D0',
- "Leftrightarrow;": '\U000021D4',
- "LessEqualGreater;": '\U000022DA',
- "LessFullEqual;": '\U00002266',
- "LessGreater;": '\U00002276',
- "LessLess;": '\U00002AA1',
- "LessSlantEqual;": '\U00002A7D',
- "LessTilde;": '\U00002272',
- "Lfr;": '\U0001D50F',
- "Ll;": '\U000022D8',
- "Lleftarrow;": '\U000021DA',
- "Lmidot;": '\U0000013F',
- "LongLeftArrow;": '\U000027F5',
- "LongLeftRightArrow;": '\U000027F7',
- "LongRightArrow;": '\U000027F6',
- "Longleftarrow;": '\U000027F8',
- "Longleftrightarrow;": '\U000027FA',
- "Longrightarrow;": '\U000027F9',
- "Lopf;": '\U0001D543',
- "LowerLeftArrow;": '\U00002199',
- "LowerRightArrow;": '\U00002198',
- "Lscr;": '\U00002112',
- "Lsh;": '\U000021B0',
- "Lstrok;": '\U00000141',
- "Lt;": '\U0000226A',
- "Map;": '\U00002905',
- "Mcy;": '\U0000041C',
- "MediumSpace;": '\U0000205F',
- "Mellintrf;": '\U00002133',
- "Mfr;": '\U0001D510',
- "MinusPlus;": '\U00002213',
- "Mopf;": '\U0001D544',
- "Mscr;": '\U00002133',
- "Mu;": '\U0000039C',
- "NJcy;": '\U0000040A',
- "Nacute;": '\U00000143',
- "Ncaron;": '\U00000147',
- "Ncedil;": '\U00000145',
- "Ncy;": '\U0000041D',
- "NegativeMediumSpace;": '\U0000200B',
- "NegativeThickSpace;": '\U0000200B',
- "NegativeThinSpace;": '\U0000200B',
- "NegativeVeryThinSpace;": '\U0000200B',
- "NestedGreaterGreater;": '\U0000226B',
- "NestedLessLess;": '\U0000226A',
- "NewLine;": '\U0000000A',
- "Nfr;": '\U0001D511',
- "NoBreak;": '\U00002060',
- "NonBreakingSpace;": '\U000000A0',
- "Nopf;": '\U00002115',
- "Not;": '\U00002AEC',
- "NotCongruent;": '\U00002262',
- "NotCupCap;": '\U0000226D',
- "NotDoubleVerticalBar;": '\U00002226',
- "NotElement;": '\U00002209',
- "NotEqual;": '\U00002260',
- "NotExists;": '\U00002204',
- "NotGreater;": '\U0000226F',
- "NotGreaterEqual;": '\U00002271',
- "NotGreaterLess;": '\U00002279',
- "NotGreaterTilde;": '\U00002275',
- "NotLeftTriangle;": '\U000022EA',
- "NotLeftTriangleEqual;": '\U000022EC',
- "NotLess;": '\U0000226E',
- "NotLessEqual;": '\U00002270',
- "NotLessGreater;": '\U00002278',
- "NotLessTilde;": '\U00002274',
- "NotPrecedes;": '\U00002280',
- "NotPrecedesSlantEqual;": '\U000022E0',
- "NotReverseElement;": '\U0000220C',
- "NotRightTriangle;": '\U000022EB',
- "NotRightTriangleEqual;": '\U000022ED',
- "NotSquareSubsetEqual;": '\U000022E2',
- "NotSquareSupersetEqual;": '\U000022E3',
- "NotSubsetEqual;": '\U00002288',
- "NotSucceeds;": '\U00002281',
- "NotSucceedsSlantEqual;": '\U000022E1',
- "NotSupersetEqual;": '\U00002289',
- "NotTilde;": '\U00002241',
- "NotTildeEqual;": '\U00002244',
- "NotTildeFullEqual;": '\U00002247',
- "NotTildeTilde;": '\U00002249',
- "NotVerticalBar;": '\U00002224',
- "Nscr;": '\U0001D4A9',
- "Ntilde;": '\U000000D1',
- "Nu;": '\U0000039D',
- "OElig;": '\U00000152',
- "Oacute;": '\U000000D3',
- "Ocirc;": '\U000000D4',
- "Ocy;": '\U0000041E',
- "Odblac;": '\U00000150',
- "Ofr;": '\U0001D512',
- "Ograve;": '\U000000D2',
- "Omacr;": '\U0000014C',
- "Omega;": '\U000003A9',
- "Omicron;": '\U0000039F',
- "Oopf;": '\U0001D546',
- "OpenCurlyDoubleQuote;": '\U0000201C',
- "OpenCurlyQuote;": '\U00002018',
- "Or;": '\U00002A54',
- "Oscr;": '\U0001D4AA',
- "Oslash;": '\U000000D8',
- "Otilde;": '\U000000D5',
- "Otimes;": '\U00002A37',
- "Ouml;": '\U000000D6',
- "OverBar;": '\U0000203E',
- "OverBrace;": '\U000023DE',
- "OverBracket;": '\U000023B4',
- "OverParenthesis;": '\U000023DC',
- "PartialD;": '\U00002202',
- "Pcy;": '\U0000041F',
- "Pfr;": '\U0001D513',
- "Phi;": '\U000003A6',
- "Pi;": '\U000003A0',
- "PlusMinus;": '\U000000B1',
- "Poincareplane;": '\U0000210C',
- "Popf;": '\U00002119',
- "Pr;": '\U00002ABB',
- "Precedes;": '\U0000227A',
- "PrecedesEqual;": '\U00002AAF',
- "PrecedesSlantEqual;": '\U0000227C',
- "PrecedesTilde;": '\U0000227E',
- "Prime;": '\U00002033',
- "Product;": '\U0000220F',
- "Proportion;": '\U00002237',
- "Proportional;": '\U0000221D',
- "Pscr;": '\U0001D4AB',
- "Psi;": '\U000003A8',
- "QUOT;": '\U00000022',
- "Qfr;": '\U0001D514',
- "Qopf;": '\U0000211A',
- "Qscr;": '\U0001D4AC',
- "RBarr;": '\U00002910',
- "REG;": '\U000000AE',
- "Racute;": '\U00000154',
- "Rang;": '\U000027EB',
- "Rarr;": '\U000021A0',
- "Rarrtl;": '\U00002916',
- "Rcaron;": '\U00000158',
- "Rcedil;": '\U00000156',
- "Rcy;": '\U00000420',
- "Re;": '\U0000211C',
- "ReverseElement;": '\U0000220B',
- "ReverseEquilibrium;": '\U000021CB',
- "ReverseUpEquilibrium;": '\U0000296F',
- "Rfr;": '\U0000211C',
- "Rho;": '\U000003A1',
- "RightAngleBracket;": '\U000027E9',
- "RightArrow;": '\U00002192',
- "RightArrowBar;": '\U000021E5',
- "RightArrowLeftArrow;": '\U000021C4',
- "RightCeiling;": '\U00002309',
- "RightDoubleBracket;": '\U000027E7',
- "RightDownTeeVector;": '\U0000295D',
- "RightDownVector;": '\U000021C2',
- "RightDownVectorBar;": '\U00002955',
- "RightFloor;": '\U0000230B',
- "RightTee;": '\U000022A2',
- "RightTeeArrow;": '\U000021A6',
- "RightTeeVector;": '\U0000295B',
- "RightTriangle;": '\U000022B3',
- "RightTriangleBar;": '\U000029D0',
- "RightTriangleEqual;": '\U000022B5',
- "RightUpDownVector;": '\U0000294F',
- "RightUpTeeVector;": '\U0000295C',
- "RightUpVector;": '\U000021BE',
- "RightUpVectorBar;": '\U00002954',
- "RightVector;": '\U000021C0',
- "RightVectorBar;": '\U00002953',
- "Rightarrow;": '\U000021D2',
- "Ropf;": '\U0000211D',
- "RoundImplies;": '\U00002970',
- "Rrightarrow;": '\U000021DB',
- "Rscr;": '\U0000211B',
- "Rsh;": '\U000021B1',
- "RuleDelayed;": '\U000029F4',
- "SHCHcy;": '\U00000429',
- "SHcy;": '\U00000428',
- "SOFTcy;": '\U0000042C',
- "Sacute;": '\U0000015A',
- "Sc;": '\U00002ABC',
- "Scaron;": '\U00000160',
- "Scedil;": '\U0000015E',
- "Scirc;": '\U0000015C',
- "Scy;": '\U00000421',
- "Sfr;": '\U0001D516',
- "ShortDownArrow;": '\U00002193',
- "ShortLeftArrow;": '\U00002190',
- "ShortRightArrow;": '\U00002192',
- "ShortUpArrow;": '\U00002191',
- "Sigma;": '\U000003A3',
- "SmallCircle;": '\U00002218',
- "Sopf;": '\U0001D54A',
- "Sqrt;": '\U0000221A',
- "Square;": '\U000025A1',
- "SquareIntersection;": '\U00002293',
- "SquareSubset;": '\U0000228F',
- "SquareSubsetEqual;": '\U00002291',
- "SquareSuperset;": '\U00002290',
- "SquareSupersetEqual;": '\U00002292',
- "SquareUnion;": '\U00002294',
- "Sscr;": '\U0001D4AE',
- "Star;": '\U000022C6',
- "Sub;": '\U000022D0',
- "Subset;": '\U000022D0',
- "SubsetEqual;": '\U00002286',
- "Succeeds;": '\U0000227B',
- "SucceedsEqual;": '\U00002AB0',
- "SucceedsSlantEqual;": '\U0000227D',
- "SucceedsTilde;": '\U0000227F',
- "SuchThat;": '\U0000220B',
- "Sum;": '\U00002211',
- "Sup;": '\U000022D1',
- "Superset;": '\U00002283',
- "SupersetEqual;": '\U00002287',
- "Supset;": '\U000022D1',
- "THORN;": '\U000000DE',
- "TRADE;": '\U00002122',
- "TSHcy;": '\U0000040B',
- "TScy;": '\U00000426',
- "Tab;": '\U00000009',
- "Tau;": '\U000003A4',
- "Tcaron;": '\U00000164',
- "Tcedil;": '\U00000162',
- "Tcy;": '\U00000422',
- "Tfr;": '\U0001D517',
- "Therefore;": '\U00002234',
- "Theta;": '\U00000398',
- "ThinSpace;": '\U00002009',
- "Tilde;": '\U0000223C',
- "TildeEqual;": '\U00002243',
- "TildeFullEqual;": '\U00002245',
- "TildeTilde;": '\U00002248',
- "Topf;": '\U0001D54B',
- "TripleDot;": '\U000020DB',
- "Tscr;": '\U0001D4AF',
- "Tstrok;": '\U00000166',
- "Uacute;": '\U000000DA',
- "Uarr;": '\U0000219F',
- "Uarrocir;": '\U00002949',
- "Ubrcy;": '\U0000040E',
- "Ubreve;": '\U0000016C',
- "Ucirc;": '\U000000DB',
- "Ucy;": '\U00000423',
- "Udblac;": '\U00000170',
- "Ufr;": '\U0001D518',
- "Ugrave;": '\U000000D9',
- "Umacr;": '\U0000016A',
- "UnderBar;": '\U0000005F',
- "UnderBrace;": '\U000023DF',
- "UnderBracket;": '\U000023B5',
- "UnderParenthesis;": '\U000023DD',
- "Union;": '\U000022C3',
- "UnionPlus;": '\U0000228E',
- "Uogon;": '\U00000172',
- "Uopf;": '\U0001D54C',
- "UpArrow;": '\U00002191',
- "UpArrowBar;": '\U00002912',
- "UpArrowDownArrow;": '\U000021C5',
- "UpDownArrow;": '\U00002195',
- "UpEquilibrium;": '\U0000296E',
- "UpTee;": '\U000022A5',
- "UpTeeArrow;": '\U000021A5',
- "Uparrow;": '\U000021D1',
- "Updownarrow;": '\U000021D5',
- "UpperLeftArrow;": '\U00002196',
- "UpperRightArrow;": '\U00002197',
- "Upsi;": '\U000003D2',
- "Upsilon;": '\U000003A5',
- "Uring;": '\U0000016E',
- "Uscr;": '\U0001D4B0',
- "Utilde;": '\U00000168',
- "Uuml;": '\U000000DC',
- "VDash;": '\U000022AB',
- "Vbar;": '\U00002AEB',
- "Vcy;": '\U00000412',
- "Vdash;": '\U000022A9',
- "Vdashl;": '\U00002AE6',
- "Vee;": '\U000022C1',
- "Verbar;": '\U00002016',
- "Vert;": '\U00002016',
- "VerticalBar;": '\U00002223',
- "VerticalLine;": '\U0000007C',
- "VerticalSeparator;": '\U00002758',
- "VerticalTilde;": '\U00002240',
- "VeryThinSpace;": '\U0000200A',
- "Vfr;": '\U0001D519',
- "Vopf;": '\U0001D54D',
- "Vscr;": '\U0001D4B1',
- "Vvdash;": '\U000022AA',
- "Wcirc;": '\U00000174',
- "Wedge;": '\U000022C0',
- "Wfr;": '\U0001D51A',
- "Wopf;": '\U0001D54E',
- "Wscr;": '\U0001D4B2',
- "Xfr;": '\U0001D51B',
- "Xi;": '\U0000039E',
- "Xopf;": '\U0001D54F',
- "Xscr;": '\U0001D4B3',
- "YAcy;": '\U0000042F',
- "YIcy;": '\U00000407',
- "YUcy;": '\U0000042E',
- "Yacute;": '\U000000DD',
- "Ycirc;": '\U00000176',
- "Ycy;": '\U0000042B',
- "Yfr;": '\U0001D51C',
- "Yopf;": '\U0001D550',
- "Yscr;": '\U0001D4B4',
- "Yuml;": '\U00000178',
- "ZHcy;": '\U00000416',
- "Zacute;": '\U00000179',
- "Zcaron;": '\U0000017D',
- "Zcy;": '\U00000417',
- "Zdot;": '\U0000017B',
- "ZeroWidthSpace;": '\U0000200B',
- "Zeta;": '\U00000396',
- "Zfr;": '\U00002128',
- "Zopf;": '\U00002124',
- "Zscr;": '\U0001D4B5',
- "aacute;": '\U000000E1',
- "abreve;": '\U00000103',
- "ac;": '\U0000223E',
- "acd;": '\U0000223F',
- "acirc;": '\U000000E2',
- "acute;": '\U000000B4',
- "acy;": '\U00000430',
- "aelig;": '\U000000E6',
- "af;": '\U00002061',
- "afr;": '\U0001D51E',
- "agrave;": '\U000000E0',
- "alefsym;": '\U00002135',
- "aleph;": '\U00002135',
- "alpha;": '\U000003B1',
- "amacr;": '\U00000101',
- "amalg;": '\U00002A3F',
- "amp;": '\U00000026',
- "and;": '\U00002227',
- "andand;": '\U00002A55',
- "andd;": '\U00002A5C',
- "andslope;": '\U00002A58',
- "andv;": '\U00002A5A',
- "ang;": '\U00002220',
- "ange;": '\U000029A4',
- "angle;": '\U00002220',
- "angmsd;": '\U00002221',
- "angmsdaa;": '\U000029A8',
- "angmsdab;": '\U000029A9',
- "angmsdac;": '\U000029AA',
- "angmsdad;": '\U000029AB',
- "angmsdae;": '\U000029AC',
- "angmsdaf;": '\U000029AD',
- "angmsdag;": '\U000029AE',
- "angmsdah;": '\U000029AF',
- "angrt;": '\U0000221F',
- "angrtvb;": '\U000022BE',
- "angrtvbd;": '\U0000299D',
- "angsph;": '\U00002222',
- "angst;": '\U000000C5',
- "angzarr;": '\U0000237C',
- "aogon;": '\U00000105',
- "aopf;": '\U0001D552',
- "ap;": '\U00002248',
- "apE;": '\U00002A70',
- "apacir;": '\U00002A6F',
- "ape;": '\U0000224A',
- "apid;": '\U0000224B',
- "apos;": '\U00000027',
- "approx;": '\U00002248',
- "approxeq;": '\U0000224A',
- "aring;": '\U000000E5',
- "ascr;": '\U0001D4B6',
- "ast;": '\U0000002A',
- "asymp;": '\U00002248',
- "asympeq;": '\U0000224D',
- "atilde;": '\U000000E3',
- "auml;": '\U000000E4',
- "awconint;": '\U00002233',
- "awint;": '\U00002A11',
- "bNot;": '\U00002AED',
- "backcong;": '\U0000224C',
- "backepsilon;": '\U000003F6',
- "backprime;": '\U00002035',
- "backsim;": '\U0000223D',
- "backsimeq;": '\U000022CD',
- "barvee;": '\U000022BD',
- "barwed;": '\U00002305',
- "barwedge;": '\U00002305',
- "bbrk;": '\U000023B5',
- "bbrktbrk;": '\U000023B6',
- "bcong;": '\U0000224C',
- "bcy;": '\U00000431',
- "bdquo;": '\U0000201E',
- "becaus;": '\U00002235',
- "because;": '\U00002235',
- "bemptyv;": '\U000029B0',
- "bepsi;": '\U000003F6',
- "bernou;": '\U0000212C',
- "beta;": '\U000003B2',
- "beth;": '\U00002136',
- "between;": '\U0000226C',
- "bfr;": '\U0001D51F',
- "bigcap;": '\U000022C2',
- "bigcirc;": '\U000025EF',
- "bigcup;": '\U000022C3',
- "bigodot;": '\U00002A00',
- "bigoplus;": '\U00002A01',
- "bigotimes;": '\U00002A02',
- "bigsqcup;": '\U00002A06',
- "bigstar;": '\U00002605',
- "bigtriangledown;": '\U000025BD',
- "bigtriangleup;": '\U000025B3',
- "biguplus;": '\U00002A04',
- "bigvee;": '\U000022C1',
- "bigwedge;": '\U000022C0',
- "bkarow;": '\U0000290D',
- "blacklozenge;": '\U000029EB',
- "blacksquare;": '\U000025AA',
- "blacktriangle;": '\U000025B4',
- "blacktriangledown;": '\U000025BE',
- "blacktriangleleft;": '\U000025C2',
- "blacktriangleright;": '\U000025B8',
- "blank;": '\U00002423',
- "blk12;": '\U00002592',
- "blk14;": '\U00002591',
- "blk34;": '\U00002593',
- "block;": '\U00002588',
- "bnot;": '\U00002310',
- "bopf;": '\U0001D553',
- "bot;": '\U000022A5',
- "bottom;": '\U000022A5',
- "bowtie;": '\U000022C8',
- "boxDL;": '\U00002557',
- "boxDR;": '\U00002554',
- "boxDl;": '\U00002556',
- "boxDr;": '\U00002553',
- "boxH;": '\U00002550',
- "boxHD;": '\U00002566',
- "boxHU;": '\U00002569',
- "boxHd;": '\U00002564',
- "boxHu;": '\U00002567',
- "boxUL;": '\U0000255D',
- "boxUR;": '\U0000255A',
- "boxUl;": '\U0000255C',
- "boxUr;": '\U00002559',
- "boxV;": '\U00002551',
- "boxVH;": '\U0000256C',
- "boxVL;": '\U00002563',
- "boxVR;": '\U00002560',
- "boxVh;": '\U0000256B',
- "boxVl;": '\U00002562',
- "boxVr;": '\U0000255F',
- "boxbox;": '\U000029C9',
- "boxdL;": '\U00002555',
- "boxdR;": '\U00002552',
- "boxdl;": '\U00002510',
- "boxdr;": '\U0000250C',
- "boxh;": '\U00002500',
- "boxhD;": '\U00002565',
- "boxhU;": '\U00002568',
- "boxhd;": '\U0000252C',
- "boxhu;": '\U00002534',
- "boxminus;": '\U0000229F',
- "boxplus;": '\U0000229E',
- "boxtimes;": '\U000022A0',
- "boxuL;": '\U0000255B',
- "boxuR;": '\U00002558',
- "boxul;": '\U00002518',
- "boxur;": '\U00002514',
- "boxv;": '\U00002502',
- "boxvH;": '\U0000256A',
- "boxvL;": '\U00002561',
- "boxvR;": '\U0000255E',
- "boxvh;": '\U0000253C',
- "boxvl;": '\U00002524',
- "boxvr;": '\U0000251C',
- "bprime;": '\U00002035',
- "breve;": '\U000002D8',
- "brvbar;": '\U000000A6',
- "bscr;": '\U0001D4B7',
- "bsemi;": '\U0000204F',
- "bsim;": '\U0000223D',
- "bsime;": '\U000022CD',
- "bsol;": '\U0000005C',
- "bsolb;": '\U000029C5',
- "bsolhsub;": '\U000027C8',
- "bull;": '\U00002022',
- "bullet;": '\U00002022',
- "bump;": '\U0000224E',
- "bumpE;": '\U00002AAE',
- "bumpe;": '\U0000224F',
- "bumpeq;": '\U0000224F',
- "cacute;": '\U00000107',
- "cap;": '\U00002229',
- "capand;": '\U00002A44',
- "capbrcup;": '\U00002A49',
- "capcap;": '\U00002A4B',
- "capcup;": '\U00002A47',
- "capdot;": '\U00002A40',
- "caret;": '\U00002041',
- "caron;": '\U000002C7',
- "ccaps;": '\U00002A4D',
- "ccaron;": '\U0000010D',
- "ccedil;": '\U000000E7',
- "ccirc;": '\U00000109',
- "ccups;": '\U00002A4C',
- "ccupssm;": '\U00002A50',
- "cdot;": '\U0000010B',
- "cedil;": '\U000000B8',
- "cemptyv;": '\U000029B2',
- "cent;": '\U000000A2',
- "centerdot;": '\U000000B7',
- "cfr;": '\U0001D520',
- "chcy;": '\U00000447',
- "check;": '\U00002713',
- "checkmark;": '\U00002713',
- "chi;": '\U000003C7',
- "cir;": '\U000025CB',
- "cirE;": '\U000029C3',
- "circ;": '\U000002C6',
- "circeq;": '\U00002257',
- "circlearrowleft;": '\U000021BA',
- "circlearrowright;": '\U000021BB',
- "circledR;": '\U000000AE',
- "circledS;": '\U000024C8',
- "circledast;": '\U0000229B',
- "circledcirc;": '\U0000229A',
- "circleddash;": '\U0000229D',
- "cire;": '\U00002257',
- "cirfnint;": '\U00002A10',
- "cirmid;": '\U00002AEF',
- "cirscir;": '\U000029C2',
- "clubs;": '\U00002663',
- "clubsuit;": '\U00002663',
- "colon;": '\U0000003A',
- "colone;": '\U00002254',
- "coloneq;": '\U00002254',
- "comma;": '\U0000002C',
- "commat;": '\U00000040',
- "comp;": '\U00002201',
- "compfn;": '\U00002218',
- "complement;": '\U00002201',
- "complexes;": '\U00002102',
- "cong;": '\U00002245',
- "congdot;": '\U00002A6D',
- "conint;": '\U0000222E',
- "copf;": '\U0001D554',
- "coprod;": '\U00002210',
- "copy;": '\U000000A9',
- "copysr;": '\U00002117',
- "crarr;": '\U000021B5',
- "cross;": '\U00002717',
- "cscr;": '\U0001D4B8',
- "csub;": '\U00002ACF',
- "csube;": '\U00002AD1',
- "csup;": '\U00002AD0',
- "csupe;": '\U00002AD2',
- "ctdot;": '\U000022EF',
- "cudarrl;": '\U00002938',
- "cudarrr;": '\U00002935',
- "cuepr;": '\U000022DE',
- "cuesc;": '\U000022DF',
- "cularr;": '\U000021B6',
- "cularrp;": '\U0000293D',
- "cup;": '\U0000222A',
- "cupbrcap;": '\U00002A48',
- "cupcap;": '\U00002A46',
- "cupcup;": '\U00002A4A',
- "cupdot;": '\U0000228D',
- "cupor;": '\U00002A45',
- "curarr;": '\U000021B7',
- "curarrm;": '\U0000293C',
- "curlyeqprec;": '\U000022DE',
- "curlyeqsucc;": '\U000022DF',
- "curlyvee;": '\U000022CE',
- "curlywedge;": '\U000022CF',
- "curren;": '\U000000A4',
- "curvearrowleft;": '\U000021B6',
- "curvearrowright;": '\U000021B7',
- "cuvee;": '\U000022CE',
- "cuwed;": '\U000022CF',
- "cwconint;": '\U00002232',
- "cwint;": '\U00002231',
- "cylcty;": '\U0000232D',
- "dArr;": '\U000021D3',
- "dHar;": '\U00002965',
- "dagger;": '\U00002020',
- "daleth;": '\U00002138',
- "darr;": '\U00002193',
- "dash;": '\U00002010',
- "dashv;": '\U000022A3',
- "dbkarow;": '\U0000290F',
- "dblac;": '\U000002DD',
- "dcaron;": '\U0000010F',
- "dcy;": '\U00000434',
- "dd;": '\U00002146',
- "ddagger;": '\U00002021',
- "ddarr;": '\U000021CA',
- "ddotseq;": '\U00002A77',
- "deg;": '\U000000B0',
- "delta;": '\U000003B4',
- "demptyv;": '\U000029B1',
- "dfisht;": '\U0000297F',
- "dfr;": '\U0001D521',
- "dharl;": '\U000021C3',
- "dharr;": '\U000021C2',
- "diam;": '\U000022C4',
- "diamond;": '\U000022C4',
- "diamondsuit;": '\U00002666',
- "diams;": '\U00002666',
- "die;": '\U000000A8',
- "digamma;": '\U000003DD',
- "disin;": '\U000022F2',
- "div;": '\U000000F7',
- "divide;": '\U000000F7',
- "divideontimes;": '\U000022C7',
- "divonx;": '\U000022C7',
- "djcy;": '\U00000452',
- "dlcorn;": '\U0000231E',
- "dlcrop;": '\U0000230D',
- "dollar;": '\U00000024',
- "dopf;": '\U0001D555',
- "dot;": '\U000002D9',
- "doteq;": '\U00002250',
- "doteqdot;": '\U00002251',
- "dotminus;": '\U00002238',
- "dotplus;": '\U00002214',
- "dotsquare;": '\U000022A1',
- "doublebarwedge;": '\U00002306',
- "downarrow;": '\U00002193',
- "downdownarrows;": '\U000021CA',
- "downharpoonleft;": '\U000021C3',
- "downharpoonright;": '\U000021C2',
- "drbkarow;": '\U00002910',
- "drcorn;": '\U0000231F',
- "drcrop;": '\U0000230C',
- "dscr;": '\U0001D4B9',
- "dscy;": '\U00000455',
- "dsol;": '\U000029F6',
- "dstrok;": '\U00000111',
- "dtdot;": '\U000022F1',
- "dtri;": '\U000025BF',
- "dtrif;": '\U000025BE',
- "duarr;": '\U000021F5',
- "duhar;": '\U0000296F',
- "dwangle;": '\U000029A6',
- "dzcy;": '\U0000045F',
- "dzigrarr;": '\U000027FF',
- "eDDot;": '\U00002A77',
- "eDot;": '\U00002251',
- "eacute;": '\U000000E9',
- "easter;": '\U00002A6E',
- "ecaron;": '\U0000011B',
- "ecir;": '\U00002256',
- "ecirc;": '\U000000EA',
- "ecolon;": '\U00002255',
- "ecy;": '\U0000044D',
- "edot;": '\U00000117',
- "ee;": '\U00002147',
- "efDot;": '\U00002252',
- "efr;": '\U0001D522',
- "eg;": '\U00002A9A',
- "egrave;": '\U000000E8',
- "egs;": '\U00002A96',
- "egsdot;": '\U00002A98',
- "el;": '\U00002A99',
- "elinters;": '\U000023E7',
- "ell;": '\U00002113',
- "els;": '\U00002A95',
- "elsdot;": '\U00002A97',
- "emacr;": '\U00000113',
- "empty;": '\U00002205',
- "emptyset;": '\U00002205',
- "emptyv;": '\U00002205',
- "emsp;": '\U00002003',
- "emsp13;": '\U00002004',
- "emsp14;": '\U00002005',
- "eng;": '\U0000014B',
- "ensp;": '\U00002002',
- "eogon;": '\U00000119',
- "eopf;": '\U0001D556',
- "epar;": '\U000022D5',
- "eparsl;": '\U000029E3',
- "eplus;": '\U00002A71',
- "epsi;": '\U000003B5',
- "epsilon;": '\U000003B5',
- "epsiv;": '\U000003F5',
- "eqcirc;": '\U00002256',
- "eqcolon;": '\U00002255',
- "eqsim;": '\U00002242',
- "eqslantgtr;": '\U00002A96',
- "eqslantless;": '\U00002A95',
- "equals;": '\U0000003D',
- "equest;": '\U0000225F',
- "equiv;": '\U00002261',
- "equivDD;": '\U00002A78',
- "eqvparsl;": '\U000029E5',
- "erDot;": '\U00002253',
- "erarr;": '\U00002971',
- "escr;": '\U0000212F',
- "esdot;": '\U00002250',
- "esim;": '\U00002242',
- "eta;": '\U000003B7',
- "eth;": '\U000000F0',
- "euml;": '\U000000EB',
- "euro;": '\U000020AC',
- "excl;": '\U00000021',
- "exist;": '\U00002203',
- "expectation;": '\U00002130',
- "exponentiale;": '\U00002147',
- "fallingdotseq;": '\U00002252',
- "fcy;": '\U00000444',
- "female;": '\U00002640',
- "ffilig;": '\U0000FB03',
- "fflig;": '\U0000FB00',
- "ffllig;": '\U0000FB04',
- "ffr;": '\U0001D523',
- "filig;": '\U0000FB01',
- "flat;": '\U0000266D',
- "fllig;": '\U0000FB02',
- "fltns;": '\U000025B1',
- "fnof;": '\U00000192',
- "fopf;": '\U0001D557',
- "forall;": '\U00002200',
- "fork;": '\U000022D4',
- "forkv;": '\U00002AD9',
- "fpartint;": '\U00002A0D',
- "frac12;": '\U000000BD',
- "frac13;": '\U00002153',
- "frac14;": '\U000000BC',
- "frac15;": '\U00002155',
- "frac16;": '\U00002159',
- "frac18;": '\U0000215B',
- "frac23;": '\U00002154',
- "frac25;": '\U00002156',
- "frac34;": '\U000000BE',
- "frac35;": '\U00002157',
- "frac38;": '\U0000215C',
- "frac45;": '\U00002158',
- "frac56;": '\U0000215A',
- "frac58;": '\U0000215D',
- "frac78;": '\U0000215E',
- "frasl;": '\U00002044',
- "frown;": '\U00002322',
- "fscr;": '\U0001D4BB',
- "gE;": '\U00002267',
- "gEl;": '\U00002A8C',
- "gacute;": '\U000001F5',
- "gamma;": '\U000003B3',
- "gammad;": '\U000003DD',
- "gap;": '\U00002A86',
- "gbreve;": '\U0000011F',
- "gcirc;": '\U0000011D',
- "gcy;": '\U00000433',
- "gdot;": '\U00000121',
- "ge;": '\U00002265',
- "gel;": '\U000022DB',
- "geq;": '\U00002265',
- "geqq;": '\U00002267',
- "geqslant;": '\U00002A7E',
- "ges;": '\U00002A7E',
- "gescc;": '\U00002AA9',
- "gesdot;": '\U00002A80',
- "gesdoto;": '\U00002A82',
- "gesdotol;": '\U00002A84',
- "gesles;": '\U00002A94',
- "gfr;": '\U0001D524',
- "gg;": '\U0000226B',
- "ggg;": '\U000022D9',
- "gimel;": '\U00002137',
- "gjcy;": '\U00000453',
- "gl;": '\U00002277',
- "glE;": '\U00002A92',
- "gla;": '\U00002AA5',
- "glj;": '\U00002AA4',
- "gnE;": '\U00002269',
- "gnap;": '\U00002A8A',
- "gnapprox;": '\U00002A8A',
- "gne;": '\U00002A88',
- "gneq;": '\U00002A88',
- "gneqq;": '\U00002269',
- "gnsim;": '\U000022E7',
- "gopf;": '\U0001D558',
- "grave;": '\U00000060',
- "gscr;": '\U0000210A',
- "gsim;": '\U00002273',
- "gsime;": '\U00002A8E',
- "gsiml;": '\U00002A90',
- "gt;": '\U0000003E',
- "gtcc;": '\U00002AA7',
- "gtcir;": '\U00002A7A',
- "gtdot;": '\U000022D7',
- "gtlPar;": '\U00002995',
- "gtquest;": '\U00002A7C',
- "gtrapprox;": '\U00002A86',
- "gtrarr;": '\U00002978',
- "gtrdot;": '\U000022D7',
- "gtreqless;": '\U000022DB',
- "gtreqqless;": '\U00002A8C',
- "gtrless;": '\U00002277',
- "gtrsim;": '\U00002273',
- "hArr;": '\U000021D4',
- "hairsp;": '\U0000200A',
- "half;": '\U000000BD',
- "hamilt;": '\U0000210B',
- "hardcy;": '\U0000044A',
- "harr;": '\U00002194',
- "harrcir;": '\U00002948',
- "harrw;": '\U000021AD',
- "hbar;": '\U0000210F',
- "hcirc;": '\U00000125',
- "hearts;": '\U00002665',
- "heartsuit;": '\U00002665',
- "hellip;": '\U00002026',
- "hercon;": '\U000022B9',
- "hfr;": '\U0001D525',
- "hksearow;": '\U00002925',
- "hkswarow;": '\U00002926',
- "hoarr;": '\U000021FF',
- "homtht;": '\U0000223B',
- "hookleftarrow;": '\U000021A9',
- "hookrightarrow;": '\U000021AA',
- "hopf;": '\U0001D559',
- "horbar;": '\U00002015',
- "hscr;": '\U0001D4BD',
- "hslash;": '\U0000210F',
- "hstrok;": '\U00000127',
- "hybull;": '\U00002043',
- "hyphen;": '\U00002010',
- "iacute;": '\U000000ED',
- "ic;": '\U00002063',
- "icirc;": '\U000000EE',
- "icy;": '\U00000438',
- "iecy;": '\U00000435',
- "iexcl;": '\U000000A1',
- "iff;": '\U000021D4',
- "ifr;": '\U0001D526',
- "igrave;": '\U000000EC',
- "ii;": '\U00002148',
- "iiiint;": '\U00002A0C',
- "iiint;": '\U0000222D',
- "iinfin;": '\U000029DC',
- "iiota;": '\U00002129',
- "ijlig;": '\U00000133',
- "imacr;": '\U0000012B',
- "image;": '\U00002111',
- "imagline;": '\U00002110',
- "imagpart;": '\U00002111',
- "imath;": '\U00000131',
- "imof;": '\U000022B7',
- "imped;": '\U000001B5',
- "in;": '\U00002208',
- "incare;": '\U00002105',
- "infin;": '\U0000221E',
- "infintie;": '\U000029DD',
- "inodot;": '\U00000131',
- "int;": '\U0000222B',
- "intcal;": '\U000022BA',
- "integers;": '\U00002124',
- "intercal;": '\U000022BA',
- "intlarhk;": '\U00002A17',
- "intprod;": '\U00002A3C',
- "iocy;": '\U00000451',
- "iogon;": '\U0000012F',
- "iopf;": '\U0001D55A',
- "iota;": '\U000003B9',
- "iprod;": '\U00002A3C',
- "iquest;": '\U000000BF',
- "iscr;": '\U0001D4BE',
- "isin;": '\U00002208',
- "isinE;": '\U000022F9',
- "isindot;": '\U000022F5',
- "isins;": '\U000022F4',
- "isinsv;": '\U000022F3',
- "isinv;": '\U00002208',
- "it;": '\U00002062',
- "itilde;": '\U00000129',
- "iukcy;": '\U00000456',
- "iuml;": '\U000000EF',
- "jcirc;": '\U00000135',
- "jcy;": '\U00000439',
- "jfr;": '\U0001D527',
- "jmath;": '\U00000237',
- "jopf;": '\U0001D55B',
- "jscr;": '\U0001D4BF',
- "jsercy;": '\U00000458',
- "jukcy;": '\U00000454',
- "kappa;": '\U000003BA',
- "kappav;": '\U000003F0',
- "kcedil;": '\U00000137',
- "kcy;": '\U0000043A',
- "kfr;": '\U0001D528',
- "kgreen;": '\U00000138',
- "khcy;": '\U00000445',
- "kjcy;": '\U0000045C',
- "kopf;": '\U0001D55C',
- "kscr;": '\U0001D4C0',
- "lAarr;": '\U000021DA',
- "lArr;": '\U000021D0',
- "lAtail;": '\U0000291B',
- "lBarr;": '\U0000290E',
- "lE;": '\U00002266',
- "lEg;": '\U00002A8B',
- "lHar;": '\U00002962',
- "lacute;": '\U0000013A',
- "laemptyv;": '\U000029B4',
- "lagran;": '\U00002112',
- "lambda;": '\U000003BB',
- "lang;": '\U000027E8',
- "langd;": '\U00002991',
- "langle;": '\U000027E8',
- "lap;": '\U00002A85',
- "laquo;": '\U000000AB',
- "larr;": '\U00002190',
- "larrb;": '\U000021E4',
- "larrbfs;": '\U0000291F',
- "larrfs;": '\U0000291D',
- "larrhk;": '\U000021A9',
- "larrlp;": '\U000021AB',
- "larrpl;": '\U00002939',
- "larrsim;": '\U00002973',
- "larrtl;": '\U000021A2',
- "lat;": '\U00002AAB',
- "latail;": '\U00002919',
- "late;": '\U00002AAD',
- "lbarr;": '\U0000290C',
- "lbbrk;": '\U00002772',
- "lbrace;": '\U0000007B',
- "lbrack;": '\U0000005B',
- "lbrke;": '\U0000298B',
- "lbrksld;": '\U0000298F',
- "lbrkslu;": '\U0000298D',
- "lcaron;": '\U0000013E',
- "lcedil;": '\U0000013C',
- "lceil;": '\U00002308',
- "lcub;": '\U0000007B',
- "lcy;": '\U0000043B',
- "ldca;": '\U00002936',
- "ldquo;": '\U0000201C',
- "ldquor;": '\U0000201E',
- "ldrdhar;": '\U00002967',
- "ldrushar;": '\U0000294B',
- "ldsh;": '\U000021B2',
- "le;": '\U00002264',
- "leftarrow;": '\U00002190',
- "leftarrowtail;": '\U000021A2',
- "leftharpoondown;": '\U000021BD',
- "leftharpoonup;": '\U000021BC',
- "leftleftarrows;": '\U000021C7',
- "leftrightarrow;": '\U00002194',
- "leftrightarrows;": '\U000021C6',
- "leftrightharpoons;": '\U000021CB',
- "leftrightsquigarrow;": '\U000021AD',
- "leftthreetimes;": '\U000022CB',
- "leg;": '\U000022DA',
- "leq;": '\U00002264',
- "leqq;": '\U00002266',
- "leqslant;": '\U00002A7D',
- "les;": '\U00002A7D',
- "lescc;": '\U00002AA8',
- "lesdot;": '\U00002A7F',
- "lesdoto;": '\U00002A81',
- "lesdotor;": '\U00002A83',
- "lesges;": '\U00002A93',
- "lessapprox;": '\U00002A85',
- "lessdot;": '\U000022D6',
- "lesseqgtr;": '\U000022DA',
- "lesseqqgtr;": '\U00002A8B',
- "lessgtr;": '\U00002276',
- "lesssim;": '\U00002272',
- "lfisht;": '\U0000297C',
- "lfloor;": '\U0000230A',
- "lfr;": '\U0001D529',
- "lg;": '\U00002276',
- "lgE;": '\U00002A91',
- "lhard;": '\U000021BD',
- "lharu;": '\U000021BC',
- "lharul;": '\U0000296A',
- "lhblk;": '\U00002584',
- "ljcy;": '\U00000459',
- "ll;": '\U0000226A',
- "llarr;": '\U000021C7',
- "llcorner;": '\U0000231E',
- "llhard;": '\U0000296B',
- "lltri;": '\U000025FA',
- "lmidot;": '\U00000140',
- "lmoust;": '\U000023B0',
- "lmoustache;": '\U000023B0',
- "lnE;": '\U00002268',
- "lnap;": '\U00002A89',
- "lnapprox;": '\U00002A89',
- "lne;": '\U00002A87',
- "lneq;": '\U00002A87',
- "lneqq;": '\U00002268',
- "lnsim;": '\U000022E6',
- "loang;": '\U000027EC',
- "loarr;": '\U000021FD',
- "lobrk;": '\U000027E6',
- "longleftarrow;": '\U000027F5',
- "longleftrightarrow;": '\U000027F7',
- "longmapsto;": '\U000027FC',
- "longrightarrow;": '\U000027F6',
- "looparrowleft;": '\U000021AB',
- "looparrowright;": '\U000021AC',
- "lopar;": '\U00002985',
- "lopf;": '\U0001D55D',
- "loplus;": '\U00002A2D',
- "lotimes;": '\U00002A34',
- "lowast;": '\U00002217',
- "lowbar;": '\U0000005F',
- "loz;": '\U000025CA',
- "lozenge;": '\U000025CA',
- "lozf;": '\U000029EB',
- "lpar;": '\U00000028',
- "lparlt;": '\U00002993',
- "lrarr;": '\U000021C6',
- "lrcorner;": '\U0000231F',
- "lrhar;": '\U000021CB',
- "lrhard;": '\U0000296D',
- "lrm;": '\U0000200E',
- "lrtri;": '\U000022BF',
- "lsaquo;": '\U00002039',
- "lscr;": '\U0001D4C1',
- "lsh;": '\U000021B0',
- "lsim;": '\U00002272',
- "lsime;": '\U00002A8D',
- "lsimg;": '\U00002A8F',
- "lsqb;": '\U0000005B',
- "lsquo;": '\U00002018',
- "lsquor;": '\U0000201A',
- "lstrok;": '\U00000142',
- "lt;": '\U0000003C',
- "ltcc;": '\U00002AA6',
- "ltcir;": '\U00002A79',
- "ltdot;": '\U000022D6',
- "lthree;": '\U000022CB',
- "ltimes;": '\U000022C9',
- "ltlarr;": '\U00002976',
- "ltquest;": '\U00002A7B',
- "ltrPar;": '\U00002996',
- "ltri;": '\U000025C3',
- "ltrie;": '\U000022B4',
- "ltrif;": '\U000025C2',
- "lurdshar;": '\U0000294A',
- "luruhar;": '\U00002966',
- "mDDot;": '\U0000223A',
- "macr;": '\U000000AF',
- "male;": '\U00002642',
- "malt;": '\U00002720',
- "maltese;": '\U00002720',
- "map;": '\U000021A6',
- "mapsto;": '\U000021A6',
- "mapstodown;": '\U000021A7',
- "mapstoleft;": '\U000021A4',
- "mapstoup;": '\U000021A5',
- "marker;": '\U000025AE',
- "mcomma;": '\U00002A29',
- "mcy;": '\U0000043C',
- "mdash;": '\U00002014',
- "measuredangle;": '\U00002221',
- "mfr;": '\U0001D52A',
- "mho;": '\U00002127',
- "micro;": '\U000000B5',
- "mid;": '\U00002223',
- "midast;": '\U0000002A',
- "midcir;": '\U00002AF0',
- "middot;": '\U000000B7',
- "minus;": '\U00002212',
- "minusb;": '\U0000229F',
- "minusd;": '\U00002238',
- "minusdu;": '\U00002A2A',
- "mlcp;": '\U00002ADB',
- "mldr;": '\U00002026',
- "mnplus;": '\U00002213',
- "models;": '\U000022A7',
- "mopf;": '\U0001D55E',
- "mp;": '\U00002213',
- "mscr;": '\U0001D4C2',
- "mstpos;": '\U0000223E',
- "mu;": '\U000003BC',
- "multimap;": '\U000022B8',
- "mumap;": '\U000022B8',
- "nLeftarrow;": '\U000021CD',
- "nLeftrightarrow;": '\U000021CE',
- "nRightarrow;": '\U000021CF',
- "nVDash;": '\U000022AF',
- "nVdash;": '\U000022AE',
- "nabla;": '\U00002207',
- "nacute;": '\U00000144',
- "nap;": '\U00002249',
- "napos;": '\U00000149',
- "napprox;": '\U00002249',
- "natur;": '\U0000266E',
- "natural;": '\U0000266E',
- "naturals;": '\U00002115',
- "nbsp;": '\U000000A0',
- "ncap;": '\U00002A43',
- "ncaron;": '\U00000148',
- "ncedil;": '\U00000146',
- "ncong;": '\U00002247',
- "ncup;": '\U00002A42',
- "ncy;": '\U0000043D',
- "ndash;": '\U00002013',
- "ne;": '\U00002260',
- "neArr;": '\U000021D7',
- "nearhk;": '\U00002924',
- "nearr;": '\U00002197',
- "nearrow;": '\U00002197',
- "nequiv;": '\U00002262',
- "nesear;": '\U00002928',
- "nexist;": '\U00002204',
- "nexists;": '\U00002204',
- "nfr;": '\U0001D52B',
- "nge;": '\U00002271',
- "ngeq;": '\U00002271',
- "ngsim;": '\U00002275',
- "ngt;": '\U0000226F',
- "ngtr;": '\U0000226F',
- "nhArr;": '\U000021CE',
- "nharr;": '\U000021AE',
- "nhpar;": '\U00002AF2',
- "ni;": '\U0000220B',
- "nis;": '\U000022FC',
- "nisd;": '\U000022FA',
- "niv;": '\U0000220B',
- "njcy;": '\U0000045A',
- "nlArr;": '\U000021CD',
- "nlarr;": '\U0000219A',
- "nldr;": '\U00002025',
- "nle;": '\U00002270',
- "nleftarrow;": '\U0000219A',
- "nleftrightarrow;": '\U000021AE',
- "nleq;": '\U00002270',
- "nless;": '\U0000226E',
- "nlsim;": '\U00002274',
- "nlt;": '\U0000226E',
- "nltri;": '\U000022EA',
- "nltrie;": '\U000022EC',
- "nmid;": '\U00002224',
- "nopf;": '\U0001D55F',
- "not;": '\U000000AC',
- "notin;": '\U00002209',
- "notinva;": '\U00002209',
- "notinvb;": '\U000022F7',
- "notinvc;": '\U000022F6',
- "notni;": '\U0000220C',
- "notniva;": '\U0000220C',
- "notnivb;": '\U000022FE',
- "notnivc;": '\U000022FD',
- "npar;": '\U00002226',
- "nparallel;": '\U00002226',
- "npolint;": '\U00002A14',
- "npr;": '\U00002280',
- "nprcue;": '\U000022E0',
- "nprec;": '\U00002280',
- "nrArr;": '\U000021CF',
- "nrarr;": '\U0000219B',
- "nrightarrow;": '\U0000219B',
- "nrtri;": '\U000022EB',
- "nrtrie;": '\U000022ED',
- "nsc;": '\U00002281',
- "nsccue;": '\U000022E1',
- "nscr;": '\U0001D4C3',
- "nshortmid;": '\U00002224',
- "nshortparallel;": '\U00002226',
- "nsim;": '\U00002241',
- "nsime;": '\U00002244',
- "nsimeq;": '\U00002244',
- "nsmid;": '\U00002224',
- "nspar;": '\U00002226',
- "nsqsube;": '\U000022E2',
- "nsqsupe;": '\U000022E3',
- "nsub;": '\U00002284',
- "nsube;": '\U00002288',
- "nsubseteq;": '\U00002288',
- "nsucc;": '\U00002281',
- "nsup;": '\U00002285',
- "nsupe;": '\U00002289',
- "nsupseteq;": '\U00002289',
- "ntgl;": '\U00002279',
- "ntilde;": '\U000000F1',
- "ntlg;": '\U00002278',
- "ntriangleleft;": '\U000022EA',
- "ntrianglelefteq;": '\U000022EC',
- "ntriangleright;": '\U000022EB',
- "ntrianglerighteq;": '\U000022ED',
- "nu;": '\U000003BD',
- "num;": '\U00000023',
- "numero;": '\U00002116',
- "numsp;": '\U00002007',
- "nvDash;": '\U000022AD',
- "nvHarr;": '\U00002904',
- "nvdash;": '\U000022AC',
- "nvinfin;": '\U000029DE',
- "nvlArr;": '\U00002902',
- "nvrArr;": '\U00002903',
- "nwArr;": '\U000021D6',
- "nwarhk;": '\U00002923',
- "nwarr;": '\U00002196',
- "nwarrow;": '\U00002196',
- "nwnear;": '\U00002927',
- "oS;": '\U000024C8',
- "oacute;": '\U000000F3',
- "oast;": '\U0000229B',
- "ocir;": '\U0000229A',
- "ocirc;": '\U000000F4',
- "ocy;": '\U0000043E',
- "odash;": '\U0000229D',
- "odblac;": '\U00000151',
- "odiv;": '\U00002A38',
- "odot;": '\U00002299',
- "odsold;": '\U000029BC',
- "oelig;": '\U00000153',
- "ofcir;": '\U000029BF',
- "ofr;": '\U0001D52C',
- "ogon;": '\U000002DB',
- "ograve;": '\U000000F2',
- "ogt;": '\U000029C1',
- "ohbar;": '\U000029B5',
- "ohm;": '\U000003A9',
- "oint;": '\U0000222E',
- "olarr;": '\U000021BA',
- "olcir;": '\U000029BE',
- "olcross;": '\U000029BB',
- "oline;": '\U0000203E',
- "olt;": '\U000029C0',
- "omacr;": '\U0000014D',
- "omega;": '\U000003C9',
- "omicron;": '\U000003BF',
- "omid;": '\U000029B6',
- "ominus;": '\U00002296',
- "oopf;": '\U0001D560',
- "opar;": '\U000029B7',
- "operp;": '\U000029B9',
- "oplus;": '\U00002295',
- "or;": '\U00002228',
- "orarr;": '\U000021BB',
- "ord;": '\U00002A5D',
- "order;": '\U00002134',
- "orderof;": '\U00002134',
- "ordf;": '\U000000AA',
- "ordm;": '\U000000BA',
- "origof;": '\U000022B6',
- "oror;": '\U00002A56',
- "orslope;": '\U00002A57',
- "orv;": '\U00002A5B',
- "oscr;": '\U00002134',
- "oslash;": '\U000000F8',
- "osol;": '\U00002298',
- "otilde;": '\U000000F5',
- "otimes;": '\U00002297',
- "otimesas;": '\U00002A36',
- "ouml;": '\U000000F6',
- "ovbar;": '\U0000233D',
- "par;": '\U00002225',
- "para;": '\U000000B6',
- "parallel;": '\U00002225',
- "parsim;": '\U00002AF3',
- "parsl;": '\U00002AFD',
- "part;": '\U00002202',
- "pcy;": '\U0000043F',
- "percnt;": '\U00000025',
- "period;": '\U0000002E',
- "permil;": '\U00002030',
- "perp;": '\U000022A5',
- "pertenk;": '\U00002031',
- "pfr;": '\U0001D52D',
- "phi;": '\U000003C6',
- "phiv;": '\U000003D5',
- "phmmat;": '\U00002133',
- "phone;": '\U0000260E',
- "pi;": '\U000003C0',
- "pitchfork;": '\U000022D4',
- "piv;": '\U000003D6',
- "planck;": '\U0000210F',
- "planckh;": '\U0000210E',
- "plankv;": '\U0000210F',
- "plus;": '\U0000002B',
- "plusacir;": '\U00002A23',
- "plusb;": '\U0000229E',
- "pluscir;": '\U00002A22',
- "plusdo;": '\U00002214',
- "plusdu;": '\U00002A25',
- "pluse;": '\U00002A72',
- "plusmn;": '\U000000B1',
- "plussim;": '\U00002A26',
- "plustwo;": '\U00002A27',
- "pm;": '\U000000B1',
- "pointint;": '\U00002A15',
- "popf;": '\U0001D561',
- "pound;": '\U000000A3',
- "pr;": '\U0000227A',
- "prE;": '\U00002AB3',
- "prap;": '\U00002AB7',
- "prcue;": '\U0000227C',
- "pre;": '\U00002AAF',
- "prec;": '\U0000227A',
- "precapprox;": '\U00002AB7',
- "preccurlyeq;": '\U0000227C',
- "preceq;": '\U00002AAF',
- "precnapprox;": '\U00002AB9',
- "precneqq;": '\U00002AB5',
- "precnsim;": '\U000022E8',
- "precsim;": '\U0000227E',
- "prime;": '\U00002032',
- "primes;": '\U00002119',
- "prnE;": '\U00002AB5',
- "prnap;": '\U00002AB9',
- "prnsim;": '\U000022E8',
- "prod;": '\U0000220F',
- "profalar;": '\U0000232E',
- "profline;": '\U00002312',
- "profsurf;": '\U00002313',
- "prop;": '\U0000221D',
- "propto;": '\U0000221D',
- "prsim;": '\U0000227E',
- "prurel;": '\U000022B0',
- "pscr;": '\U0001D4C5',
- "psi;": '\U000003C8',
- "puncsp;": '\U00002008',
- "qfr;": '\U0001D52E',
- "qint;": '\U00002A0C',
- "qopf;": '\U0001D562',
- "qprime;": '\U00002057',
- "qscr;": '\U0001D4C6',
- "quaternions;": '\U0000210D',
- "quatint;": '\U00002A16',
- "quest;": '\U0000003F',
- "questeq;": '\U0000225F',
- "quot;": '\U00000022',
- "rAarr;": '\U000021DB',
- "rArr;": '\U000021D2',
- "rAtail;": '\U0000291C',
- "rBarr;": '\U0000290F',
- "rHar;": '\U00002964',
- "racute;": '\U00000155',
- "radic;": '\U0000221A',
- "raemptyv;": '\U000029B3',
- "rang;": '\U000027E9',
- "rangd;": '\U00002992',
- "range;": '\U000029A5',
- "rangle;": '\U000027E9',
- "raquo;": '\U000000BB',
- "rarr;": '\U00002192',
- "rarrap;": '\U00002975',
- "rarrb;": '\U000021E5',
- "rarrbfs;": '\U00002920',
- "rarrc;": '\U00002933',
- "rarrfs;": '\U0000291E',
- "rarrhk;": '\U000021AA',
- "rarrlp;": '\U000021AC',
- "rarrpl;": '\U00002945',
- "rarrsim;": '\U00002974',
- "rarrtl;": '\U000021A3',
- "rarrw;": '\U0000219D',
- "ratail;": '\U0000291A',
- "ratio;": '\U00002236',
- "rationals;": '\U0000211A',
- "rbarr;": '\U0000290D',
- "rbbrk;": '\U00002773',
- "rbrace;": '\U0000007D',
- "rbrack;": '\U0000005D',
- "rbrke;": '\U0000298C',
- "rbrksld;": '\U0000298E',
- "rbrkslu;": '\U00002990',
- "rcaron;": '\U00000159',
- "rcedil;": '\U00000157',
- "rceil;": '\U00002309',
- "rcub;": '\U0000007D',
- "rcy;": '\U00000440',
- "rdca;": '\U00002937',
- "rdldhar;": '\U00002969',
- "rdquo;": '\U0000201D',
- "rdquor;": '\U0000201D',
- "rdsh;": '\U000021B3',
- "real;": '\U0000211C',
- "realine;": '\U0000211B',
- "realpart;": '\U0000211C',
- "reals;": '\U0000211D',
- "rect;": '\U000025AD',
- "reg;": '\U000000AE',
- "rfisht;": '\U0000297D',
- "rfloor;": '\U0000230B',
- "rfr;": '\U0001D52F',
- "rhard;": '\U000021C1',
- "rharu;": '\U000021C0',
- "rharul;": '\U0000296C',
- "rho;": '\U000003C1',
- "rhov;": '\U000003F1',
- "rightarrow;": '\U00002192',
- "rightarrowtail;": '\U000021A3',
- "rightharpoondown;": '\U000021C1',
- "rightharpoonup;": '\U000021C0',
- "rightleftarrows;": '\U000021C4',
- "rightleftharpoons;": '\U000021CC',
- "rightrightarrows;": '\U000021C9',
- "rightsquigarrow;": '\U0000219D',
- "rightthreetimes;": '\U000022CC',
- "ring;": '\U000002DA',
- "risingdotseq;": '\U00002253',
- "rlarr;": '\U000021C4',
- "rlhar;": '\U000021CC',
- "rlm;": '\U0000200F',
- "rmoust;": '\U000023B1',
- "rmoustache;": '\U000023B1',
- "rnmid;": '\U00002AEE',
- "roang;": '\U000027ED',
- "roarr;": '\U000021FE',
- "robrk;": '\U000027E7',
- "ropar;": '\U00002986',
- "ropf;": '\U0001D563',
- "roplus;": '\U00002A2E',
- "rotimes;": '\U00002A35',
- "rpar;": '\U00000029',
- "rpargt;": '\U00002994',
- "rppolint;": '\U00002A12',
- "rrarr;": '\U000021C9',
- "rsaquo;": '\U0000203A',
- "rscr;": '\U0001D4C7',
- "rsh;": '\U000021B1',
- "rsqb;": '\U0000005D',
- "rsquo;": '\U00002019',
- "rsquor;": '\U00002019',
- "rthree;": '\U000022CC',
- "rtimes;": '\U000022CA',
- "rtri;": '\U000025B9',
- "rtrie;": '\U000022B5',
- "rtrif;": '\U000025B8',
- "rtriltri;": '\U000029CE',
- "ruluhar;": '\U00002968',
- "rx;": '\U0000211E',
- "sacute;": '\U0000015B',
- "sbquo;": '\U0000201A',
- "sc;": '\U0000227B',
- "scE;": '\U00002AB4',
- "scap;": '\U00002AB8',
- "scaron;": '\U00000161',
- "sccue;": '\U0000227D',
- "sce;": '\U00002AB0',
- "scedil;": '\U0000015F',
- "scirc;": '\U0000015D',
- "scnE;": '\U00002AB6',
- "scnap;": '\U00002ABA',
- "scnsim;": '\U000022E9',
- "scpolint;": '\U00002A13',
- "scsim;": '\U0000227F',
- "scy;": '\U00000441',
- "sdot;": '\U000022C5',
- "sdotb;": '\U000022A1',
- "sdote;": '\U00002A66',
- "seArr;": '\U000021D8',
- "searhk;": '\U00002925',
- "searr;": '\U00002198',
- "searrow;": '\U00002198',
- "sect;": '\U000000A7',
- "semi;": '\U0000003B',
- "seswar;": '\U00002929',
- "setminus;": '\U00002216',
- "setmn;": '\U00002216',
- "sext;": '\U00002736',
- "sfr;": '\U0001D530',
- "sfrown;": '\U00002322',
- "sharp;": '\U0000266F',
- "shchcy;": '\U00000449',
- "shcy;": '\U00000448',
- "shortmid;": '\U00002223',
- "shortparallel;": '\U00002225',
- "shy;": '\U000000AD',
- "sigma;": '\U000003C3',
- "sigmaf;": '\U000003C2',
- "sigmav;": '\U000003C2',
- "sim;": '\U0000223C',
- "simdot;": '\U00002A6A',
- "sime;": '\U00002243',
- "simeq;": '\U00002243',
- "simg;": '\U00002A9E',
- "simgE;": '\U00002AA0',
- "siml;": '\U00002A9D',
- "simlE;": '\U00002A9F',
- "simne;": '\U00002246',
- "simplus;": '\U00002A24',
- "simrarr;": '\U00002972',
- "slarr;": '\U00002190',
- "smallsetminus;": '\U00002216',
- "smashp;": '\U00002A33',
- "smeparsl;": '\U000029E4',
- "smid;": '\U00002223',
- "smile;": '\U00002323',
- "smt;": '\U00002AAA',
- "smte;": '\U00002AAC',
- "softcy;": '\U0000044C',
- "sol;": '\U0000002F',
- "solb;": '\U000029C4',
- "solbar;": '\U0000233F',
- "sopf;": '\U0001D564',
- "spades;": '\U00002660',
- "spadesuit;": '\U00002660',
- "spar;": '\U00002225',
- "sqcap;": '\U00002293',
- "sqcup;": '\U00002294',
- "sqsub;": '\U0000228F',
- "sqsube;": '\U00002291',
- "sqsubset;": '\U0000228F',
- "sqsubseteq;": '\U00002291',
- "sqsup;": '\U00002290',
- "sqsupe;": '\U00002292',
- "sqsupset;": '\U00002290',
- "sqsupseteq;": '\U00002292',
- "squ;": '\U000025A1',
- "square;": '\U000025A1',
- "squarf;": '\U000025AA',
- "squf;": '\U000025AA',
- "srarr;": '\U00002192',
- "sscr;": '\U0001D4C8',
- "ssetmn;": '\U00002216',
- "ssmile;": '\U00002323',
- "sstarf;": '\U000022C6',
- "star;": '\U00002606',
- "starf;": '\U00002605',
- "straightepsilon;": '\U000003F5',
- "straightphi;": '\U000003D5',
- "strns;": '\U000000AF',
- "sub;": '\U00002282',
- "subE;": '\U00002AC5',
- "subdot;": '\U00002ABD',
- "sube;": '\U00002286',
- "subedot;": '\U00002AC3',
- "submult;": '\U00002AC1',
- "subnE;": '\U00002ACB',
- "subne;": '\U0000228A',
- "subplus;": '\U00002ABF',
- "subrarr;": '\U00002979',
- "subset;": '\U00002282',
- "subseteq;": '\U00002286',
- "subseteqq;": '\U00002AC5',
- "subsetneq;": '\U0000228A',
- "subsetneqq;": '\U00002ACB',
- "subsim;": '\U00002AC7',
- "subsub;": '\U00002AD5',
- "subsup;": '\U00002AD3',
- "succ;": '\U0000227B',
- "succapprox;": '\U00002AB8',
- "succcurlyeq;": '\U0000227D',
- "succeq;": '\U00002AB0',
- "succnapprox;": '\U00002ABA',
- "succneqq;": '\U00002AB6',
- "succnsim;": '\U000022E9',
- "succsim;": '\U0000227F',
- "sum;": '\U00002211',
- "sung;": '\U0000266A',
- "sup;": '\U00002283',
- "sup1;": '\U000000B9',
- "sup2;": '\U000000B2',
- "sup3;": '\U000000B3',
- "supE;": '\U00002AC6',
- "supdot;": '\U00002ABE',
- "supdsub;": '\U00002AD8',
- "supe;": '\U00002287',
- "supedot;": '\U00002AC4',
- "suphsol;": '\U000027C9',
- "suphsub;": '\U00002AD7',
- "suplarr;": '\U0000297B',
- "supmult;": '\U00002AC2',
- "supnE;": '\U00002ACC',
- "supne;": '\U0000228B',
- "supplus;": '\U00002AC0',
- "supset;": '\U00002283',
- "supseteq;": '\U00002287',
- "supseteqq;": '\U00002AC6',
- "supsetneq;": '\U0000228B',
- "supsetneqq;": '\U00002ACC',
- "supsim;": '\U00002AC8',
- "supsub;": '\U00002AD4',
- "supsup;": '\U00002AD6',
- "swArr;": '\U000021D9',
- "swarhk;": '\U00002926',
- "swarr;": '\U00002199',
- "swarrow;": '\U00002199',
- "swnwar;": '\U0000292A',
- "szlig;": '\U000000DF',
- "target;": '\U00002316',
- "tau;": '\U000003C4',
- "tbrk;": '\U000023B4',
- "tcaron;": '\U00000165',
- "tcedil;": '\U00000163',
- "tcy;": '\U00000442',
- "tdot;": '\U000020DB',
- "telrec;": '\U00002315',
- "tfr;": '\U0001D531',
- "there4;": '\U00002234',
- "therefore;": '\U00002234',
- "theta;": '\U000003B8',
- "thetasym;": '\U000003D1',
- "thetav;": '\U000003D1',
- "thickapprox;": '\U00002248',
- "thicksim;": '\U0000223C',
- "thinsp;": '\U00002009',
- "thkap;": '\U00002248',
- "thksim;": '\U0000223C',
- "thorn;": '\U000000FE',
- "tilde;": '\U000002DC',
- "times;": '\U000000D7',
- "timesb;": '\U000022A0',
- "timesbar;": '\U00002A31',
- "timesd;": '\U00002A30',
- "tint;": '\U0000222D',
- "toea;": '\U00002928',
- "top;": '\U000022A4',
- "topbot;": '\U00002336',
- "topcir;": '\U00002AF1',
- "topf;": '\U0001D565',
- "topfork;": '\U00002ADA',
- "tosa;": '\U00002929',
- "tprime;": '\U00002034',
- "trade;": '\U00002122',
- "triangle;": '\U000025B5',
- "triangledown;": '\U000025BF',
- "triangleleft;": '\U000025C3',
- "trianglelefteq;": '\U000022B4',
- "triangleq;": '\U0000225C',
- "triangleright;": '\U000025B9',
- "trianglerighteq;": '\U000022B5',
- "tridot;": '\U000025EC',
- "trie;": '\U0000225C',
- "triminus;": '\U00002A3A',
- "triplus;": '\U00002A39',
- "trisb;": '\U000029CD',
- "tritime;": '\U00002A3B',
- "trpezium;": '\U000023E2',
- "tscr;": '\U0001D4C9',
- "tscy;": '\U00000446',
- "tshcy;": '\U0000045B',
- "tstrok;": '\U00000167',
- "twixt;": '\U0000226C',
- "twoheadleftarrow;": '\U0000219E',
- "twoheadrightarrow;": '\U000021A0',
- "uArr;": '\U000021D1',
- "uHar;": '\U00002963',
- "uacute;": '\U000000FA',
- "uarr;": '\U00002191',
- "ubrcy;": '\U0000045E',
- "ubreve;": '\U0000016D',
- "ucirc;": '\U000000FB',
- "ucy;": '\U00000443',
- "udarr;": '\U000021C5',
- "udblac;": '\U00000171',
- "udhar;": '\U0000296E',
- "ufisht;": '\U0000297E',
- "ufr;": '\U0001D532',
- "ugrave;": '\U000000F9',
- "uharl;": '\U000021BF',
- "uharr;": '\U000021BE',
- "uhblk;": '\U00002580',
- "ulcorn;": '\U0000231C',
- "ulcorner;": '\U0000231C',
- "ulcrop;": '\U0000230F',
- "ultri;": '\U000025F8',
- "umacr;": '\U0000016B',
- "uml;": '\U000000A8',
- "uogon;": '\U00000173',
- "uopf;": '\U0001D566',
- "uparrow;": '\U00002191',
- "updownarrow;": '\U00002195',
- "upharpoonleft;": '\U000021BF',
- "upharpoonright;": '\U000021BE',
- "uplus;": '\U0000228E',
- "upsi;": '\U000003C5',
- "upsih;": '\U000003D2',
- "upsilon;": '\U000003C5',
- "upuparrows;": '\U000021C8',
- "urcorn;": '\U0000231D',
- "urcorner;": '\U0000231D',
- "urcrop;": '\U0000230E',
- "uring;": '\U0000016F',
- "urtri;": '\U000025F9',
- "uscr;": '\U0001D4CA',
- "utdot;": '\U000022F0',
- "utilde;": '\U00000169',
- "utri;": '\U000025B5',
- "utrif;": '\U000025B4',
- "uuarr;": '\U000021C8',
- "uuml;": '\U000000FC',
- "uwangle;": '\U000029A7',
- "vArr;": '\U000021D5',
- "vBar;": '\U00002AE8',
- "vBarv;": '\U00002AE9',
- "vDash;": '\U000022A8',
- "vangrt;": '\U0000299C',
- "varepsilon;": '\U000003F5',
- "varkappa;": '\U000003F0',
- "varnothing;": '\U00002205',
- "varphi;": '\U000003D5',
- "varpi;": '\U000003D6',
- "varpropto;": '\U0000221D',
- "varr;": '\U00002195',
- "varrho;": '\U000003F1',
- "varsigma;": '\U000003C2',
- "vartheta;": '\U000003D1',
- "vartriangleleft;": '\U000022B2',
- "vartriangleright;": '\U000022B3',
- "vcy;": '\U00000432',
- "vdash;": '\U000022A2',
- "vee;": '\U00002228',
- "veebar;": '\U000022BB',
- "veeeq;": '\U0000225A',
- "vellip;": '\U000022EE',
- "verbar;": '\U0000007C',
- "vert;": '\U0000007C',
- "vfr;": '\U0001D533',
- "vltri;": '\U000022B2',
- "vopf;": '\U0001D567',
- "vprop;": '\U0000221D',
- "vrtri;": '\U000022B3',
- "vscr;": '\U0001D4CB',
- "vzigzag;": '\U0000299A',
- "wcirc;": '\U00000175',
- "wedbar;": '\U00002A5F',
- "wedge;": '\U00002227',
- "wedgeq;": '\U00002259',
- "weierp;": '\U00002118',
- "wfr;": '\U0001D534',
- "wopf;": '\U0001D568',
- "wp;": '\U00002118',
- "wr;": '\U00002240',
- "wreath;": '\U00002240',
- "wscr;": '\U0001D4CC',
- "xcap;": '\U000022C2',
- "xcirc;": '\U000025EF',
- "xcup;": '\U000022C3',
- "xdtri;": '\U000025BD',
- "xfr;": '\U0001D535',
- "xhArr;": '\U000027FA',
- "xharr;": '\U000027F7',
- "xi;": '\U000003BE',
- "xlArr;": '\U000027F8',
- "xlarr;": '\U000027F5',
- "xmap;": '\U000027FC',
- "xnis;": '\U000022FB',
- "xodot;": '\U00002A00',
- "xopf;": '\U0001D569',
- "xoplus;": '\U00002A01',
- "xotime;": '\U00002A02',
- "xrArr;": '\U000027F9',
- "xrarr;": '\U000027F6',
- "xscr;": '\U0001D4CD',
- "xsqcup;": '\U00002A06',
- "xuplus;": '\U00002A04',
- "xutri;": '\U000025B3',
- "xvee;": '\U000022C1',
- "xwedge;": '\U000022C0',
- "yacute;": '\U000000FD',
- "yacy;": '\U0000044F',
- "ycirc;": '\U00000177',
- "ycy;": '\U0000044B',
- "yen;": '\U000000A5',
- "yfr;": '\U0001D536',
- "yicy;": '\U00000457',
- "yopf;": '\U0001D56A',
- "yscr;": '\U0001D4CE',
- "yucy;": '\U0000044E',
- "yuml;": '\U000000FF',
- "zacute;": '\U0000017A',
- "zcaron;": '\U0000017E',
- "zcy;": '\U00000437',
- "zdot;": '\U0000017C',
- "zeetrf;": '\U00002128',
- "zeta;": '\U000003B6',
- "zfr;": '\U0001D537',
- "zhcy;": '\U00000436',
- "zigrarr;": '\U000021DD',
- "zopf;": '\U0001D56B',
- "zscr;": '\U0001D4CF',
- "zwj;": '\U0000200D',
- "zwnj;": '\U0000200C',
- "AElig": '\U000000C6',
- "AMP": '\U00000026',
- "Aacute": '\U000000C1',
- "Acirc": '\U000000C2',
- "Agrave": '\U000000C0',
- "Aring": '\U000000C5',
- "Atilde": '\U000000C3',
- "Auml": '\U000000C4',
- "COPY": '\U000000A9',
- "Ccedil": '\U000000C7',
- "ETH": '\U000000D0',
- "Eacute": '\U000000C9',
- "Ecirc": '\U000000CA',
- "Egrave": '\U000000C8',
- "Euml": '\U000000CB',
- "GT": '\U0000003E',
- "Iacute": '\U000000CD',
- "Icirc": '\U000000CE',
- "Igrave": '\U000000CC',
- "Iuml": '\U000000CF',
- "LT": '\U0000003C',
- "Ntilde": '\U000000D1',
- "Oacute": '\U000000D3',
- "Ocirc": '\U000000D4',
- "Ograve": '\U000000D2',
- "Oslash": '\U000000D8',
- "Otilde": '\U000000D5',
- "Ouml": '\U000000D6',
- "QUOT": '\U00000022',
- "REG": '\U000000AE',
- "THORN": '\U000000DE',
- "Uacute": '\U000000DA',
- "Ucirc": '\U000000DB',
- "Ugrave": '\U000000D9',
- "Uuml": '\U000000DC',
- "Yacute": '\U000000DD',
- "aacute": '\U000000E1',
- "acirc": '\U000000E2',
- "acute": '\U000000B4',
- "aelig": '\U000000E6',
- "agrave": '\U000000E0',
- "amp": '\U00000026',
- "aring": '\U000000E5',
- "atilde": '\U000000E3',
- "auml": '\U000000E4',
- "brvbar": '\U000000A6',
- "ccedil": '\U000000E7',
- "cedil": '\U000000B8',
- "cent": '\U000000A2',
- "copy": '\U000000A9',
- "curren": '\U000000A4',
- "deg": '\U000000B0',
- "divide": '\U000000F7',
- "eacute": '\U000000E9',
- "ecirc": '\U000000EA',
- "egrave": '\U000000E8',
- "eth": '\U000000F0',
- "euml": '\U000000EB',
- "frac12": '\U000000BD',
- "frac14": '\U000000BC',
- "frac34": '\U000000BE',
- "gt": '\U0000003E',
- "iacute": '\U000000ED',
- "icirc": '\U000000EE',
- "iexcl": '\U000000A1',
- "igrave": '\U000000EC',
- "iquest": '\U000000BF',
- "iuml": '\U000000EF',
- "laquo": '\U000000AB',
- "lt": '\U0000003C',
- "macr": '\U000000AF',
- "micro": '\U000000B5',
- "middot": '\U000000B7',
- "nbsp": '\U000000A0',
- "not": '\U000000AC',
- "ntilde": '\U000000F1',
- "oacute": '\U000000F3',
- "ocirc": '\U000000F4',
- "ograve": '\U000000F2',
- "ordf": '\U000000AA',
- "ordm": '\U000000BA',
- "oslash": '\U000000F8',
- "otilde": '\U000000F5',
- "ouml": '\U000000F6',
- "para": '\U000000B6',
- "plusmn": '\U000000B1',
- "pound": '\U000000A3',
- "quot": '\U00000022',
- "raquo": '\U000000BB',
- "reg": '\U000000AE',
- "sect": '\U000000A7',
- "shy": '\U000000AD',
- "sup1": '\U000000B9',
- "sup2": '\U000000B2',
- "sup3": '\U000000B3',
- "szlig": '\U000000DF',
- "thorn": '\U000000FE',
- "times": '\U000000D7',
- "uacute": '\U000000FA',
- "ucirc": '\U000000FB',
- "ugrave": '\U000000F9',
- "uml": '\U000000A8',
- "uuml": '\U000000FC',
- "yacute": '\U000000FD',
- "yen": '\U000000A5',
- "yuml": '\U000000FF',
+ "Cross;": '\U00002A2F',
+ "Cscr;": '\U0001D49E',
+ "Cup;": '\U000022D3',
+ "CupCap;": '\U0000224D',
+ "DD;": '\U00002145',
+ "DDotrahd;": '\U00002911',
+ "DJcy;": '\U00000402',
+ "DScy;": '\U00000405',
+ "DZcy;": '\U0000040F',
+ "Dagger;": '\U00002021',
+ "Darr;": '\U000021A1',
+ "Dashv;": '\U00002AE4',
+ "Dcaron;": '\U0000010E',
+ "Dcy;": '\U00000414',
+ "Del;": '\U00002207',
+ "Delta;": '\U00000394',
+ "Dfr;": '\U0001D507',
+ "DiacriticalAcute;": '\U000000B4',
+ "DiacriticalDot;": '\U000002D9',
+ "DiacriticalDoubleAcute;": '\U000002DD',
+ "DiacriticalGrave;": '\U00000060',
+ "DiacriticalTilde;": '\U000002DC',
+ "Diamond;": '\U000022C4',
+ "DifferentialD;": '\U00002146',
+ "Dopf;": '\U0001D53B',
+ "Dot;": '\U000000A8',
+ "DotDot;": '\U000020DC',
+ "DotEqual;": '\U00002250',
+ "DoubleContourIntegral;": '\U0000222F',
+ "DoubleDot;": '\U000000A8',
+ "DoubleDownArrow;": '\U000021D3',
+ "DoubleLeftArrow;": '\U000021D0',
+ "DoubleLeftRightArrow;": '\U000021D4',
+ "DoubleLeftTee;": '\U00002AE4',
+ "DoubleLongLeftArrow;": '\U000027F8',
+ "DoubleLongLeftRightArrow;": '\U000027FA',
+ "DoubleLongRightArrow;": '\U000027F9',
+ "DoubleRightArrow;": '\U000021D2',
+ "DoubleRightTee;": '\U000022A8',
+ "DoubleUpArrow;": '\U000021D1',
+ "DoubleUpDownArrow;": '\U000021D5',
+ "DoubleVerticalBar;": '\U00002225',
+ "DownArrow;": '\U00002193',
+ "DownArrowBar;": '\U00002913',
+ "DownArrowUpArrow;": '\U000021F5',
+ "DownBreve;": '\U00000311',
+ "DownLeftRightVector;": '\U00002950',
+ "DownLeftTeeVector;": '\U0000295E',
+ "DownLeftVector;": '\U000021BD',
+ "DownLeftVectorBar;": '\U00002956',
+ "DownRightTeeVector;": '\U0000295F',
+ "DownRightVector;": '\U000021C1',
+ "DownRightVectorBar;": '\U00002957',
+ "DownTee;": '\U000022A4',
+ "DownTeeArrow;": '\U000021A7',
+ "Downarrow;": '\U000021D3',
+ "Dscr;": '\U0001D49F',
+ "Dstrok;": '\U00000110',
+ "ENG;": '\U0000014A',
+ "ETH;": '\U000000D0',
+ "Eacute;": '\U000000C9',
+ "Ecaron;": '\U0000011A',
+ "Ecirc;": '\U000000CA',
+ "Ecy;": '\U0000042D',
+ "Edot;": '\U00000116',
+ "Efr;": '\U0001D508',
+ "Egrave;": '\U000000C8',
+ "Element;": '\U00002208',
+ "Emacr;": '\U00000112',
+ "EmptySmallSquare;": '\U000025FB',
+ "EmptyVerySmallSquare;": '\U000025AB',
+ "Eogon;": '\U00000118',
+ "Eopf;": '\U0001D53C',
+ "Epsilon;": '\U00000395',
+ "Equal;": '\U00002A75',
+ "EqualTilde;": '\U00002242',
+ "Equilibrium;": '\U000021CC',
+ "Escr;": '\U00002130',
+ "Esim;": '\U00002A73',
+ "Eta;": '\U00000397',
+ "Euml;": '\U000000CB',
+ "Exists;": '\U00002203',
+ "ExponentialE;": '\U00002147',
+ "Fcy;": '\U00000424',
+ "Ffr;": '\U0001D509',
+ "FilledSmallSquare;": '\U000025FC',
+ "FilledVerySmallSquare;": '\U000025AA',
+ "Fopf;": '\U0001D53D',
+ "ForAll;": '\U00002200',
+ "Fouriertrf;": '\U00002131',
+ "Fscr;": '\U00002131',
+ "GJcy;": '\U00000403',
+ "GT;": '\U0000003E',
+ "Gamma;": '\U00000393',
+ "Gammad;": '\U000003DC',
+ "Gbreve;": '\U0000011E',
+ "Gcedil;": '\U00000122',
+ "Gcirc;": '\U0000011C',
+ "Gcy;": '\U00000413',
+ "Gdot;": '\U00000120',
+ "Gfr;": '\U0001D50A',
+ "Gg;": '\U000022D9',
+ "Gopf;": '\U0001D53E',
+ "GreaterEqual;": '\U00002265',
+ "GreaterEqualLess;": '\U000022DB',
+ "GreaterFullEqual;": '\U00002267',
+ "GreaterGreater;": '\U00002AA2',
+ "GreaterLess;": '\U00002277',
+ "GreaterSlantEqual;": '\U00002A7E',
+ "GreaterTilde;": '\U00002273',
+ "Gscr;": '\U0001D4A2',
+ "Gt;": '\U0000226B',
+ "HARDcy;": '\U0000042A',
+ "Hacek;": '\U000002C7',
+ "Hat;": '\U0000005E',
+ "Hcirc;": '\U00000124',
+ "Hfr;": '\U0000210C',
+ "HilbertSpace;": '\U0000210B',
+ "Hopf;": '\U0000210D',
+ "HorizontalLine;": '\U00002500',
+ "Hscr;": '\U0000210B',
+ "Hstrok;": '\U00000126',
+ "HumpDownHump;": '\U0000224E',
+ "HumpEqual;": '\U0000224F',
+ "IEcy;": '\U00000415',
+ "IJlig;": '\U00000132',
+ "IOcy;": '\U00000401',
+ "Iacute;": '\U000000CD',
+ "Icirc;": '\U000000CE',
+ "Icy;": '\U00000418',
+ "Idot;": '\U00000130',
+ "Ifr;": '\U00002111',
+ "Igrave;": '\U000000CC',
+ "Im;": '\U00002111',
+ "Imacr;": '\U0000012A',
+ "ImaginaryI;": '\U00002148',
+ "Implies;": '\U000021D2',
+ "Int;": '\U0000222C',
+ "Integral;": '\U0000222B',
+ "Intersection;": '\U000022C2',
+ "InvisibleComma;": '\U00002063',
+ "InvisibleTimes;": '\U00002062',
+ "Iogon;": '\U0000012E',
+ "Iopf;": '\U0001D540',
+ "Iota;": '\U00000399',
+ "Iscr;": '\U00002110',
+ "Itilde;": '\U00000128',
+ "Iukcy;": '\U00000406',
+ "Iuml;": '\U000000CF',
+ "Jcirc;": '\U00000134',
+ "Jcy;": '\U00000419',
+ "Jfr;": '\U0001D50D',
+ "Jopf;": '\U0001D541',
+ "Jscr;": '\U0001D4A5',
+ "Jsercy;": '\U00000408',
+ "Jukcy;": '\U00000404',
+ "KHcy;": '\U00000425',
+ "KJcy;": '\U0000040C',
+ "Kappa;": '\U0000039A',
+ "Kcedil;": '\U00000136',
+ "Kcy;": '\U0000041A',
+ "Kfr;": '\U0001D50E',
+ "Kopf;": '\U0001D542',
+ "Kscr;": '\U0001D4A6',
+ "LJcy;": '\U00000409',
+ "LT;": '\U0000003C',
+ "Lacute;": '\U00000139',
+ "Lambda;": '\U0000039B',
+ "Lang;": '\U000027EA',
+ "Laplacetrf;": '\U00002112',
+ "Larr;": '\U0000219E',
+ "Lcaron;": '\U0000013D',
+ "Lcedil;": '\U0000013B',
+ "Lcy;": '\U0000041B',
+ "LeftAngleBracket;": '\U000027E8',
+ "LeftArrow;": '\U00002190',
+ "LeftArrowBar;": '\U000021E4',
+ "LeftArrowRightArrow;": '\U000021C6',
+ "LeftCeiling;": '\U00002308',
+ "LeftDoubleBracket;": '\U000027E6',
+ "LeftDownTeeVector;": '\U00002961',
+ "LeftDownVector;": '\U000021C3',
+ "LeftDownVectorBar;": '\U00002959',
+ "LeftFloor;": '\U0000230A',
+ "LeftRightArrow;": '\U00002194',
+ "LeftRightVector;": '\U0000294E',
+ "LeftTee;": '\U000022A3',
+ "LeftTeeArrow;": '\U000021A4',
+ "LeftTeeVector;": '\U0000295A',
+ "LeftTriangle;": '\U000022B2',
+ "LeftTriangleBar;": '\U000029CF',
+ "LeftTriangleEqual;": '\U000022B4',
+ "LeftUpDownVector;": '\U00002951',
+ "LeftUpTeeVector;": '\U00002960',
+ "LeftUpVector;": '\U000021BF',
+ "LeftUpVectorBar;": '\U00002958',
+ "LeftVector;": '\U000021BC',
+ "LeftVectorBar;": '\U00002952',
+ "Leftarrow;": '\U000021D0',
+ "Leftrightarrow;": '\U000021D4',
+ "LessEqualGreater;": '\U000022DA',
+ "LessFullEqual;": '\U00002266',
+ "LessGreater;": '\U00002276',
+ "LessLess;": '\U00002AA1',
+ "LessSlantEqual;": '\U00002A7D',
+ "LessTilde;": '\U00002272',
+ "Lfr;": '\U0001D50F',
+ "Ll;": '\U000022D8',
+ "Lleftarrow;": '\U000021DA',
+ "Lmidot;": '\U0000013F',
+ "LongLeftArrow;": '\U000027F5',
+ "LongLeftRightArrow;": '\U000027F7',
+ "LongRightArrow;": '\U000027F6',
+ "Longleftarrow;": '\U000027F8',
+ "Longleftrightarrow;": '\U000027FA',
+ "Longrightarrow;": '\U000027F9',
+ "Lopf;": '\U0001D543',
+ "LowerLeftArrow;": '\U00002199',
+ "LowerRightArrow;": '\U00002198',
+ "Lscr;": '\U00002112',
+ "Lsh;": '\U000021B0',
+ "Lstrok;": '\U00000141',
+ "Lt;": '\U0000226A',
+ "Map;": '\U00002905',
+ "Mcy;": '\U0000041C',
+ "MediumSpace;": '\U0000205F',
+ "Mellintrf;": '\U00002133',
+ "Mfr;": '\U0001D510',
+ "MinusPlus;": '\U00002213',
+ "Mopf;": '\U0001D544',
+ "Mscr;": '\U00002133',
+ "Mu;": '\U0000039C',
+ "NJcy;": '\U0000040A',
+ "Nacute;": '\U00000143',
+ "Ncaron;": '\U00000147',
+ "Ncedil;": '\U00000145',
+ "Ncy;": '\U0000041D',
+ "NegativeMediumSpace;": '\U0000200B',
+ "NegativeThickSpace;": '\U0000200B',
+ "NegativeThinSpace;": '\U0000200B',
+ "NegativeVeryThinSpace;": '\U0000200B',
+ "NestedGreaterGreater;": '\U0000226B',
+ "NestedLessLess;": '\U0000226A',
+ "NewLine;": '\U0000000A',
+ "Nfr;": '\U0001D511',
+ "NoBreak;": '\U00002060',
+ "NonBreakingSpace;": '\U000000A0',
+ "Nopf;": '\U00002115',
+ "Not;": '\U00002AEC',
+ "NotCongruent;": '\U00002262',
+ "NotCupCap;": '\U0000226D',
+ "NotDoubleVerticalBar;": '\U00002226',
+ "NotElement;": '\U00002209',
+ "NotEqual;": '\U00002260',
+ "NotExists;": '\U00002204',
+ "NotGreater;": '\U0000226F',
+ "NotGreaterEqual;": '\U00002271',
+ "NotGreaterLess;": '\U00002279',
+ "NotGreaterTilde;": '\U00002275',
+ "NotLeftTriangle;": '\U000022EA',
+ "NotLeftTriangleEqual;": '\U000022EC',
+ "NotLess;": '\U0000226E',
+ "NotLessEqual;": '\U00002270',
+ "NotLessGreater;": '\U00002278',
+ "NotLessTilde;": '\U00002274',
+ "NotPrecedes;": '\U00002280',
+ "NotPrecedesSlantEqual;": '\U000022E0',
+ "NotReverseElement;": '\U0000220C',
+ "NotRightTriangle;": '\U000022EB',
+ "NotRightTriangleEqual;": '\U000022ED',
+ "NotSquareSubsetEqual;": '\U000022E2',
+ "NotSquareSupersetEqual;": '\U000022E3',
+ "NotSubsetEqual;": '\U00002288',
+ "NotSucceeds;": '\U00002281',
+ "NotSucceedsSlantEqual;": '\U000022E1',
+ "NotSupersetEqual;": '\U00002289',
+ "NotTilde;": '\U00002241',
+ "NotTildeEqual;": '\U00002244',
+ "NotTildeFullEqual;": '\U00002247',
+ "NotTildeTilde;": '\U00002249',
+ "NotVerticalBar;": '\U00002224',
+ "Nscr;": '\U0001D4A9',
+ "Ntilde;": '\U000000D1',
+ "Nu;": '\U0000039D',
+ "OElig;": '\U00000152',
+ "Oacute;": '\U000000D3',
+ "Ocirc;": '\U000000D4',
+ "Ocy;": '\U0000041E',
+ "Odblac;": '\U00000150',
+ "Ofr;": '\U0001D512',
+ "Ograve;": '\U000000D2',
+ "Omacr;": '\U0000014C',
+ "Omega;": '\U000003A9',
+ "Omicron;": '\U0000039F',
+ "Oopf;": '\U0001D546',
+ "OpenCurlyDoubleQuote;": '\U0000201C',
+ "OpenCurlyQuote;": '\U00002018',
+ "Or;": '\U00002A54',
+ "Oscr;": '\U0001D4AA',
+ "Oslash;": '\U000000D8',
+ "Otilde;": '\U000000D5',
+ "Otimes;": '\U00002A37',
+ "Ouml;": '\U000000D6',
+ "OverBar;": '\U0000203E',
+ "OverBrace;": '\U000023DE',
+ "OverBracket;": '\U000023B4',
+ "OverParenthesis;": '\U000023DC',
+ "PartialD;": '\U00002202',
+ "Pcy;": '\U0000041F',
+ "Pfr;": '\U0001D513',
+ "Phi;": '\U000003A6',
+ "Pi;": '\U000003A0',
+ "PlusMinus;": '\U000000B1',
+ "Poincareplane;": '\U0000210C',
+ "Popf;": '\U00002119',
+ "Pr;": '\U00002ABB',
+ "Precedes;": '\U0000227A',
+ "PrecedesEqual;": '\U00002AAF',
+ "PrecedesSlantEqual;": '\U0000227C',
+ "PrecedesTilde;": '\U0000227E',
+ "Prime;": '\U00002033',
+ "Product;": '\U0000220F',
+ "Proportion;": '\U00002237',
+ "Proportional;": '\U0000221D',
+ "Pscr;": '\U0001D4AB',
+ "Psi;": '\U000003A8',
+ "QUOT;": '\U00000022',
+ "Qfr;": '\U0001D514',
+ "Qopf;": '\U0000211A',
+ "Qscr;": '\U0001D4AC',
+ "RBarr;": '\U00002910',
+ "REG;": '\U000000AE',
+ "Racute;": '\U00000154',
+ "Rang;": '\U000027EB',
+ "Rarr;": '\U000021A0',
+ "Rarrtl;": '\U00002916',
+ "Rcaron;": '\U00000158',
+ "Rcedil;": '\U00000156',
+ "Rcy;": '\U00000420',
+ "Re;": '\U0000211C',
+ "ReverseElement;": '\U0000220B',
+ "ReverseEquilibrium;": '\U000021CB',
+ "ReverseUpEquilibrium;": '\U0000296F',
+ "Rfr;": '\U0000211C',
+ "Rho;": '\U000003A1',
+ "RightAngleBracket;": '\U000027E9',
+ "RightArrow;": '\U00002192',
+ "RightArrowBar;": '\U000021E5',
+ "RightArrowLeftArrow;": '\U000021C4',
+ "RightCeiling;": '\U00002309',
+ "RightDoubleBracket;": '\U000027E7',
+ "RightDownTeeVector;": '\U0000295D',
+ "RightDownVector;": '\U000021C2',
+ "RightDownVectorBar;": '\U00002955',
+ "RightFloor;": '\U0000230B',
+ "RightTee;": '\U000022A2',
+ "RightTeeArrow;": '\U000021A6',
+ "RightTeeVector;": '\U0000295B',
+ "RightTriangle;": '\U000022B3',
+ "RightTriangleBar;": '\U000029D0',
+ "RightTriangleEqual;": '\U000022B5',
+ "RightUpDownVector;": '\U0000294F',
+ "RightUpTeeVector;": '\U0000295C',
+ "RightUpVector;": '\U000021BE',
+ "RightUpVectorBar;": '\U00002954',
+ "RightVector;": '\U000021C0',
+ "RightVectorBar;": '\U00002953',
+ "Rightarrow;": '\U000021D2',
+ "Ropf;": '\U0000211D',
+ "RoundImplies;": '\U00002970',
+ "Rrightarrow;": '\U000021DB',
+ "Rscr;": '\U0000211B',
+ "Rsh;": '\U000021B1',
+ "RuleDelayed;": '\U000029F4',
+ "SHCHcy;": '\U00000429',
+ "SHcy;": '\U00000428',
+ "SOFTcy;": '\U0000042C',
+ "Sacute;": '\U0000015A',
+ "Sc;": '\U00002ABC',
+ "Scaron;": '\U00000160',
+ "Scedil;": '\U0000015E',
+ "Scirc;": '\U0000015C',
+ "Scy;": '\U00000421',
+ "Sfr;": '\U0001D516',
+ "ShortDownArrow;": '\U00002193',
+ "ShortLeftArrow;": '\U00002190',
+ "ShortRightArrow;": '\U00002192',
+ "ShortUpArrow;": '\U00002191',
+ "Sigma;": '\U000003A3',
+ "SmallCircle;": '\U00002218',
+ "Sopf;": '\U0001D54A',
+ "Sqrt;": '\U0000221A',
+ "Square;": '\U000025A1',
+ "SquareIntersection;": '\U00002293',
+ "SquareSubset;": '\U0000228F',
+ "SquareSubsetEqual;": '\U00002291',
+ "SquareSuperset;": '\U00002290',
+ "SquareSupersetEqual;": '\U00002292',
+ "SquareUnion;": '\U00002294',
+ "Sscr;": '\U0001D4AE',
+ "Star;": '\U000022C6',
+ "Sub;": '\U000022D0',
+ "Subset;": '\U000022D0',
+ "SubsetEqual;": '\U00002286',
+ "Succeeds;": '\U0000227B',
+ "SucceedsEqual;": '\U00002AB0',
+ "SucceedsSlantEqual;": '\U0000227D',
+ "SucceedsTilde;": '\U0000227F',
+ "SuchThat;": '\U0000220B',
+ "Sum;": '\U00002211',
+ "Sup;": '\U000022D1',
+ "Superset;": '\U00002283',
+ "SupersetEqual;": '\U00002287',
+ "Supset;": '\U000022D1',
+ "THORN;": '\U000000DE',
+ "TRADE;": '\U00002122',
+ "TSHcy;": '\U0000040B',
+ "TScy;": '\U00000426',
+ "Tab;": '\U00000009',
+ "Tau;": '\U000003A4',
+ "Tcaron;": '\U00000164',
+ "Tcedil;": '\U00000162',
+ "Tcy;": '\U00000422',
+ "Tfr;": '\U0001D517',
+ "Therefore;": '\U00002234',
+ "Theta;": '\U00000398',
+ "ThinSpace;": '\U00002009',
+ "Tilde;": '\U0000223C',
+ "TildeEqual;": '\U00002243',
+ "TildeFullEqual;": '\U00002245',
+ "TildeTilde;": '\U00002248',
+ "Topf;": '\U0001D54B',
+ "TripleDot;": '\U000020DB',
+ "Tscr;": '\U0001D4AF',
+ "Tstrok;": '\U00000166',
+ "Uacute;": '\U000000DA',
+ "Uarr;": '\U0000219F',
+ "Uarrocir;": '\U00002949',
+ "Ubrcy;": '\U0000040E',
+ "Ubreve;": '\U0000016C',
+ "Ucirc;": '\U000000DB',
+ "Ucy;": '\U00000423',
+ "Udblac;": '\U00000170',
+ "Ufr;": '\U0001D518',
+ "Ugrave;": '\U000000D9',
+ "Umacr;": '\U0000016A',
+ "UnderBar;": '\U0000005F',
+ "UnderBrace;": '\U000023DF',
+ "UnderBracket;": '\U000023B5',
+ "UnderParenthesis;": '\U000023DD',
+ "Union;": '\U000022C3',
+ "UnionPlus;": '\U0000228E',
+ "Uogon;": '\U00000172',
+ "Uopf;": '\U0001D54C',
+ "UpArrow;": '\U00002191',
+ "UpArrowBar;": '\U00002912',
+ "UpArrowDownArrow;": '\U000021C5',
+ "UpDownArrow;": '\U00002195',
+ "UpEquilibrium;": '\U0000296E',
+ "UpTee;": '\U000022A5',
+ "UpTeeArrow;": '\U000021A5',
+ "Uparrow;": '\U000021D1',
+ "Updownarrow;": '\U000021D5',
+ "UpperLeftArrow;": '\U00002196',
+ "UpperRightArrow;": '\U00002197',
+ "Upsi;": '\U000003D2',
+ "Upsilon;": '\U000003A5',
+ "Uring;": '\U0000016E',
+ "Uscr;": '\U0001D4B0',
+ "Utilde;": '\U00000168',
+ "Uuml;": '\U000000DC',
+ "VDash;": '\U000022AB',
+ "Vbar;": '\U00002AEB',
+ "Vcy;": '\U00000412',
+ "Vdash;": '\U000022A9',
+ "Vdashl;": '\U00002AE6',
+ "Vee;": '\U000022C1',
+ "Verbar;": '\U00002016',
+ "Vert;": '\U00002016',
+ "VerticalBar;": '\U00002223',
+ "VerticalLine;": '\U0000007C',
+ "VerticalSeparator;": '\U00002758',
+ "VerticalTilde;": '\U00002240',
+ "VeryThinSpace;": '\U0000200A',
+ "Vfr;": '\U0001D519',
+ "Vopf;": '\U0001D54D',
+ "Vscr;": '\U0001D4B1',
+ "Vvdash;": '\U000022AA',
+ "Wcirc;": '\U00000174',
+ "Wedge;": '\U000022C0',
+ "Wfr;": '\U0001D51A',
+ "Wopf;": '\U0001D54E',
+ "Wscr;": '\U0001D4B2',
+ "Xfr;": '\U0001D51B',
+ "Xi;": '\U0000039E',
+ "Xopf;": '\U0001D54F',
+ "Xscr;": '\U0001D4B3',
+ "YAcy;": '\U0000042F',
+ "YIcy;": '\U00000407',
+ "YUcy;": '\U0000042E',
+ "Yacute;": '\U000000DD',
+ "Ycirc;": '\U00000176',
+ "Ycy;": '\U0000042B',
+ "Yfr;": '\U0001D51C',
+ "Yopf;": '\U0001D550',
+ "Yscr;": '\U0001D4B4',
+ "Yuml;": '\U00000178',
+ "ZHcy;": '\U00000416',
+ "Zacute;": '\U00000179',
+ "Zcaron;": '\U0000017D',
+ "Zcy;": '\U00000417',
+ "Zdot;": '\U0000017B',
+ "ZeroWidthSpace;": '\U0000200B',
+ "Zeta;": '\U00000396',
+ "Zfr;": '\U00002128',
+ "Zopf;": '\U00002124',
+ "Zscr;": '\U0001D4B5',
+ "aacute;": '\U000000E1',
+ "abreve;": '\U00000103',
+ "ac;": '\U0000223E',
+ "acd;": '\U0000223F',
+ "acirc;": '\U000000E2',
+ "acute;": '\U000000B4',
+ "acy;": '\U00000430',
+ "aelig;": '\U000000E6',
+ "af;": '\U00002061',
+ "afr;": '\U0001D51E',
+ "agrave;": '\U000000E0',
+ "alefsym;": '\U00002135',
+ "aleph;": '\U00002135',
+ "alpha;": '\U000003B1',
+ "amacr;": '\U00000101',
+ "amalg;": '\U00002A3F',
+ "amp;": '\U00000026',
+ "and;": '\U00002227',
+ "andand;": '\U00002A55',
+ "andd;": '\U00002A5C',
+ "andslope;": '\U00002A58',
+ "andv;": '\U00002A5A',
+ "ang;": '\U00002220',
+ "ange;": '\U000029A4',
+ "angle;": '\U00002220',
+ "angmsd;": '\U00002221',
+ "angmsdaa;": '\U000029A8',
+ "angmsdab;": '\U000029A9',
+ "angmsdac;": '\U000029AA',
+ "angmsdad;": '\U000029AB',
+ "angmsdae;": '\U000029AC',
+ "angmsdaf;": '\U000029AD',
+ "angmsdag;": '\U000029AE',
+ "angmsdah;": '\U000029AF',
+ "angrt;": '\U0000221F',
+ "angrtvb;": '\U000022BE',
+ "angrtvbd;": '\U0000299D',
+ "angsph;": '\U00002222',
+ "angst;": '\U000000C5',
+ "angzarr;": '\U0000237C',
+ "aogon;": '\U00000105',
+ "aopf;": '\U0001D552',
+ "ap;": '\U00002248',
+ "apE;": '\U00002A70',
+ "apacir;": '\U00002A6F',
+ "ape;": '\U0000224A',
+ "apid;": '\U0000224B',
+ "apos;": '\U00000027',
+ "approx;": '\U00002248',
+ "approxeq;": '\U0000224A',
+ "aring;": '\U000000E5',
+ "ascr;": '\U0001D4B6',
+ "ast;": '\U0000002A',
+ "asymp;": '\U00002248',
+ "asympeq;": '\U0000224D',
+ "atilde;": '\U000000E3',
+ "auml;": '\U000000E4',
+ "awconint;": '\U00002233',
+ "awint;": '\U00002A11',
+ "bNot;": '\U00002AED',
+ "backcong;": '\U0000224C',
+ "backepsilon;": '\U000003F6',
+ "backprime;": '\U00002035',
+ "backsim;": '\U0000223D',
+ "backsimeq;": '\U000022CD',
+ "barvee;": '\U000022BD',
+ "barwed;": '\U00002305',
+ "barwedge;": '\U00002305',
+ "bbrk;": '\U000023B5',
+ "bbrktbrk;": '\U000023B6',
+ "bcong;": '\U0000224C',
+ "bcy;": '\U00000431',
+ "bdquo;": '\U0000201E',
+ "becaus;": '\U00002235',
+ "because;": '\U00002235',
+ "bemptyv;": '\U000029B0',
+ "bepsi;": '\U000003F6',
+ "bernou;": '\U0000212C',
+ "beta;": '\U000003B2',
+ "beth;": '\U00002136',
+ "between;": '\U0000226C',
+ "bfr;": '\U0001D51F',
+ "bigcap;": '\U000022C2',
+ "bigcirc;": '\U000025EF',
+ "bigcup;": '\U000022C3',
+ "bigodot;": '\U00002A00',
+ "bigoplus;": '\U00002A01',
+ "bigotimes;": '\U00002A02',
+ "bigsqcup;": '\U00002A06',
+ "bigstar;": '\U00002605',
+ "bigtriangledown;": '\U000025BD',
+ "bigtriangleup;": '\U000025B3',
+ "biguplus;": '\U00002A04',
+ "bigvee;": '\U000022C1',
+ "bigwedge;": '\U000022C0',
+ "bkarow;": '\U0000290D',
+ "blacklozenge;": '\U000029EB',
+ "blacksquare;": '\U000025AA',
+ "blacktriangle;": '\U000025B4',
+ "blacktriangledown;": '\U000025BE',
+ "blacktriangleleft;": '\U000025C2',
+ "blacktriangleright;": '\U000025B8',
+ "blank;": '\U00002423',
+ "blk12;": '\U00002592',
+ "blk14;": '\U00002591',
+ "blk34;": '\U00002593',
+ "block;": '\U00002588',
+ "bnot;": '\U00002310',
+ "bopf;": '\U0001D553',
+ "bot;": '\U000022A5',
+ "bottom;": '\U000022A5',
+ "bowtie;": '\U000022C8',
+ "boxDL;": '\U00002557',
+ "boxDR;": '\U00002554',
+ "boxDl;": '\U00002556',
+ "boxDr;": '\U00002553',
+ "boxH;": '\U00002550',
+ "boxHD;": '\U00002566',
+ "boxHU;": '\U00002569',
+ "boxHd;": '\U00002564',
+ "boxHu;": '\U00002567',
+ "boxUL;": '\U0000255D',
+ "boxUR;": '\U0000255A',
+ "boxUl;": '\U0000255C',
+ "boxUr;": '\U00002559',
+ "boxV;": '\U00002551',
+ "boxVH;": '\U0000256C',
+ "boxVL;": '\U00002563',
+ "boxVR;": '\U00002560',
+ "boxVh;": '\U0000256B',
+ "boxVl;": '\U00002562',
+ "boxVr;": '\U0000255F',
+ "boxbox;": '\U000029C9',
+ "boxdL;": '\U00002555',
+ "boxdR;": '\U00002552',
+ "boxdl;": '\U00002510',
+ "boxdr;": '\U0000250C',
+ "boxh;": '\U00002500',
+ "boxhD;": '\U00002565',
+ "boxhU;": '\U00002568',
+ "boxhd;": '\U0000252C',
+ "boxhu;": '\U00002534',
+ "boxminus;": '\U0000229F',
+ "boxplus;": '\U0000229E',
+ "boxtimes;": '\U000022A0',
+ "boxuL;": '\U0000255B',
+ "boxuR;": '\U00002558',
+ "boxul;": '\U00002518',
+ "boxur;": '\U00002514',
+ "boxv;": '\U00002502',
+ "boxvH;": '\U0000256A',
+ "boxvL;": '\U00002561',
+ "boxvR;": '\U0000255E',
+ "boxvh;": '\U0000253C',
+ "boxvl;": '\U00002524',
+ "boxvr;": '\U0000251C',
+ "bprime;": '\U00002035',
+ "breve;": '\U000002D8',
+ "brvbar;": '\U000000A6',
+ "bscr;": '\U0001D4B7',
+ "bsemi;": '\U0000204F',
+ "bsim;": '\U0000223D',
+ "bsime;": '\U000022CD',
+ "bsol;": '\U0000005C',
+ "bsolb;": '\U000029C5',
+ "bsolhsub;": '\U000027C8',
+ "bull;": '\U00002022',
+ "bullet;": '\U00002022',
+ "bump;": '\U0000224E',
+ "bumpE;": '\U00002AAE',
+ "bumpe;": '\U0000224F',
+ "bumpeq;": '\U0000224F',
+ "cacute;": '\U00000107',
+ "cap;": '\U00002229',
+ "capand;": '\U00002A44',
+ "capbrcup;": '\U00002A49',
+ "capcap;": '\U00002A4B',
+ "capcup;": '\U00002A47',
+ "capdot;": '\U00002A40',
+ "caret;": '\U00002041',
+ "caron;": '\U000002C7',
+ "ccaps;": '\U00002A4D',
+ "ccaron;": '\U0000010D',
+ "ccedil;": '\U000000E7',
+ "ccirc;": '\U00000109',
+ "ccups;": '\U00002A4C',
+ "ccupssm;": '\U00002A50',
+ "cdot;": '\U0000010B',
+ "cedil;": '\U000000B8',
+ "cemptyv;": '\U000029B2',
+ "cent;": '\U000000A2',
+ "centerdot;": '\U000000B7',
+ "cfr;": '\U0001D520',
+ "chcy;": '\U00000447',
+ "check;": '\U00002713',
+ "checkmark;": '\U00002713',
+ "chi;": '\U000003C7',
+ "cir;": '\U000025CB',
+ "cirE;": '\U000029C3',
+ "circ;": '\U000002C6',
+ "circeq;": '\U00002257',
+ "circlearrowleft;": '\U000021BA',
+ "circlearrowright;": '\U000021BB',
+ "circledR;": '\U000000AE',
+ "circledS;": '\U000024C8',
+ "circledast;": '\U0000229B',
+ "circledcirc;": '\U0000229A',
+ "circleddash;": '\U0000229D',
+ "cire;": '\U00002257',
+ "cirfnint;": '\U00002A10',
+ "cirmid;": '\U00002AEF',
+ "cirscir;": '\U000029C2',
+ "clubs;": '\U00002663',
+ "clubsuit;": '\U00002663',
+ "colon;": '\U0000003A',
+ "colone;": '\U00002254',
+ "coloneq;": '\U00002254',
+ "comma;": '\U0000002C',
+ "commat;": '\U00000040',
+ "comp;": '\U00002201',
+ "compfn;": '\U00002218',
+ "complement;": '\U00002201',
+ "complexes;": '\U00002102',
+ "cong;": '\U00002245',
+ "congdot;": '\U00002A6D',
+ "conint;": '\U0000222E',
+ "copf;": '\U0001D554',
+ "coprod;": '\U00002210',
+ "copy;": '\U000000A9',
+ "copysr;": '\U00002117',
+ "crarr;": '\U000021B5',
+ "cross;": '\U00002717',
+ "cscr;": '\U0001D4B8',
+ "csub;": '\U00002ACF',
+ "csube;": '\U00002AD1',
+ "csup;": '\U00002AD0',
+ "csupe;": '\U00002AD2',
+ "ctdot;": '\U000022EF',
+ "cudarrl;": '\U00002938',
+ "cudarrr;": '\U00002935',
+ "cuepr;": '\U000022DE',
+ "cuesc;": '\U000022DF',
+ "cularr;": '\U000021B6',
+ "cularrp;": '\U0000293D',
+ "cup;": '\U0000222A',
+ "cupbrcap;": '\U00002A48',
+ "cupcap;": '\U00002A46',
+ "cupcup;": '\U00002A4A',
+ "cupdot;": '\U0000228D',
+ "cupor;": '\U00002A45',
+ "curarr;": '\U000021B7',
+ "curarrm;": '\U0000293C',
+ "curlyeqprec;": '\U000022DE',
+ "curlyeqsucc;": '\U000022DF',
+ "curlyvee;": '\U000022CE',
+ "curlywedge;": '\U000022CF',
+ "curren;": '\U000000A4',
+ "curvearrowleft;": '\U000021B6',
+ "curvearrowright;": '\U000021B7',
+ "cuvee;": '\U000022CE',
+ "cuwed;": '\U000022CF',
+ "cwconint;": '\U00002232',
+ "cwint;": '\U00002231',
+ "cylcty;": '\U0000232D',
+ "dArr;": '\U000021D3',
+ "dHar;": '\U00002965',
+ "dagger;": '\U00002020',
+ "daleth;": '\U00002138',
+ "darr;": '\U00002193',
+ "dash;": '\U00002010',
+ "dashv;": '\U000022A3',
+ "dbkarow;": '\U0000290F',
+ "dblac;": '\U000002DD',
+ "dcaron;": '\U0000010F',
+ "dcy;": '\U00000434',
+ "dd;": '\U00002146',
+ "ddagger;": '\U00002021',
+ "ddarr;": '\U000021CA',
+ "ddotseq;": '\U00002A77',
+ "deg;": '\U000000B0',
+ "delta;": '\U000003B4',
+ "demptyv;": '\U000029B1',
+ "dfisht;": '\U0000297F',
+ "dfr;": '\U0001D521',
+ "dharl;": '\U000021C3',
+ "dharr;": '\U000021C2',
+ "diam;": '\U000022C4',
+ "diamond;": '\U000022C4',
+ "diamondsuit;": '\U00002666',
+ "diams;": '\U00002666',
+ "die;": '\U000000A8',
+ "digamma;": '\U000003DD',
+ "disin;": '\U000022F2',
+ "div;": '\U000000F7',
+ "divide;": '\U000000F7',
+ "divideontimes;": '\U000022C7',
+ "divonx;": '\U000022C7',
+ "djcy;": '\U00000452',
+ "dlcorn;": '\U0000231E',
+ "dlcrop;": '\U0000230D',
+ "dollar;": '\U00000024',
+ "dopf;": '\U0001D555',
+ "dot;": '\U000002D9',
+ "doteq;": '\U00002250',
+ "doteqdot;": '\U00002251',
+ "dotminus;": '\U00002238',
+ "dotplus;": '\U00002214',
+ "dotsquare;": '\U000022A1',
+ "doublebarwedge;": '\U00002306',
+ "downarrow;": '\U00002193',
+ "downdownarrows;": '\U000021CA',
+ "downharpoonleft;": '\U000021C3',
+ "downharpoonright;": '\U000021C2',
+ "drbkarow;": '\U00002910',
+ "drcorn;": '\U0000231F',
+ "drcrop;": '\U0000230C',
+ "dscr;": '\U0001D4B9',
+ "dscy;": '\U00000455',
+ "dsol;": '\U000029F6',
+ "dstrok;": '\U00000111',
+ "dtdot;": '\U000022F1',
+ "dtri;": '\U000025BF',
+ "dtrif;": '\U000025BE',
+ "duarr;": '\U000021F5',
+ "duhar;": '\U0000296F',
+ "dwangle;": '\U000029A6',
+ "dzcy;": '\U0000045F',
+ "dzigrarr;": '\U000027FF',
+ "eDDot;": '\U00002A77',
+ "eDot;": '\U00002251',
+ "eacute;": '\U000000E9',
+ "easter;": '\U00002A6E',
+ "ecaron;": '\U0000011B',
+ "ecir;": '\U00002256',
+ "ecirc;": '\U000000EA',
+ "ecolon;": '\U00002255',
+ "ecy;": '\U0000044D',
+ "edot;": '\U00000117',
+ "ee;": '\U00002147',
+ "efDot;": '\U00002252',
+ "efr;": '\U0001D522',
+ "eg;": '\U00002A9A',
+ "egrave;": '\U000000E8',
+ "egs;": '\U00002A96',
+ "egsdot;": '\U00002A98',
+ "el;": '\U00002A99',
+ "elinters;": '\U000023E7',
+ "ell;": '\U00002113',
+ "els;": '\U00002A95',
+ "elsdot;": '\U00002A97',
+ "emacr;": '\U00000113',
+ "empty;": '\U00002205',
+ "emptyset;": '\U00002205',
+ "emptyv;": '\U00002205',
+ "emsp;": '\U00002003',
+ "emsp13;": '\U00002004',
+ "emsp14;": '\U00002005',
+ "eng;": '\U0000014B',
+ "ensp;": '\U00002002',
+ "eogon;": '\U00000119',
+ "eopf;": '\U0001D556',
+ "epar;": '\U000022D5',
+ "eparsl;": '\U000029E3',
+ "eplus;": '\U00002A71',
+ "epsi;": '\U000003B5',
+ "epsilon;": '\U000003B5',
+ "epsiv;": '\U000003F5',
+ "eqcirc;": '\U00002256',
+ "eqcolon;": '\U00002255',
+ "eqsim;": '\U00002242',
+ "eqslantgtr;": '\U00002A96',
+ "eqslantless;": '\U00002A95',
+ "equals;": '\U0000003D',
+ "equest;": '\U0000225F',
+ "equiv;": '\U00002261',
+ "equivDD;": '\U00002A78',
+ "eqvparsl;": '\U000029E5',
+ "erDot;": '\U00002253',
+ "erarr;": '\U00002971',
+ "escr;": '\U0000212F',
+ "esdot;": '\U00002250',
+ "esim;": '\U00002242',
+ "eta;": '\U000003B7',
+ "eth;": '\U000000F0',
+ "euml;": '\U000000EB',
+ "euro;": '\U000020AC',
+ "excl;": '\U00000021',
+ "exist;": '\U00002203',
+ "expectation;": '\U00002130',
+ "exponentiale;": '\U00002147',
+ "fallingdotseq;": '\U00002252',
+ "fcy;": '\U00000444',
+ "female;": '\U00002640',
+ "ffilig;": '\U0000FB03',
+ "fflig;": '\U0000FB00',
+ "ffllig;": '\U0000FB04',
+ "ffr;": '\U0001D523',
+ "filig;": '\U0000FB01',
+ "flat;": '\U0000266D',
+ "fllig;": '\U0000FB02',
+ "fltns;": '\U000025B1',
+ "fnof;": '\U00000192',
+ "fopf;": '\U0001D557',
+ "forall;": '\U00002200',
+ "fork;": '\U000022D4',
+ "forkv;": '\U00002AD9',
+ "fpartint;": '\U00002A0D',
+ "frac12;": '\U000000BD',
+ "frac13;": '\U00002153',
+ "frac14;": '\U000000BC',
+ "frac15;": '\U00002155',
+ "frac16;": '\U00002159',
+ "frac18;": '\U0000215B',
+ "frac23;": '\U00002154',
+ "frac25;": '\U00002156',
+ "frac34;": '\U000000BE',
+ "frac35;": '\U00002157',
+ "frac38;": '\U0000215C',
+ "frac45;": '\U00002158',
+ "frac56;": '\U0000215A',
+ "frac58;": '\U0000215D',
+ "frac78;": '\U0000215E',
+ "frasl;": '\U00002044',
+ "frown;": '\U00002322',
+ "fscr;": '\U0001D4BB',
+ "gE;": '\U00002267',
+ "gEl;": '\U00002A8C',
+ "gacute;": '\U000001F5',
+ "gamma;": '\U000003B3',
+ "gammad;": '\U000003DD',
+ "gap;": '\U00002A86',
+ "gbreve;": '\U0000011F',
+ "gcirc;": '\U0000011D',
+ "gcy;": '\U00000433',
+ "gdot;": '\U00000121',
+ "ge;": '\U00002265',
+ "gel;": '\U000022DB',
+ "geq;": '\U00002265',
+ "geqq;": '\U00002267',
+ "geqslant;": '\U00002A7E',
+ "ges;": '\U00002A7E',
+ "gescc;": '\U00002AA9',
+ "gesdot;": '\U00002A80',
+ "gesdoto;": '\U00002A82',
+ "gesdotol;": '\U00002A84',
+ "gesles;": '\U00002A94',
+ "gfr;": '\U0001D524',
+ "gg;": '\U0000226B',
+ "ggg;": '\U000022D9',
+ "gimel;": '\U00002137',
+ "gjcy;": '\U00000453',
+ "gl;": '\U00002277',
+ "glE;": '\U00002A92',
+ "gla;": '\U00002AA5',
+ "glj;": '\U00002AA4',
+ "gnE;": '\U00002269',
+ "gnap;": '\U00002A8A',
+ "gnapprox;": '\U00002A8A',
+ "gne;": '\U00002A88',
+ "gneq;": '\U00002A88',
+ "gneqq;": '\U00002269',
+ "gnsim;": '\U000022E7',
+ "gopf;": '\U0001D558',
+ "grave;": '\U00000060',
+ "gscr;": '\U0000210A',
+ "gsim;": '\U00002273',
+ "gsime;": '\U00002A8E',
+ "gsiml;": '\U00002A90',
+ "gt;": '\U0000003E',
+ "gtcc;": '\U00002AA7',
+ "gtcir;": '\U00002A7A',
+ "gtdot;": '\U000022D7',
+ "gtlPar;": '\U00002995',
+ "gtquest;": '\U00002A7C',
+ "gtrapprox;": '\U00002A86',
+ "gtrarr;": '\U00002978',
+ "gtrdot;": '\U000022D7',
+ "gtreqless;": '\U000022DB',
+ "gtreqqless;": '\U00002A8C',
+ "gtrless;": '\U00002277',
+ "gtrsim;": '\U00002273',
+ "hArr;": '\U000021D4',
+ "hairsp;": '\U0000200A',
+ "half;": '\U000000BD',
+ "hamilt;": '\U0000210B',
+ "hardcy;": '\U0000044A',
+ "harr;": '\U00002194',
+ "harrcir;": '\U00002948',
+ "harrw;": '\U000021AD',
+ "hbar;": '\U0000210F',
+ "hcirc;": '\U00000125',
+ "hearts;": '\U00002665',
+ "heartsuit;": '\U00002665',
+ "hellip;": '\U00002026',
+ "hercon;": '\U000022B9',
+ "hfr;": '\U0001D525',
+ "hksearow;": '\U00002925',
+ "hkswarow;": '\U00002926',
+ "hoarr;": '\U000021FF',
+ "homtht;": '\U0000223B',
+ "hookleftarrow;": '\U000021A9',
+ "hookrightarrow;": '\U000021AA',
+ "hopf;": '\U0001D559',
+ "horbar;": '\U00002015',
+ "hscr;": '\U0001D4BD',
+ "hslash;": '\U0000210F',
+ "hstrok;": '\U00000127',
+ "hybull;": '\U00002043',
+ "hyphen;": '\U00002010',
+ "iacute;": '\U000000ED',
+ "ic;": '\U00002063',
+ "icirc;": '\U000000EE',
+ "icy;": '\U00000438',
+ "iecy;": '\U00000435',
+ "iexcl;": '\U000000A1',
+ "iff;": '\U000021D4',
+ "ifr;": '\U0001D526',
+ "igrave;": '\U000000EC',
+ "ii;": '\U00002148',
+ "iiiint;": '\U00002A0C',
+ "iiint;": '\U0000222D',
+ "iinfin;": '\U000029DC',
+ "iiota;": '\U00002129',
+ "ijlig;": '\U00000133',
+ "imacr;": '\U0000012B',
+ "image;": '\U00002111',
+ "imagline;": '\U00002110',
+ "imagpart;": '\U00002111',
+ "imath;": '\U00000131',
+ "imof;": '\U000022B7',
+ "imped;": '\U000001B5',
+ "in;": '\U00002208',
+ "incare;": '\U00002105',
+ "infin;": '\U0000221E',
+ "infintie;": '\U000029DD',
+ "inodot;": '\U00000131',
+ "int;": '\U0000222B',
+ "intcal;": '\U000022BA',
+ "integers;": '\U00002124',
+ "intercal;": '\U000022BA',
+ "intlarhk;": '\U00002A17',
+ "intprod;": '\U00002A3C',
+ "iocy;": '\U00000451',
+ "iogon;": '\U0000012F',
+ "iopf;": '\U0001D55A',
+ "iota;": '\U000003B9',
+ "iprod;": '\U00002A3C',
+ "iquest;": '\U000000BF',
+ "iscr;": '\U0001D4BE',
+ "isin;": '\U00002208',
+ "isinE;": '\U000022F9',
+ "isindot;": '\U000022F5',
+ "isins;": '\U000022F4',
+ "isinsv;": '\U000022F3',
+ "isinv;": '\U00002208',
+ "it;": '\U00002062',
+ "itilde;": '\U00000129',
+ "iukcy;": '\U00000456',
+ "iuml;": '\U000000EF',
+ "jcirc;": '\U00000135',
+ "jcy;": '\U00000439',
+ "jfr;": '\U0001D527',
+ "jmath;": '\U00000237',
+ "jopf;": '\U0001D55B',
+ "jscr;": '\U0001D4BF',
+ "jsercy;": '\U00000458',
+ "jukcy;": '\U00000454',
+ "kappa;": '\U000003BA',
+ "kappav;": '\U000003F0',
+ "kcedil;": '\U00000137',
+ "kcy;": '\U0000043A',
+ "kfr;": '\U0001D528',
+ "kgreen;": '\U00000138',
+ "khcy;": '\U00000445',
+ "kjcy;": '\U0000045C',
+ "kopf;": '\U0001D55C',
+ "kscr;": '\U0001D4C0',
+ "lAarr;": '\U000021DA',
+ "lArr;": '\U000021D0',
+ "lAtail;": '\U0000291B',
+ "lBarr;": '\U0000290E',
+ "lE;": '\U00002266',
+ "lEg;": '\U00002A8B',
+ "lHar;": '\U00002962',
+ "lacute;": '\U0000013A',
+ "laemptyv;": '\U000029B4',
+ "lagran;": '\U00002112',
+ "lambda;": '\U000003BB',
+ "lang;": '\U000027E8',
+ "langd;": '\U00002991',
+ "langle;": '\U000027E8',
+ "lap;": '\U00002A85',
+ "laquo;": '\U000000AB',
+ "larr;": '\U00002190',
+ "larrb;": '\U000021E4',
+ "larrbfs;": '\U0000291F',
+ "larrfs;": '\U0000291D',
+ "larrhk;": '\U000021A9',
+ "larrlp;": '\U000021AB',
+ "larrpl;": '\U00002939',
+ "larrsim;": '\U00002973',
+ "larrtl;": '\U000021A2',
+ "lat;": '\U00002AAB',
+ "latail;": '\U00002919',
+ "late;": '\U00002AAD',
+ "lbarr;": '\U0000290C',
+ "lbbrk;": '\U00002772',
+ "lbrace;": '\U0000007B',
+ "lbrack;": '\U0000005B',
+ "lbrke;": '\U0000298B',
+ "lbrksld;": '\U0000298F',
+ "lbrkslu;": '\U0000298D',
+ "lcaron;": '\U0000013E',
+ "lcedil;": '\U0000013C',
+ "lceil;": '\U00002308',
+ "lcub;": '\U0000007B',
+ "lcy;": '\U0000043B',
+ "ldca;": '\U00002936',
+ "ldquo;": '\U0000201C',
+ "ldquor;": '\U0000201E',
+ "ldrdhar;": '\U00002967',
+ "ldrushar;": '\U0000294B',
+ "ldsh;": '\U000021B2',
+ "le;": '\U00002264',
+ "leftarrow;": '\U00002190',
+ "leftarrowtail;": '\U000021A2',
+ "leftharpoondown;": '\U000021BD',
+ "leftharpoonup;": '\U000021BC',
+ "leftleftarrows;": '\U000021C7',
+ "leftrightarrow;": '\U00002194',
+ "leftrightarrows;": '\U000021C6',
+ "leftrightharpoons;": '\U000021CB',
+ "leftrightsquigarrow;": '\U000021AD',
+ "leftthreetimes;": '\U000022CB',
+ "leg;": '\U000022DA',
+ "leq;": '\U00002264',
+ "leqq;": '\U00002266',
+ "leqslant;": '\U00002A7D',
+ "les;": '\U00002A7D',
+ "lescc;": '\U00002AA8',
+ "lesdot;": '\U00002A7F',
+ "lesdoto;": '\U00002A81',
+ "lesdotor;": '\U00002A83',
+ "lesges;": '\U00002A93',
+ "lessapprox;": '\U00002A85',
+ "lessdot;": '\U000022D6',
+ "lesseqgtr;": '\U000022DA',
+ "lesseqqgtr;": '\U00002A8B',
+ "lessgtr;": '\U00002276',
+ "lesssim;": '\U00002272',
+ "lfisht;": '\U0000297C',
+ "lfloor;": '\U0000230A',
+ "lfr;": '\U0001D529',
+ "lg;": '\U00002276',
+ "lgE;": '\U00002A91',
+ "lhard;": '\U000021BD',
+ "lharu;": '\U000021BC',
+ "lharul;": '\U0000296A',
+ "lhblk;": '\U00002584',
+ "ljcy;": '\U00000459',
+ "ll;": '\U0000226A',
+ "llarr;": '\U000021C7',
+ "llcorner;": '\U0000231E',
+ "llhard;": '\U0000296B',
+ "lltri;": '\U000025FA',
+ "lmidot;": '\U00000140',
+ "lmoust;": '\U000023B0',
+ "lmoustache;": '\U000023B0',
+ "lnE;": '\U00002268',
+ "lnap;": '\U00002A89',
+ "lnapprox;": '\U00002A89',
+ "lne;": '\U00002A87',
+ "lneq;": '\U00002A87',
+ "lneqq;": '\U00002268',
+ "lnsim;": '\U000022E6',
+ "loang;": '\U000027EC',
+ "loarr;": '\U000021FD',
+ "lobrk;": '\U000027E6',
+ "longleftarrow;": '\U000027F5',
+ "longleftrightarrow;": '\U000027F7',
+ "longmapsto;": '\U000027FC',
+ "longrightarrow;": '\U000027F6',
+ "looparrowleft;": '\U000021AB',
+ "looparrowright;": '\U000021AC',
+ "lopar;": '\U00002985',
+ "lopf;": '\U0001D55D',
+ "loplus;": '\U00002A2D',
+ "lotimes;": '\U00002A34',
+ "lowast;": '\U00002217',
+ "lowbar;": '\U0000005F',
+ "loz;": '\U000025CA',
+ "lozenge;": '\U000025CA',
+ "lozf;": '\U000029EB',
+ "lpar;": '\U00000028',
+ "lparlt;": '\U00002993',
+ "lrarr;": '\U000021C6',
+ "lrcorner;": '\U0000231F',
+ "lrhar;": '\U000021CB',
+ "lrhard;": '\U0000296D',
+ "lrm;": '\U0000200E',
+ "lrtri;": '\U000022BF',
+ "lsaquo;": '\U00002039',
+ "lscr;": '\U0001D4C1',
+ "lsh;": '\U000021B0',
+ "lsim;": '\U00002272',
+ "lsime;": '\U00002A8D',
+ "lsimg;": '\U00002A8F',
+ "lsqb;": '\U0000005B',
+ "lsquo;": '\U00002018',
+ "lsquor;": '\U0000201A',
+ "lstrok;": '\U00000142',
+ "lt;": '\U0000003C',
+ "ltcc;": '\U00002AA6',
+ "ltcir;": '\U00002A79',
+ "ltdot;": '\U000022D6',
+ "lthree;": '\U000022CB',
+ "ltimes;": '\U000022C9',
+ "ltlarr;": '\U00002976',
+ "ltquest;": '\U00002A7B',
+ "ltrPar;": '\U00002996',
+ "ltri;": '\U000025C3',
+ "ltrie;": '\U000022B4',
+ "ltrif;": '\U000025C2',
+ "lurdshar;": '\U0000294A',
+ "luruhar;": '\U00002966',
+ "mDDot;": '\U0000223A',
+ "macr;": '\U000000AF',
+ "male;": '\U00002642',
+ "malt;": '\U00002720',
+ "maltese;": '\U00002720',
+ "map;": '\U000021A6',
+ "mapsto;": '\U000021A6',
+ "mapstodown;": '\U000021A7',
+ "mapstoleft;": '\U000021A4',
+ "mapstoup;": '\U000021A5',
+ "marker;": '\U000025AE',
+ "mcomma;": '\U00002A29',
+ "mcy;": '\U0000043C',
+ "mdash;": '\U00002014',
+ "measuredangle;": '\U00002221',
+ "mfr;": '\U0001D52A',
+ "mho;": '\U00002127',
+ "micro;": '\U000000B5',
+ "mid;": '\U00002223',
+ "midast;": '\U0000002A',
+ "midcir;": '\U00002AF0',
+ "middot;": '\U000000B7',
+ "minus;": '\U00002212',
+ "minusb;": '\U0000229F',
+ "minusd;": '\U00002238',
+ "minusdu;": '\U00002A2A',
+ "mlcp;": '\U00002ADB',
+ "mldr;": '\U00002026',
+ "mnplus;": '\U00002213',
+ "models;": '\U000022A7',
+ "mopf;": '\U0001D55E',
+ "mp;": '\U00002213',
+ "mscr;": '\U0001D4C2',
+ "mstpos;": '\U0000223E',
+ "mu;": '\U000003BC',
+ "multimap;": '\U000022B8',
+ "mumap;": '\U000022B8',
+ "nLeftarrow;": '\U000021CD',
+ "nLeftrightarrow;": '\U000021CE',
+ "nRightarrow;": '\U000021CF',
+ "nVDash;": '\U000022AF',
+ "nVdash;": '\U000022AE',
+ "nabla;": '\U00002207',
+ "nacute;": '\U00000144',
+ "nap;": '\U00002249',
+ "napos;": '\U00000149',
+ "napprox;": '\U00002249',
+ "natur;": '\U0000266E',
+ "natural;": '\U0000266E',
+ "naturals;": '\U00002115',
+ "nbsp;": '\U000000A0',
+ "ncap;": '\U00002A43',
+ "ncaron;": '\U00000148',
+ "ncedil;": '\U00000146',
+ "ncong;": '\U00002247',
+ "ncup;": '\U00002A42',
+ "ncy;": '\U0000043D',
+ "ndash;": '\U00002013',
+ "ne;": '\U00002260',
+ "neArr;": '\U000021D7',
+ "nearhk;": '\U00002924',
+ "nearr;": '\U00002197',
+ "nearrow;": '\U00002197',
+ "nequiv;": '\U00002262',
+ "nesear;": '\U00002928',
+ "nexist;": '\U00002204',
+ "nexists;": '\U00002204',
+ "nfr;": '\U0001D52B',
+ "nge;": '\U00002271',
+ "ngeq;": '\U00002271',
+ "ngsim;": '\U00002275',
+ "ngt;": '\U0000226F',
+ "ngtr;": '\U0000226F',
+ "nhArr;": '\U000021CE',
+ "nharr;": '\U000021AE',
+ "nhpar;": '\U00002AF2',
+ "ni;": '\U0000220B',
+ "nis;": '\U000022FC',
+ "nisd;": '\U000022FA',
+ "niv;": '\U0000220B',
+ "njcy;": '\U0000045A',
+ "nlArr;": '\U000021CD',
+ "nlarr;": '\U0000219A',
+ "nldr;": '\U00002025',
+ "nle;": '\U00002270',
+ "nleftarrow;": '\U0000219A',
+ "nleftrightarrow;": '\U000021AE',
+ "nleq;": '\U00002270',
+ "nless;": '\U0000226E',
+ "nlsim;": '\U00002274',
+ "nlt;": '\U0000226E',
+ "nltri;": '\U000022EA',
+ "nltrie;": '\U000022EC',
+ "nmid;": '\U00002224',
+ "nopf;": '\U0001D55F',
+ "not;": '\U000000AC',
+ "notin;": '\U00002209',
+ "notinva;": '\U00002209',
+ "notinvb;": '\U000022F7',
+ "notinvc;": '\U000022F6',
+ "notni;": '\U0000220C',
+ "notniva;": '\U0000220C',
+ "notnivb;": '\U000022FE',
+ "notnivc;": '\U000022FD',
+ "npar;": '\U00002226',
+ "nparallel;": '\U00002226',
+ "npolint;": '\U00002A14',
+ "npr;": '\U00002280',
+ "nprcue;": '\U000022E0',
+ "nprec;": '\U00002280',
+ "nrArr;": '\U000021CF',
+ "nrarr;": '\U0000219B',
+ "nrightarrow;": '\U0000219B',
+ "nrtri;": '\U000022EB',
+ "nrtrie;": '\U000022ED',
+ "nsc;": '\U00002281',
+ "nsccue;": '\U000022E1',
+ "nscr;": '\U0001D4C3',
+ "nshortmid;": '\U00002224',
+ "nshortparallel;": '\U00002226',
+ "nsim;": '\U00002241',
+ "nsime;": '\U00002244',
+ "nsimeq;": '\U00002244',
+ "nsmid;": '\U00002224',
+ "nspar;": '\U00002226',
+ "nsqsube;": '\U000022E2',
+ "nsqsupe;": '\U000022E3',
+ "nsub;": '\U00002284',
+ "nsube;": '\U00002288',
+ "nsubseteq;": '\U00002288',
+ "nsucc;": '\U00002281',
+ "nsup;": '\U00002285',
+ "nsupe;": '\U00002289',
+ "nsupseteq;": '\U00002289',
+ "ntgl;": '\U00002279',
+ "ntilde;": '\U000000F1',
+ "ntlg;": '\U00002278',
+ "ntriangleleft;": '\U000022EA',
+ "ntrianglelefteq;": '\U000022EC',
+ "ntriangleright;": '\U000022EB',
+ "ntrianglerighteq;": '\U000022ED',
+ "nu;": '\U000003BD',
+ "num;": '\U00000023',
+ "numero;": '\U00002116',
+ "numsp;": '\U00002007',
+ "nvDash;": '\U000022AD',
+ "nvHarr;": '\U00002904',
+ "nvdash;": '\U000022AC',
+ "nvinfin;": '\U000029DE',
+ "nvlArr;": '\U00002902',
+ "nvrArr;": '\U00002903',
+ "nwArr;": '\U000021D6',
+ "nwarhk;": '\U00002923',
+ "nwarr;": '\U00002196',
+ "nwarrow;": '\U00002196',
+ "nwnear;": '\U00002927',
+ "oS;": '\U000024C8',
+ "oacute;": '\U000000F3',
+ "oast;": '\U0000229B',
+ "ocir;": '\U0000229A',
+ "ocirc;": '\U000000F4',
+ "ocy;": '\U0000043E',
+ "odash;": '\U0000229D',
+ "odblac;": '\U00000151',
+ "odiv;": '\U00002A38',
+ "odot;": '\U00002299',
+ "odsold;": '\U000029BC',
+ "oelig;": '\U00000153',
+ "ofcir;": '\U000029BF',
+ "ofr;": '\U0001D52C',
+ "ogon;": '\U000002DB',
+ "ograve;": '\U000000F2',
+ "ogt;": '\U000029C1',
+ "ohbar;": '\U000029B5',
+ "ohm;": '\U000003A9',
+ "oint;": '\U0000222E',
+ "olarr;": '\U000021BA',
+ "olcir;": '\U000029BE',
+ "olcross;": '\U000029BB',
+ "oline;": '\U0000203E',
+ "olt;": '\U000029C0',
+ "omacr;": '\U0000014D',
+ "omega;": '\U000003C9',
+ "omicron;": '\U000003BF',
+ "omid;": '\U000029B6',
+ "ominus;": '\U00002296',
+ "oopf;": '\U0001D560',
+ "opar;": '\U000029B7',
+ "operp;": '\U000029B9',
+ "oplus;": '\U00002295',
+ "or;": '\U00002228',
+ "orarr;": '\U000021BB',
+ "ord;": '\U00002A5D',
+ "order;": '\U00002134',
+ "orderof;": '\U00002134',
+ "ordf;": '\U000000AA',
+ "ordm;": '\U000000BA',
+ "origof;": '\U000022B6',
+ "oror;": '\U00002A56',
+ "orslope;": '\U00002A57',
+ "orv;": '\U00002A5B',
+ "oscr;": '\U00002134',
+ "oslash;": '\U000000F8',
+ "osol;": '\U00002298',
+ "otilde;": '\U000000F5',
+ "otimes;": '\U00002297',
+ "otimesas;": '\U00002A36',
+ "ouml;": '\U000000F6',
+ "ovbar;": '\U0000233D',
+ "par;": '\U00002225',
+ "para;": '\U000000B6',
+ "parallel;": '\U00002225',
+ "parsim;": '\U00002AF3',
+ "parsl;": '\U00002AFD',
+ "part;": '\U00002202',
+ "pcy;": '\U0000043F',
+ "percnt;": '\U00000025',
+ "period;": '\U0000002E',
+ "permil;": '\U00002030',
+ "perp;": '\U000022A5',
+ "pertenk;": '\U00002031',
+ "pfr;": '\U0001D52D',
+ "phi;": '\U000003C6',
+ "phiv;": '\U000003D5',
+ "phmmat;": '\U00002133',
+ "phone;": '\U0000260E',
+ "pi;": '\U000003C0',
+ "pitchfork;": '\U000022D4',
+ "piv;": '\U000003D6',
+ "planck;": '\U0000210F',
+ "planckh;": '\U0000210E',
+ "plankv;": '\U0000210F',
+ "plus;": '\U0000002B',
+ "plusacir;": '\U00002A23',
+ "plusb;": '\U0000229E',
+ "pluscir;": '\U00002A22',
+ "plusdo;": '\U00002214',
+ "plusdu;": '\U00002A25',
+ "pluse;": '\U00002A72',
+ "plusmn;": '\U000000B1',
+ "plussim;": '\U00002A26',
+ "plustwo;": '\U00002A27',
+ "pm;": '\U000000B1',
+ "pointint;": '\U00002A15',
+ "popf;": '\U0001D561',
+ "pound;": '\U000000A3',
+ "pr;": '\U0000227A',
+ "prE;": '\U00002AB3',
+ "prap;": '\U00002AB7',
+ "prcue;": '\U0000227C',
+ "pre;": '\U00002AAF',
+ "prec;": '\U0000227A',
+ "precapprox;": '\U00002AB7',
+ "preccurlyeq;": '\U0000227C',
+ "preceq;": '\U00002AAF',
+ "precnapprox;": '\U00002AB9',
+ "precneqq;": '\U00002AB5',
+ "precnsim;": '\U000022E8',
+ "precsim;": '\U0000227E',
+ "prime;": '\U00002032',
+ "primes;": '\U00002119',
+ "prnE;": '\U00002AB5',
+ "prnap;": '\U00002AB9',
+ "prnsim;": '\U000022E8',
+ "prod;": '\U0000220F',
+ "profalar;": '\U0000232E',
+ "profline;": '\U00002312',
+ "profsurf;": '\U00002313',
+ "prop;": '\U0000221D',
+ "propto;": '\U0000221D',
+ "prsim;": '\U0000227E',
+ "prurel;": '\U000022B0',
+ "pscr;": '\U0001D4C5',
+ "psi;": '\U000003C8',
+ "puncsp;": '\U00002008',
+ "qfr;": '\U0001D52E',
+ "qint;": '\U00002A0C',
+ "qopf;": '\U0001D562',
+ "qprime;": '\U00002057',
+ "qscr;": '\U0001D4C6',
+ "quaternions;": '\U0000210D',
+ "quatint;": '\U00002A16',
+ "quest;": '\U0000003F',
+ "questeq;": '\U0000225F',
+ "quot;": '\U00000022',
+ "rAarr;": '\U000021DB',
+ "rArr;": '\U000021D2',
+ "rAtail;": '\U0000291C',
+ "rBarr;": '\U0000290F',
+ "rHar;": '\U00002964',
+ "racute;": '\U00000155',
+ "radic;": '\U0000221A',
+ "raemptyv;": '\U000029B3',
+ "rang;": '\U000027E9',
+ "rangd;": '\U00002992',
+ "range;": '\U000029A5',
+ "rangle;": '\U000027E9',
+ "raquo;": '\U000000BB',
+ "rarr;": '\U00002192',
+ "rarrap;": '\U00002975',
+ "rarrb;": '\U000021E5',
+ "rarrbfs;": '\U00002920',
+ "rarrc;": '\U00002933',
+ "rarrfs;": '\U0000291E',
+ "rarrhk;": '\U000021AA',
+ "rarrlp;": '\U000021AC',
+ "rarrpl;": '\U00002945',
+ "rarrsim;": '\U00002974',
+ "rarrtl;": '\U000021A3',
+ "rarrw;": '\U0000219D',
+ "ratail;": '\U0000291A',
+ "ratio;": '\U00002236',
+ "rationals;": '\U0000211A',
+ "rbarr;": '\U0000290D',
+ "rbbrk;": '\U00002773',
+ "rbrace;": '\U0000007D',
+ "rbrack;": '\U0000005D',
+ "rbrke;": '\U0000298C',
+ "rbrksld;": '\U0000298E',
+ "rbrkslu;": '\U00002990',
+ "rcaron;": '\U00000159',
+ "rcedil;": '\U00000157',
+ "rceil;": '\U00002309',
+ "rcub;": '\U0000007D',
+ "rcy;": '\U00000440',
+ "rdca;": '\U00002937',
+ "rdldhar;": '\U00002969',
+ "rdquo;": '\U0000201D',
+ "rdquor;": '\U0000201D',
+ "rdsh;": '\U000021B3',
+ "real;": '\U0000211C',
+ "realine;": '\U0000211B',
+ "realpart;": '\U0000211C',
+ "reals;": '\U0000211D',
+ "rect;": '\U000025AD',
+ "reg;": '\U000000AE',
+ "rfisht;": '\U0000297D',
+ "rfloor;": '\U0000230B',
+ "rfr;": '\U0001D52F',
+ "rhard;": '\U000021C1',
+ "rharu;": '\U000021C0',
+ "rharul;": '\U0000296C',
+ "rho;": '\U000003C1',
+ "rhov;": '\U000003F1',
+ "rightarrow;": '\U00002192',
+ "rightarrowtail;": '\U000021A3',
+ "rightharpoondown;": '\U000021C1',
+ "rightharpoonup;": '\U000021C0',
+ "rightleftarrows;": '\U000021C4',
+ "rightleftharpoons;": '\U000021CC',
+ "rightrightarrows;": '\U000021C9',
+ "rightsquigarrow;": '\U0000219D',
+ "rightthreetimes;": '\U000022CC',
+ "ring;": '\U000002DA',
+ "risingdotseq;": '\U00002253',
+ "rlarr;": '\U000021C4',
+ "rlhar;": '\U000021CC',
+ "rlm;": '\U0000200F',
+ "rmoust;": '\U000023B1',
+ "rmoustache;": '\U000023B1',
+ "rnmid;": '\U00002AEE',
+ "roang;": '\U000027ED',
+ "roarr;": '\U000021FE',
+ "robrk;": '\U000027E7',
+ "ropar;": '\U00002986',
+ "ropf;": '\U0001D563',
+ "roplus;": '\U00002A2E',
+ "rotimes;": '\U00002A35',
+ "rpar;": '\U00000029',
+ "rpargt;": '\U00002994',
+ "rppolint;": '\U00002A12',
+ "rrarr;": '\U000021C9',
+ "rsaquo;": '\U0000203A',
+ "rscr;": '\U0001D4C7',
+ "rsh;": '\U000021B1',
+ "rsqb;": '\U0000005D',
+ "rsquo;": '\U00002019',
+ "rsquor;": '\U00002019',
+ "rthree;": '\U000022CC',
+ "rtimes;": '\U000022CA',
+ "rtri;": '\U000025B9',
+ "rtrie;": '\U000022B5',
+ "rtrif;": '\U000025B8',
+ "rtriltri;": '\U000029CE',
+ "ruluhar;": '\U00002968',
+ "rx;": '\U0000211E',
+ "sacute;": '\U0000015B',
+ "sbquo;": '\U0000201A',
+ "sc;": '\U0000227B',
+ "scE;": '\U00002AB4',
+ "scap;": '\U00002AB8',
+ "scaron;": '\U00000161',
+ "sccue;": '\U0000227D',
+ "sce;": '\U00002AB0',
+ "scedil;": '\U0000015F',
+ "scirc;": '\U0000015D',
+ "scnE;": '\U00002AB6',
+ "scnap;": '\U00002ABA',
+ "scnsim;": '\U000022E9',
+ "scpolint;": '\U00002A13',
+ "scsim;": '\U0000227F',
+ "scy;": '\U00000441',
+ "sdot;": '\U000022C5',
+ "sdotb;": '\U000022A1',
+ "sdote;": '\U00002A66',
+ "seArr;": '\U000021D8',
+ "searhk;": '\U00002925',
+ "searr;": '\U00002198',
+ "searrow;": '\U00002198',
+ "sect;": '\U000000A7',
+ "semi;": '\U0000003B',
+ "seswar;": '\U00002929',
+ "setminus;": '\U00002216',
+ "setmn;": '\U00002216',
+ "sext;": '\U00002736',
+ "sfr;": '\U0001D530',
+ "sfrown;": '\U00002322',
+ "sharp;": '\U0000266F',
+ "shchcy;": '\U00000449',
+ "shcy;": '\U00000448',
+ "shortmid;": '\U00002223',
+ "shortparallel;": '\U00002225',
+ "shy;": '\U000000AD',
+ "sigma;": '\U000003C3',
+ "sigmaf;": '\U000003C2',
+ "sigmav;": '\U000003C2',
+ "sim;": '\U0000223C',
+ "simdot;": '\U00002A6A',
+ "sime;": '\U00002243',
+ "simeq;": '\U00002243',
+ "simg;": '\U00002A9E',
+ "simgE;": '\U00002AA0',
+ "siml;": '\U00002A9D',
+ "simlE;": '\U00002A9F',
+ "simne;": '\U00002246',
+ "simplus;": '\U00002A24',
+ "simrarr;": '\U00002972',
+ "slarr;": '\U00002190',
+ "smallsetminus;": '\U00002216',
+ "smashp;": '\U00002A33',
+ "smeparsl;": '\U000029E4',
+ "smid;": '\U00002223',
+ "smile;": '\U00002323',
+ "smt;": '\U00002AAA',
+ "smte;": '\U00002AAC',
+ "softcy;": '\U0000044C',
+ "sol;": '\U0000002F',
+ "solb;": '\U000029C4',
+ "solbar;": '\U0000233F',
+ "sopf;": '\U0001D564',
+ "spades;": '\U00002660',
+ "spadesuit;": '\U00002660',
+ "spar;": '\U00002225',
+ "sqcap;": '\U00002293',
+ "sqcup;": '\U00002294',
+ "sqsub;": '\U0000228F',
+ "sqsube;": '\U00002291',
+ "sqsubset;": '\U0000228F',
+ "sqsubseteq;": '\U00002291',
+ "sqsup;": '\U00002290',
+ "sqsupe;": '\U00002292',
+ "sqsupset;": '\U00002290',
+ "sqsupseteq;": '\U00002292',
+ "squ;": '\U000025A1',
+ "square;": '\U000025A1',
+ "squarf;": '\U000025AA',
+ "squf;": '\U000025AA',
+ "srarr;": '\U00002192',
+ "sscr;": '\U0001D4C8',
+ "ssetmn;": '\U00002216',
+ "ssmile;": '\U00002323',
+ "sstarf;": '\U000022C6',
+ "star;": '\U00002606',
+ "starf;": '\U00002605',
+ "straightepsilon;": '\U000003F5',
+ "straightphi;": '\U000003D5',
+ "strns;": '\U000000AF',
+ "sub;": '\U00002282',
+ "subE;": '\U00002AC5',
+ "subdot;": '\U00002ABD',
+ "sube;": '\U00002286',
+ "subedot;": '\U00002AC3',
+ "submult;": '\U00002AC1',
+ "subnE;": '\U00002ACB',
+ "subne;": '\U0000228A',
+ "subplus;": '\U00002ABF',
+ "subrarr;": '\U00002979',
+ "subset;": '\U00002282',
+ "subseteq;": '\U00002286',
+ "subseteqq;": '\U00002AC5',
+ "subsetneq;": '\U0000228A',
+ "subsetneqq;": '\U00002ACB',
+ "subsim;": '\U00002AC7',
+ "subsub;": '\U00002AD5',
+ "subsup;": '\U00002AD3',
+ "succ;": '\U0000227B',
+ "succapprox;": '\U00002AB8',
+ "succcurlyeq;": '\U0000227D',
+ "succeq;": '\U00002AB0',
+ "succnapprox;": '\U00002ABA',
+ "succneqq;": '\U00002AB6',
+ "succnsim;": '\U000022E9',
+ "succsim;": '\U0000227F',
+ "sum;": '\U00002211',
+ "sung;": '\U0000266A',
+ "sup;": '\U00002283',
+ "sup1;": '\U000000B9',
+ "sup2;": '\U000000B2',
+ "sup3;": '\U000000B3',
+ "supE;": '\U00002AC6',
+ "supdot;": '\U00002ABE',
+ "supdsub;": '\U00002AD8',
+ "supe;": '\U00002287',
+ "supedot;": '\U00002AC4',
+ "suphsol;": '\U000027C9',
+ "suphsub;": '\U00002AD7',
+ "suplarr;": '\U0000297B',
+ "supmult;": '\U00002AC2',
+ "supnE;": '\U00002ACC',
+ "supne;": '\U0000228B',
+ "supplus;": '\U00002AC0',
+ "supset;": '\U00002283',
+ "supseteq;": '\U00002287',
+ "supseteqq;": '\U00002AC6',
+ "supsetneq;": '\U0000228B',
+ "supsetneqq;": '\U00002ACC',
+ "supsim;": '\U00002AC8',
+ "supsub;": '\U00002AD4',
+ "supsup;": '\U00002AD6',
+ "swArr;": '\U000021D9',
+ "swarhk;": '\U00002926',
+ "swarr;": '\U00002199',
+ "swarrow;": '\U00002199',
+ "swnwar;": '\U0000292A',
+ "szlig;": '\U000000DF',
+ "target;": '\U00002316',
+ "tau;": '\U000003C4',
+ "tbrk;": '\U000023B4',
+ "tcaron;": '\U00000165',
+ "tcedil;": '\U00000163',
+ "tcy;": '\U00000442',
+ "tdot;": '\U000020DB',
+ "telrec;": '\U00002315',
+ "tfr;": '\U0001D531',
+ "there4;": '\U00002234',
+ "therefore;": '\U00002234',
+ "theta;": '\U000003B8',
+ "thetasym;": '\U000003D1',
+ "thetav;": '\U000003D1',
+ "thickapprox;": '\U00002248',
+ "thicksim;": '\U0000223C',
+ "thinsp;": '\U00002009',
+ "thkap;": '\U00002248',
+ "thksim;": '\U0000223C',
+ "thorn;": '\U000000FE',
+ "tilde;": '\U000002DC',
+ "times;": '\U000000D7',
+ "timesb;": '\U000022A0',
+ "timesbar;": '\U00002A31',
+ "timesd;": '\U00002A30',
+ "tint;": '\U0000222D',
+ "toea;": '\U00002928',
+ "top;": '\U000022A4',
+ "topbot;": '\U00002336',
+ "topcir;": '\U00002AF1',
+ "topf;": '\U0001D565',
+ "topfork;": '\U00002ADA',
+ "tosa;": '\U00002929',
+ "tprime;": '\U00002034',
+ "trade;": '\U00002122',
+ "triangle;": '\U000025B5',
+ "triangledown;": '\U000025BF',
+ "triangleleft;": '\U000025C3',
+ "trianglelefteq;": '\U000022B4',
+ "triangleq;": '\U0000225C',
+ "triangleright;": '\U000025B9',
+ "trianglerighteq;": '\U000022B5',
+ "tridot;": '\U000025EC',
+ "trie;": '\U0000225C',
+ "triminus;": '\U00002A3A',
+ "triplus;": '\U00002A39',
+ "trisb;": '\U000029CD',
+ "tritime;": '\U00002A3B',
+ "trpezium;": '\U000023E2',
+ "tscr;": '\U0001D4C9',
+ "tscy;": '\U00000446',
+ "tshcy;": '\U0000045B',
+ "tstrok;": '\U00000167',
+ "twixt;": '\U0000226C',
+ "twoheadleftarrow;": '\U0000219E',
+ "twoheadrightarrow;": '\U000021A0',
+ "uArr;": '\U000021D1',
+ "uHar;": '\U00002963',
+ "uacute;": '\U000000FA',
+ "uarr;": '\U00002191',
+ "ubrcy;": '\U0000045E',
+ "ubreve;": '\U0000016D',
+ "ucirc;": '\U000000FB',
+ "ucy;": '\U00000443',
+ "udarr;": '\U000021C5',
+ "udblac;": '\U00000171',
+ "udhar;": '\U0000296E',
+ "ufisht;": '\U0000297E',
+ "ufr;": '\U0001D532',
+ "ugrave;": '\U000000F9',
+ "uharl;": '\U000021BF',
+ "uharr;": '\U000021BE',
+ "uhblk;": '\U00002580',
+ "ulcorn;": '\U0000231C',
+ "ulcorner;": '\U0000231C',
+ "ulcrop;": '\U0000230F',
+ "ultri;": '\U000025F8',
+ "umacr;": '\U0000016B',
+ "uml;": '\U000000A8',
+ "uogon;": '\U00000173',
+ "uopf;": '\U0001D566',
+ "uparrow;": '\U00002191',
+ "updownarrow;": '\U00002195',
+ "upharpoonleft;": '\U000021BF',
+ "upharpoonright;": '\U000021BE',
+ "uplus;": '\U0000228E',
+ "upsi;": '\U000003C5',
+ "upsih;": '\U000003D2',
+ "upsilon;": '\U000003C5',
+ "upuparrows;": '\U000021C8',
+ "urcorn;": '\U0000231D',
+ "urcorner;": '\U0000231D',
+ "urcrop;": '\U0000230E',
+ "uring;": '\U0000016F',
+ "urtri;": '\U000025F9',
+ "uscr;": '\U0001D4CA',
+ "utdot;": '\U000022F0',
+ "utilde;": '\U00000169',
+ "utri;": '\U000025B5',
+ "utrif;": '\U000025B4',
+ "uuarr;": '\U000021C8',
+ "uuml;": '\U000000FC',
+ "uwangle;": '\U000029A7',
+ "vArr;": '\U000021D5',
+ "vBar;": '\U00002AE8',
+ "vBarv;": '\U00002AE9',
+ "vDash;": '\U000022A8',
+ "vangrt;": '\U0000299C',
+ "varepsilon;": '\U000003F5',
+ "varkappa;": '\U000003F0',
+ "varnothing;": '\U00002205',
+ "varphi;": '\U000003D5',
+ "varpi;": '\U000003D6',
+ "varpropto;": '\U0000221D',
+ "varr;": '\U00002195',
+ "varrho;": '\U000003F1',
+ "varsigma;": '\U000003C2',
+ "vartheta;": '\U000003D1',
+ "vartriangleleft;": '\U000022B2',
+ "vartriangleright;": '\U000022B3',
+ "vcy;": '\U00000432',
+ "vdash;": '\U000022A2',
+ "vee;": '\U00002228',
+ "veebar;": '\U000022BB',
+ "veeeq;": '\U0000225A',
+ "vellip;": '\U000022EE',
+ "verbar;": '\U0000007C',
+ "vert;": '\U0000007C',
+ "vfr;": '\U0001D533',
+ "vltri;": '\U000022B2',
+ "vopf;": '\U0001D567',
+ "vprop;": '\U0000221D',
+ "vrtri;": '\U000022B3',
+ "vscr;": '\U0001D4CB',
+ "vzigzag;": '\U0000299A',
+ "wcirc;": '\U00000175',
+ "wedbar;": '\U00002A5F',
+ "wedge;": '\U00002227',
+ "wedgeq;": '\U00002259',
+ "weierp;": '\U00002118',
+ "wfr;": '\U0001D534',
+ "wopf;": '\U0001D568',
+ "wp;": '\U00002118',
+ "wr;": '\U00002240',
+ "wreath;": '\U00002240',
+ "wscr;": '\U0001D4CC',
+ "xcap;": '\U000022C2',
+ "xcirc;": '\U000025EF',
+ "xcup;": '\U000022C3',
+ "xdtri;": '\U000025BD',
+ "xfr;": '\U0001D535',
+ "xhArr;": '\U000027FA',
+ "xharr;": '\U000027F7',
+ "xi;": '\U000003BE',
+ "xlArr;": '\U000027F8',
+ "xlarr;": '\U000027F5',
+ "xmap;": '\U000027FC',
+ "xnis;": '\U000022FB',
+ "xodot;": '\U00002A00',
+ "xopf;": '\U0001D569',
+ "xoplus;": '\U00002A01',
+ "xotime;": '\U00002A02',
+ "xrArr;": '\U000027F9',
+ "xrarr;": '\U000027F6',
+ "xscr;": '\U0001D4CD',
+ "xsqcup;": '\U00002A06',
+ "xuplus;": '\U00002A04',
+ "xutri;": '\U000025B3',
+ "xvee;": '\U000022C1',
+ "xwedge;": '\U000022C0',
+ "yacute;": '\U000000FD',
+ "yacy;": '\U0000044F',
+ "ycirc;": '\U00000177',
+ "ycy;": '\U0000044B',
+ "yen;": '\U000000A5',
+ "yfr;": '\U0001D536',
+ "yicy;": '\U00000457',
+ "yopf;": '\U0001D56A',
+ "yscr;": '\U0001D4CE',
+ "yucy;": '\U0000044E',
+ "yuml;": '\U000000FF',
+ "zacute;": '\U0000017A',
+ "zcaron;": '\U0000017E',
+ "zcy;": '\U00000437',
+ "zdot;": '\U0000017C',
+ "zeetrf;": '\U00002128',
+ "zeta;": '\U000003B6',
+ "zfr;": '\U0001D537',
+ "zhcy;": '\U00000436',
+ "zigrarr;": '\U000021DD',
+ "zopf;": '\U0001D56B',
+ "zscr;": '\U0001D4CF',
+ "zwj;": '\U0000200D',
+ "zwnj;": '\U0000200C',
+ "AElig": '\U000000C6',
+ "AMP": '\U00000026',
+ "Aacute": '\U000000C1',
+ "Acirc": '\U000000C2',
+ "Agrave": '\U000000C0',
+ "Aring": '\U000000C5',
+ "Atilde": '\U000000C3',
+ "Auml": '\U000000C4',
+ "COPY": '\U000000A9',
+ "Ccedil": '\U000000C7',
+ "ETH": '\U000000D0',
+ "Eacute": '\U000000C9',
+ "Ecirc": '\U000000CA',
+ "Egrave": '\U000000C8',
+ "Euml": '\U000000CB',
+ "GT": '\U0000003E',
+ "Iacute": '\U000000CD',
+ "Icirc": '\U000000CE',
+ "Igrave": '\U000000CC',
+ "Iuml": '\U000000CF',
+ "LT": '\U0000003C',
+ "Ntilde": '\U000000D1',
+ "Oacute": '\U000000D3',
+ "Ocirc": '\U000000D4',
+ "Ograve": '\U000000D2',
+ "Oslash": '\U000000D8',
+ "Otilde": '\U000000D5',
+ "Ouml": '\U000000D6',
+ "QUOT": '\U00000022',
+ "REG": '\U000000AE',
+ "THORN": '\U000000DE',
+ "Uacute": '\U000000DA',
+ "Ucirc": '\U000000DB',
+ "Ugrave": '\U000000D9',
+ "Uuml": '\U000000DC',
+ "Yacute": '\U000000DD',
+ "aacute": '\U000000E1',
+ "acirc": '\U000000E2',
+ "acute": '\U000000B4',
+ "aelig": '\U000000E6',
+ "agrave": '\U000000E0',
+ "amp": '\U00000026',
+ "aring": '\U000000E5',
+ "atilde": '\U000000E3',
+ "auml": '\U000000E4',
+ "brvbar": '\U000000A6',
+ "ccedil": '\U000000E7',
+ "cedil": '\U000000B8',
+ "cent": '\U000000A2',
+ "copy": '\U000000A9',
+ "curren": '\U000000A4',
+ "deg": '\U000000B0',
+ "divide": '\U000000F7',
+ "eacute": '\U000000E9',
+ "ecirc": '\U000000EA',
+ "egrave": '\U000000E8',
+ "eth": '\U000000F0',
+ "euml": '\U000000EB',
+ "frac12": '\U000000BD',
+ "frac14": '\U000000BC',
+ "frac34": '\U000000BE',
+ "gt": '\U0000003E',
+ "iacute": '\U000000ED',
+ "icirc": '\U000000EE',
+ "iexcl": '\U000000A1',
+ "igrave": '\U000000EC',
+ "iquest": '\U000000BF',
+ "iuml": '\U000000EF',
+ "laquo": '\U000000AB',
+ "lt": '\U0000003C',
+ "macr": '\U000000AF',
+ "micro": '\U000000B5',
+ "middot": '\U000000B7',
+ "nbsp": '\U000000A0',
+ "not": '\U000000AC',
+ "ntilde": '\U000000F1',
+ "oacute": '\U000000F3',
+ "ocirc": '\U000000F4',
+ "ograve": '\U000000F2',
+ "ordf": '\U000000AA',
+ "ordm": '\U000000BA',
+ "oslash": '\U000000F8',
+ "otilde": '\U000000F5',
+ "ouml": '\U000000F6',
+ "para": '\U000000B6',
+ "plusmn": '\U000000B1',
+ "pound": '\U000000A3',
+ "quot": '\U00000022',
+ "raquo": '\U000000BB',
+ "reg": '\U000000AE',
+ "sect": '\U000000A7',
+ "shy": '\U000000AD',
+ "sup1": '\U000000B9',
+ "sup2": '\U000000B2',
+ "sup3": '\U000000B3',
+ "szlig": '\U000000DF',
+ "thorn": '\U000000FE',
+ "times": '\U000000D7',
+ "uacute": '\U000000FA',
+ "ucirc": '\U000000FB',
+ "ugrave": '\U000000F9',
+ "uml": '\U000000A8',
+ "uuml": '\U000000FC',
+ "yacute": '\U000000FD',
+ "yen": '\U000000A5',
+ "yuml": '\U000000FF',
}
// HTML entities that are two unicode codepoints.
diff --git a/vendor/golang.org/x/net/html/foreign.go b/vendor/golang.org/x/net/html/foreign.go
index d3b3844099b..01477a96397 100644
--- a/vendor/golang.org/x/net/html/foreign.go
+++ b/vendor/golang.org/x/net/html/foreign.go
@@ -67,7 +67,7 @@ func mathMLTextIntegrationPoint(n *Node) bool {
return false
}
-// Section 12.2.5.5.
+// Section 12.2.6.5.
var breakout = map[string]bool{
"b": true,
"big": true,
@@ -115,7 +115,7 @@ var breakout = map[string]bool{
"var": true,
}
-// Section 12.2.5.5.
+// Section 12.2.6.5.
var svgTagNameAdjustments = map[string]string{
"altglyph": "altGlyph",
"altglyphdef": "altGlyphDef",
@@ -155,7 +155,7 @@ var svgTagNameAdjustments = map[string]string{
"textpath": "textPath",
}
-// Section 12.2.5.1
+// Section 12.2.6.1
var mathMLAttributeAdjustments = map[string]string{
"definitionurl": "definitionURL",
}
diff --git a/vendor/golang.org/x/net/html/node.go b/vendor/golang.org/x/net/html/node.go
index 26b657aec83..633ee15dc55 100644
--- a/vendor/golang.org/x/net/html/node.go
+++ b/vendor/golang.org/x/net/html/node.go
@@ -21,9 +21,10 @@ const (
scopeMarkerNode
)
-// Section 12.2.3.3 says "scope markers are inserted when entering applet
-// elements, buttons, object elements, marquees, table cells, and table
-// captions, and are used to prevent formatting from 'leaking'".
+// Section 12.2.4.3 says "The markers are inserted when entering applet,
+// object, marquee, template, td, th, and caption elements, and are used
+// to prevent formatting from "leaking" into applet, object, marquee,
+// template, td, th, and caption elements".
var scopeMarker = Node{Type: scopeMarkerNode}
// A Node consists of a NodeType and some Data (tag name for element nodes,
@@ -173,6 +174,16 @@ func (s *nodeStack) index(n *Node) int {
return -1
}
+// contains returns whether a is within s.
+func (s *nodeStack) contains(a atom.Atom) bool {
+ for _, n := range *s {
+ if n.DataAtom == a && n.Namespace == "" {
+ return true
+ }
+ }
+ return false
+}
+
// insert inserts a node at the given index.
func (s *nodeStack) insert(i int, n *Node) {
(*s) = append(*s, nil)
@@ -191,3 +202,19 @@ func (s *nodeStack) remove(n *Node) {
(*s)[j] = nil
*s = (*s)[:j]
}
+
+type insertionModeStack []insertionMode
+
+func (s *insertionModeStack) pop() (im insertionMode) {
+ i := len(*s)
+ im = (*s)[i-1]
+ *s = (*s)[:i-1]
+ return im
+}
+
+func (s *insertionModeStack) top() insertionMode {
+ if i := len(*s); i > 0 {
+ return (*s)[i-1]
+ }
+ return nil
+}
diff --git a/vendor/golang.org/x/net/html/parse.go b/vendor/golang.org/x/net/html/parse.go
index be4b2bf5aa9..ca2cb5875b2 100644
--- a/vendor/golang.org/x/net/html/parse.go
+++ b/vendor/golang.org/x/net/html/parse.go
@@ -25,20 +25,22 @@ type parser struct {
hasSelfClosingToken bool
// doc is the document root element.
doc *Node
- // The stack of open elements (section 12.2.3.2) and active formatting
- // elements (section 12.2.3.3).
+ // The stack of open elements (section 12.2.4.2) and active formatting
+ // elements (section 12.2.4.3).
oe, afe nodeStack
- // Element pointers (section 12.2.3.4).
+ // Element pointers (section 12.2.4.4).
head, form *Node
- // Other parsing state flags (section 12.2.3.5).
+ // Other parsing state flags (section 12.2.4.5).
scripting, framesetOK bool
+ // The stack of template insertion modes
+ templateStack insertionModeStack
// im is the current insertion mode.
im insertionMode
// originalIM is the insertion mode to go back to after completing a text
// or inTableText insertion mode.
originalIM insertionMode
// fosterParenting is whether new elements should be inserted according to
- // the foster parenting rules (section 12.2.5.3).
+ // the foster parenting rules (section 12.2.6.1).
fosterParenting bool
// quirks is whether the parser is operating in "quirks mode."
quirks bool
@@ -56,7 +58,7 @@ func (p *parser) top() *Node {
return p.doc
}
-// Stop tags for use in popUntil. These come from section 12.2.3.2.
+// Stop tags for use in popUntil. These come from section 12.2.4.2.
var (
defaultScopeStopTags = map[string][]a.Atom{
"": {a.Applet, a.Caption, a.Html, a.Table, a.Td, a.Th, a.Marquee, a.Object, a.Template},
@@ -79,7 +81,7 @@ const (
// popUntil pops the stack of open elements at the highest element whose tag
// is in matchTags, provided there is no higher element in the scope's stop
-// tags (as defined in section 12.2.3.2). It returns whether or not there was
+// tags (as defined in section 12.2.4.2). It returns whether or not there was
// such an element. If there was not, popUntil leaves the stack unchanged.
//
// For example, the set of stop tags for table scope is: "html", "table". If
@@ -126,7 +128,7 @@ func (p *parser) indexOfElementInScope(s scope, matchTags ...a.Atom) int {
return -1
}
case tableScope:
- if tagAtom == a.Html || tagAtom == a.Table {
+ if tagAtom == a.Html || tagAtom == a.Table || tagAtom == a.Template {
return -1
}
case selectScope:
@@ -162,17 +164,17 @@ func (p *parser) clearStackToContext(s scope) {
tagAtom := p.oe[i].DataAtom
switch s {
case tableScope:
- if tagAtom == a.Html || tagAtom == a.Table {
+ if tagAtom == a.Html || tagAtom == a.Table || tagAtom == a.Template {
p.oe = p.oe[:i+1]
return
}
case tableRowScope:
- if tagAtom == a.Html || tagAtom == a.Tr {
+ if tagAtom == a.Html || tagAtom == a.Tr || tagAtom == a.Template {
p.oe = p.oe[:i+1]
return
}
case tableBodyScope:
- if tagAtom == a.Html || tagAtom == a.Tbody || tagAtom == a.Tfoot || tagAtom == a.Thead {
+ if tagAtom == a.Html || tagAtom == a.Tbody || tagAtom == a.Tfoot || tagAtom == a.Thead || tagAtom == a.Template {
p.oe = p.oe[:i+1]
return
}
@@ -183,7 +185,7 @@ func (p *parser) clearStackToContext(s scope) {
}
// generateImpliedEndTags pops nodes off the stack of open elements as long as
-// the top node has a tag name of dd, dt, li, option, optgroup, p, rp, or rt.
+// the top node has a tag name of dd, dt, li, optgroup, option, p, rb, rp, rt or rtc.
// If exceptions are specified, nodes with that name will not be popped off.
func (p *parser) generateImpliedEndTags(exceptions ...string) {
var i int
@@ -192,7 +194,7 @@ loop:
n := p.oe[i]
if n.Type == ElementNode {
switch n.DataAtom {
- case a.Dd, a.Dt, a.Li, a.Option, a.Optgroup, a.P, a.Rp, a.Rt:
+ case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc:
for _, except := range exceptions {
if n.Data == except {
break loop
@@ -234,9 +236,9 @@ func (p *parser) shouldFosterParent() bool {
}
// fosterParent adds a child node according to the foster parenting rules.
-// Section 12.2.5.3, "foster parenting".
+// Section 12.2.6.1, "foster parenting".
func (p *parser) fosterParent(n *Node) {
- var table, parent, prev *Node
+ var table, parent, prev, template *Node
var i int
for i = len(p.oe) - 1; i >= 0; i-- {
if p.oe[i].DataAtom == a.Table {
@@ -245,6 +247,19 @@ func (p *parser) fosterParent(n *Node) {
}
}
+ var j int
+ for j = len(p.oe) - 1; j >= 0; j-- {
+ if p.oe[j].DataAtom == a.Template {
+ template = p.oe[j]
+ break
+ }
+ }
+
+ if template != nil && (table == nil || j > i) {
+ template.AppendChild(n)
+ return
+ }
+
if table == nil {
// The foster parent is the html element.
parent = p.oe[0]
@@ -304,7 +319,7 @@ func (p *parser) addElement() {
})
}
-// Section 12.2.3.3.
+// Section 12.2.4.3.
func (p *parser) addFormattingElement() {
tagAtom, attr := p.tok.DataAtom, p.tok.Attr
p.addElement()
@@ -351,7 +366,7 @@ findIdenticalElements:
p.afe = append(p.afe, p.top())
}
-// Section 12.2.3.3.
+// Section 12.2.4.3.
func (p *parser) clearActiveFormattingElements() {
for {
n := p.afe.pop()
@@ -361,7 +376,7 @@ func (p *parser) clearActiveFormattingElements() {
}
}
-// Section 12.2.3.3.
+// Section 12.2.4.3.
func (p *parser) reconstructActiveFormattingElements() {
n := p.afe.top()
if n == nil {
@@ -390,12 +405,12 @@ func (p *parser) reconstructActiveFormattingElements() {
}
}
-// Section 12.2.4.
+// Section 12.2.5.
func (p *parser) acknowledgeSelfClosingTag() {
p.hasSelfClosingToken = false
}
-// An insertion mode (section 12.2.3.1) is the state transition function from
+// An insertion mode (section 12.2.4.1) is the state transition function from
// a particular state in the HTML5 parser's state machine. It updates the
// parser's fields depending on parser.tok (where ErrorToken means EOF).
// It returns whether the token was consumed.
@@ -403,7 +418,7 @@ type insertionMode func(*parser) bool
// setOriginalIM sets the insertion mode to return to after completing a text or
// inTableText insertion mode.
-// Section 12.2.3.1, "using the rules for".
+// Section 12.2.4.1, "using the rules for".
func (p *parser) setOriginalIM() {
if p.originalIM != nil {
panic("html: bad parser state: originalIM was set twice")
@@ -411,18 +426,35 @@ func (p *parser) setOriginalIM() {
p.originalIM = p.im
}
-// Section 12.2.3.1, "reset the insertion mode".
+// Section 12.2.4.1, "reset the insertion mode".
func (p *parser) resetInsertionMode() {
for i := len(p.oe) - 1; i >= 0; i-- {
n := p.oe[i]
- if i == 0 && p.context != nil {
+ last := i == 0
+ if last && p.context != nil {
n = p.context
}
switch n.DataAtom {
case a.Select:
+ if !last {
+ for ancestor, first := n, p.oe[0]; ancestor != first; {
+ ancestor = p.oe[p.oe.index(ancestor)-1]
+ switch ancestor.DataAtom {
+ case a.Template:
+ p.im = inSelectIM
+ return
+ case a.Table:
+ p.im = inSelectInTableIM
+ return
+ }
+ }
+ }
p.im = inSelectIM
case a.Td, a.Th:
+ // TODO: remove this divergence from the HTML5 spec.
+ //
+ // See https://bugs.chromium.org/p/chromium/issues/detail?id=829668
p.im = inCellIM
case a.Tr:
p.im = inRowIM
@@ -434,25 +466,41 @@ func (p *parser) resetInsertionMode() {
p.im = inColumnGroupIM
case a.Table:
p.im = inTableIM
+ case a.Template:
+ // TODO: remove this divergence from the HTML5 spec.
+ if n.Namespace != "" {
+ continue
+ }
+ p.im = p.templateStack.top()
case a.Head:
- p.im = inBodyIM
+ // TODO: remove this divergence from the HTML5 spec.
+ //
+ // See https://bugs.chromium.org/p/chromium/issues/detail?id=829668
+ p.im = inHeadIM
case a.Body:
p.im = inBodyIM
case a.Frameset:
p.im = inFramesetIM
case a.Html:
- p.im = beforeHeadIM
+ if p.head == nil {
+ p.im = beforeHeadIM
+ } else {
+ p.im = afterHeadIM
+ }
default:
+ if last {
+ p.im = inBodyIM
+ return
+ }
continue
}
return
}
- p.im = inBodyIM
}
const whitespace = " \t\r\n\f"
-// Section 12.2.5.4.1.
+// Section 12.2.6.4.1.
func initialIM(p *parser) bool {
switch p.tok.Type {
case TextToken:
@@ -479,7 +527,7 @@ func initialIM(p *parser) bool {
return false
}
-// Section 12.2.5.4.2.
+// Section 12.2.6.4.2.
func beforeHTMLIM(p *parser) bool {
switch p.tok.Type {
case DoctypeToken:
@@ -517,7 +565,7 @@ func beforeHTMLIM(p *parser) bool {
return false
}
-// Section 12.2.5.4.3.
+// Section 12.2.6.4.3.
func beforeHeadIM(p *parser) bool {
switch p.tok.Type {
case TextToken:
@@ -560,7 +608,7 @@ func beforeHeadIM(p *parser) bool {
return false
}
-// Section 12.2.5.4.4.
+// Section 12.2.6.4.4.
func inHeadIM(p *parser) bool {
switch p.tok.Type {
case TextToken:
@@ -590,19 +638,41 @@ func inHeadIM(p *parser) bool {
case a.Head:
// Ignore the token.
return true
+ case a.Template:
+ p.addElement()
+ p.afe = append(p.afe, &scopeMarker)
+ p.framesetOK = false
+ p.im = inTemplateIM
+ p.templateStack = append(p.templateStack, inTemplateIM)
+ return true
}
case EndTagToken:
switch p.tok.DataAtom {
case a.Head:
- n := p.oe.pop()
- if n.DataAtom != a.Head {
- panic("html: bad parser state: element not found, in the in-head insertion mode")
- }
+ p.oe.pop()
p.im = afterHeadIM
return true
case a.Body, a.Html, a.Br:
p.parseImpliedToken(EndTagToken, a.Head, a.Head.String())
return false
+ case a.Template:
+ if !p.oe.contains(a.Template) {
+ return true
+ }
+ // TODO: remove this divergence from the HTML5 spec.
+ //
+ // See https://bugs.chromium.org/p/chromium/issues/detail?id=829668
+ p.generateImpliedEndTags()
+ for i := len(p.oe) - 1; i >= 0; i-- {
+ if n := p.oe[i]; n.Namespace == "" && n.DataAtom == a.Template {
+ p.oe = p.oe[:i]
+ break
+ }
+ }
+ p.clearActiveFormattingElements()
+ p.templateStack.pop()
+ p.resetInsertionMode()
+ return true
default:
// Ignore the token.
return true
@@ -622,7 +692,7 @@ func inHeadIM(p *parser) bool {
return false
}
-// Section 12.2.5.4.6.
+// Section 12.2.6.4.6.
func afterHeadIM(p *parser) bool {
switch p.tok.Type {
case TextToken:
@@ -648,7 +718,7 @@ func afterHeadIM(p *parser) bool {
p.addElement()
p.im = inFramesetIM
return true
- case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title:
+ case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Template, a.Title:
p.oe = append(p.oe, p.head)
defer p.oe.remove(p.head)
return inHeadIM(p)
@@ -660,6 +730,8 @@ func afterHeadIM(p *parser) bool {
switch p.tok.DataAtom {
case a.Body, a.Html, a.Br:
// Drop down to creating an implied tag.
+ case a.Template:
+ return inHeadIM(p)
default:
// Ignore the token.
return true
@@ -697,7 +769,7 @@ func copyAttributes(dst *Node, src Token) {
}
}
-// Section 12.2.5.4.7.
+// Section 12.2.6.4.7.
func inBodyIM(p *parser) bool {
switch p.tok.Type {
case TextToken:
@@ -727,10 +799,16 @@ func inBodyIM(p *parser) bool {
case StartTagToken:
switch p.tok.DataAtom {
case a.Html:
+ if p.oe.contains(a.Template) {
+ return true
+ }
copyAttributes(p.oe[0], p.tok)
- case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title:
+ case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Template, a.Title:
return inHeadIM(p)
case a.Body:
+ if p.oe.contains(a.Template) {
+ return true
+ }
if len(p.oe) >= 2 {
body := p.oe[1]
if body.Type == ElementNode && body.DataAtom == a.Body {
@@ -767,9 +845,13 @@ func inBodyIM(p *parser) bool {
// The newline, if any, will be dealt with by the TextToken case.
p.framesetOK = false
case a.Form:
- if p.form == nil {
- p.popUntil(buttonScope, a.P)
- p.addElement()
+ if p.form != nil && !p.oe.contains(a.Template) {
+ // Ignore the token
+ return true
+ }
+ p.popUntil(buttonScope, a.P)
+ p.addElement()
+ if !p.oe.contains(a.Template) {
p.form = p.top()
}
case a.Li:
@@ -903,6 +985,14 @@ func inBodyIM(p *parser) bool {
p.acknowledgeSelfClosingTag()
p.popUntil(buttonScope, a.P)
p.parseImpliedToken(StartTagToken, a.Form, a.Form.String())
+ if p.form == nil {
+ // NOTE: The 'isindex' element has been removed,
+ // and the 'template' element has not been designed to be
+ // collaborative with the index element.
+ //
+ // Ignore the token.
+ return true
+ }
if action != "" {
p.form.Attr = []Attribute{{Key: "action", Val: action}}
}
@@ -952,11 +1042,16 @@ func inBodyIM(p *parser) bool {
}
p.reconstructActiveFormattingElements()
p.addElement()
- case a.Rp, a.Rt:
+ case a.Rb, a.Rtc:
if p.elementInScope(defaultScope, a.Ruby) {
p.generateImpliedEndTags()
}
p.addElement()
+ case a.Rp, a.Rt:
+ if p.elementInScope(defaultScope, a.Ruby) {
+ p.generateImpliedEndTags("rtc")
+ }
+ p.addElement()
case a.Math, a.Svg:
p.reconstructActiveFormattingElements()
if p.tok.DataAtom == a.Math {
@@ -993,15 +1088,29 @@ func inBodyIM(p *parser) bool {
case a.Address, a.Article, a.Aside, a.Blockquote, a.Button, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Listing, a.Menu, a.Nav, a.Ol, a.Pre, a.Section, a.Summary, a.Ul:
p.popUntil(defaultScope, p.tok.DataAtom)
case a.Form:
- node := p.form
- p.form = nil
- i := p.indexOfElementInScope(defaultScope, a.Form)
- if node == nil || i == -1 || p.oe[i] != node {
- // Ignore the token.
- return true
+ if p.oe.contains(a.Template) {
+ i := p.indexOfElementInScope(defaultScope, a.Form)
+ if i == -1 {
+ // Ignore the token.
+ return true
+ }
+ p.generateImpliedEndTags()
+ if p.oe[i].DataAtom != a.Form {
+ // Ignore the token.
+ return true
+ }
+ p.popUntil(defaultScope, a.Form)
+ } else {
+ node := p.form
+ p.form = nil
+ i := p.indexOfElementInScope(defaultScope, a.Form)
+ if node == nil || i == -1 || p.oe[i] != node {
+ // Ignore the token.
+ return true
+ }
+ p.generateImpliedEndTags()
+ p.oe.remove(node)
}
- p.generateImpliedEndTags()
- p.oe.remove(node)
case a.P:
if !p.elementInScope(buttonScope, a.P) {
p.parseImpliedToken(StartTagToken, a.P, a.P.String())
@@ -1022,6 +1131,8 @@ func inBodyIM(p *parser) bool {
case a.Br:
p.tok.Type = StartTagToken
return false
+ case a.Template:
+ return inHeadIM(p)
default:
p.inBodyEndTagOther(p.tok.DataAtom)
}
@@ -1030,6 +1141,21 @@ func inBodyIM(p *parser) bool {
Type: CommentNode,
Data: p.tok.Data,
})
+ case ErrorToken:
+ // TODO: remove this divergence from the HTML5 spec.
+ if len(p.templateStack) > 0 {
+ p.im = inTemplateIM
+ return false
+ } else {
+ for _, e := range p.oe {
+ switch e.DataAtom {
+ case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc, a.Tbody, a.Td, a.Tfoot, a.Th,
+ a.Thead, a.Tr, a.Body, a.Html:
+ default:
+ return true
+ }
+ }
+ }
}
return true
@@ -1160,7 +1286,7 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom) {
}
// inBodyEndTagOther performs the "any other end tag" algorithm for inBodyIM.
-// "Any other end tag" handling from 12.2.5.5 The rules for parsing tokens in foreign content
+// "Any other end tag" handling from 12.2.6.5 The rules for parsing tokens in foreign content
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inforeign
func (p *parser) inBodyEndTagOther(tagAtom a.Atom) {
for i := len(p.oe) - 1; i >= 0; i-- {
@@ -1174,7 +1300,7 @@ func (p *parser) inBodyEndTagOther(tagAtom a.Atom) {
}
}
-// Section 12.2.5.4.8.
+// Section 12.2.6.4.8.
func textIM(p *parser) bool {
switch p.tok.Type {
case ErrorToken:
@@ -1203,12 +1329,9 @@ func textIM(p *parser) bool {
return p.tok.Type == EndTagToken
}
-// Section 12.2.5.4.9.
+// Section 12.2.6.4.9.
func inTableIM(p *parser) bool {
switch p.tok.Type {
- case ErrorToken:
- // Stop parsing.
- return true
case TextToken:
p.tok.Data = strings.Replace(p.tok.Data, "\x00", "", -1)
switch p.oe.top().DataAtom {
@@ -1249,7 +1372,7 @@ func inTableIM(p *parser) bool {
}
// Ignore the token.
return true
- case a.Style, a.Script:
+ case a.Style, a.Script, a.Template:
return inHeadIM(p)
case a.Input:
for _, t := range p.tok.Attr {
@@ -1261,7 +1384,7 @@ func inTableIM(p *parser) bool {
}
// Otherwise drop down to the default action.
case a.Form:
- if p.form != nil {
+ if p.oe.contains(a.Template) || p.form != nil {
// Ignore the token.
return true
}
@@ -1291,6 +1414,8 @@ func inTableIM(p *parser) bool {
case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
// Ignore the token.
return true
+ case a.Template:
+ return inHeadIM(p)
}
case CommentToken:
p.addChild(&Node{
@@ -1301,6 +1426,8 @@ func inTableIM(p *parser) bool {
case DoctypeToken:
// Ignore the token.
return true
+ case ErrorToken:
+ return inBodyIM(p)
}
p.fosterParenting = true
@@ -1309,7 +1436,7 @@ func inTableIM(p *parser) bool {
return inBodyIM(p)
}
-// Section 12.2.5.4.11.
+// Section 12.2.6.4.11.
func inCaptionIM(p *parser) bool {
switch p.tok.Type {
case StartTagToken:
@@ -1355,7 +1482,7 @@ func inCaptionIM(p *parser) bool {
return inBodyIM(p)
}
-// Section 12.2.5.4.12.
+// Section 12.2.6.4.12.
func inColumnGroupIM(p *parser) bool {
switch p.tok.Type {
case TextToken:
@@ -1386,11 +1513,13 @@ func inColumnGroupIM(p *parser) bool {
p.oe.pop()
p.acknowledgeSelfClosingTag()
return true
+ case a.Template:
+ return inHeadIM(p)
}
case EndTagToken:
switch p.tok.DataAtom {
case a.Colgroup:
- if p.oe.top().DataAtom != a.Html {
+ if p.oe.top().DataAtom == a.Colgroup {
p.oe.pop()
p.im = inTableIM
}
@@ -1398,17 +1527,21 @@ func inColumnGroupIM(p *parser) bool {
case a.Col:
// Ignore the token.
return true
+ case a.Template:
+ return inHeadIM(p)
}
+ case ErrorToken:
+ return inBodyIM(p)
}
- if p.oe.top().DataAtom != a.Html {
- p.oe.pop()
- p.im = inTableIM
- return false
+ if p.oe.top().DataAtom != a.Colgroup {
+ return true
}
- return true
+ p.oe.pop()
+ p.im = inTableIM
+ return false
}
-// Section 12.2.5.4.13.
+// Section 12.2.6.4.13.
func inTableBodyIM(p *parser) bool {
switch p.tok.Type {
case StartTagToken:
@@ -1460,7 +1593,7 @@ func inTableBodyIM(p *parser) bool {
return inTableIM(p)
}
-// Section 12.2.5.4.14.
+// Section 12.2.6.4.14.
func inRowIM(p *parser) bool {
switch p.tok.Type {
case StartTagToken:
@@ -1511,7 +1644,7 @@ func inRowIM(p *parser) bool {
return inTableIM(p)
}
-// Section 12.2.5.4.15.
+// Section 12.2.6.4.15.
func inCellIM(p *parser) bool {
switch p.tok.Type {
case StartTagToken:
@@ -1560,12 +1693,9 @@ func inCellIM(p *parser) bool {
return inBodyIM(p)
}
-// Section 12.2.5.4.16.
+// Section 12.2.6.4.16.
func inSelectIM(p *parser) bool {
switch p.tok.Type {
- case ErrorToken:
- // Stop parsing.
- return true
case TextToken:
p.addText(strings.Replace(p.tok.Data, "\x00", "", -1))
case StartTagToken:
@@ -1586,8 +1716,12 @@ func inSelectIM(p *parser) bool {
}
p.addElement()
case a.Select:
- p.tok.Type = EndTagToken
- return false
+ if p.popUntil(selectScope, a.Select) {
+ p.resetInsertionMode()
+ } else {
+ // Ignore the token.
+ return true
+ }
case a.Input, a.Keygen, a.Textarea:
if p.elementInScope(selectScope, a.Select) {
p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
@@ -1597,7 +1731,7 @@ func inSelectIM(p *parser) bool {
p.tokenizer.NextIsNotRawText()
// Ignore the token.
return true
- case a.Script:
+ case a.Script, a.Template:
return inHeadIM(p)
}
case EndTagToken:
@@ -1617,7 +1751,12 @@ func inSelectIM(p *parser) bool {
case a.Select:
if p.popUntil(selectScope, a.Select) {
p.resetInsertionMode()
+ } else {
+ // Ignore the token.
+ return true
}
+ case a.Template:
+ return inHeadIM(p)
}
case CommentToken:
p.addChild(&Node{
@@ -1627,30 +1766,107 @@ func inSelectIM(p *parser) bool {
case DoctypeToken:
// Ignore the token.
return true
+ case ErrorToken:
+ return inBodyIM(p)
}
return true
}
-// Section 12.2.5.4.17.
+// Section 12.2.6.4.17.
func inSelectInTableIM(p *parser) bool {
switch p.tok.Type {
case StartTagToken, EndTagToken:
switch p.tok.DataAtom {
case a.Caption, a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr, a.Td, a.Th:
- if p.tok.Type == StartTagToken || p.elementInScope(tableScope, p.tok.DataAtom) {
- p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
- return false
- } else {
+ if p.tok.Type == EndTagToken && !p.elementInScope(tableScope, p.tok.DataAtom) {
// Ignore the token.
return true
}
+ // This is like p.popUntil(selectScope, a.Select), but it also
+ // matches