diff --git a/CHANGELOG.md b/CHANGELOG.md index f770b621f94..6c26c5c2b0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,58 @@ +Release v1.48.4 (2023-11-27) +=== + +### Service Client Updates +* `service/accessanalyzer`: Updates service API, documentation, and paginators +* `service/amp`: Updates service API, documentation, waiters, and paginators +* `service/bcm-data-exports`: Adds new service +* `service/cloudtrail`: Updates service API and documentation + * CloudTrail Lake now supports federating event data stores. giving users the ability to run queries against their event data using Amazon Athena. +* `service/codestar-connections`: Updates service API, documentation, and paginators +* `service/compute-optimizer`: Updates service API and documentation +* `service/config`: Updates service API and documentation +* `service/controltower`: Updates service API, documentation, and paginators +* `service/cost-optimization-hub`: Adds new service +* `service/detective`: Updates service API and documentation +* `service/ecs`: Updates service API and documentation + * Adds a new 'type' property to the Setting structure. Adds a new AccountSetting - guardDutyActivate for ECS. +* `service/eks`: Updates service API, documentation, and paginators +* `service/eks-auth`: Updates service API, documentation, waiters, paginators, and examples +* `service/elasticfilesystem`: Updates service API, documentation, and paginators + * Adding support for EFS Archive lifecycle configuration. +* `service/elasticloadbalancingv2`: Updates service API, documentation, and paginators +* `service/freetier`: Updates service API, documentation, paginators, and examples +* `service/fsx`: Updates service API and documentation +* `service/guardduty`: Updates service API and documentation + * Add support for Runtime Monitoring for ECS and ECS-EC2. +* `service/iotfleetwise`: Updates service API and documentation +* `service/lakeformation`: Updates service API and documentation +* `service/logs`: Updates service API, documentation, and paginators + * Added APIs to Create, Update, Get, List and Delete LogAnomalyDetectors and List and Update Anomalies in Detector. Added LogGroupClass attribute for LogGroups to classify loggroup as Standard loggroup with all capabilities or InfrequentAccess loggroup with limited capabilities. +* `service/managedblockchain`: Updates service API and documentation +* `service/models.lex.v2`: Updates service API, documentation, and paginators +* `service/personalize`: Updates service API and documentation +* `service/personalize-events`: Updates service API and documentation +* `service/personalize-runtime`: Updates service API and documentation +* `service/quicksight`: Updates service API and documentation + * This release launches new APIs for trusted identity propagation setup and supports creating datasources using trusted identity propagation as authentication method for QuickSight accounts configured with IAM Identity Center. +* `service/redshift`: Updates service API and documentation + * This release adds support for multi-data warehouse writes through data sharing. +* `service/repostspace`: Adds new service +* `service/runtime.lex.v2`: Updates service API and documentation +* `service/s3`: Updates service API, documentation, and examples + * Adding new params - Key and Prefix, to S3 API operations for supporting S3 Access Grants. Note - These updates will not change any of the existing S3 API functionality. +* `service/s3control`: Updates service API, documentation, and paginators + * Introduce Amazon S3 Access Grants, a new S3 access control feature that maps identities in directories such as Active Directory, or AWS Identity and Access Management (IAM) Principals, to datasets in S3. +* `service/secretsmanager`: Updates service API, documentation, and paginators + * AWS Secrets Manager has released the BatchGetSecretValue API, which allows customers to fetch up to 20 Secrets with a single request using a list of secret names or filters. +* `service/securityhub`: Updates service API, documentation, and examples +* `service/states`: Updates service API and documentation + * Adds new TestState operation which accepts the definition of a single state and executes it. You can test a state without creating a state machine or updating an existing state machine. +* `service/transcribe`: Updates service API and documentation +* `service/workspaces`: Updates service API and documentation + * The release introduces Multi-Region Resilience one-way data replication that allows you to replicate data from your primary WorkSpace to a standby WorkSpace in another AWS Region. DescribeWorkspaces now returns the status of data replication. +* `service/workspaces-thin-client`: Adds new service + Release v1.48.3 (2023-11-22) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 0ed7eb779fe..1dc18d35e3e 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -7743,6 +7743,18 @@ var awsPartition = partition{ }, }, }, + "cost-optimization-hub": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-east-1", + }: endpoint{ + Hostname: "cost-optimization-hub.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + }, + }, "cur": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -35593,6 +35605,16 @@ var awsusgovPartition = partition{ }, }, }, + "arc-zonal-shift": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-gov-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-gov-west-1", + }: endpoint{}, + }, + }, "athena": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -42042,12 +42064,96 @@ var awsisoPartition = partition{ }, "rds": service{ Endpoints: serviceEndpoints{ + endpointKey{ + Region: "rds-fips.us-iso-east-1", + }: endpoint{ + Hostname: "rds-fips.us-iso-east-1.c2s.ic.gov", + CredentialScope: credentialScope{ + Region: "us-iso-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "rds-fips.us-iso-west-1", + }: endpoint{ + Hostname: "rds-fips.us-iso-west-1.c2s.ic.gov", + CredentialScope: credentialScope{ + Region: "us-iso-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "rds.us-iso-east-1", + }: endpoint{ + CredentialScope: credentialScope{ + Region: "us-iso-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "rds.us-iso-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "rds-fips.us-iso-east-1.c2s.ic.gov", + CredentialScope: credentialScope{ + Region: "us-iso-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "rds.us-iso-west-1", + }: endpoint{ + CredentialScope: credentialScope{ + Region: "us-iso-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "rds.us-iso-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "rds-fips.us-iso-west-1.c2s.ic.gov", + CredentialScope: credentialScope{ + Region: "us-iso-west-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "us-iso-east-1", }: endpoint{}, + endpointKey{ + Region: "us-iso-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "rds-fips.us-iso-east-1.c2s.ic.gov", + }, + endpointKey{ + Region: "us-iso-east-1-fips", + }: endpoint{ + Hostname: "rds-fips.us-iso-east-1.c2s.ic.gov", + CredentialScope: credentialScope{ + Region: "us-iso-east-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "us-iso-west-1", }: endpoint{}, + endpointKey{ + Region: "us-iso-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "rds-fips.us-iso-west-1.c2s.ic.gov", + }, + endpointKey{ + Region: "us-iso-west-1-fips", + }: endpoint{ + Hostname: "rds-fips.us-iso-west-1.c2s.ic.gov", + CredentialScope: credentialScope{ + Region: "us-iso-west-1", + }, + Deprecated: boxedTrue, + }, }, }, "redshift": service{ @@ -42777,9 +42883,51 @@ var awsisobPartition = partition{ }, "rds": service{ Endpoints: serviceEndpoints{ + endpointKey{ + Region: "rds-fips.us-isob-east-1", + }: endpoint{ + Hostname: "rds-fips.us-isob-east-1.sc2s.sgov.gov", + CredentialScope: credentialScope{ + Region: "us-isob-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "rds.us-isob-east-1", + }: endpoint{ + CredentialScope: credentialScope{ + Region: "us-isob-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "rds.us-isob-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "rds-fips.us-isob-east-1.sc2s.sgov.gov", + CredentialScope: credentialScope{ + Region: "us-isob-east-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "us-isob-east-1", }: endpoint{}, + endpointKey{ + Region: "us-isob-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "rds-fips.us-isob-east-1.sc2s.sgov.gov", + }, + endpointKey{ + Region: "us-isob-east-1-fips", + }: endpoint{ + Hostname: "rds-fips.us-isob-east-1.sc2s.sgov.gov", + CredentialScope: credentialScope{ + Region: "us-isob-east-1", + }, + Deprecated: boxedTrue, + }, }, }, "redshift": service{ diff --git a/aws/version.go b/aws/version.go index 6802d805c58..4df2ab64413 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.48.3" +const SDKVersion = "1.48.4" diff --git a/models/apis/accessanalyzer/2019-11-01/api-2.json b/models/apis/accessanalyzer/2019-11-01/api-2.json index d93cff67b32..4718258a0f7 100644 --- a/models/apis/accessanalyzer/2019-11-01/api-2.json +++ b/models/apis/accessanalyzer/2019-11-01/api-2.json @@ -46,6 +46,42 @@ ], "idempotent":true }, + "CheckAccessNotGranted":{ + "name":"CheckAccessNotGranted", + "http":{ + "method":"POST", + "requestUri":"/policy/check-access-not-granted", + "responseCode":200 + }, + "input":{"shape":"CheckAccessNotGrantedRequest"}, + "output":{"shape":"CheckAccessNotGrantedResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"UnprocessableEntityException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, + "CheckNoNewAccess":{ + "name":"CheckNoNewAccess", + "http":{ + "method":"POST", + "requestUri":"/policy/check-no-new-access", + "responseCode":200 + }, + "input":{"shape":"CheckNoNewAccessRequest"}, + "output":{"shape":"CheckNoNewAccessResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"UnprocessableEntityException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, "CreateAccessPreview":{ "name":"CreateAccessPreview", "http":{ @@ -223,6 +259,23 @@ {"shape":"AccessDeniedException"} ] }, + "GetFindingV2":{ + "name":"GetFindingV2", + "http":{ + "method":"GET", + "requestUri":"/findingv2/{id}", + "responseCode":200 + }, + "input":{"shape":"GetFindingV2Request"}, + "output":{"shape":"GetFindingV2Response"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, "GetGeneratedPolicy":{ "name":"GetGeneratedPolicy", "http":{ @@ -340,6 +393,23 @@ {"shape":"AccessDeniedException"} ] }, + "ListFindingsV2":{ + "name":"ListFindingsV2", + "http":{ + "method":"POST", + "requestUri":"/findingv2", + "responseCode":200 + }, + "input":{"shape":"ListFindingsV2Request"}, + "output":{"shape":"ListFindingsV2Response"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, "ListPolicyGenerations":{ "name":"ListPolicyGenerations", "http":{ @@ -496,6 +566,30 @@ } }, "shapes":{ + "Access":{ + "type":"structure", + "required":["actions"], + "members":{ + "actions":{"shape":"AccessActionsList"} + } + }, + "AccessActionsList":{ + "type":"list", + "member":{"shape":"Action"}, + "max":100, + "min":0 + }, + "AccessCheckPolicyDocument":{ + "type":"string", + "sensitive":true + }, + "AccessCheckPolicyType":{ + "type":"string", + "enum":[ + "IDENTITY_POLICY", + "RESOURCE_POLICY" + ] + }, "AccessDeniedException":{ "type":"structure", "required":["message"], @@ -630,6 +724,7 @@ ] }, "AclUri":{"type":"string"}, + "Action":{"type":"string"}, "ActionList":{ "type":"list", "member":{"shape":"String"} @@ -680,6 +775,13 @@ "type":"string", "pattern":"[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:analyzer/.{1,255}" }, + "AnalyzerConfiguration":{ + "type":"structure", + "members":{ + "unusedAccess":{"shape":"UnusedAccessConfiguration"} + }, + "union":true + }, "AnalyzerStatus":{ "type":"string", "enum":[ @@ -707,7 +809,8 @@ "lastResourceAnalyzedAt":{"shape":"Timestamp"}, "tags":{"shape":"TagsMap"}, "status":{"shape":"AnalyzerStatus"}, - "statusReason":{"shape":"StatusReason"} + "statusReason":{"shape":"StatusReason"}, + "configuration":{"shape":"AnalyzerConfiguration"} } }, "AnalyzersList":{ @@ -768,6 +871,68 @@ "members":{ } }, + "CheckAccessNotGrantedRequest":{ + "type":"structure", + "required":[ + "policyDocument", + "access", + "policyType" + ], + "members":{ + "policyDocument":{"shape":"AccessCheckPolicyDocument"}, + "access":{"shape":"CheckAccessNotGrantedRequestAccessList"}, + "policyType":{"shape":"AccessCheckPolicyType"} + } + }, + "CheckAccessNotGrantedRequestAccessList":{ + "type":"list", + "member":{"shape":"Access"}, + "max":1, + "min":0 + }, + "CheckAccessNotGrantedResponse":{ + "type":"structure", + "members":{ + "result":{"shape":"CheckAccessNotGrantedResult"}, + "message":{"shape":"String"}, + "reasons":{"shape":"ReasonSummaryList"} + } + }, + "CheckAccessNotGrantedResult":{ + "type":"string", + "enum":[ + "PASS", + "FAIL" + ] + }, + "CheckNoNewAccessRequest":{ + "type":"structure", + "required":[ + "newPolicyDocument", + "existingPolicyDocument", + "policyType" + ], + "members":{ + "newPolicyDocument":{"shape":"AccessCheckPolicyDocument"}, + "existingPolicyDocument":{"shape":"AccessCheckPolicyDocument"}, + "policyType":{"shape":"AccessCheckPolicyType"} + } + }, + "CheckNoNewAccessResponse":{ + "type":"structure", + "members":{ + "result":{"shape":"CheckNoNewAccessResult"}, + "message":{"shape":"String"}, + "reasons":{"shape":"ReasonSummaryList"} + } + }, + "CheckNoNewAccessResult":{ + "type":"string", + "enum":[ + "PASS", + "FAIL" + ] + }, "CloudTrailArn":{ "type":"string", "pattern":"arn:[^:]*:cloudtrail:[^:]*:[^:]*:trail/.{1,576}" @@ -881,7 +1046,8 @@ "clientToken":{ "shape":"String", "idempotencyToken":true - } + }, + "configuration":{"shape":"AnalyzerConfiguration"} } }, "CreateAnalyzerResponse":{ @@ -995,6 +1161,17 @@ } }, "EfsFileSystemPolicy":{"type":"string"}, + "ExternalAccessDetails":{ + "type":"structure", + "required":["condition"], + "members":{ + "action":{"shape":"ActionList"}, + "condition":{"shape":"ConditionKeyMap"}, + "isPublic":{"shape":"Boolean"}, + "principal":{"shape":"PrincipalMap"}, + "sources":{"shape":"FindingSourceList"} + } + }, "FilterCriteriaMap":{ "type":"map", "key":{"shape":"String"}, @@ -1037,6 +1214,21 @@ "UNCHANGED" ] }, + "FindingDetails":{ + "type":"structure", + "members":{ + "externalAccessDetails":{"shape":"ExternalAccessDetails"}, + "unusedPermissionDetails":{"shape":"UnusedPermissionDetails"}, + "unusedIamUserAccessKeyDetails":{"shape":"UnusedIamUserAccessKeyDetails"}, + "unusedIamRoleDetails":{"shape":"UnusedIamRoleDetails"}, + "unusedIamUserPasswordDetails":{"shape":"UnusedIamUserPasswordDetails"} + }, + "union":true + }, + "FindingDetailsList":{ + "type":"list", + "member":{"shape":"FindingDetails"} + }, "FindingId":{"type":"string"}, "FindingIdList":{ "type":"list", @@ -1114,10 +1306,48 @@ "sources":{"shape":"FindingSourceList"} } }, + "FindingSummaryV2":{ + "type":"structure", + "required":[ + "analyzedAt", + "createdAt", + "id", + "resourceType", + "resourceOwnerAccount", + "status", + "updatedAt" + ], + "members":{ + "analyzedAt":{"shape":"Timestamp"}, + "createdAt":{"shape":"Timestamp"}, + "error":{"shape":"String"}, + "id":{"shape":"FindingId"}, + "resource":{"shape":"String"}, + "resourceType":{"shape":"ResourceType"}, + "resourceOwnerAccount":{"shape":"String"}, + "status":{"shape":"FindingStatus"}, + "updatedAt":{"shape":"Timestamp"}, + "findingType":{"shape":"FindingType"} + } + }, + "FindingType":{ + "type":"string", + "enum":[ + "ExternalAccess", + "UnusedIAMRole", + "UnusedIAMUserAccessKey", + "UnusedIAMUserPassword", + "UnusedPermission" + ] + }, "FindingsList":{ "type":"list", "member":{"shape":"FindingSummary"} }, + "FindingsListV2":{ + "type":"list", + "member":{"shape":"FindingSummaryV2"} + }, "GeneratedPolicy":{ "type":"structure", "required":["policy"], @@ -1266,6 +1496,62 @@ "finding":{"shape":"Finding"} } }, + "GetFindingV2Request":{ + "type":"structure", + "required":[ + "analyzerArn", + "id" + ], + "members":{ + "analyzerArn":{ + "shape":"AnalyzerArn", + "location":"querystring", + "locationName":"analyzerArn" + }, + "id":{ + "shape":"FindingId", + "location":"uri", + "locationName":"id" + }, + "maxResults":{ + "shape":"Integer", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"Token", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "GetFindingV2Response":{ + "type":"structure", + "required":[ + "analyzedAt", + "createdAt", + "id", + "resourceType", + "resourceOwnerAccount", + "status", + "updatedAt", + "findingDetails" + ], + "members":{ + "analyzedAt":{"shape":"Timestamp"}, + "createdAt":{"shape":"Timestamp"}, + "error":{"shape":"String"}, + "id":{"shape":"FindingId"}, + "nextToken":{"shape":"Token"}, + "resource":{"shape":"String"}, + "resourceType":{"shape":"ResourceType"}, + "resourceOwnerAccount":{"shape":"String"}, + "status":{"shape":"FindingStatus"}, + "updatedAt":{"shape":"Timestamp"}, + "findingDetails":{"shape":"FindingDetailsList"}, + "findingType":{"shape":"FindingType"} + } + }, "GetGeneratedPolicyRequest":{ "type":"structure", "required":["jobId"], @@ -1346,6 +1632,18 @@ "members":{ } }, + "InvalidParameterException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "IssueCode":{"type":"string"}, "IssuingAccount":{"type":"string"}, "JobDetails":{ @@ -1612,6 +1910,25 @@ "nextToken":{"shape":"Token"} } }, + "ListFindingsV2Request":{ + "type":"structure", + "required":["analyzerArn"], + "members":{ + "analyzerArn":{"shape":"AnalyzerArn"}, + "filter":{"shape":"FilterCriteriaMap"}, + "maxResults":{"shape":"Integer"}, + "nextToken":{"shape":"Token"}, + "sort":{"shape":"SortCriteria"} + } + }, + "ListFindingsV2Response":{ + "type":"structure", + "required":["findings"], + "members":{ + "findings":{"shape":"FindingsListV2"}, + "nextToken":{"shape":"Token"} + } + }, "ListPolicyGenerationsRequest":{ "type":"structure", "members":{ @@ -1847,6 +2164,18 @@ "SERVICE_LINKED_ROLE_CREATION_FAILED" ] }, + "ReasonSummary":{ + "type":"structure", + "members":{ + "description":{"shape":"String"}, + "statementIndex":{"shape":"Integer"}, + "statementId":{"shape":"String"} + } + }, + "ReasonSummaryList":{ + "type":"list", + "member":{"shape":"ReasonSummary"} + }, "RegionList":{ "type":"list", "member":{"shape":"String"} @@ -2144,9 +2473,24 @@ "type":"string", "enum":[ "ACCOUNT", - "ORGANIZATION" + "ORGANIZATION", + "ACCOUNT_UNUSED_ACCESS", + "ORGANIZATION_UNUSED_ACCESS" ] }, + "UnprocessableEntityException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":422, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -2171,6 +2515,53 @@ "members":{ } }, + "UnusedAccessConfiguration":{ + "type":"structure", + "members":{ + "unusedAccessAge":{"shape":"Integer"} + } + }, + "UnusedAction":{ + "type":"structure", + "required":["action"], + "members":{ + "action":{"shape":"String"}, + "lastAccessed":{"shape":"Timestamp"} + } + }, + "UnusedActionList":{ + "type":"list", + "member":{"shape":"UnusedAction"} + }, + "UnusedIamRoleDetails":{ + "type":"structure", + "members":{ + "lastAccessed":{"shape":"Timestamp"} + } + }, + "UnusedIamUserAccessKeyDetails":{ + "type":"structure", + "required":["accessKeyId"], + "members":{ + "accessKeyId":{"shape":"String"}, + "lastAccessed":{"shape":"Timestamp"} + } + }, + "UnusedIamUserPasswordDetails":{ + "type":"structure", + "members":{ + "lastAccessed":{"shape":"Timestamp"} + } + }, + "UnusedPermissionDetails":{ + "type":"structure", + "required":["serviceNamespace"], + "members":{ + "actions":{"shape":"UnusedActionList"}, + "serviceNamespace":{"shape":"String"}, + "lastAccessed":{"shape":"Timestamp"} + } + }, "UpdateArchiveRuleRequest":{ "type":"structure", "required":[ diff --git a/models/apis/accessanalyzer/2019-11-01/docs-2.json b/models/apis/accessanalyzer/2019-11-01/docs-2.json index 44ba5f48e72..a1ca221a437 100644 --- a/models/apis/accessanalyzer/2019-11-01/docs-2.json +++ b/models/apis/accessanalyzer/2019-11-01/docs-2.json @@ -1,9 +1,11 @@ { "version": "2.0", - "service": "

Identity and Access Management Access Analyzer helps identify potential resource-access risks by enabling you to identify any policies that grant access to an external principal. It does this by using logic-based reasoning to analyze resource-based policies in your Amazon Web Services environment. An external principal can be another Amazon Web Services account, a root user, an IAM user or role, a federated user, an Amazon Web Services service, or an anonymous user. You can also use IAM Access Analyzer to preview and validate public and cross-account access to your resources before deploying permissions changes. This guide describes the Identity and Access Management Access Analyzer operations that you can call programmatically. For general information about IAM Access Analyzer, see Identity and Access Management Access Analyzer in the IAM User Guide.

To start using IAM Access Analyzer, you first need to create an analyzer.

", + "service": "

Identity and Access Management Access Analyzer helps you to set, verify, and refine your IAM policies by providing a suite of capabilities. Its features include findings for external and unused access, basic and custom policy checks for validating policies, and policy generation to generate fine-grained policies. To start using IAM Access Analyzer to identify external or unused access, you first need to create an analyzer.

External access analyzers help identify potential risks of accessing resources by enabling you to identify any resource policies that grant access to an external principal. It does this by using logic-based reasoning to analyze resource-based policies in your Amazon Web Services environment. An external principal can be another Amazon Web Services account, a root user, an IAM user or role, a federated user, an Amazon Web Services service, or an anonymous user. You can also use IAM Access Analyzer to preview public and cross-account access to your resources before deploying permissions changes.

Unused access analyzers help identify potential identity access risks by enabling you to identify unused IAM roles, unused access keys, unused console passwords, and IAM principals with unused service and action-level permissions.

Beyond findings, IAM Access Analyzer provides basic and custom policy checks to validate IAM policies before deploying permissions changes. You can use policy generation to refine permissions by attaching a policy generated using access activity logged in CloudTrail logs.

This guide describes the IAM Access Analyzer operations that you can call programmatically. For general information about IAM Access Analyzer, see Identity and Access Management Access Analyzer in the IAM User Guide.

", "operations": { "ApplyArchiveRule": "

Retroactively applies the archive rule to existing findings that meet the archive rule criteria.

", "CancelPolicyGeneration": "

Cancels the requested policy generation.

", + "CheckAccessNotGranted": "

Checks whether the specified access isn't allowed by a policy.

", + "CheckNoNewAccess": "

Checks whether new access is allowed for an updated policy when compared to the existing policy.

You can find examples for reference policies and learn how to set up and run a custom policy check for new access in the IAM Access Analyzer custom policy checks samples repository on GitHub. The reference policies in this repository are meant to be passed to the existingPolicyDocument request parameter.

", "CreateAccessPreview": "

Creates an access preview that allows you to preview IAM Access Analyzer findings for your resource before deploying resource permissions.

", "CreateAnalyzer": "

Creates an analyzer for your account.

", "CreateArchiveRule": "

Creates an archive rule for the specified analyzer. Archive rules automatically archive new findings that meet the criteria you define when you create the rule.

To learn about filter keys that you can use to create an archive rule, see IAM Access Analyzer filter keys in the IAM User Guide.

", @@ -14,6 +16,7 @@ "GetAnalyzer": "

Retrieves information about the specified analyzer.

", "GetArchiveRule": "

Retrieves information about an archive rule.

To learn about filter keys that you can use to create an archive rule, see IAM Access Analyzer filter keys in the IAM User Guide.

", "GetFinding": "

Retrieves information about the specified finding.

", + "GetFindingV2": "

Retrieves information about the specified finding.

", "GetGeneratedPolicy": "

Retrieves the policy that was generated using StartPolicyGeneration.

", "ListAccessPreviewFindings": "

Retrieves a list of access preview findings generated by the specified access preview.

", "ListAccessPreviews": "

Retrieves a list of access previews for the specified analyzer.

", @@ -21,6 +24,7 @@ "ListAnalyzers": "

Retrieves a list of analyzers.

", "ListArchiveRules": "

Retrieves a list of archive rules created for the specified analyzer.

", "ListFindings": "

Retrieves a list of findings generated by the specified analyzer.

To learn about filter keys that you can use to retrieve a list of findings, see IAM Access Analyzer filter keys in the IAM User Guide.

", + "ListFindingsV2": "

Retrieves a list of findings generated by the specified analyzer.

To learn about filter keys that you can use to retrieve a list of findings, see IAM Access Analyzer filter keys in the IAM User Guide.

", "ListPolicyGenerations": "

Lists all of the policy generations requested in the last seven days.

", "ListTagsForResource": "

Retrieves a list of tags applied to the specified resource.

", "StartPolicyGeneration": "

Starts the policy generation request.

", @@ -32,6 +36,33 @@ "ValidatePolicy": "

Requests the validation of a policy and returns a list of findings. The findings help you identify issues and provide actionable recommendations to resolve the issue and enable you to author functional policies that meet security best practices.

" }, "shapes": { + "Access": { + "base": "

Contains information about actions that define permissions to check against a policy.

", + "refs": { + "CheckAccessNotGrantedRequestAccessList$member": null + } + }, + "AccessActionsList": { + "base": null, + "refs": { + "Access$actions": "

A list of actions for the access permissions.

" + } + }, + "AccessCheckPolicyDocument": { + "base": null, + "refs": { + "CheckAccessNotGrantedRequest$policyDocument": "

The JSON policy document to use as the content for the policy.

", + "CheckNoNewAccessRequest$newPolicyDocument": "

The JSON policy document to use as the content for the updated policy.

", + "CheckNoNewAccessRequest$existingPolicyDocument": "

The JSON policy document to use as the content for the existing policy.

" + } + }, + "AccessCheckPolicyType": { + "base": null, + "refs": { + "CheckAccessNotGrantedRequest$policyType": "

The type of policy. Identity policies grant permissions to IAM principals. Identity policies include managed and inline policies for IAM roles, users, and groups.

Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust policies for IAM roles and bucket policies for Amazon S3 buckets. You can provide a generic input such as identity policy or resource policy or a specific input such as managed policy or Amazon S3 bucket policy.

", + "CheckNoNewAccessRequest$policyType": "

The type of policy to compare. Identity policies grant permissions to IAM principals. Identity policies include managed and inline policies for IAM roles, users, and groups.

Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust policies for IAM roles and bucket policies for Amazon S3 buckets. You can provide a generic input such as identity policy or resource policy or a specific input such as managed policy or Amazon S3 bucket policy.

" + } + }, "AccessDeniedException": { "base": "

You do not have sufficient access to perform this action.

", "refs": { @@ -139,11 +170,18 @@ "AclGrantee$uri": "

Used for granting permissions to a predefined group.

" } }, + "Action": { + "base": null, + "refs": { + "AccessActionsList$member": null + } + }, "ActionList": { "base": null, "refs": { "AccessPreviewFinding$action": "

The action in the analyzed policy statement that an external principal has permission to perform.

", "AnalyzedResource$actions": "

The actions that an external principal is granted permission to use by the policy that generated the finding.

", + "ExternalAccessDetails$action": "

The action in the analyzed policy statement that an external principal has permission to use.

", "Finding$action": "

The action in the analyzed policy statement that an external principal has permission to use.

", "FindingSummary$action": "

The action in the analyzed policy statement that an external principal has permission to use.

" } @@ -178,14 +216,23 @@ "GetAccessPreviewRequest$analyzerArn": "

The ARN of the analyzer used to generate the access preview.

", "GetAnalyzedResourceRequest$analyzerArn": "

The ARN of the analyzer to retrieve information from.

", "GetFindingRequest$analyzerArn": "

The ARN of the analyzer that generated the finding.

", + "GetFindingV2Request$analyzerArn": "

The ARN of the analyzer that generated the finding.

", "ListAccessPreviewFindingsRequest$analyzerArn": "

The ARN of the analyzer used to generate the access.

", "ListAccessPreviewsRequest$analyzerArn": "

The ARN of the analyzer used to generate the access preview.

", "ListAnalyzedResourcesRequest$analyzerArn": "

The ARN of the analyzer to retrieve a list of analyzed resources from.

", "ListFindingsRequest$analyzerArn": "

The ARN of the analyzer to retrieve findings from.

", + "ListFindingsV2Request$analyzerArn": "

The ARN of the analyzer to retrieve findings from.

", "StartResourceScanRequest$analyzerArn": "

The ARN of the analyzer to use to scan the policies applied to the specified resource.

", "UpdateFindingsRequest$analyzerArn": "

The ARN of the analyzer that generated the findings to update.

" } }, + "AnalyzerConfiguration": { + "base": "

Contains information about the configuration of an unused access analyzer for an Amazon Web Services organization or account.

", + "refs": { + "AnalyzerSummary$configuration": "

Specifies whether the analyzer is an external access or unused access analyzer.

", + "CreateAnalyzerRequest$configuration": "

Specifies the configuration of the analyzer. If the analyzer is an unused access analyzer, the specified scope of unused access is used for the configuration. If the analyzer is an external access analyzer, this field is not used.

" + } + }, "AnalyzerStatus": { "base": null, "refs": { @@ -229,6 +276,7 @@ "AccessPreviewFinding$isPublic": "

Indicates whether the policy that generated the finding allows public access to the resource.

", "AnalyzedResource$isPublic": "

Indicates whether the policy that generated the finding grants public access to the resource.

", "Criterion$exists": "

An \"exists\" operator to match for the filter used to create the rule.

", + "ExternalAccessDetails$isPublic": "

Specifies whether the external access finding is public.

", "Finding$isPublic": "

Indicates whether the policy that generated the finding allows public access to the resource.

", "FindingSummary$isPublic": "

Indicates whether the finding reports a resource that has a policy that allows public access.

", "GeneratedPolicyProperties$isComplete": "

This value is set to true if the generated policy contains all possible actions for a service that IAM Access Analyzer identified from the CloudTrail trail that you specified, and false otherwise.

", @@ -250,6 +298,44 @@ "refs": { } }, + "CheckAccessNotGrantedRequest": { + "base": null, + "refs": { + } + }, + "CheckAccessNotGrantedRequestAccessList": { + "base": null, + "refs": { + "CheckAccessNotGrantedRequest$access": "

An access object containing the permissions that shouldn't be granted by the specified policy.

" + } + }, + "CheckAccessNotGrantedResponse": { + "base": null, + "refs": { + } + }, + "CheckAccessNotGrantedResult": { + "base": null, + "refs": { + "CheckAccessNotGrantedResponse$result": "

The result of the check for whether the access is allowed. If the result is PASS, the specified policy doesn't allow any of the specified permissions in the access object. If the result is FAIL, the specified policy might allow some or all of the permissions in the access object.

" + } + }, + "CheckNoNewAccessRequest": { + "base": null, + "refs": { + } + }, + "CheckNoNewAccessResponse": { + "base": null, + "refs": { + } + }, + "CheckNoNewAccessResult": { + "base": null, + "refs": { + "CheckNoNewAccessResponse$result": "

The result of the check for new access. If the result is PASS, no new access is allowed by the updated policy. If the result is FAIL, the updated policy might allow new access.

" + } + }, "CloudTrailArn": { "base": null, "refs": { @@ -273,6 +359,7 @@ "base": null, "refs": { "AccessPreviewFinding$condition": "

The condition in the analyzed policy statement that resulted in a finding.

", + "ExternalAccessDetails$condition": "

The condition in the analyzed policy statement that resulted in an external access finding.

", "Finding$condition": "

The condition in the analyzed policy statement that resulted in a finding.

", "FindingSummary$condition": "

The condition in the analyzed policy statement that resulted in a finding.

" } @@ -402,6 +489,12 @@ "EfsFileSystemConfiguration$fileSystemPolicy": "

The JSON policy definition to apply to the Amazon EFS file system. For more information on the elements that make up a file system policy, see Amazon EFS Resource-based policies.

" } }, + "ExternalAccessDetails": { + "base": "

Contains information about an external access finding.

", + "refs": { + "FindingDetails$externalAccessDetails": "

The details for an external access analyzer finding.

" + } + }, "FilterCriteriaMap": { "base": null, "refs": { @@ -410,6 +503,7 @@ "InlineArchiveRule$filter": "

The condition and values for a criterion.

", "ListAccessPreviewFindingsRequest$filter": "

Criteria to filter the returned findings.

", "ListFindingsRequest$filter": "

A filter to match for the findings to return.

", + "ListFindingsV2Request$filter": "

A filter to match for the findings to return.

", "UpdateArchiveRuleRequest$filter": "

A filter to match for the rules to update. Only rules that match the filter are updated.

" } }, @@ -425,6 +519,18 @@ "AccessPreviewFinding$changeType": "

Provides context on how the access preview finding compares to existing access identified in IAM Access Analyzer.

For example, a Changed finding with preview status Resolved and existing status Active indicates the existing Active finding would become Resolved as a result of the proposed permissions change.

" } }, + "FindingDetails": { + "base": "

Contains information about an external access or unused access finding. Only one parameter can be used in a FindingDetails object.

", + "refs": { + "FindingDetailsList$member": null + } + }, + "FindingDetailsList": { + "base": null, + "refs": { + "GetFindingV2Response$findingDetails": "

A localized message that explains the finding and provides guidance on how to address it.

" + } + }, "FindingId": { "base": null, "refs": { @@ -432,7 +538,10 @@ "Finding$id": "

The ID of the finding.

", "FindingIdList$member": null, "FindingSummary$id": "

The ID of the finding.

", - "GetFindingRequest$id": "

The ID of the finding to retrieve.

" + "FindingSummaryV2$id": "

The ID of the finding.

", + "GetFindingRequest$id": "

The ID of the finding to retrieve.

", + "GetFindingV2Request$id": "

The ID of the finding to retrieve.

", + "GetFindingV2Response$id": "

The ID of the finding to retrieve.

" } }, "FindingIdList": { @@ -457,6 +566,7 @@ "base": null, "refs": { "AccessPreviewFinding$sources": "

The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

", + "ExternalAccessDetails$sources": "

The sources of the external access finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

", "Finding$sources": "

The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

", "FindingSummary$sources": "

The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

" } @@ -474,7 +584,9 @@ "AccessPreviewFinding$status": "

The preview status of the finding. This is what the status of the finding would be after permissions deployment. For example, a Changed finding with preview status Resolved and existing status Active indicates the existing Active finding would become Resolved as a result of the proposed permissions change.

", "AnalyzedResource$status": "

The current status of the finding generated from the analyzed resource.

", "Finding$status": "

The current status of the finding.

", - "FindingSummary$status": "

The status of the finding.

" + "FindingSummary$status": "

The status of the finding.

", + "FindingSummaryV2$status": "

The status of the finding.

", + "GetFindingV2Response$status": "

The status of the finding.

" } }, "FindingStatusUpdate": { @@ -489,12 +601,31 @@ "FindingsList$member": null } }, + "FindingSummaryV2": { + "base": "

Contains information about a finding.

", + "refs": { + "FindingsListV2$member": null + } + }, + "FindingType": { + "base": null, + "refs": { + "FindingSummaryV2$findingType": "

The type of the external access or unused access finding.

", + "GetFindingV2Response$findingType": "

The type of the finding. For external access analyzers, the type is ExternalAccess. For unused access analyzers, the type can be UnusedIAMRole, UnusedIAMUserAccessKey, UnusedIAMUserPassword, or UnusedPermission.

" + } + }, "FindingsList": { "base": null, "refs": { "ListFindingsResponse$findings": "

A list of findings retrieved from the analyzer that match the filter criteria specified, if any.

" } }, + "FindingsListV2": { + "base": null, + "refs": { + "ListFindingsV2Response$findings": "

A list of findings retrieved from the analyzer that match the filter criteria specified, if any.

" + } + }, "GeneratedPolicy": { "base": "

Contains the text for the generated policy.

", "refs": { @@ -569,6 +700,16 @@ "refs": { } }, + "GetFindingV2Request": { + "base": null, + "refs": { + } + }, + "GetFindingV2Response": { + "base": null, + "refs": { + } + }, "GetGeneratedPolicyRequest": { "base": null, "refs": { @@ -612,6 +753,7 @@ "Integer": { "base": null, "refs": { + "GetFindingV2Request$maxResults": "

The maximum number of results to return in the response.

", "InternalServerException$retryAfterSeconds": "

The seconds to wait to retry.

", "ListAccessPreviewFindingsRequest$maxResults": "

The maximum number of results to return in the response.

", "ListAccessPreviewsRequest$maxResults": "

The maximum number of results to return in the response.

", @@ -619,13 +761,16 @@ "ListAnalyzersRequest$maxResults": "

The maximum number of results to return in the response.

", "ListArchiveRulesRequest$maxResults": "

The maximum number of results to return in the request.

", "ListFindingsRequest$maxResults": "

The maximum number of results to return in the response.

", + "ListFindingsV2Request$maxResults": "

The maximum number of results to return in the response.

", "PathElement$index": "

Refers to an index in a JSON array.

", "Position$line": "

The line of the position, starting from 1.

", "Position$column": "

The column of the position, starting from 0.

", "Position$offset": "

The offset within the policy that corresponds to the position, starting from 0.

", + "ReasonSummary$statementIndex": "

The index number of the reason statement.

", "Substring$start": "

The start index of the substring, starting from 0.

", "Substring$length": "

The length of the substring.

", "ThrottlingException$retryAfterSeconds": "

The seconds to wait to retry.

", + "UnusedAccessConfiguration$unusedAccessAge": "

The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days.

", "ValidatePolicyRequest$maxResults": "

The maximum number of results to return in the response.

" } }, @@ -640,6 +785,11 @@ "NetworkOriginConfiguration$internetConfiguration": "

The configuration for the Amazon S3 access point or multi-region access point with an Internet origin.

" } }, + "InvalidParameterException": { + "base": "

The specified parameter is invalid.

", + "refs": { + } + }, "IssueCode": { "base": null, "refs": { @@ -820,6 +970,16 @@ "refs": { } }, + "ListFindingsV2Request": { + "base": null, + "refs": { + } + }, + "ListFindingsV2Response": { + "base": null, + "refs": { + } + }, "ListPolicyGenerationsRequest": { "base": null, "refs": { @@ -942,7 +1102,7 @@ "PolicyType": { "base": null, "refs": { - "ValidatePolicyRequest$policyType": "

The type of policy to validate. Identity policies grant permissions to IAM principals. Identity policies include managed and inline policies for IAM roles, users, and groups. They also include service-control policies (SCPs) that are attached to an Amazon Web Services organization, organizational unit (OU), or an account.

Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust policies for IAM roles and bucket policies for Amazon S3 buckets. You can provide a generic input such as identity policy or resource policy or a specific input such as managed policy or Amazon S3 bucket policy.

" + "ValidatePolicyRequest$policyType": "

The type of policy to validate. Identity policies grant permissions to IAM principals. Identity policies include managed and inline policies for IAM roles, users, and groups.

Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust policies for IAM roles and bucket policies for Amazon S3 buckets. You can provide a generic input such as identity policy or resource policy or a specific input such as managed policy or Amazon S3 bucket policy.

Service control policies (SCPs) are a type of organization policy attached to an Amazon Web Services organization, organizational unit (OU), or an account.

" } }, "Position": { @@ -965,7 +1125,8 @@ "base": null, "refs": { "AccessPreviewFinding$principal": "

The external principal that has access to a resource within the zone of trust.

", - "Finding$principal": "

The external principal that access to a resource within the zone of trust.

", + "ExternalAccessDetails$principal": "

The external principal that has access to a resource within the zone of trust.

", + "Finding$principal": "

The external principal that has access to a resource within the zone of trust.

", "FindingSummary$principal": "

The external principal that has access to a resource within the zone of trust.

" } }, @@ -1059,6 +1220,19 @@ "StatusReason$code": "

The reason code for the current status of the analyzer.

" } }, + "ReasonSummary": { + "base": "

Contains information about the reasoning why a check for access passed or failed.

", + "refs": { + "ReasonSummaryList$member": null + } + }, + "ReasonSummaryList": { + "base": null, + "refs": { + "CheckAccessNotGrantedResponse$reasons": "

A description of the reasoning of the result.

", + "CheckNoNewAccessResponse$reasons": "

A description of the reasoning of the result.

" + } + }, "RegionList": { "base": null, "refs": { @@ -1089,6 +1263,8 @@ "AnalyzedResourceSummary$resourceType": "

The type of resource that was analyzed.

", "Finding$resourceType": "

The type of the resource identified in the finding.

", "FindingSummary$resourceType": "

The type of the resource that the external principal has access to.

", + "FindingSummaryV2$resourceType": "

The type of the resource that the external principal has access to.

", + "GetFindingV2Response$resourceType": "

The type of the resource identified in the finding.

", "ListAnalyzedResourcesRequest$resourceType": "

The type of resource.

" } }, @@ -1191,7 +1367,8 @@ "SortCriteria": { "base": "

The criteria used to sort.

", "refs": { - "ListFindingsRequest$sort": "

The sort order for the findings returned.

" + "ListFindingsRequest$sort": "

The sort order for the findings returned.

", + "ListFindingsV2Request$sort": null } }, "Span": { @@ -1246,6 +1423,8 @@ "AnalyzedResourceSummary$resourceOwnerAccount": "

The Amazon Web Services account ID that owns the resource.

", "AnalyzerSummary$lastResourceAnalyzed": "

The resource that was most recently analyzed by the analyzer.

", "ApplyArchiveRuleRequest$clientToken": "

A client token.

", + "CheckAccessNotGrantedResponse$message": "

The message indicating whether the specified access is allowed.

", + "CheckNoNewAccessResponse$message": "

The message indicating whether the updated policy allows new access.

", "ConditionKeyMap$key": null, "ConditionKeyMap$value": null, "ConflictException$message": null, @@ -1265,14 +1444,23 @@ "FindingSummary$resource": "

The resource that the external principal has access to.

", "FindingSummary$resourceOwnerAccount": "

The Amazon Web Services account ID that owns the resource.

", "FindingSummary$error": "

The error that resulted in an Error finding.

", + "FindingSummaryV2$error": "

The error that resulted in an Error finding.

", + "FindingSummaryV2$resource": "

The resource that the external principal has access to.

", + "FindingSummaryV2$resourceOwnerAccount": "

The Amazon Web Services account ID that owns the resource.

", "GeneratedPolicy$policy": "

The text to use as the content for the new policy. The policy is created using the CreatePolicy action.

", + "GetFindingV2Response$error": "

An error.

", + "GetFindingV2Response$resource": "

The resource that generated the finding.

", + "GetFindingV2Response$resourceOwnerAccount": "

Tye Amazon Web Services account ID that owns the resource.

", "InternalServerException$message": null, + "InvalidParameterException$message": null, "JobError$message": "

Specific information about the error. For example, which service quota was exceeded or which resource was not found.

", "ListTagsForResourceRequest$resourceArn": "

The ARN of the resource to retrieve tags from.

", "PathElement$key": "

Refers to a key in a JSON object.

", "PathElement$value": "

Refers to the value associated with a given key in a JSON object.

", "PrincipalMap$key": null, "PrincipalMap$value": null, + "ReasonSummary$description": "

A description of the reasoning of a result of checking for access.

", + "ReasonSummary$statementId": "

The identifier for the reason statement.

", "RegionList$member": null, "ResourceNotFoundException$message": null, "ResourceNotFoundException$resourceId": "

The ID of the resource.

", @@ -1289,7 +1477,11 @@ "TagsMap$key": null, "TagsMap$value": null, "ThrottlingException$message": null, + "UnprocessableEntityException$message": null, "UntagResourceRequest$resourceArn": "

The ARN of the resource to remove the tag from.

", + "UnusedAction$action": "

The action for which the unused access finding was generated.

", + "UnusedIamUserAccessKeyDetails$accessKeyId": "

The ID of the access key for which the unused access finding was generated.

", + "UnusedPermissionDetails$serviceNamespace": "

The namespace of the Amazon Web Services service that contains the unused actions.

", "UpdateArchiveRuleRequest$clientToken": "

A client token.

", "UpdateFindingsRequest$clientToken": "

A client token.

", "ValidatePolicyFinding$findingDetails": "

A localized message that explains the finding and provides guidance on how to address it.

", @@ -1325,7 +1517,7 @@ "base": null, "refs": { "AnalyzerSummary$tags": "

The tags added to the analyzer.

", - "CreateAnalyzerRequest$tags": "

The tags to apply to the analyzer.

", + "CreateAnalyzerRequest$tags": "

An array of key-value pairs to apply to the analyzer.

", "ListTagsForResourceResponse$tags": "

The tags that are applied to the specified resource.

", "TagResourceRequest$tags": "

The tags to add to the resource.

" } @@ -1358,15 +1550,28 @@ "FindingSummary$createdAt": "

The time at which the finding was created.

", "FindingSummary$analyzedAt": "

The time at which the resource-based policy that generated the finding was analyzed.

", "FindingSummary$updatedAt": "

The time at which the finding was most recently updated.

", + "FindingSummaryV2$analyzedAt": "

The time at which the resource-based policy or IAM entity that generated the finding was analyzed.

", + "FindingSummaryV2$createdAt": "

The time at which the finding was created.

", + "FindingSummaryV2$updatedAt": "

The time at which the finding was most recently updated.

", + "GetFindingV2Response$analyzedAt": "

The time at which the resource-based policy or IAM entity that generated the finding was analyzed.

", + "GetFindingV2Response$createdAt": "

The time at which the finding was created.

", + "GetFindingV2Response$updatedAt": "

The time at which the finding was updated.

", "JobDetails$startedOn": "

A timestamp of when the job was started.

", "JobDetails$completedOn": "

A timestamp of when the job was completed.

", "PolicyGeneration$startedOn": "

A timestamp of when the policy generation started.

", - "PolicyGeneration$completedOn": "

A timestamp of when the policy generation was completed.

" + "PolicyGeneration$completedOn": "

A timestamp of when the policy generation was completed.

", + "UnusedAction$lastAccessed": "

The time at which the action was last accessed.

", + "UnusedIamRoleDetails$lastAccessed": "

The time at which the role was last accessed.

", + "UnusedIamUserAccessKeyDetails$lastAccessed": "

The time at which the access key was last accessed.

", + "UnusedIamUserPasswordDetails$lastAccessed": "

The time at which the password was last accessed.

", + "UnusedPermissionDetails$lastAccessed": "

The time at which the permission last accessed.

" } }, "Token": { "base": null, "refs": { + "GetFindingV2Request$nextToken": "

A token used for pagination of results returned.

", + "GetFindingV2Response$nextToken": "

A token used for pagination of results returned.

", "ListAccessPreviewFindingsRequest$nextToken": "

A token used for pagination of results returned.

", "ListAccessPreviewFindingsResponse$nextToken": "

A token used for pagination of results returned.

", "ListAccessPreviewsRequest$nextToken": "

A token used for pagination of results returned.

", @@ -1379,6 +1584,8 @@ "ListArchiveRulesResponse$nextToken": "

A token used for pagination of results returned.

", "ListFindingsRequest$nextToken": "

A token used for pagination of results returned.

", "ListFindingsResponse$nextToken": "

A token used for pagination of results returned.

", + "ListFindingsV2Request$nextToken": "

A token used for pagination of results returned.

", + "ListFindingsV2Response$nextToken": "

A token used for pagination of results returned.

", "ListPolicyGenerationsRequest$nextToken": "

A token used for pagination of results returned.

", "ListPolicyGenerationsResponse$nextToken": "

A token used for pagination of results returned.

", "ValidatePolicyRequest$nextToken": "

A token used for pagination of results returned.

", @@ -1413,10 +1620,15 @@ "base": null, "refs": { "AnalyzerSummary$type": "

The type of analyzer, which corresponds to the zone of trust chosen for the analyzer.

", - "CreateAnalyzerRequest$type": "

The type of analyzer to create. Only ACCOUNT and ORGANIZATION analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.

", + "CreateAnalyzerRequest$type": "

The type of analyzer to create. Only ACCOUNT, ORGANIZATION, ACCOUNT_UNUSED_ACCESS, and ORGANIZTAION_UNUSED_ACCESS analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.

", "ListAnalyzersRequest$type": "

The type of analyzer.

" } }, + "UnprocessableEntityException": { + "base": "

The specified entity could not be processed.

", + "refs": { + } + }, "UntagResourceRequest": { "base": "

Removes a tag from the specified resource.

", "refs": { @@ -1427,6 +1639,48 @@ "refs": { } }, + "UnusedAccessConfiguration": { + "base": "

Contains information about an unused access analyzer.

", + "refs": { + "AnalyzerConfiguration$unusedAccess": "

Specifies the configuration of an unused access analyzer for an Amazon Web Services organization or account. External access analyzers do not support any configuration.

" + } + }, + "UnusedAction": { + "base": "

Contains information about an unused access finding for an action. IAM Access Analyzer charges for unused access analysis based on the number of IAM roles and users analyzed per month. For more details on pricing, see IAM Access Analyzer pricing.

", + "refs": { + "UnusedActionList$member": null + } + }, + "UnusedActionList": { + "base": null, + "refs": { + "UnusedPermissionDetails$actions": "

A list of unused actions for which the unused access finding was generated.

" + } + }, + "UnusedIamRoleDetails": { + "base": "

Contains information about an unused access finding for an IAM role. IAM Access Analyzer charges for unused access analysis based on the number of IAM roles and users analyzed per month. For more details on pricing, see IAM Access Analyzer pricing.

", + "refs": { + "FindingDetails$unusedIamRoleDetails": "

The details for an unused access analyzer finding with an unused IAM role finding type.

" + } + }, + "UnusedIamUserAccessKeyDetails": { + "base": "

Contains information about an unused access finding for an IAM user access key. IAM Access Analyzer charges for unused access analysis based on the number of IAM roles and users analyzed per month. For more details on pricing, see IAM Access Analyzer pricing.

", + "refs": { + "FindingDetails$unusedIamUserAccessKeyDetails": "

The details for an unused access analyzer finding with an unused IAM user access key finding type.

" + } + }, + "UnusedIamUserPasswordDetails": { + "base": "

Contains information about an unused access finding for an IAM user password. IAM Access Analyzer charges for unused access analysis based on the number of IAM roles and users analyzed per month. For more details on pricing, see IAM Access Analyzer pricing.

", + "refs": { + "FindingDetails$unusedIamUserPasswordDetails": "

The details for an unused access analyzer finding with an unused IAM user password finding type.

" + } + }, + "UnusedPermissionDetails": { + "base": "

Contains information about an unused access finding for a permission. IAM Access Analyzer charges for unused access analysis based on the number of IAM roles and users analyzed per month. For more details on pricing, see IAM Access Analyzer pricing.

", + "refs": { + "FindingDetails$unusedPermissionDetails": "

The details for an unused access analyzer finding with an unused permission finding type.

" + } + }, "UpdateArchiveRuleRequest": { "base": "

Updates the specified archive rule.

", "refs": { diff --git a/models/apis/accessanalyzer/2019-11-01/endpoint-rule-set-1.json b/models/apis/accessanalyzer/2019-11-01/endpoint-rule-set-1.json index ace8724275f..37e76c86e64 100644 --- a/models/apis/accessanalyzer/2019-11-01/endpoint-rule-set-1.json +++ b/models/apis/accessanalyzer/2019-11-01/endpoint-rule-set-1.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,78 +32,29 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], - "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "ref": "UseFIPS" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + true ] } - ] + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" }, { "conditions": [ @@ -111,61 +62,109 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ { - "fn": "booleanEquals", + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", "argv": [ { - "ref": "UseDualStack" - }, - true - ] + "ref": "Region" + } + ], + "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } + "ref": "UseFIPS" + }, + true ] }, { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } + "ref": "UseDualStack" + }, + true ] } ], - "type": "tree", "rules": [ { - "conditions": [], - "type": "tree", + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], "rules": [ { "conditions": [], @@ -176,61 +175,54 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } - ] + ], + "type": "tree" }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } + "ref": "UseFIPS" + }, + true ] } ], - "type": "tree", "rules": [ { - "conditions": [], - "type": "tree", + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ - "aws-us-gov", { "fn": "getAttr", "argv": [ @@ -239,7 +231,8 @@ }, "name" ] - } + }, + "aws-us-gov" ] } ], @@ -259,54 +252,48 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } - ] + ], + "type": "tree" }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } + "ref": "UseDualStack" + }, + true ] } ], - "type": "tree", "rules": [ { - "conditions": [], - "type": "tree", + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], "rules": [ { "conditions": [], @@ -317,58 +304,16 @@ }, "type": "endpoint" } - ] - } - ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" - } - ] - }, - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-east-1" - ] - } - ], - "endpoint": { - "url": "https://access-analyzer.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ + ], + "type": "tree" + }, { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-west-1" - ] + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ], - "endpoint": { - "url": "https://access-analyzer.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "type": "tree" }, { "conditions": [], @@ -379,9 +324,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/accessanalyzer/2019-11-01/endpoint-tests-1.json b/models/apis/accessanalyzer/2019-11-01/endpoint-tests-1.json index cb6f22f56f8..dfcf8fb3140 100644 --- a/models/apis/accessanalyzer/2019-11-01/endpoint-tests-1.json +++ b/models/apis/accessanalyzer/2019-11-01/endpoint-tests-1.json @@ -8,9 +8,9 @@ } }, "params": { + "Region": "af-south-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "af-south-1" + "UseDualStack": false } }, { @@ -21,9 +21,9 @@ } }, "params": { + "Region": "ap-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { @@ -34,9 +34,9 @@ } }, "params": { + "Region": "ap-northeast-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { @@ -47,9 +47,9 @@ } }, "params": { + "Region": "ap-northeast-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { @@ -60,9 +60,9 @@ } }, "params": { + "Region": "ap-northeast-3", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-3" + "UseDualStack": false } }, { @@ -73,9 +73,9 @@ } }, "params": { + "Region": "ap-south-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-south-1" + "UseDualStack": false } }, { @@ -86,9 +86,9 @@ } }, "params": { + "Region": "ap-southeast-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { @@ -99,9 +99,9 @@ } }, "params": { + "Region": "ap-southeast-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { @@ -112,9 +112,9 @@ } }, "params": { + "Region": "ap-southeast-3", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { @@ -125,9 +125,9 @@ } }, "params": { + "Region": "ca-central-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ca-central-1" + "UseDualStack": false } }, { @@ -138,9 +138,9 @@ } }, "params": { + "Region": "ca-central-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ca-central-1" + "UseDualStack": false } }, { @@ -151,9 +151,9 @@ } }, "params": { + "Region": "eu-central-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-central-1" + "UseDualStack": false } }, { @@ -164,9 +164,9 @@ } }, "params": { + "Region": "eu-north-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-north-1" + "UseDualStack": false } }, { @@ -177,9 +177,9 @@ } }, "params": { + "Region": "eu-south-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-south-1" + "UseDualStack": false } }, { @@ -190,9 +190,9 @@ } }, "params": { + "Region": "eu-west-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { @@ -203,9 +203,9 @@ } }, "params": { + "Region": "eu-west-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { @@ -216,9 +216,9 @@ } }, "params": { + "Region": "eu-west-3", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-3" + "UseDualStack": false } }, { @@ -229,9 +229,9 @@ } }, "params": { + "Region": "me-south-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "me-south-1" + "UseDualStack": false } }, { @@ -242,9 +242,9 @@ } }, "params": { + "Region": "sa-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { @@ -255,9 +255,9 @@ } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-1" + "UseDualStack": false } }, { @@ -268,9 +268,9 @@ } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-1" + "UseDualStack": false } }, { @@ -281,9 +281,9 @@ } }, "params": { + "Region": "us-east-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-east-2" + "UseDualStack": false } }, { @@ -294,9 +294,9 @@ } }, "params": { + "Region": "us-east-2", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-2" + "UseDualStack": false } }, { @@ -307,9 +307,9 @@ } }, "params": { + "Region": "us-west-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-1" + "UseDualStack": false } }, { @@ -320,9 +320,9 @@ } }, "params": { + "Region": "us-west-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-1" + "UseDualStack": false } }, { @@ -333,9 +333,9 @@ } }, "params": { + "Region": "us-west-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" + "UseDualStack": false } }, { @@ -346,9 +346,9 @@ } }, "params": { + "Region": "us-west-2", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-2" + "UseDualStack": false } }, { @@ -359,9 +359,9 @@ } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": true } }, { @@ -372,9 +372,9 @@ } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": true } }, { @@ -385,9 +385,9 @@ } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { @@ -398,9 +398,9 @@ } }, "params": { + "Region": "cn-northwest-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "cn-northwest-1" + "UseDualStack": false } }, { @@ -411,9 +411,9 @@ } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "cn-north-1" + "UseDualStack": true } }, { @@ -424,9 +424,9 @@ } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { @@ -437,9 +437,9 @@ } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "cn-north-1" + "UseDualStack": true } }, { @@ -450,9 +450,9 @@ } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-east-1" + "UseDualStack": false } }, { @@ -463,9 +463,9 @@ } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-east-1" + "UseDualStack": false } }, { @@ -476,9 +476,9 @@ } }, "params": { + "Region": "us-gov-west-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { @@ -489,9 +489,9 @@ } }, "params": { + "Region": "us-gov-west-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { @@ -502,9 +502,9 @@ } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { @@ -515,9 +515,20 @@ } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-gov-east-1" + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { @@ -528,9 +539,20 @@ } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-iso-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { @@ -541,9 +563,20 @@ } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-iso-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { @@ -554,9 +587,20 @@ } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "us-isob-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { @@ -567,13 +611,27 @@ } }, "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": false, - "Region": "us-isob-east-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -582,7 +640,6 @@ "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -592,9 +649,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -604,11 +661,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/models/apis/accessanalyzer/2019-11-01/paginators-1.json b/models/apis/accessanalyzer/2019-11-01/paginators-1.json index d36eef63384..39c52df61be 100644 --- a/models/apis/accessanalyzer/2019-11-01/paginators-1.json +++ b/models/apis/accessanalyzer/2019-11-01/paginators-1.json @@ -1,5 +1,11 @@ { "pagination": { + "GetFindingV2": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "findingDetails" + }, "ListAccessPreviewFindings": { "input_token": "nextToken", "output_token": "nextToken", @@ -36,6 +42,12 @@ "limit_key": "maxResults", "result_key": "findings" }, + "ListFindingsV2": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "findings" + }, "ListPolicyGenerations": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/models/apis/amp/2020-08-01/api-2.json b/models/apis/amp/2020-08-01/api-2.json index 98249eb97a5..e5fccbc62d3 100644 --- a/models/apis/amp/2020-08-01/api-2.json +++ b/models/apis/amp/2020-08-01/api-2.json @@ -69,6 +69,26 @@ ], "idempotent":true }, + "CreateScraper":{ + "name":"CreateScraper", + "http":{ + "method":"POST", + "requestUri":"/scrapers", + "responseCode":202 + }, + "input":{"shape":"CreateScraperRequest"}, + "output":{"shape":"CreateScraperResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, "CreateWorkspace":{ "name":"CreateWorkspace", "http":{ @@ -141,6 +161,25 @@ ], "idempotent":true }, + "DeleteScraper":{ + "name":"DeleteScraper", + "http":{ + "method":"DELETE", + "requestUri":"/scrapers/{scraperId}", + "responseCode":202 + }, + "input":{"shape":"DeleteScraperRequest"}, + "output":{"shape":"DeleteScraperResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, "DeleteWorkspace":{ "name":"DeleteWorkspace", "http":{ @@ -209,6 +248,23 @@ {"shape":"InternalServerException"} ] }, + "DescribeScraper":{ + "name":"DescribeScraper", + "http":{ + "method":"GET", + "requestUri":"/scrapers/{scraperId}", + "responseCode":200 + }, + "input":{"shape":"DescribeScraperRequest"}, + "output":{"shape":"DescribeScraperResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, "DescribeWorkspace":{ "name":"DescribeWorkspace", "http":{ @@ -226,6 +282,21 @@ {"shape":"InternalServerException"} ] }, + "GetDefaultScraperConfiguration":{ + "name":"GetDefaultScraperConfiguration", + "http":{ + "method":"GET", + "requestUri":"/scraperconfiguration", + "responseCode":200 + }, + "input":{"shape":"GetDefaultScraperConfigurationRequest"}, + "output":{"shape":"GetDefaultScraperConfigurationResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, "ListRuleGroupsNamespaces":{ "name":"ListRuleGroupsNamespaces", "http":{ @@ -243,6 +314,22 @@ {"shape":"InternalServerException"} ] }, + "ListScrapers":{ + "name":"ListScrapers", + "http":{ + "method":"GET", + "requestUri":"/scrapers", + "responseCode":200 + }, + "input":{"shape":"ListScrapersRequest"}, + "output":{"shape":"ListScrapersResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ] + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -437,6 +524,18 @@ "UPDATE_FAILED" ] }, + "AmpConfiguration":{ + "type":"structure", + "required":["workspaceArn"], + "members":{ + "workspaceArn":{"shape":"WorkspaceArn"} + } + }, + "Blob":{"type":"blob"}, + "ClusterArn":{ + "type":"string", + "pattern":"arn:aws[-a-z]*:eks:[-a-z0-9]+:[0-9]{12}:cluster/.+" + }, "ConflictException":{ "type":"structure", "required":[ @@ -543,6 +642,39 @@ "tags":{"shape":"TagMap"} } }, + "CreateScraperRequest":{ + "type":"structure", + "required":[ + "scrapeConfiguration", + "source", + "destination" + ], + "members":{ + "alias":{"shape":"ScraperAlias"}, + "scrapeConfiguration":{"shape":"ScrapeConfiguration"}, + "source":{"shape":"Source"}, + "destination":{"shape":"Destination"}, + "clientToken":{ + "shape":"IdempotencyToken", + "idempotencyToken":true + }, + "tags":{"shape":"TagMap"} + } + }, + "CreateScraperResponse":{ + "type":"structure", + "required":[ + "scraperId", + "arn", + "status" + ], + "members":{ + "scraperId":{"shape":"ScraperId"}, + "arn":{"shape":"ScraperArn"}, + "status":{"shape":"ScraperStatus"}, + "tags":{"shape":"TagMap"} + } + }, "CreateWorkspaceRequest":{ "type":"structure", "members":{ @@ -627,6 +759,34 @@ } } }, + "DeleteScraperRequest":{ + "type":"structure", + "required":["scraperId"], + "members":{ + "scraperId":{ + "shape":"ScraperId", + "location":"uri", + "locationName":"scraperId" + }, + "clientToken":{ + "shape":"IdempotencyToken", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + } + } + }, + "DeleteScraperResponse":{ + "type":"structure", + "required":[ + "scraperId", + "status" + ], + "members":{ + "scraperId":{"shape":"ScraperId"}, + "status":{"shape":"ScraperStatus"} + } + }, "DeleteWorkspaceRequest":{ "type":"structure", "required":["workspaceId"], @@ -706,6 +866,24 @@ "ruleGroupsNamespace":{"shape":"RuleGroupsNamespaceDescription"} } }, + "DescribeScraperRequest":{ + "type":"structure", + "required":["scraperId"], + "members":{ + "scraperId":{ + "shape":"ScraperId", + "location":"uri", + "locationName":"scraperId" + } + } + }, + "DescribeScraperResponse":{ + "type":"structure", + "required":["scraper"], + "members":{ + "scraper":{"shape":"ScraperDescription"} + } + }, "DescribeWorkspaceRequest":{ "type":"structure", "required":["workspaceId"], @@ -724,6 +902,54 @@ "workspace":{"shape":"WorkspaceDescription"} } }, + "Destination":{ + "type":"structure", + "members":{ + "ampConfiguration":{"shape":"AmpConfiguration"} + }, + "union":true + }, + "EksConfiguration":{ + "type":"structure", + "required":[ + "clusterArn", + "subnetIds" + ], + "members":{ + "clusterArn":{"shape":"ClusterArn"}, + "securityGroupIds":{"shape":"SecurityGroupIds"}, + "subnetIds":{"shape":"SubnetIds"} + } + }, + "FilterKey":{ + "type":"string", + "max":256, + "min":1 + }, + "FilterValue":{ + "type":"string", + "max":256, + "min":1 + }, + "FilterValues":{ + "type":"list", + "member":{"shape":"FilterValue"}, + "max":20, + "min":1 + }, + "GetDefaultScraperConfigurationRequest":{ + "type":"structure", + "members":{ + } + }, + "GetDefaultScraperConfigurationResponse":{ + "type":"structure", + "required":["configuration"], + "members":{ + "configuration":{"shape":"Blob"} + } + }, + "IamRoleArn":{"type":"string"}, "IdempotencyToken":{ "type":"string", "max":64, @@ -790,6 +1016,39 @@ "nextToken":{"shape":"PaginationToken"} } }, + "ListScrapersRequest":{ + "type":"structure", + "members":{ + "filters":{ + "shape":"ScraperFilters", + "location":"querystring" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"ListScrapersRequestMaxResultsInteger", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListScrapersRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListScrapersResponse":{ + "type":"structure", + "required":["scrapers"], + "members":{ + "scrapers":{"shape":"ScraperSummaryList"}, + "nextToken":{"shape":"PaginationToken"} + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["resourceArn"], @@ -881,7 +1140,11 @@ "UPDATE_FAILED" ] }, - "PaginationToken":{"type":"string"}, + "PaginationToken":{ + "type":"string", + "max":1000, + "min":0 + }, "PutAlertManagerDefinitionRequest":{ "type":"structure", "required":[ @@ -1034,6 +1297,120 @@ "type":"list", "member":{"shape":"RuleGroupsNamespaceSummary"} }, + "ScrapeConfiguration":{ + "type":"structure", + "members":{ + "configurationBlob":{"shape":"Blob"} + }, + "union":true + }, + "ScraperAlias":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[0-9A-Za-z][-.0-9A-Z_a-z]*" + }, + "ScraperArn":{"type":"string"}, + "ScraperDescription":{ + "type":"structure", + "required":[ + "scraperId", + "arn", + "roleArn", + "status", + "createdAt", + "lastModifiedAt", + "scrapeConfiguration", + "source", + "destination" + ], + "members":{ + "alias":{"shape":"ScraperAlias"}, + "scraperId":{"shape":"ScraperId"}, + "arn":{"shape":"ScraperArn"}, + "roleArn":{"shape":"IamRoleArn"}, + "status":{"shape":"ScraperStatus"}, + "createdAt":{"shape":"Timestamp"}, + "lastModifiedAt":{"shape":"Timestamp"}, + "tags":{"shape":"TagMap"}, + "statusReason":{"shape":"StatusReason"}, + "scrapeConfiguration":{"shape":"ScrapeConfiguration"}, + "source":{"shape":"Source"}, + "destination":{"shape":"Destination"} + } + }, + "ScraperFilters":{ + "type":"map", + "key":{"shape":"FilterKey"}, + "value":{"shape":"FilterValues"}, + "max":4, + "min":1 + }, + "ScraperId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[0-9A-Za-z][-.0-9A-Z_a-z]*" + }, + "ScraperStatus":{ + "type":"structure", + "required":["statusCode"], + "members":{ + "statusCode":{"shape":"ScraperStatusCode"} + } + }, + "ScraperStatusCode":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "DELETING", + "CREATION_FAILED", + "DELETION_FAILED" + ] + }, + "ScraperSummary":{ + "type":"structure", + "required":[ + "scraperId", + "arn", + "roleArn", + "status", + "createdAt", + "lastModifiedAt", + "source", + "destination" + ], + "members":{ + "alias":{"shape":"ScraperAlias"}, + "scraperId":{"shape":"ScraperId"}, + "arn":{"shape":"ScraperArn"}, + "roleArn":{"shape":"IamRoleArn"}, + "status":{"shape":"ScraperStatus"}, + "createdAt":{"shape":"Timestamp"}, + "lastModifiedAt":{"shape":"Timestamp"}, + "tags":{"shape":"TagMap"}, + "statusReason":{"shape":"StatusReason"}, + "source":{"shape":"Source"}, + "destination":{"shape":"Destination"} + } + }, + "ScraperSummaryList":{ + "type":"list", + "member":{"shape":"ScraperSummary"} + }, + "SecurityGroupId":{ + "type":"string", + "max":255, + "min":0, + "pattern":"sg-[0-9a-z]+" + }, + "SecurityGroupIds":{ + "type":"list", + "member":{"shape":"SecurityGroupId"}, + "max":5, + "min":1 + }, "ServiceQuotaExceededException":{ "type":"structure", "required":[ @@ -1056,7 +1433,31 @@ }, "exception":true }, + "Source":{ + "type":"structure", + "members":{ + "eksConfiguration":{"shape":"EksConfiguration"} + }, + "union":true + }, + "StatusReason":{ + "type":"string", + "max":256, + "min":1 + }, "String":{"type":"string"}, + "SubnetId":{ + "type":"string", + "max":255, + "min":0, + "pattern":"subnet-[0-9a-z]+" + }, + "SubnetIds":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "max":5, + "min":1 + }, "TagKey":{ "type":"string", "max":128, @@ -1238,7 +1639,10 @@ "max":100, "min":1 }, - "WorkspaceArn":{"type":"string"}, + "WorkspaceArn":{ + "type":"string", + "pattern":"arn:aws[-a-z]*:aps:[-a-z0-9]+:[0-9]{12}:workspace/.+" + }, "WorkspaceDescription":{ "type":"structure", "required":[ diff --git a/models/apis/amp/2020-08-01/docs-2.json b/models/apis/amp/2020-08-01/docs-2.json index 18773496c01..46e6a96fece 100644 --- a/models/apis/amp/2020-08-01/docs-2.json +++ b/models/apis/amp/2020-08-01/docs-2.json @@ -5,16 +5,21 @@ "CreateAlertManagerDefinition": "

Create an alert manager definition.

", "CreateLoggingConfiguration": "

Create logging configuration.

", "CreateRuleGroupsNamespace": "

Create a rule group namespace.

", + "CreateScraper": "

Create a scraper.

", "CreateWorkspace": "

Creates a new AMP workspace.

", "DeleteAlertManagerDefinition": "

Deletes an alert manager definition.

", "DeleteLoggingConfiguration": "

Delete logging configuration.

", "DeleteRuleGroupsNamespace": "

Delete a rule groups namespace.

", + "DeleteScraper": "

Deletes a scraper.

", "DeleteWorkspace": "

Deletes an AMP workspace.

", "DescribeAlertManagerDefinition": "

Describes an alert manager definition.

", "DescribeLoggingConfiguration": "

Describes logging configuration.

", "DescribeRuleGroupsNamespace": "

Describe a rule groups namespace.

", + "DescribeScraper": "

Describe an existing scraper.

", "DescribeWorkspace": "

Describes an existing AMP workspace.

", + "GetDefaultScraperConfiguration": "

Gets a default configuration.

", "ListRuleGroupsNamespaces": "

Lists rule groups namespaces.

", + "ListScrapers": "

Lists all scrapers in a customer account, including scrapers being created or deleted. You may provide filters to return a more specific list of results.

", "ListTagsForResource": "

Lists the tags you have assigned to the resource.

", "ListWorkspaces": "

Lists all AMP workspaces, including workspaces being created or deleted.

", "PutAlertManagerDefinition": "

Update an alert manager definition.

", @@ -58,6 +63,25 @@ "AlertManagerDefinitionStatus$statusCode": "

Status code of this definition.

" } }, + "AmpConfiguration": { + "base": "

A representation of an AMP destination.

", + "refs": { + "Destination$ampConfiguration": "

A representation of an AMP destination.

" + } + }, + "Blob": { + "base": null, + "refs": { + "GetDefaultScraperConfigurationResponse$configuration": "

The default configuration.

", + "ScrapeConfiguration$configurationBlob": "

Binary data representing a Prometheus configuration file.

" + } + }, + "ClusterArn": { + "base": "

The ARN of an EKS cluster.

", + "refs": { + "EksConfiguration$clusterArn": "

The ARN of an EKS cluster.

" + } + }, "ConflictException": { "base": "

Updating or deleting a resource can cause an inconsistent state.

", "refs": { @@ -93,6 +117,16 @@ "refs": { } }, + "CreateScraperRequest": { + "base": "

Represents the input of a CreateScraper operation.

", + "refs": { + } + }, + "CreateScraperResponse": { + "base": "

Represents the output of a CreateScraper operation.

", + "refs": { + } + }, "CreateWorkspaceRequest": { "base": "

Represents the input of a CreateWorkspace operation.

", "refs": { @@ -118,6 +152,16 @@ "refs": { } }, + "DeleteScraperRequest": { + "base": "

Represents the input of a DeleteScraper operation.

", + "refs": { + } + }, + "DeleteScraperResponse": { + "base": "

Represents the output of a DeleteScraper operation.

", + "refs": { + } + }, "DeleteWorkspaceRequest": { "base": "

Represents the input of a DeleteWorkspace operation.

", "refs": { @@ -153,6 +197,16 @@ "refs": { } }, + "DescribeScraperRequest": { + "base": "

Represents the input of a DescribeScraper operation.

", + "refs": { + } + }, + "DescribeScraperResponse": { + "base": "

Represents the output of a DescribeScraper operation.

", + "refs": { + } + }, "DescribeWorkspaceRequest": { "base": "

Represents the input of a DescribeWorkspace operation.

", "refs": { @@ -163,16 +217,67 @@ "refs": { } }, + "Destination": { + "base": "

A representation of a destination that a scraper can produce metrics to.

", + "refs": { + "CreateScraperRequest$destination": "

The destination that the scraper will be producing metrics to.

", + "ScraperDescription$destination": "

The destination that the scraper is producing metrics to.

", + "ScraperSummary$destination": "

The destination that the scraper is producing metrics to.

" + } + }, + "EksConfiguration": { + "base": "

A representation of an EKS source.

", + "refs": { + "Source$eksConfiguration": "

A representation of an EKS source.

" + } + }, + "FilterKey": { + "base": "

The name of the key to filter by.

", + "refs": { + "ScraperFilters$key": "

The name of the key to filter by. Currently supported filter keys are 'status', 'sourceArn', 'destinationArn', and 'alias'.

" + } + }, + "FilterValue": { + "base": "

The value of a given key to filter by.

", + "refs": { + "FilterValues$member": null + } + }, + "FilterValues": { + "base": "

A list of scraper filter values.

", + "refs": { + "ScraperFilters$value": "

The values of the given key to filter by.

" + } + }, + "GetDefaultScraperConfigurationRequest": { + "base": "

Represents the input of a GetDefaultScraperConfiguration operation.

", + "refs": { + } + }, + "GetDefaultScraperConfigurationResponse": { + "base": "

Represents the output of a GetDefaultScraperConfiguration operation.

", + "refs": { + } + }, + "IamRoleArn": { + "base": "

An ARN identifying an IAM role used by the scraper.

", + "refs": { + "ScraperDescription$roleArn": "

The Amazon Resource Name (ARN) of the IAM role that provides permissions for the scraper to dsicover, collect, and produce metrics on your behalf.

", + "ScraperSummary$roleArn": "

The Amazon Resource Name (ARN) of the IAM role that provides permissions for the scraper to dsicover, collect, and produce metrics on your behalf.

" + } + }, "IdempotencyToken": { "base": "

An identifier used to ensure the idempotency of a write request.

", "refs": { "CreateAlertManagerDefinitionRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", "CreateLoggingConfigurationRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", "CreateRuleGroupsNamespaceRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", + "CreateScraperRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", "CreateWorkspaceRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", "DeleteAlertManagerDefinitionRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", "DeleteLoggingConfigurationRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", "DeleteRuleGroupsNamespaceRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", + "DeleteScraperRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", "DeleteWorkspaceRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", "PutAlertManagerDefinitionRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", "PutRuleGroupsNamespaceRequest$clientToken": "

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", @@ -208,6 +313,22 @@ "refs": { } }, + "ListScrapersRequest": { + "base": "

Represents the input of a ListScrapers operation.

", + "refs": { + } + }, + "ListScrapersRequestMaxResultsInteger": { + "base": null, + "refs": { + "ListScrapersRequest$maxResults": "

Maximum results to return in response (default=100, maximum=1000).

" + } + }, + "ListScrapersResponse": { + "base": "

Represents the output of a ListScrapers operation.

", + "refs": { + } + }, "ListTagsForResourceRequest": { "base": null, "refs": { @@ -267,6 +388,8 @@ "refs": { "ListRuleGroupsNamespacesRequest$nextToken": "

Pagination token to request the next page in a paginated list. This token is obtained from the output of the previous ListRuleGroupsNamespaces request.

", "ListRuleGroupsNamespacesResponse$nextToken": "

Pagination token to use when requesting the next page in this list.

", + "ListScrapersRequest$nextToken": "

Pagination token to request the next page in a paginated list. This token is obtained from the output of the previous ListScrapers request.

", + "ListScrapersResponse$nextToken": "

Pagination token to use when requesting the next page in this list.

", "ListWorkspacesRequest$nextToken": "

Pagination token to request the next page in a paginated list. This token is obtained from the output of the previous ListWorkspaces request.

", "ListWorkspacesResponse$nextToken": "

Pagination token to use when requesting the next page in this list.

" } @@ -360,11 +483,111 @@ "ListRuleGroupsNamespacesResponse$ruleGroupsNamespaces": "

The list of the selected rule groups namespaces.

" } }, + "ScrapeConfiguration": { + "base": "

A representation of a Prometheus configuration file.

", + "refs": { + "CreateScraperRequest$scrapeConfiguration": "

The configuration used to create the scraper.

", + "ScraperDescription$scrapeConfiguration": "

The configuration used to create the scraper.

" + } + }, + "ScraperAlias": { + "base": "

A user-assigned scraper alias.

", + "refs": { + "CreateScraperRequest$alias": "

An optional user-assigned alias for this scraper. This alias is for user reference and does not need to be unique.

", + "ScraperDescription$alias": "

Alias of this scraper.

", + "ScraperSummary$alias": "

Alias of this scraper.

" + } + }, + "ScraperArn": { + "base": "

An ARN identifying a scrape configuration.

", + "refs": { + "CreateScraperResponse$arn": "

The ARN of the scraper that was just created.

", + "ScraperDescription$arn": "

The Amazon Resource Name (ARN) of this scraper.

", + "ScraperSummary$arn": "

The Amazon Resource Name (ARN) of this scraper.

" + } + }, + "ScraperDescription": { + "base": "

Represents the properties of a scraper.

", + "refs": { + "DescribeScraperResponse$scraper": "

The properties of the selected scrapers.

" + } + }, + "ScraperFilters": { + "base": "

A list of scraper filters.

", + "refs": { + "ListScrapersRequest$filters": "

A list of scraper filters.

" + } + }, + "ScraperId": { + "base": "

A scraper ID.

", + "refs": { + "CreateScraperResponse$scraperId": "

The generated ID of the scraper that was just created.

", + "DeleteScraperRequest$scraperId": "

The ID of the scraper to delete.

", + "DeleteScraperResponse$scraperId": "

The ID of the scraper that was deleted.

", + "DescribeScraperRequest$scraperId": "

The IDs of the scraper to describe.

", + "ScraperDescription$scraperId": "

Unique string identifying this scraper.

", + "ScraperSummary$scraperId": "

Unique string identifying this scraper.

" + } + }, + "ScraperStatus": { + "base": "

Represents the status of a scraper.

", + "refs": { + "CreateScraperResponse$status": "

The status of the scraper that was just created (usually CREATING).

", + "DeleteScraperResponse$status": "

The status of the scraper that is being deleted.

", + "ScraperDescription$status": "

The status of this scraper.

", + "ScraperSummary$status": "

The status of this scraper.

" + } + }, + "ScraperStatusCode": { + "base": "

State of a scraper.

", + "refs": { + "ScraperStatus$statusCode": "

Status code of this scraper.

" + } + }, + "ScraperSummary": { + "base": "

Represents a summary of the properties of a scraper.

", + "refs": { + "ScraperSummaryList$member": null + } + }, + "ScraperSummaryList": { + "base": "

A list of scraper summaries.

", + "refs": { + "ListScrapersResponse$scrapers": "

The list of scrapers, filtered down if a set of filters was provided in the request.

" + } + }, + "SecurityGroupId": { + "base": "

ID of a VPC security group.

", + "refs": { + "SecurityGroupIds$member": null + } + }, + "SecurityGroupIds": { + "base": "

A list of security group IDs specified for VPC configuration.

", + "refs": { + "EksConfiguration$securityGroupIds": "

A list of security group IDs specified for VPC configuration.

" + } + }, "ServiceQuotaExceededException": { "base": "

Request would cause a service quota to be exceeded.

", "refs": { } }, + "Source": { + "base": "

A representation of a source that a scraper can discover and collect metrics from.

", + "refs": { + "CreateScraperRequest$source": "

The source that the scraper will be discovering and collecting metrics from.

", + "ScraperDescription$source": "

The source that the scraper is discovering and collecting metrics from.

", + "ScraperSummary$source": "

The source that the scraper is discovering and collecting metrics from.

" + } + }, + "StatusReason": { + "base": "

The reason for failure if any.

", + "refs": { + "ScraperDescription$statusReason": "

The reason for failure if any.

", + "ScraperSummary$statusReason": "

The reason for failure if any.

" + } + }, "String": { "base": null, "refs": { @@ -395,6 +618,18 @@ "ValidationExceptionField$message": "

Message describing why the field failed validation.

" } }, + "SubnetId": { + "base": "

ID of a VPC subnet.

", + "refs": { + "SubnetIds$member": null + } + }, + "SubnetIds": { + "base": "

A list of subnet IDs specified for VPC configuration.

", + "refs": { + "EksConfiguration$subnetIds": "

A list of subnet IDs specified for VPC configuration.

" + } + }, "TagKey": { "base": null, "refs": { @@ -413,12 +648,16 @@ "refs": { "CreateRuleGroupsNamespaceRequest$tags": "

Optional, user-provided tags for this rule groups namespace.

", "CreateRuleGroupsNamespaceResponse$tags": "

The tags of this rule groups namespace.

", + "CreateScraperRequest$tags": "

Optional, user-provided tags for this scraper.

", + "CreateScraperResponse$tags": "

The tags of this scraper.

", "CreateWorkspaceRequest$tags": "

Optional, user-provided tags for this workspace.

", "CreateWorkspaceResponse$tags": "

The tags of this workspace.

", "ListTagsForResourceResponse$tags": null, "PutRuleGroupsNamespaceResponse$tags": "

The tags of this rule groups namespace.

", "RuleGroupsNamespaceDescription$tags": "

The tags of this rule groups namespace.

", "RuleGroupsNamespaceSummary$tags": "

The tags of this rule groups namespace.

", + "ScraperDescription$tags": "

The tags of this scraper.

", + "ScraperSummary$tags": "

The tags of this scraper.

", "TagResourceRequest$tags": null, "WorkspaceDescription$tags": "

The tags of this workspace.

", "WorkspaceSummary$tags": "

The tags of this workspace.

" @@ -456,6 +695,10 @@ "RuleGroupsNamespaceDescription$modifiedAt": "

The time when the rule groups namespace was modified.

", "RuleGroupsNamespaceSummary$createdAt": "

The time when the rule groups namespace was created.

", "RuleGroupsNamespaceSummary$modifiedAt": "

The time when the rule groups namespace was modified.

", + "ScraperDescription$createdAt": "

The time when the scraper was created.

", + "ScraperDescription$lastModifiedAt": "

The time when the scraper was last modified.

", + "ScraperSummary$createdAt": "

The time when the scraper was created.

", + "ScraperSummary$lastModifiedAt": "

The time when the scraper was last modified.

", "WorkspaceDescription$createdAt": "

The time when the workspace was created.

", "WorkspaceSummary$createdAt": "

The time when the workspace was created.

" } @@ -527,6 +770,7 @@ "WorkspaceArn": { "base": "

An ARN identifying a Workspace.

", "refs": { + "AmpConfiguration$workspaceArn": "

The ARN of an AMP workspace.

", "CreateWorkspaceResponse$arn": "

The ARN of the workspace that was just created.

", "WorkspaceDescription$arn": "

The Amazon Resource Name (ARN) of this workspace.

", "WorkspaceSummary$arn": "

The AmazonResourceName of this workspace.

" diff --git a/models/apis/amp/2020-08-01/endpoint-rule-set-1.json b/models/apis/amp/2020-08-01/endpoint-rule-set-1.json index 08690bafa0c..669a33f162f 100644 --- a/models/apis/amp/2020-08-01/endpoint-rule-set-1.json +++ b/models/apis/amp/2020-08-01/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -58,293 +57,258 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, { - "conditions": [], - "type": "tree", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://aps-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://aps-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] }, true ] } ], - "type": "tree", "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://aps-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - } - ] - }, { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://aps-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://aps.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], - "type": "tree", + ], "rules": [ { "conditions": [], "endpoint": { - "url": "https://aps.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://aps.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://aps.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" + ], + "type": "tree" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/amp/2020-08-01/paginators-1.json b/models/apis/amp/2020-08-01/paginators-1.json index da0d708baa1..e90e06b743e 100644 --- a/models/apis/amp/2020-08-01/paginators-1.json +++ b/models/apis/amp/2020-08-01/paginators-1.json @@ -6,6 +6,12 @@ "limit_key": "maxResults", "result_key": "ruleGroupsNamespaces" }, + "ListScrapers": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "scrapers" + }, "ListWorkspaces": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/models/apis/amp/2020-08-01/waiters-2.json b/models/apis/amp/2020-08-01/waiters-2.json index db06c33b1d9..93d8cd640ad 100644 --- a/models/apis/amp/2020-08-01/waiters-2.json +++ b/models/apis/amp/2020-08-01/waiters-2.json @@ -1,6 +1,39 @@ { "version" : 2, "waiters" : { + "ScraperActive" : { + "description" : "Wait until a scraper reaches ACTIVE status", + "delay" : 2, + "maxAttempts" : 60, + "operation" : "DescribeScraper", + "acceptors" : [ { + "matcher" : "path", + "argument" : "scraper.status.statusCode", + "state" : "success", + "expected" : "ACTIVE" + }, { + "matcher" : "path", + "argument" : "scraper.status.statusCode", + "state" : "failure", + "expected" : "CREATION_FAILED" + } ] + }, + "ScraperDeleted" : { + "description" : "Wait until a scraper reaches DELETED status", + "delay" : 2, + "maxAttempts" : 60, + "operation" : "DescribeScraper", + "acceptors" : [ { + "matcher" : "error", + "state" : "success", + "expected" : "ResourceNotFoundException" + }, { + "matcher" : "path", + "argument" : "scraper.status.statusCode", + "state" : "failure", + "expected" : "DELETION_FAILED" + } ] + }, "WorkspaceActive" : { "description" : "Wait until a workspace reaches ACTIVE status", "delay" : 2, diff --git a/models/apis/bcm-data-exports/2023-11-26/api-2.json b/models/apis/bcm-data-exports/2023-11-26/api-2.json new file mode 100644 index 00000000000..aede0b80cfb --- /dev/null +++ b/models/apis/bcm-data-exports/2023-11-26/api-2.json @@ -0,0 +1,778 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2023-11-26", + "endpointPrefix":"bcm-data-exports", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"AWS Billing and Cost Management Data Exports", + "serviceId":"BCM Data Exports", + "signatureVersion":"v4", + "signingName":"bcm-data-exports", + "targetPrefix":"AWSBillingAndCostManagementDataExports", + "uid":"bcm-data-exports-2023-11-26" + }, + "operations":{ + "CreateExport":{ + "name":"CreateExport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateExportRequest"}, + "output":{"shape":"CreateExportResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "DeleteExport":{ + "name":"DeleteExport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteExportRequest"}, + "output":{"shape":"DeleteExportResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "idempotent":true + }, + "GetExecution":{ + "name":"GetExecution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetExecutionRequest"}, + "output":{"shape":"GetExecutionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "GetExport":{ + "name":"GetExport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetExportRequest"}, + "output":{"shape":"GetExportResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "GetTable":{ + "name":"GetTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTableRequest"}, + "output":{"shape":"GetTableResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "ListExecutions":{ + "name":"ListExecutions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListExecutionsRequest"}, + "output":{"shape":"ListExecutionsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "ListExports":{ + "name":"ListExports", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListExportsRequest"}, + "output":{"shape":"ListExportsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "ListTables":{ + "name":"ListTables", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTablesRequest"}, + "output":{"shape":"ListTablesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, + "UpdateExport":{ + "name":"UpdateExport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateExportRequest"}, + "output":{"shape":"UpdateExportResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + } + }, + "shapes":{ + "Arn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:aws[-a-z0-9]*:[-a-z0-9]+:[-a-z0-9]*:[0-9]{12}:[-a-zA-Z0-9/:_]+$" + }, + "Column":{ + "type":"structure", + "members":{ + "Description":{"shape":"GenericString"}, + "Name":{"shape":"GenericString"}, + "Type":{"shape":"GenericString"} + } + }, + "ColumnList":{ + "type":"list", + "member":{"shape":"Column"} + }, + "CompressionOption":{ + "type":"string", + "enum":[ + "GZIP", + "PARQUET" + ] + }, + "CreateExportRequest":{ + "type":"structure", + "required":["Export"], + "members":{ + "Export":{"shape":"Export"}, + "ResourceTags":{"shape":"ResourceTagList"} + } + }, + "CreateExportResponse":{ + "type":"structure", + "members":{ + "ExportArn":{"shape":"Arn"} + } + }, + "DataQuery":{ + "type":"structure", + "required":["QueryStatement"], + "members":{ + "QueryStatement":{"shape":"QueryStatement"}, + "TableConfigurations":{"shape":"TableConfigurations"} + } + }, + "DeleteExportRequest":{ + "type":"structure", + "required":["ExportArn"], + "members":{ + "ExportArn":{"shape":"Arn"} + } + }, + "DeleteExportResponse":{ + "type":"structure", + "members":{ + "ExportArn":{"shape":"Arn"} + } + }, + "DestinationConfigurations":{ + "type":"structure", + "required":["S3Destination"], + "members":{ + "S3Destination":{"shape":"S3Destination"} + } + }, + "ExecutionReference":{ + "type":"structure", + "required":[ + "ExecutionId", + "ExecutionStatus" + ], + "members":{ + "ExecutionId":{"shape":"GenericString"}, + "ExecutionStatus":{"shape":"ExecutionStatus"} + } + }, + "ExecutionReferenceList":{ + "type":"list", + "member":{"shape":"ExecutionReference"} + }, + "ExecutionStatus":{ + "type":"structure", + "members":{ + "CompletedAt":{"shape":"SyntheticTimestamp_date_time"}, + "CreatedAt":{"shape":"SyntheticTimestamp_date_time"}, + "LastUpdatedAt":{"shape":"SyntheticTimestamp_date_time"}, + "StatusCode":{"shape":"ExecutionStatusCode"}, + "StatusReason":{"shape":"ExecutionStatusReason"} + } + }, + "ExecutionStatusCode":{ + "type":"string", + "enum":[ + "INITIATION_IN_PROCESS", + "QUERY_QUEUED", + "QUERY_IN_PROCESS", + "QUERY_FAILURE", + "DELIVERY_IN_PROCESS", + "DELIVERY_SUCCESS", + "DELIVERY_FAILURE" + ] + }, + "ExecutionStatusReason":{ + "type":"string", + "enum":[ + "INSUFFICIENT_PERMISSION", + "BILL_OWNER_CHANGED", + "INTERNAL_FAILURE" + ] + }, + "Export":{ + "type":"structure", + "required":[ + "DataQuery", + "DestinationConfigurations", + "Name", + "RefreshCadence" + ], + "members":{ + "DataQuery":{"shape":"DataQuery"}, + "Description":{"shape":"GenericString"}, + "DestinationConfigurations":{"shape":"DestinationConfigurations"}, + "ExportArn":{"shape":"Arn"}, + "Name":{"shape":"ExportName"}, + "RefreshCadence":{"shape":"RefreshCadence"} + } + }, + "ExportName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[0-9A-Za-z!\\-_.*\\'()]+$" + }, + "ExportReference":{ + "type":"structure", + "required":[ + "ExportArn", + "ExportName", + "ExportStatus" + ], + "members":{ + "ExportArn":{"shape":"Arn"}, + "ExportName":{"shape":"ExportName"}, + "ExportStatus":{"shape":"ExportStatus"} + } + }, + "ExportReferenceList":{ + "type":"list", + "member":{"shape":"ExportReference"} + }, + "ExportStatus":{ + "type":"structure", + "members":{ + "CreatedAt":{"shape":"SyntheticTimestamp_date_time"}, + "LastRefreshedAt":{"shape":"SyntheticTimestamp_date_time"}, + "LastUpdatedAt":{"shape":"SyntheticTimestamp_date_time"}, + "StatusCode":{"shape":"ExportStatusCode"}, + "StatusReason":{"shape":"ExecutionStatusReason"} + } + }, + "ExportStatusCode":{ + "type":"string", + "enum":[ + "HEALTHY", + "UNHEALTHY" + ] + }, + "FormatOption":{ + "type":"string", + "enum":[ + "TEXT_OR_CSV", + "PARQUET" + ] + }, + "FrequencyOption":{ + "type":"string", + "enum":["SYNCHRONOUS"] + }, + "GenericString":{ + "type":"string", + "max":1024, + "min":0, + "pattern":"^[\\S\\s]*$" + }, + "GenericStringList":{ + "type":"list", + "member":{"shape":"GenericString"} + }, + "GetExecutionRequest":{ + "type":"structure", + "required":[ + "ExecutionId", + "ExportArn" + ], + "members":{ + "ExecutionId":{"shape":"GenericString"}, + "ExportArn":{"shape":"Arn"} + } + }, + "GetExecutionResponse":{ + "type":"structure", + "members":{ + "ExecutionId":{"shape":"GenericString"}, + "ExecutionStatus":{"shape":"ExecutionStatus"}, + "Export":{"shape":"Export"} + } + }, + "GetExportRequest":{ + "type":"structure", + "required":["ExportArn"], + "members":{ + "ExportArn":{"shape":"Arn"} + } + }, + "GetExportResponse":{ + "type":"structure", + "members":{ + "Export":{"shape":"Export"}, + "ExportStatus":{"shape":"ExportStatus"} + } + }, + "GetTableRequest":{ + "type":"structure", + "required":["TableName"], + "members":{ + "TableName":{"shape":"TableName"}, + "TableProperties":{"shape":"TableProperties"} + } + }, + "GetTableResponse":{ + "type":"structure", + "members":{ + "Description":{"shape":"GenericString"}, + "Schema":{"shape":"ColumnList"}, + "TableName":{"shape":"TableName"}, + "TableProperties":{"shape":"TableProperties"} + } + }, + "InternalServerException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"GenericString"} + }, + "exception":true, + "fault":true + }, + "ListExecutionsRequest":{ + "type":"structure", + "required":["ExportArn"], + "members":{ + "ExportArn":{"shape":"Arn"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextPageToken"} + } + }, + "ListExecutionsResponse":{ + "type":"structure", + "members":{ + "Executions":{"shape":"ExecutionReferenceList"}, + "NextToken":{"shape":"NextPageToken"} + } + }, + "ListExportsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextPageToken"} + } + }, + "ListExportsResponse":{ + "type":"structure", + "members":{ + "Exports":{"shape":"ExportReferenceList"}, + "NextToken":{"shape":"NextPageToken"} + } + }, + "ListTablesRequest":{ + "type":"structure", + "members":{ + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextPageToken"} + } + }, + "ListTablesResponse":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextPageToken"}, + "Tables":{"shape":"TableList"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextPageToken"}, + "ResourceArn":{"shape":"Arn"} + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextPageToken"}, + "ResourceTags":{"shape":"ResourceTagList"} + } + }, + "MaxResults":{ + "type":"integer", + "box":true, + "min":1 + }, + "NextPageToken":{ + "type":"string", + "max":8192, + "min":0, + "pattern":"^[\\S\\s]*$" + }, + "OverwriteOption":{ + "type":"string", + "enum":[ + "CREATE_NEW_REPORT", + "OVERWRITE_REPORT" + ] + }, + "QueryStatement":{ + "type":"string", + "max":36000, + "min":1, + "pattern":"^[\\S\\s]*$" + }, + "RefreshCadence":{ + "type":"structure", + "required":["Frequency"], + "members":{ + "Frequency":{"shape":"FrequencyOption"} + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "Message", + "ResourceId", + "ResourceType" + ], + "members":{ + "Message":{"shape":"GenericString"}, + "ResourceId":{"shape":"GenericString"}, + "ResourceType":{"shape":"GenericString"} + }, + "exception":true + }, + "ResourceTag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"ResourceTagKey"}, + "Value":{"shape":"ResourceTagValue"} + } + }, + "ResourceTagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "ResourceTagKeyList":{ + "type":"list", + "member":{"shape":"ResourceTagKey"}, + "max":200, + "min":0 + }, + "ResourceTagList":{ + "type":"list", + "member":{"shape":"ResourceTag"}, + "max":200, + "min":0 + }, + "ResourceTagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "S3Destination":{ + "type":"structure", + "required":[ + "S3Bucket", + "S3OutputConfigurations", + "S3Prefix", + "S3Region" + ], + "members":{ + "S3Bucket":{"shape":"GenericString"}, + "S3OutputConfigurations":{"shape":"S3OutputConfigurations"}, + "S3Prefix":{"shape":"GenericString"}, + "S3Region":{"shape":"GenericString"} + } + }, + "S3OutputConfigurations":{ + "type":"structure", + "required":[ + "Compression", + "Format", + "OutputType", + "Overwrite" + ], + "members":{ + "Compression":{"shape":"CompressionOption"}, + "Format":{"shape":"FormatOption"}, + "OutputType":{"shape":"S3OutputType"}, + "Overwrite":{"shape":"OverwriteOption"} + } + }, + "S3OutputType":{ + "type":"string", + "enum":["CUSTOM"] + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "Message", + "QuotaCode", + "ServiceCode" + ], + "members":{ + "Message":{"shape":"GenericString"}, + "QuotaCode":{"shape":"GenericString"}, + "ResourceId":{"shape":"GenericString"}, + "ResourceType":{"shape":"GenericString"}, + "ServiceCode":{"shape":"GenericString"} + }, + "exception":true + }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "Table":{ + "type":"structure", + "members":{ + "Description":{"shape":"GenericString"}, + "TableName":{"shape":"TableName"}, + "TableProperties":{"shape":"TablePropertyDescriptionList"} + } + }, + "TableConfigurations":{ + "type":"map", + "key":{"shape":"TableName"}, + "value":{"shape":"TableProperties"} + }, + "TableList":{ + "type":"list", + "member":{"shape":"Table"} + }, + "TableName":{ + "type":"string", + "max":1024, + "min":0, + "pattern":"^[\\S\\s]*$" + }, + "TableProperties":{ + "type":"map", + "key":{"shape":"TableProperty"}, + "value":{"shape":"GenericString"} + }, + "TableProperty":{ + "type":"string", + "max":1024, + "min":0, + "pattern":"^[\\S\\s]*$" + }, + "TablePropertyDescription":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"GenericString"}, + "Description":{"shape":"GenericString"}, + "Name":{"shape":"GenericString"}, + "ValidValues":{"shape":"GenericStringList"} + } + }, + "TablePropertyDescriptionList":{ + "type":"list", + "member":{"shape":"TablePropertyDescription"} + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "ResourceTags" + ], + "members":{ + "ResourceArn":{"shape":"Arn"}, + "ResourceTags":{"shape":"ResourceTagList"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "ThrottlingException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"GenericString"}, + "QuotaCode":{"shape":"GenericString"}, + "ServiceCode":{"shape":"GenericString"} + }, + "exception":true + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "ResourceTagKeys" + ], + "members":{ + "ResourceArn":{"shape":"Arn"}, + "ResourceTagKeys":{"shape":"ResourceTagKeyList"} + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateExportRequest":{ + "type":"structure", + "required":[ + "Export", + "ExportArn" + ], + "members":{ + "Export":{"shape":"Export"}, + "ExportArn":{"shape":"Arn"} + } + }, + "UpdateExportResponse":{ + "type":"structure", + "members":{ + "ExportArn":{"shape":"Arn"} + } + }, + "ValidationException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Fields":{"shape":"ValidationExceptionFieldList"}, + "Message":{"shape":"GenericString"}, + "Reason":{"shape":"ValidationExceptionReason"} + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "Message", + "Name" + ], + "members":{ + "Message":{"shape":"GenericString"}, + "Name":{"shape":"GenericString"} + } + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other" + ] + } + } +} diff --git a/models/apis/bcm-data-exports/2023-11-26/docs-2.json b/models/apis/bcm-data-exports/2023-11-26/docs-2.json new file mode 100644 index 00000000000..ee48c0f148e --- /dev/null +++ b/models/apis/bcm-data-exports/2023-11-26/docs-2.json @@ -0,0 +1,514 @@ +{ + "version": "2.0", + "service": "

You can use the Data Exports API to create customized exports from multiple Amazon Web Services cost management and billing datasets, such as cost and usage data and cost optimization recommendations.

The Data Exports API provides the following endpoint:

", + "operations": { + "CreateExport": "

Creates a data export and specifies the data query, the delivery preference, and any optional resource tags.

A DataQuery consists of both a QueryStatement and TableConfigurations.

The QueryStatement is an SQL statement. Data Exports only supports a limited subset of the SQL syntax. For more information on the SQL syntax that is supported, see Data query. To view the available tables and columns, see the Data Exports table dictionary.

The TableConfigurations is a collection of specified TableProperties for the table being queried in the QueryStatement. TableProperties are additional configurations you can provide to change the data and schema of a table. Each table can have different TableProperties. However, tables are not required to have any TableProperties. Each table property has a default value that it assumes if not specified. For more information on table configurations, see Data query. To view the table properties available for each table, see the Data Exports table dictionary or use the ListTables API to get a response of all tables and their available properties.

", + "DeleteExport": "

Deletes an existing data export.

", + "GetExecution": "

Exports data based on the source data update.

", + "GetExport": "

Views the definition of an existing data export.

", + "GetTable": "

Returns the metadata for the specified table and table properties. This includes the list of columns in the table schema, their data types, and column descriptions.

", + "ListExecutions": "

Lists the historical executions for the export.

", + "ListExports": "

Lists all data export definitions.

", + "ListTables": "

Lists all available tables in data exports.

", + "ListTagsForResource": "

List tags associated with an existing data export.

", + "TagResource": "

Adds tags for an existing data export definition.

", + "UntagResource": "

Deletes tags associated with an existing data export definition.

", + "UpdateExport": "

Updates an existing data export by overwriting all export parameters. All export parameters must be provided in the UpdateExport request.

" + }, + "shapes": { + "Arn": { + "base": null, + "refs": { + "CreateExportResponse$ExportArn": "

The Amazon Resource Name (ARN) for this export.

", + "DeleteExportRequest$ExportArn": "

The Amazon Resource Name (ARN) for this export.

", + "DeleteExportResponse$ExportArn": "

The Amazon Resource Name (ARN) for this export.

", + "Export$ExportArn": "

The Amazon Resource Name (ARN) for this export.

", + "ExportReference$ExportArn": "

The Amazon Resource Name (ARN) for this export.

", + "GetExecutionRequest$ExportArn": "

The Amazon Resource Name (ARN) of the Export object that generated this specific execution.

", + "GetExportRequest$ExportArn": "

The Amazon Resource Name (ARN) for this export.

", + "ListExecutionsRequest$ExportArn": "

The Amazon Resource Name (ARN) for this export.

", + "ListTagsForResourceRequest$ResourceArn": "

The unique identifier for the resource.

", + "TagResourceRequest$ResourceArn": "

The unique identifier for the resource.

", + "UntagResourceRequest$ResourceArn": "

The unique identifier for the resource.

", + "UpdateExportRequest$ExportArn": "

The Amazon Resource Name (ARN) for this export.

", + "UpdateExportResponse$ExportArn": "

The Amazon Resource Name (ARN) for this export.

" + } + }, + "Column": { + "base": "

Includes basic information for a data column such as its description, name, and type.

", + "refs": { + "ColumnList$member": null + } + }, + "ColumnList": { + "base": null, + "refs": { + "GetTableResponse$Schema": "

The schema of the table.

" + } + }, + "CompressionOption": { + "base": null, + "refs": { + "S3OutputConfigurations$Compression": "

The compression type for the data export.

" + } + }, + "CreateExportRequest": { + "base": null, + "refs": { + } + }, + "CreateExportResponse": { + "base": null, + "refs": { + } + }, + "DataQuery": { + "base": "

The SQL query of column selections and row filters from the data table you want.

", + "refs": { + "Export$DataQuery": "

The data query for this specific data export.

" + } + }, + "DeleteExportRequest": { + "base": null, + "refs": { + } + }, + "DeleteExportResponse": { + "base": null, + "refs": { + } + }, + "DestinationConfigurations": { + "base": "

The destinations used for data exports.

", + "refs": { + "Export$DestinationConfigurations": "

The destination configuration for this specific data export.

" + } + }, + "ExecutionReference": { + "base": "

The reference for the data export update.

", + "refs": { + "ExecutionReferenceList$member": null + } + }, + "ExecutionReferenceList": { + "base": null, + "refs": { + "ListExecutionsResponse$Executions": "

The list of executions.

" + } + }, + "ExecutionStatus": { + "base": "

The status of the execution.

", + "refs": { + "ExecutionReference$ExecutionStatus": "

The status of this specific execution.

", + "GetExecutionResponse$ExecutionStatus": "

The status of this specific execution.

" + } + }, + "ExecutionStatusCode": { + "base": null, + "refs": { + "ExecutionStatus$StatusCode": "

The code for the status of the execution.

" + } + }, + "ExecutionStatusReason": { + "base": null, + "refs": { + "ExecutionStatus$StatusReason": "

The reason for the failed status.

", + "ExportStatus$StatusReason": "

The description for the status code.

" + } + }, + "Export": { + "base": "

The details that are available for an export.

", + "refs": { + "CreateExportRequest$Export": "

The details of the export, including data query, name, description, and destination configuration.

", + "GetExecutionResponse$Export": "

The export data for this specific execution. This export data is a snapshot from when the execution was generated. The data could be different from the current export data if the export was updated since the execution was generated.

", + "GetExportResponse$Export": "

The data for this specific export.

", + "UpdateExportRequest$Export": "

The name and query details for the export.

" + } + }, + "ExportName": { + "base": null, + "refs": { + "Export$Name": "

The name of this specific data export.

", + "ExportReference$ExportName": "

The name of this specific data export.

" + } + }, + "ExportReference": { + "base": "

The reference details for a given export.

", + "refs": { + "ExportReferenceList$member": null + } + }, + "ExportReferenceList": { + "base": null, + "refs": { + "ListExportsResponse$Exports": "

The details of the exports, including name and export status.

" + } + }, + "ExportStatus": { + "base": "

The status of the data export.

", + "refs": { + "ExportReference$ExportStatus": "

The status of this specific data export.

", + "GetExportResponse$ExportStatus": "

The status of this specific export.

" + } + }, + "ExportStatusCode": { + "base": null, + "refs": { + "ExportStatus$StatusCode": "

The status code for the request.

" + } + }, + "FormatOption": { + "base": null, + "refs": { + "S3OutputConfigurations$Format": "

The file format for the data export.

" + } + }, + "FrequencyOption": { + "base": null, + "refs": { + "RefreshCadence$Frequency": "

The frequency that data exports are updated. The export refreshes each time the source data updates, up to three times daily.

" + } + }, + "GenericString": { + "base": null, + "refs": { + "Column$Description": "

The description for a column.

", + "Column$Name": "

The column name.

", + "Column$Type": "

The kind of data a column stores.

", + "ExecutionReference$ExecutionId": "

The ID for this specific execution.

", + "Export$Description": "

The description for this specific data export.

", + "GenericStringList$member": null, + "GetExecutionRequest$ExecutionId": "

The ID for this specific execution.

", + "GetExecutionResponse$ExecutionId": "

The ID for this specific execution.

", + "GetTableResponse$Description": "

The table description.

", + "InternalServerException$Message": null, + "ResourceNotFoundException$Message": null, + "ResourceNotFoundException$ResourceId": "

The identifier of the resource that was not found.

", + "ResourceNotFoundException$ResourceType": "

The type of the resource that was not found.

", + "S3Destination$S3Bucket": "

The name of the Amazon S3 bucket used as the destination of a data export file.

", + "S3Destination$S3Prefix": "

The S3 path prefix you want prepended to the name of your data export.

", + "S3Destination$S3Region": "

The S3 bucket Region.

", + "ServiceQuotaExceededException$Message": null, + "ServiceQuotaExceededException$QuotaCode": "

The quota code that was exceeded.

", + "ServiceQuotaExceededException$ResourceId": "

The identifier of the resource that exceeded quota.

", + "ServiceQuotaExceededException$ResourceType": "

The type of the resource that exceeded quota.

", + "ServiceQuotaExceededException$ServiceCode": "

The service code that exceeded quota. It will always be “AWSBillingAndCostManagementDataExports”.

", + "Table$Description": "

The description for the table.

", + "TableProperties$value": null, + "TablePropertyDescription$DefaultValue": "

The default value for the table.

", + "TablePropertyDescription$Description": "

The description for the table.

", + "TablePropertyDescription$Name": "

The name of the table.

", + "ThrottlingException$Message": null, + "ThrottlingException$QuotaCode": "

The quota code that exceeded the throttling limit.

", + "ThrottlingException$ServiceCode": "

The service code that exceeded the throttling limit. It will always be “AWSBillingAndCostManagementDataExports”.

", + "ValidationException$Message": null, + "ValidationExceptionField$Message": "

A message with the reason for the validation exception error.

", + "ValidationExceptionField$Name": "

The field name where the invalid entry was detected.

" + } + }, + "GenericStringList": { + "base": null, + "refs": { + "TablePropertyDescription$ValidValues": "

The valid values for the table.

" + } + }, + "GetExecutionRequest": { + "base": null, + "refs": { + } + }, + "GetExecutionResponse": { + "base": null, + "refs": { + } + }, + "GetExportRequest": { + "base": null, + "refs": { + } + }, + "GetExportResponse": { + "base": null, + "refs": { + } + }, + "GetTableRequest": { + "base": null, + "refs": { + } + }, + "GetTableResponse": { + "base": null, + "refs": { + } + }, + "InternalServerException": { + "base": "

An error on the server occurred during the processing of your request. Try again later.

", + "refs": { + } + }, + "ListExecutionsRequest": { + "base": null, + "refs": { + } + }, + "ListExecutionsResponse": { + "base": null, + "refs": { + } + }, + "ListExportsRequest": { + "base": null, + "refs": { + } + }, + "ListExportsResponse": { + "base": null, + "refs": { + } + }, + "ListTablesRequest": { + "base": null, + "refs": { + } + }, + "ListTablesResponse": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListExecutionsRequest$MaxResults": "

The maximum number of objects that are returned for the request.

", + "ListExportsRequest$MaxResults": "

The maximum number of objects that are returned for the request.

", + "ListTablesRequest$MaxResults": "

The maximum number of objects that are returned for the request.

", + "ListTagsForResourceRequest$MaxResults": "

The maximum number of objects that are returned for the request.

" + } + }, + "NextPageToken": { + "base": null, + "refs": { + "ListExecutionsRequest$NextToken": "

The token to retrieve the next set of results.

", + "ListExecutionsResponse$NextToken": "

The token to retrieve the next set of results.

", + "ListExportsRequest$NextToken": "

The token to retrieve the next set of results.

", + "ListExportsResponse$NextToken": "

The token to retrieve the next set of results.

", + "ListTablesRequest$NextToken": "

The token to retrieve the next set of results.

", + "ListTablesResponse$NextToken": "

The token to retrieve the next set of results.

", + "ListTagsForResourceRequest$NextToken": "

The token to retrieve the next set of results.

", + "ListTagsForResourceResponse$NextToken": "

The token to retrieve the next set of results.

" + } + }, + "OverwriteOption": { + "base": null, + "refs": { + "S3OutputConfigurations$Overwrite": "

The rule to follow when generating a version of the data export file. You have the choice to overwrite the previous version or to be delivered in addition to the previous versions. Overwriting exports can save on Amazon S3 storage costs. Creating new export versions allows you to track the changes in cost and usage data over time.

" + } + }, + "QueryStatement": { + "base": null, + "refs": { + "DataQuery$QueryStatement": "

The query statement.

" + } + }, + "RefreshCadence": { + "base": "

The cadence for Amazon Web Services to update the data export in your S3 bucket.

", + "refs": { + "Export$RefreshCadence": "

The cadence for Amazon Web Services to update the export in your S3 bucket.

" + } + }, + "ResourceNotFoundException": { + "base": "

The specified Amazon Resource Name (ARN) in the request doesn't exist.

", + "refs": { + } + }, + "ResourceTag": { + "base": "

The tag structure that contains a tag key and value.

", + "refs": { + "ResourceTagList$member": null + } + }, + "ResourceTagKey": { + "base": null, + "refs": { + "ResourceTag$Key": "

The key that's associated with the tag.

", + "ResourceTagKeyList$member": null + } + }, + "ResourceTagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$ResourceTagKeys": "

The tag keys that are associated with the resource ARN.

" + } + }, + "ResourceTagList": { + "base": null, + "refs": { + "CreateExportRequest$ResourceTags": "

An optional list of tags to associate with the specified export. Each tag consists of a key and a value, and each key must be unique for the resource.

", + "ListTagsForResourceResponse$ResourceTags": "

An optional list of tags to associate with the specified export. Each tag consists of a key and a value, and each key must be unique for the resource.

", + "TagResourceRequest$ResourceTags": "

The tags to associate with the resource. Each tag consists of a key and a value, and each key must be unique for the resource.

" + } + }, + "ResourceTagValue": { + "base": null, + "refs": { + "ResourceTag$Value": "

The value that's associated with the tag.

" + } + }, + "S3Destination": { + "base": "

Describes the destination Amazon Simple Storage Service (Amazon S3) bucket name and object keys of a data exports file.

", + "refs": { + "DestinationConfigurations$S3Destination": "

An object that describes the destination of the data exports file.

" + } + }, + "S3OutputConfigurations": { + "base": "

The compression type, file format, and overwrite preference for the data export.

", + "refs": { + "S3Destination$S3OutputConfigurations": "

The output configuration for the data export.

" + } + }, + "S3OutputType": { + "base": null, + "refs": { + "S3OutputConfigurations$OutputType": "

The output type for the data export.

" + } + }, + "ServiceQuotaExceededException": { + "base": "

You've reached the limit on the number of resources you can create, or exceeded the size of an individual resource.

", + "refs": { + } + }, + "SyntheticTimestamp_date_time": { + "base": null, + "refs": { + "ExecutionStatus$CompletedAt": "

The time when the execution was completed.

", + "ExecutionStatus$CreatedAt": "

The time when the execution was created.

", + "ExecutionStatus$LastUpdatedAt": "

The time when the execution was last updated.

", + "ExportStatus$CreatedAt": "

The timestamp of when the export was created.

", + "ExportStatus$LastRefreshedAt": "

The timestamp of when the export was last generated.

", + "ExportStatus$LastUpdatedAt": "

The timestamp of when the export was updated.

" + } + }, + "Table": { + "base": "

The details for the data export table.

", + "refs": { + "TableList$member": null + } + }, + "TableConfigurations": { + "base": null, + "refs": { + "DataQuery$TableConfigurations": "

The table configuration.

" + } + }, + "TableList": { + "base": null, + "refs": { + "ListTablesResponse$Tables": "

The list of tables.

" + } + }, + "TableName": { + "base": null, + "refs": { + "GetTableRequest$TableName": "

The name of the table.

", + "GetTableResponse$TableName": "

The name of the table.

", + "Table$TableName": "

The name of the table.

", + "TableConfigurations$key": null + } + }, + "TableProperties": { + "base": null, + "refs": { + "GetTableRequest$TableProperties": "

TableProperties are additional configurations you can provide to change the data and schema of a table. Each table can have different TableProperties. Tables are not required to have any TableProperties. Each table property has a default value that it assumes if not specified.

", + "GetTableResponse$TableProperties": "

TableProperties are additional configurations you can provide to change the data and schema of a table. Each table can have different TableProperties. Tables are not required to have any TableProperties. Each table property has a default value that it assumes if not specified.

", + "TableConfigurations$value": null + } + }, + "TableProperty": { + "base": null, + "refs": { + "TableProperties$key": null + } + }, + "TablePropertyDescription": { + "base": "

The properties for the data export table.

", + "refs": { + "TablePropertyDescriptionList$member": null + } + }, + "TablePropertyDescriptionList": { + "base": null, + "refs": { + "Table$TableProperties": "

The properties for the table.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling.

", + "refs": { + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateExportRequest": { + "base": null, + "refs": { + } + }, + "UpdateExportResponse": { + "base": null, + "refs": { + } + }, + "ValidationException": { + "base": "

The input fails to satisfy the constraints specified by an Amazon Web Services service.

", + "refs": { + } + }, + "ValidationExceptionField": { + "base": "

The input failed to meet the constraints specified by the Amazon Web Services service in a specified field.

", + "refs": { + "ValidationExceptionFieldList$member": null + } + }, + "ValidationExceptionFieldList": { + "base": null, + "refs": { + "ValidationException$Fields": "

The list of fields that are invalid.

" + } + }, + "ValidationExceptionReason": { + "base": null, + "refs": { + "ValidationException$Reason": "

The reason for the validation exception.

" + } + } + } +} diff --git a/models/apis/bcm-data-exports/2023-11-26/endpoint-rule-set-1.json b/models/apis/bcm-data-exports/2023-11-26/endpoint-rule-set-1.json new file mode 100644 index 00000000000..6900cef88cf --- /dev/null +++ b/models/apis/bcm-data-exports/2023-11-26/endpoint-rule-set-1.json @@ -0,0 +1,338 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://bcm-data-exports-fips.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://bcm-data-exports.us-east-1.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "bcm-data-exports", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://bcm-data-exports-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://bcm-data-exports.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://bcm-data-exports-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://bcm-data-exports.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/bcm-data-exports/2023-11-26/endpoint-tests-1.json b/models/apis/bcm-data-exports/2023-11-26/endpoint-tests-1.json new file mode 100644 index 00000000000..a19159559cc --- /dev/null +++ b/models/apis/bcm-data-exports/2023-11-26/endpoint-tests-1.json @@ -0,0 +1,149 @@ +{ + "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "bcm-data-exports", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://bcm-data-exports.us-east-1.api.aws" + } + }, + "params": { + "Region": "aws-global", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bcm-data-exports-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "bcm-data-exports", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://bcm-data-exports.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bcm-data-exports-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bcm-data-exports.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bcm-data-exports-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bcm-data-exports.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/bcm-data-exports/2023-11-26/examples-1.json b/models/apis/bcm-data-exports/2023-11-26/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/bcm-data-exports/2023-11-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/bcm-data-exports/2023-11-26/paginators-1.json b/models/apis/bcm-data-exports/2023-11-26/paginators-1.json new file mode 100644 index 00000000000..3d03805cd9c --- /dev/null +++ b/models/apis/bcm-data-exports/2023-11-26/paginators-1.json @@ -0,0 +1,22 @@ +{ + "pagination": { + "ListExecutions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Executions" + }, + "ListExports": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Exports" + }, + "ListTables": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Tables" + } + } +} diff --git a/models/apis/cloudtrail/2013-11-01/api-2.json b/models/apis/cloudtrail/2013-11-01/api-2.json index 556b88aeda8..d1865c09cbe 100644 --- a/models/apis/cloudtrail/2013-11-01/api-2.json +++ b/models/apis/cloudtrail/2013-11-01/api-2.json @@ -194,7 +194,9 @@ {"shape":"NotOrganizationMasterAccountException"}, {"shape":"NoManagementAccountSLRExistsException"}, {"shape":"ChannelExistsForEDSException"}, - {"shape":"InsufficientDependencyServiceAccessPermissionException"} + {"shape":"InsufficientDependencyServiceAccessPermissionException"}, + {"shape":"ConflictException"}, + {"shape":"EventDataStoreFederationEnabledException"} ] }, "DeleteResourcePolicy":{ @@ -297,6 +299,57 @@ ], "idempotent":true }, + "DisableFederation":{ + "name":"DisableFederation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableFederationRequest"}, + "output":{"shape":"DisableFederationResponse"}, + "errors":[ + {"shape":"EventDataStoreARNInvalidException"}, + {"shape":"EventDataStoreNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InactiveEventDataStoreException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"CloudTrailAccessNotEnabledException"}, + {"shape":"InsufficientDependencyServiceAccessPermissionException"}, + {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"}, + {"shape":"OrganizationsNotInUseException"}, + {"shape":"OrganizationNotInAllFeaturesModeException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"AccessDeniedException"} + ] + }, + "EnableFederation":{ + "name":"EnableFederation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableFederationRequest"}, + "output":{"shape":"EnableFederationResponse"}, + "errors":[ + {"shape":"EventDataStoreARNInvalidException"}, + {"shape":"EventDataStoreNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InactiveEventDataStoreException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"CloudTrailAccessNotEnabledException"}, + {"shape":"InsufficientDependencyServiceAccessPermissionException"}, + {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"}, + {"shape":"OrganizationsNotInUseException"}, + {"shape":"OrganizationNotInAllFeaturesModeException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"EventDataStoreFederationEnabledException"} + ] + }, "GetChannel":{ "name":"GetChannel", "http":{ @@ -1020,6 +1073,12 @@ } }, "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "AccountHasOngoingImportException":{ "type":"structure", "members":{ @@ -1211,6 +1270,12 @@ }, "exception":true }, + "ConcurrentModificationException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "ConflictException":{ "type":"structure", "members":{ @@ -1479,6 +1544,39 @@ "max":200, "min":1 }, + "DisableFederationRequest":{ + "type":"structure", + "required":["EventDataStore"], + "members":{ + "EventDataStore":{"shape":"EventDataStoreArn"} + } + }, + "DisableFederationResponse":{ + "type":"structure", + "members":{ + "EventDataStoreArn":{"shape":"EventDataStoreArn"}, + "FederationStatus":{"shape":"FederationStatus"} + } + }, + "EnableFederationRequest":{ + "type":"structure", + "required":[ + "EventDataStore", + "FederationRoleArn" + ], + "members":{ + "EventDataStore":{"shape":"EventDataStoreArn"}, + "FederationRoleArn":{"shape":"FederationRoleArn"} + } + }, + "EnableFederationResponse":{ + "type":"structure", + "members":{ + "EventDataStoreArn":{"shape":"EventDataStoreArn"}, + "FederationStatus":{"shape":"FederationStatus"}, + "FederationRoleArn":{"shape":"FederationRoleArn"} + } + }, "ErrorMessage":{ "type":"string", "max":1000, @@ -1568,6 +1666,12 @@ "min":3, "pattern":"^[a-zA-Z0-9._/\\-:]+$" }, + "EventDataStoreFederationEnabledException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "EventDataStoreHasOngoingImportException":{ "type":"structure", "members":{ @@ -1640,6 +1744,21 @@ "type":"list", "member":{"shape":"String"} }, + "FederationRoleArn":{ + "type":"string", + "max":125, + "min":3, + "pattern":"^[a-zA-Z0-9._/\\-:@=\\+,\\.]+$" + }, + "FederationStatus":{ + "type":"string", + "enum":[ + "ENABLING", + "ENABLED", + "DISABLING", + "DISABLED" + ] + }, "GetChannelRequest":{ "type":"structure", "required":["Channel"], @@ -1679,7 +1798,9 @@ "CreatedTimestamp":{"shape":"Date"}, "UpdatedTimestamp":{"shape":"Date"}, "KmsKeyId":{"shape":"EventDataStoreKmsKeyId"}, - "BillingMode":{"shape":"BillingMode"} + "BillingMode":{"shape":"BillingMode"}, + "FederationStatus":{"shape":"FederationStatus"}, + "FederationRoleArn":{"shape":"FederationRoleArn"} } }, "GetEventSelectorsRequest":{ @@ -3009,7 +3130,9 @@ "CreatedTimestamp":{"shape":"Date"}, "UpdatedTimestamp":{"shape":"Date"}, "KmsKeyId":{"shape":"EventDataStoreKmsKeyId"}, - "BillingMode":{"shape":"BillingMode"} + "BillingMode":{"shape":"BillingMode"}, + "FederationStatus":{"shape":"FederationStatus"}, + "FederationRoleArn":{"shape":"FederationRoleArn"} } }, "UpdateTrailRequest":{ diff --git a/models/apis/cloudtrail/2013-11-01/docs-2.json b/models/apis/cloudtrail/2013-11-01/docs-2.json index adb707f25de..270e85c4364 100644 --- a/models/apis/cloudtrail/2013-11-01/docs-2.json +++ b/models/apis/cloudtrail/2013-11-01/docs-2.json @@ -8,12 +8,14 @@ "CreateEventDataStore": "

Creates a new event data store.

", "CreateTrail": "

Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket.

", "DeleteChannel": "

Deletes a channel.

", - "DeleteEventDataStore": "

Disables the event data store specified by EventDataStore, which accepts an event data store ARN. After you run DeleteEventDataStore, the event data store enters a PENDING_DELETION state, and is automatically deleted after a wait period of seven days. TerminationProtectionEnabled must be set to False on the event data store; this operation cannot work if TerminationProtectionEnabled is True.

After you run DeleteEventDataStore on an event data store, you cannot run ListQueries, DescribeQuery, or GetQueryResults on queries that are using an event data store in a PENDING_DELETION state. An event data store in the PENDING_DELETION state does not incur costs.

", + "DeleteEventDataStore": "

Disables the event data store specified by EventDataStore, which accepts an event data store ARN. After you run DeleteEventDataStore, the event data store enters a PENDING_DELETION state, and is automatically deleted after a wait period of seven days. TerminationProtectionEnabled must be set to False on the event data store and the FederationStatus must be DISABLED. You cannot delete an event data store if TerminationProtectionEnabled is True or the FederationStatus is ENABLED.

After you run DeleteEventDataStore on an event data store, you cannot run ListQueries, DescribeQuery, or GetQueryResults on queries that are using an event data store in a PENDING_DELETION state. An event data store in the PENDING_DELETION state does not incur costs.

", "DeleteResourcePolicy": "

Deletes the resource-based policy attached to the CloudTrail channel.

", "DeleteTrail": "

Deletes a trail. This operation must be called from the Region in which the trail was created. DeleteTrail cannot be called on the shadow trails (replicated trails in other Regions) of a trail that is enabled in all Regions.

", "DeregisterOrganizationDelegatedAdmin": "

Removes CloudTrail delegated administrator permissions from a member account in an organization.

", "DescribeQuery": "

Returns metadata about a query, including query run time in milliseconds, number of events scanned and matched, and query status. If the query results were delivered to an S3 bucket, the response also provides the S3 URI and the delivery status.

You must specify either a QueryID or a QueryAlias. Specifying the QueryAlias parameter returns information about the last query run for the alias.

", "DescribeTrails": "

Retrieves settings for one or more trails associated with the current Region for your account.

", + "DisableFederation": "

Disables Lake query federation on the specified event data store. When you disable federation, CloudTrail removes the metadata associated with the federated event data store in the Glue Data Catalog and removes registration for the federation role ARN and event data store in Lake Formation. No CloudTrail Lake data is deleted when you disable federation.

", + "EnableFederation": "

Enables Lake query federation on the specified event data store. Federating an event data store lets you view the metadata associated with the event data store in the Glue Data Catalog and run SQL queries against your event data using Amazon Athena. The table metadata stored in the Glue Data Catalog lets the Athena query engine know how to find, read, and process the data that you want to query.

When you enable Lake query federation, CloudTrail creates a federated database named aws:cloudtrail (if the database doesn't already exist) and a federated table in the Glue Data Catalog. The event data store ID is used for the table name. CloudTrail registers the role ARN and event data store in Lake Formation, the service responsible for revoking or granting permissions to the federated resources in the Glue Data Catalog.

For more information about Lake query federation, see Federate an event data store.

", "GetChannel": "

Returns information about a specific channel.

", "GetEventDataStore": "

Returns information about an event data store specified as either an ARN or the ID portion of the ARN.

", "GetEventSelectors": "

Describes the settings for the event selectors that you configured for your trail. The information returned for your event selectors includes the following:

For more information about logging management and data events, see the following topics in the CloudTrail User Guide:

", @@ -50,6 +52,11 @@ "UpdateTrail": "

Updates trail settings that control what events you are logging, and how to handle log files. Changes to a trail do not require stopping the CloudTrail service. Use this action to designate an existing bucket for log delivery. If the existing bucket has previously been a target for CloudTrail log files, an IAM policy exists for the bucket. UpdateTrail must be called from the Region in which the trail was created; otherwise, an InvalidHomeRegionException is thrown.

" }, "shapes": { + "AccessDeniedException": { + "base": "

You do not have sufficient access to perform this action.

", + "refs": { + } + }, "AccountHasOngoingImportException": { "base": "

This exception is thrown when you start a new import and a previous import is still in progress.

", "refs": { @@ -279,6 +286,11 @@ "refs": { } }, + "ConcurrentModificationException": { + "base": "

You are trying to update a resource when another request is in progress. Allow sufficient wait time for the previous request to complete, then retry your request.

", + "refs": { + } + }, "ConflictException": { "base": "

This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again.

", "refs": { @@ -493,6 +505,26 @@ "UpdateChannelResponse$Destinations": "

The event data stores that log events arriving through the channel.

" } }, + "DisableFederationRequest": { + "base": null, + "refs": { + } + }, + "DisableFederationResponse": { + "base": null, + "refs": { + } + }, + "EnableFederationRequest": { + "base": null, + "refs": { + } + }, + "EnableFederationResponse": { + "base": null, + "refs": { + } + }, "ErrorMessage": { "base": null, "refs": { @@ -536,6 +568,10 @@ "CreateEventDataStoreResponse$EventDataStoreArn": "

The ARN of the event data store.

", "DeleteEventDataStoreRequest$EventDataStore": "

The ARN (or the ID suffix of the ARN) of the event data store to delete.

", "DescribeQueryRequest$EventDataStore": "

The ARN (or the ID suffix of the ARN) of an event data store on which the specified query was run.

", + "DisableFederationRequest$EventDataStore": "

The ARN (or ID suffix of the ARN) of the event data store for which you want to disable Lake query federation.

", + "DisableFederationResponse$EventDataStoreArn": "

The ARN of the event data store for which you disabled Lake query federation.

", + "EnableFederationRequest$EventDataStore": "

The ARN (or ID suffix of the ARN) of the event data store for which you want to enable Lake query federation.

", + "EnableFederationResponse$EventDataStoreArn": "

The ARN of the event data store for which you enabled Lake query federation.

", "EventDataStore$EventDataStoreArn": "

The ARN of the event data store.

", "GetEventDataStoreRequest$EventDataStore": "

The ARN (or ID suffix of the ARN) of the event data store about which you want information.

", "GetEventDataStoreResponse$EventDataStoreArn": "

The event data store Amazon Resource Number (ARN).

", @@ -558,6 +594,11 @@ "UpdateEventDataStoreResponse$EventDataStoreArn": "

The ARN of the event data store.

" } }, + "EventDataStoreFederationEnabledException": { + "base": "

You cannot delete the event data store because Lake query federation is enabled. To delete the event data store, run the DisableFederation operation to disable Lake query federation on the event data store.

", + "refs": { + } + }, "EventDataStoreHasOngoingImportException": { "base": "

This exception is thrown when you try to update or delete an event data store that currently has an import in progress.

", "refs": { @@ -643,6 +684,24 @@ "EventSelector$ExcludeManagementEventSources": "

An optional list of service event sources from which you do not want management events to be logged on your trail. In this release, the list can be empty (disables the filter), or it can filter out Key Management Service or Amazon RDS Data API events by containing kms.amazonaws.com or rdsdata.amazonaws.com. By default, ExcludeManagementEventSources is empty, and KMS and Amazon RDS Data API events are logged to your trail. You can exclude management event sources only in Regions that support the event source.

" } }, + "FederationRoleArn": { + "base": null, + "refs": { + "EnableFederationRequest$FederationRoleArn": "

The ARN of the federation role to use for the event data store. Amazon Web Services services like Lake Formation use this federation role to access data for the federated event data store. The federation role must exist in your account and provide the required minimum permissions.

", + "EnableFederationResponse$FederationRoleArn": "

The ARN of the federation role.

", + "GetEventDataStoreResponse$FederationRoleArn": "

If Lake query federation is enabled, provides the ARN of the federation role used to access the resources for the federated event data store.

", + "UpdateEventDataStoreResponse$FederationRoleArn": "

If Lake query federation is enabled, provides the ARN of the federation role used to access the resources for the federated event data store.

" + } + }, + "FederationStatus": { + "base": null, + "refs": { + "DisableFederationResponse$FederationStatus": "

The federation status.

", + "EnableFederationResponse$FederationStatus": "

The federation status.

", + "GetEventDataStoreResponse$FederationStatus": "

Indicates the Lake query federation status. The status is ENABLED if Lake query federation is enabled, or DISABLED if Lake query federation is disabled. You cannot delete an event data store if the FederationStatus is ENABLED.

", + "UpdateEventDataStoreResponse$FederationStatus": "

Indicates the Lake query federation status. The status is ENABLED if Lake query federation is enabled, or DISABLED if Lake query federation is disabled. You cannot delete an event data store if the FederationStatus is ENABLED.

" + } + }, "GetChannelRequest": { "base": null, "refs": { diff --git a/models/apis/codestar-connections/2019-12-01/api-2.json b/models/apis/codestar-connections/2019-12-01/api-2.json index 4e25fd1a5f9..bfa5d449b5d 100644 --- a/models/apis/codestar-connections/2019-12-01/api-2.json +++ b/models/apis/codestar-connections/2019-12-01/api-2.json @@ -39,6 +39,42 @@ {"shape":"LimitExceededException"} ] }, + "CreateRepositoryLink":{ + "name":"CreateRepositoryLink", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateRepositoryLinkInput"}, + "output":{"shape":"CreateRepositoryLinkOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ThrottlingException"} + ] + }, + "CreateSyncConfiguration":{ + "name":"CreateSyncConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSyncConfigurationInput"}, + "output":{"shape":"CreateSyncConfigurationOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ThrottlingException"} + ] + }, "DeleteConnection":{ "name":"DeleteConnection", "http":{ @@ -64,6 +100,42 @@ {"shape":"ResourceUnavailableException"} ] }, + "DeleteRepositoryLink":{ + "name":"DeleteRepositoryLink", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteRepositoryLinkInput"}, + "output":{"shape":"DeleteRepositoryLinkOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"SyncConfigurationStillExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"UnsupportedProviderTypeException"} + ] + }, + "DeleteSyncConfiguration":{ + "name":"DeleteSyncConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSyncConfigurationInput"}, + "output":{"shape":"DeleteSyncConfigurationOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"} + ] + }, "GetConnection":{ "name":"GetConnection", "http":{ @@ -90,6 +162,87 @@ {"shape":"ResourceUnavailableException"} ] }, + "GetRepositoryLink":{ + "name":"GetRepositoryLink", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRepositoryLinkInput"}, + "output":{"shape":"GetRepositoryLinkOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetRepositorySyncStatus":{ + "name":"GetRepositorySyncStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRepositorySyncStatusInput"}, + "output":{"shape":"GetRepositorySyncStatusOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetResourceSyncStatus":{ + "name":"GetResourceSyncStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetResourceSyncStatusInput"}, + "output":{"shape":"GetResourceSyncStatusOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetSyncBlockerSummary":{ + "name":"GetSyncBlockerSummary", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSyncBlockerSummaryInput"}, + "output":{"shape":"GetSyncBlockerSummaryOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetSyncConfiguration":{ + "name":"GetSyncConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSyncConfigurationInput"}, + "output":{"shape":"GetSyncConfigurationOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, "ListConnections":{ "name":"ListConnections", "http":{ @@ -111,6 +264,55 @@ "input":{"shape":"ListHostsInput"}, "output":{"shape":"ListHostsOutput"} }, + "ListRepositoryLinks":{ + "name":"ListRepositoryLinks", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRepositoryLinksInput"}, + "output":{"shape":"ListRepositoryLinksOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "ListRepositorySyncDefinitions":{ + "name":"ListRepositorySyncDefinitions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRepositorySyncDefinitionsInput"}, + "output":{"shape":"ListRepositorySyncDefinitionsOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "ListSyncConfigurations":{ + "name":"ListSyncConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSyncConfigurationsInput"}, + "output":{"shape":"ListSyncConfigurationsOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -162,9 +364,70 @@ {"shape":"ResourceUnavailableException"}, {"shape":"UnsupportedOperationException"} ] + }, + "UpdateRepositoryLink":{ + "name":"UpdateRepositoryLink", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateRepositoryLinkInput"}, + "output":{"shape":"UpdateRepositoryLinkOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConditionalCheckFailedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"UpdateOutOfSyncException"} + ] + }, + "UpdateSyncBlocker":{ + "name":"UpdateSyncBlocker", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSyncBlockerInput"}, + "output":{"shape":"UpdateSyncBlockerOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"RetryLatestCommitFailedException"}, + {"shape":"SyncBlockerDoesNotExistException"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdateSyncConfiguration":{ + "name":"UpdateSyncConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSyncConfigurationInput"}, + "output":{"shape":"UpdateSyncConfigurationOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"UpdateOutOfSyncException"} + ] } }, "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "AccountId":{ "type":"string", "max":12, @@ -177,6 +440,37 @@ "min":1, "pattern":"arn:aws(-[\\w]+)*:.+:.+:[0-9]{12}:.+" }, + "BlockerStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "RESOLVED" + ] + }, + "BlockerType":{ + "type":"string", + "enum":["AUTOMATED"] + }, + "BranchName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^.*$" + }, + "ConcurrentModificationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ConditionalCheckFailedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "ConflictException":{ "type":"structure", "members":{ @@ -259,6 +553,55 @@ "Tags":{"shape":"TagList"} } }, + "CreateRepositoryLinkInput":{ + "type":"structure", + "required":[ + "ConnectionArn", + "OwnerId", + "RepositoryName" + ], + "members":{ + "ConnectionArn":{"shape":"ConnectionArn"}, + "OwnerId":{"shape":"OwnerId"}, + "RepositoryName":{"shape":"RepositoryName"}, + "EncryptionKeyArn":{"shape":"KmsKeyArn"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateRepositoryLinkOutput":{ + "type":"structure", + "required":["RepositoryLinkInfo"], + "members":{ + "RepositoryLinkInfo":{"shape":"RepositoryLinkInfo"} + } + }, + "CreateSyncConfigurationInput":{ + "type":"structure", + "required":[ + "Branch", + "ConfigFile", + "RepositoryLinkId", + "ResourceName", + "RoleArn", + "SyncType" + ], + "members":{ + "Branch":{"shape":"BranchName"}, + "ConfigFile":{"shape":"DeploymentFilePath"}, + "RepositoryLinkId":{"shape":"RepositoryLinkId"}, + "ResourceName":{"shape":"ResourceName"}, + "RoleArn":{"shape":"IamRoleArn"}, + "SyncType":{"shape":"SyncConfigurationType"} + } + }, + "CreateSyncConfigurationOutput":{ + "type":"structure", + "required":["SyncConfiguration"], + "members":{ + "SyncConfiguration":{"shape":"SyncConfiguration"} + } + }, + "CreatedReason":{"type":"string"}, "DeleteConnectionInput":{ "type":"structure", "required":["ConnectionArn"], @@ -283,10 +626,42 @@ "members":{ } }, + "DeleteRepositoryLinkInput":{ + "type":"structure", + "required":["RepositoryLinkId"], + "members":{ + "RepositoryLinkId":{"shape":"RepositoryLinkId"} + } + }, + "DeleteRepositoryLinkOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteSyncConfigurationInput":{ + "type":"structure", + "required":[ + "SyncType", + "ResourceName" + ], + "members":{ + "SyncType":{"shape":"SyncConfigurationType"}, + "ResourceName":{"shape":"ResourceName"} + } + }, + "DeleteSyncConfigurationOutput":{ + "type":"structure", + "members":{ + } + }, + "DeploymentFilePath":{"type":"string"}, + "Directory":{"type":"string"}, "ErrorMessage":{ "type":"string", "max":600 }, + "Event":{"type":"string"}, + "ExternalId":{"type":"string"}, "GetConnectionInput":{ "type":"structure", "required":["ConnectionArn"], @@ -317,6 +692,96 @@ "VpcConfiguration":{"shape":"VpcConfiguration"} } }, + "GetRepositoryLinkInput":{ + "type":"structure", + "required":["RepositoryLinkId"], + "members":{ + "RepositoryLinkId":{"shape":"RepositoryLinkId"} + } + }, + "GetRepositoryLinkOutput":{ + "type":"structure", + "required":["RepositoryLinkInfo"], + "members":{ + "RepositoryLinkInfo":{"shape":"RepositoryLinkInfo"} + } + }, + "GetRepositorySyncStatusInput":{ + "type":"structure", + "required":[ + "Branch", + "RepositoryLinkId", + "SyncType" + ], + "members":{ + "Branch":{"shape":"BranchName"}, + "RepositoryLinkId":{"shape":"RepositoryLinkId"}, + "SyncType":{"shape":"SyncConfigurationType"} + } + }, + "GetRepositorySyncStatusOutput":{ + "type":"structure", + "required":["LatestSync"], + "members":{ + "LatestSync":{"shape":"RepositorySyncAttempt"} + } + }, + "GetResourceSyncStatusInput":{ + "type":"structure", + "required":[ + "ResourceName", + "SyncType" + ], + "members":{ + "ResourceName":{"shape":"ResourceName"}, + "SyncType":{"shape":"SyncConfigurationType"} + } + }, + "GetResourceSyncStatusOutput":{ + "type":"structure", + "required":["LatestSync"], + "members":{ + "DesiredState":{"shape":"Revision"}, + "LatestSuccessfulSync":{"shape":"ResourceSyncAttempt"}, + "LatestSync":{"shape":"ResourceSyncAttempt"} + } + }, + "GetSyncBlockerSummaryInput":{ + "type":"structure", + "required":[ + "SyncType", + "ResourceName" + ], + "members":{ + "SyncType":{"shape":"SyncConfigurationType"}, + "ResourceName":{"shape":"ResourceName"} + } + }, + "GetSyncBlockerSummaryOutput":{ + "type":"structure", + "required":["SyncBlockerSummary"], + "members":{ + "SyncBlockerSummary":{"shape":"SyncBlockerSummary"} + } + }, + "GetSyncConfigurationInput":{ + "type":"structure", + "required":[ + "SyncType", + "ResourceName" + ], + "members":{ + "SyncType":{"shape":"SyncConfigurationType"}, + "ResourceName":{"shape":"ResourceName"} + } + }, + "GetSyncConfigurationOutput":{ + "type":"structure", + "required":["SyncConfiguration"], + "members":{ + "SyncConfiguration":{"shape":"SyncConfiguration"} + } + }, "Host":{ "type":"structure", "members":{ @@ -352,6 +817,41 @@ "pattern":".*" }, "HostStatusMessage":{"type":"string"}, + "IamRoleArn":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"arn:aws(-[\\w]+)*:iam::\\d{12}:role/[a-zA-Z_0-9+=,.@\\-_/]+" + }, + "Id":{ + "type":"string", + "max":50, + "min":1 + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "InvalidInputException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "KmsKeyArn":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"arn:aws(-[\\w]+)*:kms:[a-z\\-0-9]+:\\d{12}:key/[a-zA-Z0-9\\-]+" + }, + "LatestSyncBlockerList":{ + "type":"list", + "member":{"shape":"SyncBlocker"} + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -389,6 +889,61 @@ "NextToken":{"shape":"NextToken"} } }, + "ListRepositoryLinksInput":{ + "type":"structure", + "members":{ + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"SharpNextToken"} + } + }, + "ListRepositoryLinksOutput":{ + "type":"structure", + "required":["RepositoryLinks"], + "members":{ + "RepositoryLinks":{"shape":"RepositoryLinkList"}, + "NextToken":{"shape":"SharpNextToken"} + } + }, + "ListRepositorySyncDefinitionsInput":{ + "type":"structure", + "required":[ + "RepositoryLinkId", + "SyncType" + ], + "members":{ + "RepositoryLinkId":{"shape":"RepositoryLinkId"}, + "SyncType":{"shape":"SyncConfigurationType"} + } + }, + "ListRepositorySyncDefinitionsOutput":{ + "type":"structure", + "required":["RepositorySyncDefinitions"], + "members":{ + "RepositorySyncDefinitions":{"shape":"RepositorySyncDefinitionList"}, + "NextToken":{"shape":"SharpNextToken"} + } + }, + "ListSyncConfigurationsInput":{ + "type":"structure", + "required":[ + "RepositoryLinkId", + "SyncType" + ], + "members":{ + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"SharpNextToken"}, + "RepositoryLinkId":{"shape":"RepositoryLinkId"}, + "SyncType":{"shape":"SyncConfigurationType"} + } + }, + "ListSyncConfigurationsOutput":{ + "type":"structure", + "required":["SyncConfigurations"], + "members":{ + "SyncConfigurations":{"shape":"SyncConfigurationList"}, + "NextToken":{"shape":"SharpNextToken"} + } + }, "ListTagsForResourceInput":{ "type":"structure", "required":["ResourceArn"], @@ -411,8 +966,15 @@ "type":"string", "max":1024, "min":1, - "pattern":".*" + "pattern":"^.*$" + }, + "OwnerId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^.*$" }, + "Parent":{"type":"string"}, "ProviderType":{ "type":"string", "enum":[ @@ -422,6 +984,122 @@ "GitLab" ] }, + "RepositoryLinkArn":{ + "type":"string", + "pattern":"^arn:aws(?:-[a-z]+)*:codestar-connections:[a-z\\-0-9]+:\\d{12}:repository-link\\/[a-zA-Z0-9\\-:/]+" + }, + "RepositoryLinkId":{ + "type":"string", + "pattern":"^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$" + }, + "RepositoryLinkInfo":{ + "type":"structure", + "required":[ + "ConnectionArn", + "OwnerId", + "ProviderType", + "RepositoryLinkArn", + "RepositoryLinkId", + "RepositoryName" + ], + "members":{ + "ConnectionArn":{"shape":"ConnectionArn"}, + "EncryptionKeyArn":{"shape":"KmsKeyArn"}, + "OwnerId":{"shape":"OwnerId"}, + "ProviderType":{"shape":"ProviderType"}, + "RepositoryLinkArn":{"shape":"RepositoryLinkArn"}, + "RepositoryLinkId":{"shape":"RepositoryLinkId"}, + "RepositoryName":{"shape":"RepositoryName"} + } + }, + "RepositoryLinkList":{ + "type":"list", + "member":{"shape":"RepositoryLinkInfo"} + }, + "RepositoryName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^.*$" + }, + "RepositorySyncAttempt":{ + "type":"structure", + "required":[ + "StartedAt", + "Status", + "Events" + ], + "members":{ + "StartedAt":{"shape":"Timestamp"}, + "Status":{"shape":"RepositorySyncStatus"}, + "Events":{"shape":"RepositorySyncEventList"} + } + }, + "RepositorySyncDefinition":{ + "type":"structure", + "required":[ + "Branch", + "Directory", + "Parent", + "Target" + ], + "members":{ + "Branch":{"shape":"BranchName"}, + "Directory":{"shape":"Directory"}, + "Parent":{"shape":"Parent"}, + "Target":{"shape":"Target"} + } + }, + "RepositorySyncDefinitionList":{ + "type":"list", + "member":{"shape":"RepositorySyncDefinition"} + }, + "RepositorySyncEvent":{ + "type":"structure", + "required":[ + "Event", + "Time", + "Type" + ], + "members":{ + "Event":{"shape":"Event"}, + "ExternalId":{"shape":"ExternalId"}, + "Time":{"shape":"Timestamp"}, + "Type":{"shape":"Type"} + } + }, + "RepositorySyncEventList":{ + "type":"list", + "member":{"shape":"RepositorySyncEvent"} + }, + "RepositorySyncStatus":{ + "type":"string", + "enum":[ + "FAILED", + "INITIATED", + "IN_PROGRESS", + "SUCCEEDED", + "QUEUED" + ] + }, + "ResolvedReason":{ + "type":"string", + "max":250, + "min":1 + }, + "ResourceAlreadyExistsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "ResourceName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^[0-9A-Za-z]+[0-9A-Za-z_\\\\-]*$" + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -429,6 +1107,52 @@ }, "exception":true }, + "ResourceSyncAttempt":{ + "type":"structure", + "required":[ + "Events", + "InitialRevision", + "StartedAt", + "Status", + "TargetRevision", + "Target" + ], + "members":{ + "Events":{"shape":"ResourceSyncEventList"}, + "InitialRevision":{"shape":"Revision"}, + "StartedAt":{"shape":"Timestamp"}, + "Status":{"shape":"ResourceSyncStatus"}, + "TargetRevision":{"shape":"Revision"}, + "Target":{"shape":"Target"} + } + }, + "ResourceSyncEvent":{ + "type":"structure", + "required":[ + "Event", + "Time", + "Type" + ], + "members":{ + "Event":{"shape":"Event"}, + "ExternalId":{"shape":"ExternalId"}, + "Time":{"shape":"Timestamp"}, + "Type":{"shape":"Type"} + } + }, + "ResourceSyncEventList":{ + "type":"list", + "member":{"shape":"ResourceSyncEvent"} + }, + "ResourceSyncStatus":{ + "type":"string", + "enum":[ + "FAILED", + "INITIATED", + "IN_PROGRESS", + "SUCCEEDED" + ] + }, "ResourceUnavailableException":{ "type":"structure", "members":{ @@ -436,6 +1160,37 @@ }, "exception":true }, + "RetryLatestCommitFailedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "Revision":{ + "type":"structure", + "required":[ + "Branch", + "Directory", + "OwnerId", + "RepositoryName", + "ProviderType", + "Sha" + ], + "members":{ + "Branch":{"shape":"BranchName"}, + "Directory":{"shape":"Directory"}, + "OwnerId":{"shape":"OwnerId"}, + "RepositoryName":{"shape":"RepositoryName"}, + "ProviderType":{"shape":"ProviderType"}, + "Sha":{"shape":"SHA"} + } + }, + "SHA":{ + "type":"string", + "max":255, + "min":1 + }, "SecurityGroupId":{ "type":"string", "max":20, @@ -448,6 +1203,12 @@ "max":10, "min":1 }, + "SharpNextToken":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^.*$" + }, "SubnetId":{ "type":"string", "max":24, @@ -460,6 +1221,98 @@ "max":10, "min":1 }, + "SyncBlocker":{ + "type":"structure", + "required":[ + "Id", + "Type", + "Status", + "CreatedReason", + "CreatedAt" + ], + "members":{ + "Id":{"shape":"Id"}, + "Type":{"shape":"BlockerType"}, + "Status":{"shape":"BlockerStatus"}, + "CreatedReason":{"shape":"CreatedReason"}, + "CreatedAt":{"shape":"Timestamp"}, + "Contexts":{"shape":"SyncBlockerContextList"}, + "ResolvedReason":{"shape":"ResolvedReason"}, + "ResolvedAt":{"shape":"Timestamp"} + } + }, + "SyncBlockerContext":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{"shape":"SyncBlockerContextKey"}, + "Value":{"shape":"SyncBlockerContextValue"} + } + }, + "SyncBlockerContextKey":{"type":"string"}, + "SyncBlockerContextList":{ + "type":"list", + "member":{"shape":"SyncBlockerContext"} + }, + "SyncBlockerContextValue":{"type":"string"}, + "SyncBlockerDoesNotExistException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "SyncBlockerSummary":{ + "type":"structure", + "required":["ResourceName"], + "members":{ + "ResourceName":{"shape":"ResourceName"}, + "ParentResourceName":{"shape":"ResourceName"}, + "LatestBlockers":{"shape":"LatestSyncBlockerList"} + } + }, + "SyncConfiguration":{ + "type":"structure", + "required":[ + "Branch", + "OwnerId", + "ProviderType", + "RepositoryLinkId", + "RepositoryName", + "ResourceName", + "RoleArn", + "SyncType" + ], + "members":{ + "Branch":{"shape":"BranchName"}, + "ConfigFile":{"shape":"DeploymentFilePath"}, + "OwnerId":{"shape":"OwnerId"}, + "ProviderType":{"shape":"ProviderType"}, + "RepositoryLinkId":{"shape":"RepositoryLinkId"}, + "RepositoryName":{"shape":"RepositoryName"}, + "ResourceName":{"shape":"ResourceName"}, + "RoleArn":{"shape":"IamRoleArn"}, + "SyncType":{"shape":"SyncConfigurationType"} + } + }, + "SyncConfigurationList":{ + "type":"list", + "member":{"shape":"SyncConfiguration"} + }, + "SyncConfigurationStillExistsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "SyncConfigurationType":{ + "type":"string", + "enum":["CFN_STACK_SYNC"] + }, "Tag":{ "type":"structure", "required":[ @@ -511,12 +1364,22 @@ "min":0, "pattern":".*" }, + "Target":{"type":"string"}, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "Timestamp":{"type":"timestamp"}, "TlsCertificate":{ "type":"string", "max":16384, "min":1, "pattern":"[\\s\\S]*" }, + "Type":{"type":"string"}, "UnsupportedOperationException":{ "type":"structure", "members":{ @@ -524,6 +1387,13 @@ }, "exception":true }, + "UnsupportedProviderTypeException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "UntagResourceInput":{ "type":"structure", "required":[ @@ -554,6 +1424,78 @@ "members":{ } }, + "UpdateOutOfSyncException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "UpdateRepositoryLinkInput":{ + "type":"structure", + "required":["RepositoryLinkId"], + "members":{ + "ConnectionArn":{"shape":"ConnectionArn"}, + "EncryptionKeyArn":{"shape":"KmsKeyArn"}, + "RepositoryLinkId":{"shape":"RepositoryLinkId"} + } + }, + "UpdateRepositoryLinkOutput":{ + "type":"structure", + "required":["RepositoryLinkInfo"], + "members":{ + "RepositoryLinkInfo":{"shape":"RepositoryLinkInfo"} + } + }, + "UpdateSyncBlockerInput":{ + "type":"structure", + "required":[ + "Id", + "SyncType", + "ResourceName", + "ResolvedReason" + ], + "members":{ + "Id":{"shape":"Id"}, + "SyncType":{"shape":"SyncConfigurationType"}, + "ResourceName":{"shape":"ResourceName"}, + "ResolvedReason":{"shape":"ResolvedReason"} + } + }, + "UpdateSyncBlockerOutput":{ + "type":"structure", + "required":[ + "ResourceName", + "SyncBlocker" + ], + "members":{ + "ResourceName":{"shape":"ResourceName"}, + "ParentResourceName":{"shape":"ResourceName"}, + "SyncBlocker":{"shape":"SyncBlocker"} + } + }, + "UpdateSyncConfigurationInput":{ + "type":"structure", + "required":[ + "ResourceName", + "SyncType" + ], + "members":{ + "Branch":{"shape":"BranchName"}, + "ConfigFile":{"shape":"DeploymentFilePath"}, + "RepositoryLinkId":{"shape":"RepositoryLinkId"}, + "ResourceName":{"shape":"ResourceName"}, + "RoleArn":{"shape":"IamRoleArn"}, + "SyncType":{"shape":"SyncConfigurationType"} + } + }, + "UpdateSyncConfigurationOutput":{ + "type":"structure", + "required":["SyncConfiguration"], + "members":{ + "SyncConfiguration":{"shape":"SyncConfiguration"} + } + }, "Url":{ "type":"string", "max":512, diff --git a/models/apis/codestar-connections/2019-12-01/docs-2.json b/models/apis/codestar-connections/2019-12-01/docs-2.json index 152d14b8a3d..c4298deb9b1 100644 --- a/models/apis/codestar-connections/2019-12-01/docs-2.json +++ b/models/apis/codestar-connections/2019-12-01/docs-2.json @@ -4,18 +4,38 @@ "operations": { "CreateConnection": "

Creates a connection that can then be given to other Amazon Web Services services like CodePipeline so that it can access third-party code repositories. The connection is in pending status until the third-party connection handshake is completed from the console.

", "CreateHost": "

Creates a resource that represents the infrastructure where a third-party provider is installed. The host is used when you create connections to an installed third-party provider type, such as GitHub Enterprise Server. You create one host for all connections to that provider.

A host created through the CLI or the SDK is in `PENDING` status by default. You can make its status `AVAILABLE` by setting up the host in the console.

", + "CreateRepositoryLink": "

Creates a link to a specified external Git repository. A repository link allows Git sync to monitor and sync changes to files in a specified Git repository.

", + "CreateSyncConfiguration": "

Creates a sync configuration which allows Amazon Web Services to sync content from a Git repository to update a specified Amazon Web Services resource. Parameters for the sync configuration are determined by the sync type.

", "DeleteConnection": "

The connection to be deleted.

", "DeleteHost": "

The host to be deleted. Before you delete a host, all connections associated to the host must be deleted.

A host cannot be deleted if it is in the VPC_CONFIG_INITIALIZING or VPC_CONFIG_DELETING state.

", + "DeleteRepositoryLink": "

Deletes the association between your connection and a specified external Git repository.

", + "DeleteSyncConfiguration": "

Deletes the sync configuration for a specified repository and connection.

", "GetConnection": "

Returns the connection ARN and details such as status, owner, and provider type.

", "GetHost": "

Returns the host ARN and details such as status, provider type, endpoint, and, if applicable, the VPC configuration.

", + "GetRepositoryLink": "

Returns details about a repository link. A repository link allows Git sync to monitor and sync changes from files in a specified Git repository.

", + "GetRepositorySyncStatus": "

Returns details about the sync status for a repository. A repository sync uses Git sync to push and pull changes from your remote repository.

", + "GetResourceSyncStatus": "

Returns the status of the sync with the Git repository for a specific Amazon Web Services resource.

", + "GetSyncBlockerSummary": "

Returns a list of the most recent sync blockers.

", + "GetSyncConfiguration": "

Returns details about a sync configuration, including the sync type and resource name. A sync configuration allows the configuration to sync (push and pull) changes from the remote repository for a specified branch in a Git repository.

", "ListConnections": "

Lists the connections associated with your account.

", "ListHosts": "

Lists the hosts associated with your account.

", + "ListRepositoryLinks": "

Lists the repository links created for connections in your account.

", + "ListRepositorySyncDefinitions": "

Lists the repository sync definitions for repository links in your account.

", + "ListSyncConfigurations": "

Returns a list of sync configurations for a specified repository.

", "ListTagsForResource": "

Gets the set of key-value pairs (metadata) that are used to manage the resource.

", "TagResource": "

Adds to or modifies the tags of the given resource. Tags are metadata that can be used to manage a resource.

", "UntagResource": "

Removes tags from an Amazon Web Services resource.

", - "UpdateHost": "

Updates a specified host with the provided configurations.

" + "UpdateHost": "

Updates a specified host with the provided configurations.

", + "UpdateRepositoryLink": "

Updates the association between your connection and a specified external Git repository. A repository link allows Git sync to monitor and sync changes to files in a specified Git repository.

", + "UpdateSyncBlocker": "

Allows you to update the status of a sync blocker, resolving the blocker and allowing syncing to continue.

", + "UpdateSyncConfiguration": "

Updates the sync configuration for your connection and a specified external Git repository.

" }, "shapes": { + "AccessDeniedException": { + "base": "

You do not have sufficient access to perform this action.

", + "refs": { + } + }, "AccountId": { "base": null, "refs": { @@ -30,6 +50,39 @@ "UntagResourceInput$ResourceArn": "

The Amazon Resource Name (ARN) of the resource to remove tags from.

" } }, + "BlockerStatus": { + "base": null, + "refs": { + "SyncBlocker$Status": "

The status for a specific sync blocker.

" + } + }, + "BlockerType": { + "base": null, + "refs": { + "SyncBlocker$Type": "

The sync blocker type.

" + } + }, + "BranchName": { + "base": null, + "refs": { + "CreateSyncConfigurationInput$Branch": "

The branch in the repository from which changes will be synced.

", + "GetRepositorySyncStatusInput$Branch": "

The branch of the repository link for the requested repository sync status.

", + "RepositorySyncDefinition$Branch": "

The branch specified for a repository sync definition.

", + "Revision$Branch": "

The branch name for a specific revision.

", + "SyncConfiguration$Branch": "

The branch associated with a specific sync configuration.

", + "UpdateSyncConfigurationInput$Branch": "

The branch for the sync configuration to be updated.

" + } + }, + "ConcurrentModificationException": { + "base": "

Exception thrown as a result of concurrent modification to an application. For example, two individuals attempting to edit the same application at the same time.

", + "refs": { + } + }, + "ConditionalCheckFailedException": { + "base": "

The conditional check failed. Try again later.

", + "refs": { + } + }, "ConflictException": { "base": "

Two conflicting operations have been made on the same resource.

", "refs": { @@ -47,8 +100,11 @@ "refs": { "Connection$ConnectionArn": "

The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between Amazon Web Services.

The ARN is never reused if the connection is deleted.

", "CreateConnectionOutput$ConnectionArn": "

The Amazon Resource Name (ARN) of the connection to be created. The ARN is used as the connection reference when the connection is shared between Amazon Web Services services.

The ARN is never reused if the connection is deleted.

", + "CreateRepositoryLinkInput$ConnectionArn": "

The Amazon Resource Name (ARN) of the connection to be associated with the repository link.

", "DeleteConnectionInput$ConnectionArn": "

The Amazon Resource Name (ARN) of the connection to be deleted.

The ARN is never reused if the connection is deleted.

", - "GetConnectionInput$ConnectionArn": "

The Amazon Resource Name (ARN) of a connection.

" + "GetConnectionInput$ConnectionArn": "

The Amazon Resource Name (ARN) of a connection.

", + "RepositoryLinkInfo$ConnectionArn": "

The Amazon Resource Name (ARN) of the connection associated with the repository link.

", + "UpdateRepositoryLinkInput$ConnectionArn": "

The Amazon Resource Name (ARN) of the connection for the repository link to be updated. The updated connection ARN must have the same providerType (such as GitHub) as the original connection ARN for the repo link.

" } }, "ConnectionList": { @@ -90,6 +146,32 @@ "refs": { } }, + "CreateRepositoryLinkInput": { + "base": null, + "refs": { + } + }, + "CreateRepositoryLinkOutput": { + "base": null, + "refs": { + } + }, + "CreateSyncConfigurationInput": { + "base": null, + "refs": { + } + }, + "CreateSyncConfigurationOutput": { + "base": null, + "refs": { + } + }, + "CreatedReason": { + "base": null, + "refs": { + "SyncBlocker$CreatedReason": "

The provided reason for a specific sync blocker.

" + } + }, "DeleteConnectionInput": { "base": null, "refs": { @@ -110,14 +192,75 @@ "refs": { } }, + "DeleteRepositoryLinkInput": { + "base": null, + "refs": { + } + }, + "DeleteRepositoryLinkOutput": { + "base": null, + "refs": { + } + }, + "DeleteSyncConfigurationInput": { + "base": null, + "refs": { + } + }, + "DeleteSyncConfigurationOutput": { + "base": null, + "refs": { + } + }, + "DeploymentFilePath": { + "base": null, + "refs": { + "CreateSyncConfigurationInput$ConfigFile": "

The file name of the configuration file that manages syncing between the connection and the repository. This configuration file is stored in the repository.

", + "SyncConfiguration$ConfigFile": "

The file path to the configuration file associated with a specific sync configuration. The path should point to an actual file in the sync configurations linked repository.

", + "UpdateSyncConfigurationInput$ConfigFile": "

The configuration file for the sync configuration to be updated.

" + } + }, + "Directory": { + "base": null, + "refs": { + "RepositorySyncDefinition$Directory": "

The configuration file for a repository sync definition. This value comes from creating or updating the config-file field of a sync-configuration.

", + "Revision$Directory": "

The directory, if any, for a specific revision.

" + } + }, "ErrorMessage": { "base": null, "refs": { + "AccessDeniedException$Message": null, + "ConcurrentModificationException$Message": null, + "ConditionalCheckFailedException$Message": null, "ConflictException$Message": null, + "InternalServerException$Message": null, + "InvalidInputException$Message": null, "LimitExceededException$Message": null, + "ResourceAlreadyExistsException$Message": null, "ResourceNotFoundException$Message": null, "ResourceUnavailableException$Message": null, - "UnsupportedOperationException$Message": null + "RetryLatestCommitFailedException$Message": null, + "SyncBlockerDoesNotExistException$Message": null, + "SyncConfigurationStillExistsException$Message": null, + "ThrottlingException$Message": null, + "UnsupportedOperationException$Message": null, + "UnsupportedProviderTypeException$Message": null, + "UpdateOutOfSyncException$Message": null + } + }, + "Event": { + "base": null, + "refs": { + "RepositorySyncEvent$Event": "

A description of a repository sync event.

", + "ResourceSyncEvent$Event": "

The event for a resource sync event.

" + } + }, + "ExternalId": { + "base": null, + "refs": { + "RepositorySyncEvent$ExternalId": "

The ID for a repository sync event.

", + "ResourceSyncEvent$ExternalId": "

The ID for a resource sync event.

" } }, "GetConnectionInput": { @@ -140,6 +283,56 @@ "refs": { } }, + "GetRepositoryLinkInput": { + "base": null, + "refs": { + } + }, + "GetRepositoryLinkOutput": { + "base": null, + "refs": { + } + }, + "GetRepositorySyncStatusInput": { + "base": null, + "refs": { + } + }, + "GetRepositorySyncStatusOutput": { + "base": null, + "refs": { + } + }, + "GetResourceSyncStatusInput": { + "base": null, + "refs": { + } + }, + "GetResourceSyncStatusOutput": { + "base": null, + "refs": { + } + }, + "GetSyncBlockerSummaryInput": { + "base": null, + "refs": { + } + }, + "GetSyncBlockerSummaryOutput": { + "base": null, + "refs": { + } + }, + "GetSyncConfigurationInput": { + "base": null, + "refs": { + } + }, + "GetSyncConfigurationOutput": { + "base": null, + "refs": { + } + }, "Host": { "base": "

A resource that represents the infrastructure where a third-party provider is installed. The host is used when you create connections to an installed third-party provider type, such as GitHub Enterprise Server. You create one host for all connections to that provider.

A host created through the CLI or the SDK is in `PENDING` status by default. You can make its status `AVAILABLE` by setting up the host in the console.

", "refs": { @@ -186,6 +379,45 @@ "Host$StatusMessage": "

The status description for the host.

" } }, + "IamRoleArn": { + "base": null, + "refs": { + "CreateSyncConfigurationInput$RoleArn": "

The ARN of the IAM role that grants permission for Amazon Web Services to use Git sync to update a given Amazon Web Services resource on your behalf.

", + "SyncConfiguration$RoleArn": "

The Amazon Resource Name (ARN) of the IAM role associated with a specific sync configuration.

", + "UpdateSyncConfigurationInput$RoleArn": "

The ARN of the IAM role for the sync configuration to be updated.

" + } + }, + "Id": { + "base": null, + "refs": { + "SyncBlocker$Id": "

The ID for a specific sync blocker.

", + "UpdateSyncBlockerInput$Id": "

The ID of the sync blocker to be updated.

" + } + }, + "InternalServerException": { + "base": "

Received an internal server exception. Try again later.

", + "refs": { + } + }, + "InvalidInputException": { + "base": "

The input is not valid. Verify that the action is typed correctly.

", + "refs": { + } + }, + "KmsKeyArn": { + "base": null, + "refs": { + "CreateRepositoryLinkInput$EncryptionKeyArn": "

The Amazon Resource Name (ARN) encryption key for the repository to be associated with the repository link.

", + "RepositoryLinkInfo$EncryptionKeyArn": "

The Amazon Resource Name (ARN) of the encryption key for the repository associated with the repository link.

", + "UpdateRepositoryLinkInput$EncryptionKeyArn": "

The Amazon Resource Name (ARN) of the encryption key for the repository link to be updated.

" + } + }, + "LatestSyncBlockerList": { + "base": null, + "refs": { + "SyncBlockerSummary$LatestBlockers": "

The latest events for a sync blocker summary.

" + } + }, "LimitExceededException": { "base": "

Exceeded the maximum limit for connections.

", "refs": { @@ -211,6 +443,36 @@ "refs": { } }, + "ListRepositoryLinksInput": { + "base": null, + "refs": { + } + }, + "ListRepositoryLinksOutput": { + "base": null, + "refs": { + } + }, + "ListRepositorySyncDefinitionsInput": { + "base": null, + "refs": { + } + }, + "ListRepositorySyncDefinitionsOutput": { + "base": null, + "refs": { + } + }, + "ListSyncConfigurationsInput": { + "base": null, + "refs": { + } + }, + "ListSyncConfigurationsOutput": { + "base": null, + "refs": { + } + }, "ListTagsForResourceInput": { "base": null, "refs": { @@ -225,7 +487,9 @@ "base": null, "refs": { "ListConnectionsInput$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", - "ListHostsInput$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "ListHostsInput$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", + "ListRepositoryLinksInput$MaxResults": "

A non-zero, non-negative integer used to limit the number of returned results.

", + "ListSyncConfigurationsInput$MaxResults": "

A non-zero, non-negative integer used to limit the number of returned results.

" } }, "NextToken": { @@ -237,6 +501,21 @@ "ListHostsOutput$NextToken": "

A token that can be used in the next ListHosts call. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned.

" } }, + "OwnerId": { + "base": null, + "refs": { + "CreateRepositoryLinkInput$OwnerId": "

The owner ID for the repository associated with a specific sync configuration, such as the owner ID in GitHub.

", + "RepositoryLinkInfo$OwnerId": "

The owner ID for the repository associated with the repository link, such as the owner ID in GitHub.

", + "Revision$OwnerId": "

The owner ID for a specific revision, such as the GitHub owner ID for a GitHub repository.

", + "SyncConfiguration$OwnerId": "

The owner ID for the repository associated with a specific sync configuration, such as the owner ID in GitHub.

" + } + }, + "Parent": { + "base": null, + "refs": { + "RepositorySyncDefinition$Parent": "

The parent resource specified for a repository sync definition.

" + } + }, "ProviderType": { "base": null, "refs": { @@ -245,7 +524,120 @@ "CreateHostInput$ProviderType": "

The name of the installed provider to be associated with your connection. The host resource represents the infrastructure where your provider type is installed. The valid provider type is GitHub Enterprise Server.

", "GetHostOutput$ProviderType": "

The provider type of the requested host, such as GitHub Enterprise Server.

", "Host$ProviderType": "

The name of the installed provider to be associated with your connection. The host resource represents the infrastructure where your provider type is installed. The valid provider type is GitHub Enterprise Server.

", - "ListConnectionsInput$ProviderTypeFilter": "

Filters the list of connections to those associated with a specified provider, such as Bitbucket.

" + "ListConnectionsInput$ProviderTypeFilter": "

Filters the list of connections to those associated with a specified provider, such as Bitbucket.

", + "RepositoryLinkInfo$ProviderType": "

The provider type for the connection, such as GitHub, associated with the repository link.

", + "Revision$ProviderType": "

The provider type for a revision, such as GitHub.

", + "SyncConfiguration$ProviderType": "

The connection provider type associated with a specific sync configuration, such as GitHub.

" + } + }, + "RepositoryLinkArn": { + "base": null, + "refs": { + "RepositoryLinkInfo$RepositoryLinkArn": "

The Amazon Resource Name (ARN) of the repository link.

" + } + }, + "RepositoryLinkId": { + "base": null, + "refs": { + "CreateSyncConfigurationInput$RepositoryLinkId": "

The ID of the repository link created for the connection. A repository link allows Git sync to monitor and sync changes to files in a specified Git repository.

", + "DeleteRepositoryLinkInput$RepositoryLinkId": "

The ID of the repository link to be deleted.

", + "GetRepositoryLinkInput$RepositoryLinkId": "

The ID of the repository link to get.

", + "GetRepositorySyncStatusInput$RepositoryLinkId": "

The repository link ID for the requested repository sync status.

", + "ListRepositorySyncDefinitionsInput$RepositoryLinkId": "

The ID of the repository link for the sync definition for which you want to retrieve information.

", + "ListSyncConfigurationsInput$RepositoryLinkId": "

The ID of the repository link for the requested list of sync configurations.

", + "RepositoryLinkInfo$RepositoryLinkId": "

The ID of the repository link.

", + "SyncConfiguration$RepositoryLinkId": "

The ID of the repository link associated with a specific sync configuration.

", + "UpdateRepositoryLinkInput$RepositoryLinkId": "

The ID of the repository link to be updated.

", + "UpdateSyncConfigurationInput$RepositoryLinkId": "

The ID of the repository link for the sync configuration to be updated.

" + } + }, + "RepositoryLinkInfo": { + "base": "

Information about the repository link resource, such as the repository link ARN, the associated connection ARN, encryption key ARN, and owner ID.

", + "refs": { + "CreateRepositoryLinkOutput$RepositoryLinkInfo": "

The returned information about the created repository link.

", + "GetRepositoryLinkOutput$RepositoryLinkInfo": "

The information returned for a specified repository link.

", + "RepositoryLinkList$member": null, + "UpdateRepositoryLinkOutput$RepositoryLinkInfo": "

Information about the repository link to be updated.

" + } + }, + "RepositoryLinkList": { + "base": null, + "refs": { + "ListRepositoryLinksOutput$RepositoryLinks": "

Lists the repository links called by the list repository links operation.

" + } + }, + "RepositoryName": { + "base": null, + "refs": { + "CreateRepositoryLinkInput$RepositoryName": "

The name of the repository to be associated with the repository link.

", + "RepositoryLinkInfo$RepositoryName": "

The name of the repository associated with the repository link.

", + "Revision$RepositoryName": "

The repository name for a specific revision.

", + "SyncConfiguration$RepositoryName": "

The name of the repository associated with a specific sync configuration.

" + } + }, + "RepositorySyncAttempt": { + "base": "

Information about a repository sync attempt for a repository with a sync configuration.

", + "refs": { + "GetRepositorySyncStatusOutput$LatestSync": "

The status of the latest sync returned for a specified repository and branch.

" + } + }, + "RepositorySyncDefinition": { + "base": "

The definition for a repository with a sync configuration.

", + "refs": { + "RepositorySyncDefinitionList$member": null + } + }, + "RepositorySyncDefinitionList": { + "base": null, + "refs": { + "ListRepositorySyncDefinitionsOutput$RepositorySyncDefinitions": "

The list of repository sync definitions returned by the request. A RepositorySyncDefinition is a mapping from a repository branch to all the Amazon Web Services resources that are being synced from that branch.

" + } + }, + "RepositorySyncEvent": { + "base": "

Information about a repository sync event.

", + "refs": { + "RepositorySyncEventList$member": null + } + }, + "RepositorySyncEventList": { + "base": null, + "refs": { + "RepositorySyncAttempt$Events": "

The events associated with a specific sync attempt.

" + } + }, + "RepositorySyncStatus": { + "base": null, + "refs": { + "RepositorySyncAttempt$Status": "

The status of a specific sync attempt. The following are valid statuses:

" + } + }, + "ResolvedReason": { + "base": null, + "refs": { + "SyncBlocker$ResolvedReason": "

The resolved reason for a specific sync blocker.

", + "UpdateSyncBlockerInput$ResolvedReason": "

The reason for resolving the sync blocker.

" + } + }, + "ResourceAlreadyExistsException": { + "base": "

Unable to create resource. Resource already exists.

", + "refs": { + } + }, + "ResourceName": { + "base": null, + "refs": { + "CreateSyncConfigurationInput$ResourceName": "

The name of the Amazon Web Services resource (for example, a CloudFormation stack in the case of CFN_STACK_SYNC) that will be synchronized from the linked repository.

", + "DeleteSyncConfigurationInput$ResourceName": "

The name of the Amazon Web Services resource associated with the sync configuration to be deleted.

", + "GetResourceSyncStatusInput$ResourceName": "

The name of the Amazon Web Services resource for the sync status with the Git repository.

", + "GetSyncBlockerSummaryInput$ResourceName": "

The name of the Amazon Web Services resource currently blocked from automatically being synced from a Git repository.

", + "GetSyncConfigurationInput$ResourceName": "

The name of the Amazon Web Services resource for the sync configuration for which you want to retrieve information.

", + "SyncBlockerSummary$ResourceName": "

The resource name for sync blocker summary.

", + "SyncBlockerSummary$ParentResourceName": "

The parent resource name for a sync blocker summary.

", + "SyncConfiguration$ResourceName": "

The name of the connection resource associated with a specific sync configuration.

", + "UpdateSyncBlockerInput$ResourceName": "

The name of the resource for the sync blocker to be updated.

", + "UpdateSyncBlockerOutput$ResourceName": "

The resource name for the sync blocker.

", + "UpdateSyncBlockerOutput$ParentResourceName": "

The parent resource name for the sync blocker.

", + "UpdateSyncConfigurationInput$ResourceName": "

The name of the Amazon Web Services resource for the sync configuration to be updated.

" } }, "ResourceNotFoundException": { @@ -253,11 +645,55 @@ "refs": { } }, + "ResourceSyncAttempt": { + "base": "

Information about a resource sync attempt.

", + "refs": { + "GetResourceSyncStatusOutput$LatestSuccessfulSync": "

The latest successful sync for the sync status with the Git repository.

", + "GetResourceSyncStatusOutput$LatestSync": "

The latest sync for the sync status with the Git repository, whether successful or not.

" + } + }, + "ResourceSyncEvent": { + "base": "

Information about a resource sync event for the resource associated with a sync configuration.

", + "refs": { + "ResourceSyncEventList$member": null + } + }, + "ResourceSyncEventList": { + "base": null, + "refs": { + "ResourceSyncAttempt$Events": "

The events related to a resource sync attempt.

" + } + }, + "ResourceSyncStatus": { + "base": null, + "refs": { + "ResourceSyncAttempt$Status": "

The status for a resource sync attempt. The follow are valid statuses:

" + } + }, "ResourceUnavailableException": { "base": "

Resource not found. Verify the ARN for the host resource and try again.

", "refs": { } }, + "RetryLatestCommitFailedException": { + "base": "

Retrying the latest commit failed. Try again later.

", + "refs": { + } + }, + "Revision": { + "base": "

Information about the revision for a specific sync event, such as the branch, owner ID, and name of the repository.

", + "refs": { + "GetResourceSyncStatusOutput$DesiredState": "

The desired state of the Amazon Web Services resource for the sync status with the Git repository.

", + "ResourceSyncAttempt$InitialRevision": "

The current state of the resource as defined in the resource's config-file in the linked repository.

", + "ResourceSyncAttempt$TargetRevision": "

The desired state of the resource as defined in the resource's config-file in the linked repository. Git sync attempts to update the resource to this state.

" + } + }, + "SHA": { + "base": null, + "refs": { + "Revision$Sha": "

The SHA, such as the commit ID, for a specific revision.

" + } + }, "SecurityGroupId": { "base": null, "refs": { @@ -270,6 +706,16 @@ "VpcConfiguration$SecurityGroupIds": "

The ID of the security group or security groups associated with the Amazon VPC connected to the infrastructure where your provider type is installed.

" } }, + "SharpNextToken": { + "base": null, + "refs": { + "ListRepositoryLinksInput$NextToken": "

An enumeration token that, when provided in a request, returns the next batch of the results.

", + "ListRepositoryLinksOutput$NextToken": "

An enumeration token that allows the operation to batch the results of the operation.

", + "ListRepositorySyncDefinitionsOutput$NextToken": "

An enumeration token that, when provided in a request, returns the next batch of the results.

", + "ListSyncConfigurationsInput$NextToken": "

An enumeration token that allows the operation to batch the results of the operation.

", + "ListSyncConfigurationsOutput$NextToken": "

An enumeration token that allows the operation to batch the next results of the operation.

" + } + }, "SubnetId": { "base": null, "refs": { @@ -282,6 +728,84 @@ "VpcConfiguration$SubnetIds": "

The ID of the subnet or subnets associated with the Amazon VPC connected to the infrastructure where your provider type is installed.

" } }, + "SyncBlocker": { + "base": "

Information about a blocker for a sync event.

", + "refs": { + "LatestSyncBlockerList$member": null, + "UpdateSyncBlockerOutput$SyncBlocker": "

Information about the sync blocker to be updated.

" + } + }, + "SyncBlockerContext": { + "base": "

The context for a specific sync blocker.

", + "refs": { + "SyncBlockerContextList$member": null + } + }, + "SyncBlockerContextKey": { + "base": null, + "refs": { + "SyncBlockerContext$Key": "

The key provided for a context key-value pair for a specific sync blocker.

" + } + }, + "SyncBlockerContextList": { + "base": null, + "refs": { + "SyncBlocker$Contexts": "

The contexts for a specific sync blocker.

" + } + }, + "SyncBlockerContextValue": { + "base": null, + "refs": { + "SyncBlockerContext$Value": "

The value provided for a context key-value pair for a specific sync blocker.

" + } + }, + "SyncBlockerDoesNotExistException": { + "base": "

Unable to continue. The sync blocker does not exist.

", + "refs": { + } + }, + "SyncBlockerSummary": { + "base": "

A summary for sync blockers.

", + "refs": { + "GetSyncBlockerSummaryOutput$SyncBlockerSummary": "

The list of sync blockers for a specified resource.

" + } + }, + "SyncConfiguration": { + "base": "

Information, such as repository, branch, provider, and resource names for a specific sync configuration.

", + "refs": { + "CreateSyncConfigurationOutput$SyncConfiguration": "

The created sync configuration for the connection. A sync configuration allows Amazon Web Services to sync content from a Git repository to update a specified Amazon Web Services resource.

", + "GetSyncConfigurationOutput$SyncConfiguration": "

The details about the sync configuration for which you want to retrieve information.

", + "SyncConfigurationList$member": null, + "UpdateSyncConfigurationOutput$SyncConfiguration": "

The information returned for the sync configuration to be updated.

" + } + }, + "SyncConfigurationList": { + "base": null, + "refs": { + "ListSyncConfigurationsOutput$SyncConfigurations": "

The list of repository sync definitions returned by the request.

" + } + }, + "SyncConfigurationStillExistsException": { + "base": "

Unable to continue. The sync blocker still exists.

", + "refs": { + } + }, + "SyncConfigurationType": { + "base": null, + "refs": { + "CreateSyncConfigurationInput$SyncType": "

The type of sync configuration.

", + "DeleteSyncConfigurationInput$SyncType": "

The type of sync configuration to be deleted.

", + "GetRepositorySyncStatusInput$SyncType": "

The sync type of the requested sync status.

", + "GetResourceSyncStatusInput$SyncType": "

The sync type for the sync status with the Git repository.

", + "GetSyncBlockerSummaryInput$SyncType": "

The sync type for the sync blocker summary.

", + "GetSyncConfigurationInput$SyncType": "

The sync type for the sync configuration for which you want to retrieve information.

", + "ListRepositorySyncDefinitionsInput$SyncType": "

The sync type of the repository link for the the sync definition for which you want to retrieve information.

", + "ListSyncConfigurationsInput$SyncType": "

The sync type for the requested list of sync configurations.

", + "SyncConfiguration$SyncType": "

The type of sync for a specific sync configuration.

", + "UpdateSyncBlockerInput$SyncType": "

The sync type of the sync blocker to be updated.

", + "UpdateSyncConfigurationInput$SyncType": "

The sync type for the sync configuration to be updated.

" + } + }, "Tag": { "base": "

A tag is a key-value pair that is used to manage the resource.

This tag is available for use by Amazon Web Services services that support tags.

", "refs": { @@ -306,8 +830,9 @@ "refs": { "CreateConnectionInput$Tags": "

The key-value pair to use when tagging the resource.

", "CreateConnectionOutput$Tags": "

Specifies the tags applied to the resource.

", - "CreateHostInput$Tags": null, - "CreateHostOutput$Tags": null, + "CreateHostInput$Tags": "

Tags for the host to be created.

", + "CreateHostOutput$Tags": "

Tags for the created host.

", + "CreateRepositoryLinkInput$Tags": "

The tags for the repository to be associated with the repository link.

", "ListTagsForResourceOutput$Tags": "

A list of tag key and value pairs associated with the specified resource.

", "TagResourceInput$Tags": "

The tags you want to modify or add to the resource.

" } @@ -328,17 +853,52 @@ "Tag$Value": "

The tag's value.

" } }, + "Target": { + "base": null, + "refs": { + "RepositorySyncDefinition$Target": "

The target resource specified for a repository sync definition. In some cases, such as CFN_STACK_SYNC, the parent and target resource are the same.

", + "ResourceSyncAttempt$Target": "

The name of the Amazon Web Services resource that is attempted to be synchronized.

" + } + }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "RepositorySyncAttempt$StartedAt": "

The start time of a specific sync attempt.

", + "RepositorySyncEvent$Time": "

The time that a repository sync event occurred.

", + "ResourceSyncAttempt$StartedAt": "

The start time for a resource sync attempt.

", + "ResourceSyncEvent$Time": "

The time that a resource sync event occurred.

", + "SyncBlocker$CreatedAt": "

The creation time for a specific sync blocker.

", + "SyncBlocker$ResolvedAt": "

The time that a specific sync blocker was resolved.

" + } + }, "TlsCertificate": { "base": null, "refs": { "VpcConfiguration$TlsCertificate": "

The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed.

" } }, + "Type": { + "base": null, + "refs": { + "RepositorySyncEvent$Type": "

The event type for a repository sync event.

", + "ResourceSyncEvent$Type": "

The type of resource sync event.

" + } + }, "UnsupportedOperationException": { "base": "

The operation is not supported. Check the connection status and try again.

", "refs": { } }, + "UnsupportedProviderTypeException": { + "base": "

The specified provider type is not supported for connections.

", + "refs": { + } + }, "UntagResourceInput": { "base": null, "refs": { @@ -359,6 +919,41 @@ "refs": { } }, + "UpdateOutOfSyncException": { + "base": "

The update is out of sync. Try syncing again.

", + "refs": { + } + }, + "UpdateRepositoryLinkInput": { + "base": null, + "refs": { + } + }, + "UpdateRepositoryLinkOutput": { + "base": null, + "refs": { + } + }, + "UpdateSyncBlockerInput": { + "base": null, + "refs": { + } + }, + "UpdateSyncBlockerOutput": { + "base": null, + "refs": { + } + }, + "UpdateSyncConfigurationInput": { + "base": null, + "refs": { + } + }, + "UpdateSyncConfigurationOutput": { + "base": null, + "refs": { + } + }, "Url": { "base": null, "refs": { diff --git a/models/apis/codestar-connections/2019-12-01/paginators-1.json b/models/apis/codestar-connections/2019-12-01/paginators-1.json index 1b3698862ca..11686affe88 100644 --- a/models/apis/codestar-connections/2019-12-01/paginators-1.json +++ b/models/apis/codestar-connections/2019-12-01/paginators-1.json @@ -9,6 +9,16 @@ "input_token": "NextToken", "output_token": "NextToken", "limit_key": "MaxResults" + }, + "ListRepositoryLinks": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListSyncConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" } } } diff --git a/models/apis/compute-optimizer/2019-11-01/api-2.json b/models/apis/compute-optimizer/2019-11-01/api-2.json index 89dce5617ac..80a5986d267 100644 --- a/models/apis/compute-optimizer/2019-11-01/api-2.json +++ b/models/apis/compute-optimizer/2019-11-01/api-2.json @@ -492,6 +492,13 @@ "instanceType":{"shape":"InstanceType"} } }, + "AutoScalingGroupEstimatedMonthlySavings":{ + "type":"structure", + "members":{ + "currency":{"shape":"Currency"}, + "value":{"shape":"Value"} + } + }, "AutoScalingGroupName":{"type":"string"}, "AutoScalingGroupRecommendation":{ "type":"structure", @@ -520,7 +527,8 @@ "rank":{"shape":"Rank"}, "savingsOpportunity":{"shape":"SavingsOpportunity"}, "migrationEffort":{"shape":"MigrationEffort"}, - "instanceGpuInfo":{"shape":"GpuInfo"} + "instanceGpuInfo":{"shape":"GpuInfo"}, + "savingsOpportunityAfterDiscounts":{"shape":"AutoScalingGroupSavingsOpportunityAfterDiscounts"} } }, "AutoScalingGroupRecommendationOptions":{ @@ -531,6 +539,13 @@ "type":"list", "member":{"shape":"AutoScalingGroupRecommendation"} }, + "AutoScalingGroupSavingsOpportunityAfterDiscounts":{ + "type":"structure", + "members":{ + "savingsOpportunityPercentage":{"shape":"SavingsOpportunityPercentage"}, + "estimatedMonthlySavings":{"shape":"AutoScalingGroupEstimatedMonthlySavings"} + } + }, "Code":{"type":"string"}, "ContainerConfiguration":{ "type":"structure", @@ -596,6 +611,33 @@ "veryLow":{"shape":"VeryLow"} } }, + "CustomizableMetricHeadroom":{ + "type":"string", + "enum":[ + "PERCENT_30", + "PERCENT_20", + "PERCENT_0" + ] + }, + "CustomizableMetricName":{ + "type":"string", + "enum":["CpuUtilization"] + }, + "CustomizableMetricParameters":{ + "type":"structure", + "members":{ + "threshold":{"shape":"CustomizableMetricThreshold"}, + "headroom":{"shape":"CustomizableMetricHeadroom"} + } + }, + "CustomizableMetricThreshold":{ + "type":"string", + "enum":[ + "P90", + "P95", + "P99_5" + ] + }, "DeleteRecommendationPreferencesRequest":{ "type":"structure", "required":[ @@ -633,6 +675,19 @@ "DestinationBucket":{"type":"string"}, "DestinationKey":{"type":"string"}, "DestinationKeyPrefix":{"type":"string"}, + "EBSEffectiveRecommendationPreferences":{ + "type":"structure", + "members":{ + "savingsEstimationMode":{"shape":"EBSSavingsEstimationMode"} + } + }, + "EBSEstimatedMonthlySavings":{ + "type":"structure", + "members":{ + "currency":{"shape":"Currency"}, + "value":{"shape":"Value"} + } + }, "EBSFilter":{ "type":"structure", "members":{ @@ -664,6 +719,27 @@ "VolumeWriteBytesPerSecond" ] }, + "EBSSavingsEstimationMode":{ + "type":"structure", + "members":{ + "source":{"shape":"EBSSavingsEstimationModeSource"} + } + }, + "EBSSavingsEstimationModeSource":{ + "type":"string", + "enum":[ + "PublicPricing", + "CostExplorerRightsizing", + "CostOptimizationHub" + ] + }, + "EBSSavingsOpportunityAfterDiscounts":{ + "type":"structure", + "members":{ + "savingsOpportunityPercentage":{"shape":"SavingsOpportunityPercentage"}, + "estimatedMonthlySavings":{"shape":"EBSEstimatedMonthlySavings"} + } + }, "EBSUtilizationMetric":{ "type":"structure", "members":{ @@ -676,6 +752,40 @@ "type":"list", "member":{"shape":"EBSUtilizationMetric"} }, + "ECSEffectiveRecommendationPreferences":{ + "type":"structure", + "members":{ + "savingsEstimationMode":{"shape":"ECSSavingsEstimationMode"} + } + }, + "ECSEstimatedMonthlySavings":{ + "type":"structure", + "members":{ + "currency":{"shape":"Currency"}, + "value":{"shape":"Value"} + } + }, + "ECSSavingsEstimationMode":{ + "type":"structure", + "members":{ + "source":{"shape":"ECSSavingsEstimationModeSource"} + } + }, + "ECSSavingsEstimationModeSource":{ + "type":"string", + "enum":[ + "PublicPricing", + "CostExplorerRightsizing", + "CostOptimizationHub" + ] + }, + "ECSSavingsOpportunityAfterDiscounts":{ + "type":"structure", + "members":{ + "savingsOpportunityPercentage":{"shape":"SavingsOpportunityPercentage"}, + "estimatedMonthlySavings":{"shape":"ECSEstimatedMonthlySavings"} + } + }, "ECSServiceLaunchType":{ "type":"string", "enum":[ @@ -737,7 +847,8 @@ "findingReasonCodes":{"shape":"ECSServiceRecommendationFindingReasonCodes"}, "serviceRecommendationOptions":{"shape":"ECSServiceRecommendationOptions"}, "currentPerformanceRisk":{"shape":"CurrentPerformanceRisk"}, - "tags":{"shape":"Tags"} + "tags":{"shape":"Tags"}, + "effectiveRecommendationPreferences":{"shape":"ECSEffectiveRecommendationPreferences"} } }, "ECSServiceRecommendationFilter":{ @@ -786,7 +897,8 @@ "cpu":{"shape":"NullableCpu"}, "savingsOpportunity":{"shape":"SavingsOpportunity"}, "projectedUtilizationMetrics":{"shape":"ECSServiceProjectedUtilizationMetrics"}, - "containerRecommendations":{"shape":"ContainerRecommendations"} + "containerRecommendations":{"shape":"ContainerRecommendations"}, + "savingsOpportunityAfterDiscounts":{"shape":"ECSSavingsOpportunityAfterDiscounts"} } }, "ECSServiceRecommendationOptions":{ @@ -821,13 +933,30 @@ "type":"list", "member":{"shape":"ECSServiceUtilizationMetric"} }, + "EffectivePreferredResource":{ + "type":"structure", + "members":{ + "name":{"shape":"PreferredResourceName"}, + "includeList":{"shape":"PreferredResourceValues"}, + "effectiveIncludeList":{"shape":"PreferredResourceValues"}, + "excludeList":{"shape":"PreferredResourceValues"} + } + }, + "EffectivePreferredResources":{ + "type":"list", + "member":{"shape":"EffectivePreferredResource"} + }, "EffectiveRecommendationPreferences":{ "type":"structure", "members":{ "cpuVendorArchitectures":{"shape":"CpuVendorArchitectures"}, "enhancedInfrastructureMetrics":{"shape":"EnhancedInfrastructureMetrics"}, "inferredWorkloadTypes":{"shape":"InferredWorkloadTypesPreference"}, - "externalMetricsPreference":{"shape":"ExternalMetricsPreference"} + "externalMetricsPreference":{"shape":"ExternalMetricsPreference"}, + "lookBackPeriod":{"shape":"LookBackPeriodPreference"}, + "utilizationPreferences":{"shape":"UtilizationPreferences"}, + "preferredResources":{"shape":"EffectivePreferredResources"}, + "savingsEstimationMode":{"shape":"InstanceSavingsEstimationMode"} } }, "EnhancedInfrastructureMetrics":{ @@ -1044,7 +1173,13 @@ "UtilizationMetricsGpuPercentageMaximum", "UtilizationMetricsGpuMemoryPercentageMaximum", "RecommendationOptionsProjectedUtilizationMetricsGpuPercentageMaximum", - "RecommendationOptionsProjectedUtilizationMetricsGpuMemoryPercentageMaximum" + "RecommendationOptionsProjectedUtilizationMetricsGpuMemoryPercentageMaximum", + "EffectiveRecommendationPreferencesSavingsEstimationMode", + "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage", + "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts", + "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts", + "EffectiveRecommendationPreferencesPreferredResources", + "EffectiveRecommendationPreferencesLookBackPeriod" ] }, "ExportableAutoScalingGroupFields":{ @@ -1077,7 +1212,11 @@ "RecommendationOptionsContainerRecommendations", "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum", "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum", - "Tags" + "Tags", + "EffectiveRecommendationPreferencesSavingsEstimationMode", + "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage", + "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts", + "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" ] }, "ExportableECSServiceFields":{ @@ -1150,7 +1289,14 @@ "UtilizationMetricsGpuMemoryPercentageMaximum", "RecommendationOptionsProjectedUtilizationMetricsGpuPercentageMaximum", "RecommendationOptionsProjectedUtilizationMetricsGpuMemoryPercentageMaximum", - "Idle" + "Idle", + "EffectiveRecommendationPreferencesPreferredResources", + "EffectiveRecommendationPreferencesLookBackPeriod", + "EffectiveRecommendationPreferencesUtilizationPreferences", + "EffectiveRecommendationPreferencesSavingsEstimationMode", + "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage", + "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts", + "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" ] }, "ExportableInstanceFields":{ @@ -1186,7 +1332,11 @@ "RecommendationOptionsSavingsOpportunityPercentage", "RecommendationOptionsEstimatedMonthlySavingsCurrency", "RecommendationOptionsEstimatedMonthlySavingsValue", - "Tags" + "Tags", + "EffectiveRecommendationPreferencesSavingsEstimationMode", + "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage", + "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts", + "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" ] }, "ExportableLambdaFunctionFields":{ @@ -1256,7 +1406,11 @@ "RecommendationOptionsEstimatedMonthlySavingsValue", "RootVolume", "Tags", - "CurrentConfigurationRootVolume" + "CurrentConfigurationRootVolume", + "EffectiveRecommendationPreferencesSavingsEstimationMode", + "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage", + "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts", + "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" ] }, "ExportableVolumeFields":{ @@ -1485,7 +1639,10 @@ "type":"structure", "members":{ "enhancedInfrastructureMetrics":{"shape":"EnhancedInfrastructureMetrics"}, - "externalMetricsPreference":{"shape":"ExternalMetricsPreference"} + "externalMetricsPreference":{"shape":"ExternalMetricsPreference"}, + "lookBackPeriod":{"shape":"LookBackPeriodPreference"}, + "utilizationPreferences":{"shape":"UtilizationPreferences"}, + "preferredResources":{"shape":"EffectivePreferredResources"} } }, "GetEnrollmentStatusRequest":{ @@ -1660,6 +1817,13 @@ "type":"list", "member":{"shape":"InstanceArn"} }, + "InstanceEstimatedMonthlySavings":{ + "type":"structure", + "members":{ + "currency":{"shape":"Currency"}, + "value":{"shape":"Value"} + } + }, "InstanceIdle":{ "type":"string", "enum":[ @@ -1731,13 +1895,35 @@ "rank":{"shape":"Rank"}, "savingsOpportunity":{"shape":"SavingsOpportunity"}, "migrationEffort":{"shape":"MigrationEffort"}, - "instanceGpuInfo":{"shape":"GpuInfo"} + "instanceGpuInfo":{"shape":"GpuInfo"}, + "savingsOpportunityAfterDiscounts":{"shape":"InstanceSavingsOpportunityAfterDiscounts"} } }, "InstanceRecommendations":{ "type":"list", "member":{"shape":"InstanceRecommendation"} }, + "InstanceSavingsEstimationMode":{ + "type":"structure", + "members":{ + "source":{"shape":"InstanceSavingsEstimationModeSource"} + } + }, + "InstanceSavingsEstimationModeSource":{ + "type":"string", + "enum":[ + "PublicPricing", + "CostExplorerRightsizing", + "CostOptimizationHub" + ] + }, + "InstanceSavingsOpportunityAfterDiscounts":{ + "type":"structure", + "members":{ + "savingsOpportunityPercentage":{"shape":"SavingsOpportunityPercentage"}, + "estimatedMonthlySavings":{"shape":"InstanceEstimatedMonthlySavings"} + } + }, "InstanceState":{ "type":"string", "enum":[ @@ -1798,6 +1984,19 @@ "Failed" ] }, + "LambdaEffectiveRecommendationPreferences":{ + "type":"structure", + "members":{ + "savingsEstimationMode":{"shape":"LambdaSavingsEstimationMode"} + } + }, + "LambdaEstimatedMonthlySavings":{ + "type":"structure", + "members":{ + "currency":{"shape":"Currency"}, + "value":{"shape":"Value"} + } + }, "LambdaFunctionMemoryMetricName":{ "type":"string", "enum":["Duration"] @@ -1828,7 +2027,8 @@ "rank":{"shape":"Rank"}, "memorySize":{"shape":"MemorySize"}, "projectedUtilizationMetrics":{"shape":"LambdaFunctionMemoryProjectedMetrics"}, - "savingsOpportunity":{"shape":"SavingsOpportunity"} + "savingsOpportunity":{"shape":"SavingsOpportunity"}, + "savingsOpportunityAfterDiscounts":{"shape":"LambdaSavingsOpportunityAfterDiscounts"} } }, "LambdaFunctionMemoryRecommendationOptions":{ @@ -1864,7 +2064,8 @@ "findingReasonCodes":{"shape":"LambdaFunctionRecommendationFindingReasonCodes"}, "memorySizeRecommendationOptions":{"shape":"LambdaFunctionMemoryRecommendationOptions"}, "currentPerformanceRisk":{"shape":"CurrentPerformanceRisk"}, - "tags":{"shape":"Tags"} + "tags":{"shape":"Tags"}, + "effectiveRecommendationPreferences":{"shape":"LambdaEffectiveRecommendationPreferences"} } }, "LambdaFunctionRecommendationFilter":{ @@ -1922,6 +2123,27 @@ "type":"list", "member":{"shape":"LambdaFunctionUtilizationMetric"} }, + "LambdaSavingsEstimationMode":{ + "type":"structure", + "members":{ + "source":{"shape":"LambdaSavingsEstimationModeSource"} + } + }, + "LambdaSavingsEstimationModeSource":{ + "type":"string", + "enum":[ + "PublicPricing", + "CostExplorerRightsizing", + "CostOptimizationHub" + ] + }, + "LambdaSavingsOpportunityAfterDiscounts":{ + "type":"structure", + "members":{ + "savingsOpportunityPercentage":{"shape":"SavingsOpportunityPercentage"}, + "estimatedMonthlySavings":{"shape":"LambdaEstimatedMonthlySavings"} + } + }, "LastRefreshTimestamp":{"type":"timestamp"}, "LastUpdatedTimestamp":{"type":"timestamp"}, "LicenseConfiguration":{ @@ -2039,6 +2261,14 @@ "synthetic":true }, "LookBackPeriodInDays":{"type":"double"}, + "LookBackPeriodPreference":{ + "type":"string", + "enum":[ + "DAYS_14", + "DAYS_32", + "DAYS_93" + ] + }, "Low":{"type":"long"}, "LowerBoundValue":{"type":"double"}, "MaxResults":{ @@ -2164,6 +2394,27 @@ "type":"list", "member":{"shape":"PlatformDifference"} }, + "PreferredResource":{ + "type":"structure", + "members":{ + "name":{"shape":"PreferredResourceName"}, + "includeList":{"shape":"PreferredResourceValues"}, + "excludeList":{"shape":"PreferredResourceValues"} + } + }, + "PreferredResourceName":{ + "type":"string", + "enum":["Ec2InstanceTypes"] + }, + "PreferredResourceValue":{"type":"string"}, + "PreferredResourceValues":{ + "type":"list", + "member":{"shape":"PreferredResourceValue"} + }, + "PreferredResources":{ + "type":"list", + "member":{"shape":"PreferredResource"} + }, "ProjectedMetric":{ "type":"structure", "members":{ @@ -2188,7 +2439,11 @@ "scope":{"shape":"Scope"}, "enhancedInfrastructureMetrics":{"shape":"EnhancedInfrastructureMetrics"}, "inferredWorkloadTypes":{"shape":"InferredWorkloadTypesPreference"}, - "externalMetricsPreference":{"shape":"ExternalMetricsPreference"} + "externalMetricsPreference":{"shape":"ExternalMetricsPreference"}, + "lookBackPeriod":{"shape":"LookBackPeriodPreference"}, + "utilizationPreferences":{"shape":"UtilizationPreferences"}, + "preferredResources":{"shape":"PreferredResources"}, + "savingsEstimationMode":{"shape":"SavingsEstimationMode"} } }, "PutRecommendationPreferencesResponse":{ @@ -2233,7 +2488,10 @@ "enum":[ "EnhancedInfrastructureMetrics", "InferredWorkloadTypes", - "ExternalMetricsPreference" + "ExternalMetricsPreference", + "LookBackPeriodPreference", + "PreferredResources", + "UtilizationPreferences" ] }, "RecommendationPreferenceNames":{ @@ -2253,7 +2511,11 @@ "resourceType":{"shape":"ResourceType"}, "enhancedInfrastructureMetrics":{"shape":"EnhancedInfrastructureMetrics"}, "inferredWorkloadTypes":{"shape":"InferredWorkloadTypesPreference"}, - "externalMetricsPreference":{"shape":"ExternalMetricsPreference"} + "externalMetricsPreference":{"shape":"ExternalMetricsPreference"}, + "lookBackPeriod":{"shape":"LookBackPeriodPreference"}, + "utilizationPreferences":{"shape":"UtilizationPreferences"}, + "preferredResources":{"shape":"EffectivePreferredResources"}, + "savingsEstimationMode":{"shape":"SavingsEstimationMode"} } }, "RecommendationPreferencesDetails":{ @@ -2352,6 +2614,13 @@ "keyPrefix":{"shape":"DestinationKeyPrefix"} } }, + "SavingsEstimationMode":{ + "type":"string", + "enum":[ + "AfterDiscounts", + "BeforeDiscounts" + ] + }, "SavingsOpportunity":{ "type":"structure", "members":{ @@ -2478,6 +2747,17 @@ "type":"list", "member":{"shape":"UtilizationMetric"} }, + "UtilizationPreference":{ + "type":"structure", + "members":{ + "metricName":{"shape":"CustomizableMetricName"}, + "metricParameters":{"shape":"CustomizableMetricParameters"} + } + }, + "UtilizationPreferences":{ + "type":"list", + "member":{"shape":"UtilizationPreference"} + }, "Value":{"type":"double"}, "VeryLow":{"type":"long"}, "VolumeArn":{"type":"string"}, @@ -2513,7 +2793,8 @@ "volumeRecommendationOptions":{"shape":"VolumeRecommendationOptions"}, "lastRefreshTimestamp":{"shape":"LastRefreshTimestamp"}, "currentPerformanceRisk":{"shape":"CurrentPerformanceRisk"}, - "tags":{"shape":"Tags"} + "tags":{"shape":"Tags"}, + "effectiveRecommendationPreferences":{"shape":"EBSEffectiveRecommendationPreferences"} } }, "VolumeRecommendationOption":{ @@ -2522,7 +2803,8 @@ "configuration":{"shape":"VolumeConfiguration"}, "performanceRisk":{"shape":"PerformanceRisk"}, "rank":{"shape":"Rank"}, - "savingsOpportunity":{"shape":"SavingsOpportunity"} + "savingsOpportunity":{"shape":"SavingsOpportunity"}, + "savingsOpportunityAfterDiscounts":{"shape":"EBSSavingsOpportunityAfterDiscounts"} } }, "VolumeRecommendationOptions":{ diff --git a/models/apis/compute-optimizer/2019-11-01/docs-2.json b/models/apis/compute-optimizer/2019-11-01/docs-2.json index 5aae4cc54e9..c56007a3779 100644 --- a/models/apis/compute-optimizer/2019-11-01/docs-2.json +++ b/models/apis/compute-optimizer/2019-11-01/docs-2.json @@ -102,6 +102,12 @@ "AutoScalingGroupRecommendationOption$configuration": "

An array of objects that describe an Auto Scaling group configuration.

" } }, + "AutoScalingGroupEstimatedMonthlySavings": { + "base": "

An object that describes the estimated monthly savings possible by adopting Compute Optimizer’s Auto Scaling group recommendations. This is based on the Savings Plans and Reserved Instances discounts.

", + "refs": { + "AutoScalingGroupSavingsOpportunityAfterDiscounts$estimatedMonthlySavings": "

An object that describes the estimated monthly savings possible by adopting Compute Optimizer’s Auto Scaling group recommendations. This is based on the Savings Plans and Reserved Instances pricing discounts.

" + } + }, "AutoScalingGroupName": { "base": null, "refs": { @@ -132,6 +138,12 @@ "GetAutoScalingGroupRecommendationsResponse$autoScalingGroupRecommendations": "

An array of objects that describe Auto Scaling group recommendations.

" } }, + "AutoScalingGroupSavingsOpportunityAfterDiscounts": { + "base": "

Describes the savings opportunity for Auto Scaling group recommendations after applying the Savings Plans and Reserved Instances discounts.

Savings opportunity represents the estimated monthly savings you can achieve by implementing Compute Optimizer recommendations.

", + "refs": { + "AutoScalingGroupRecommendationOption$savingsOpportunityAfterDiscounts": "

An object that describes the savings opportunity for the Auto Scaling group recommendation option that includes Savings Plans and Reserved Instances discounts. Savings opportunity includes the estimated monthly savings and percentage.

" + } + }, "Code": { "base": null, "refs": { @@ -197,7 +209,12 @@ "Currency": { "base": null, "refs": { - "EstimatedMonthlySavings$currency": "

The currency of the estimated monthly savings.

" + "AutoScalingGroupEstimatedMonthlySavings$currency": "

The currency of the estimated monthly savings.

", + "EBSEstimatedMonthlySavings$currency": "

The currency of the estimated monthly savings.

", + "ECSEstimatedMonthlySavings$currency": "

The currency of the estimated monthly savings.

", + "EstimatedMonthlySavings$currency": "

The currency of the estimated monthly savings.

", + "InstanceEstimatedMonthlySavings$currency": "

The currency of the estimated monthly savings.

", + "LambdaEstimatedMonthlySavings$currency": "

The currency of the estimated monthly savings.

" } }, "CurrentInstanceType": { @@ -222,6 +239,30 @@ "RecommendationSummary$currentPerformanceRiskRatings": "

An object that describes the performance risk ratings for a given resource type.

" } }, + "CustomizableMetricHeadroom": { + "base": null, + "refs": { + "CustomizableMetricParameters$headroom": "

The headroom threshold value in percentage used for the specified metric parameter.

" + } + }, + "CustomizableMetricName": { + "base": null, + "refs": { + "UtilizationPreference$metricName": "

The name of the resource utilization metric name to customize.

Compute Optimizer only supports CpuUtilization.

" + } + }, + "CustomizableMetricParameters": { + "base": "

Defines the various metric parameters that can be customized, such as threshold and headroom.

", + "refs": { + "UtilizationPreference$metricParameters": "

The parameters to set when customizing the resource utilization thresholds.

" + } + }, + "CustomizableMetricThreshold": { + "base": null, + "refs": { + "CustomizableMetricParameters$threshold": "

The threshold value used for the specified metric parameter.

" + } + }, "DeleteRecommendationPreferencesRequest": { "base": null, "refs": { @@ -267,6 +308,18 @@ "S3DestinationConfig$keyPrefix": "

The Amazon S3 bucket prefix for an export job.

" } }, + "EBSEffectiveRecommendationPreferences": { + "base": "

Describes the effective recommendation preferences for Amazon EBS volumes.

", + "refs": { + "VolumeRecommendation$effectiveRecommendationPreferences": "

Describes the effective recommendation preferences for Amazon EBS volume.

" + } + }, + "EBSEstimatedMonthlySavings": { + "base": "

An object that describes the estimated monthly savings possible by adopting Compute Optimizer’s Amazon EBS volume recommendations. This includes any applicable discounts.

", + "refs": { + "EBSSavingsOpportunityAfterDiscounts$estimatedMonthlySavings": "

The estimated monthly savings possible as a percentage of monthly cost by adopting Compute Optimizer’s Amazon EBS volume recommendations. This saving includes any applicable discounts.

" + } + }, "EBSFilter": { "base": "

Describes a filter that returns a more specific list of Amazon Elastic Block Store (Amazon EBS) volume recommendations. Use this filter with the GetEBSVolumeRecommendations action.

You can use LambdaFunctionRecommendationFilter with the GetLambdaFunctionRecommendations action, JobFilter with the DescribeRecommendationExportJobs action, and Filter with the GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations actions.

", "refs": { @@ -298,6 +351,24 @@ "EBSUtilizationMetric$name": "

The name of the utilization metric.

The following utilization metrics are available:

" } }, + "EBSSavingsEstimationMode": { + "base": "

Describes the savings estimation mode used for calculating savings opportunity for Amazon EBS volumes.

", + "refs": { + "EBSEffectiveRecommendationPreferences$savingsEstimationMode": "

Describes the savings estimation mode preference applied for calculating savings opportunity for Amazon EBS volumes.

" + } + }, + "EBSSavingsEstimationModeSource": { + "base": null, + "refs": { + "EBSSavingsEstimationMode$source": "

Describes the source for calculating the savings opportunity for Amazon EBS volumes.

" + } + }, + "EBSSavingsOpportunityAfterDiscounts": { + "base": "

Describes the savings opportunity for Amazon EBS volume recommendations after applying specific discounts.

", + "refs": { + "VolumeRecommendationOption$savingsOpportunityAfterDiscounts": "

An object that describes the savings opportunity for the Amazon EBS volume recommendation option with specific discounts. Savings opportunity includes the estimated monthly savings and percentage.

" + } + }, "EBSUtilizationMetric": { "base": "

Describes a utilization metric of an Amazon Elastic Block Store (Amazon EBS) volume.

Compare the utilization metric data of your resource against its projected utilization metric data to determine the performance difference between your current resource and the recommended option.

", "refs": { @@ -310,6 +381,36 @@ "VolumeRecommendation$utilizationMetrics": "

An array of objects that describe the utilization metrics of the volume.

" } }, + "ECSEffectiveRecommendationPreferences": { + "base": "

Describes the effective recommendation preferences for Amazon ECS services.

", + "refs": { + "ECSServiceRecommendation$effectiveRecommendationPreferences": "

Describes the effective recommendation preferences for Amazon ECS services.

" + } + }, + "ECSEstimatedMonthlySavings": { + "base": "

Describes the estimated monthly savings possible for Amazon ECS services by adopting Compute Optimizer recommendations. This is based on Amazon ECS service pricing after applying Savings Plans discounts.

", + "refs": { + "ECSSavingsOpportunityAfterDiscounts$estimatedMonthlySavings": "

The estimated monthly savings possible by adopting Compute Optimizer’s Amazon ECS service recommendations. This includes any applicable Savings Plans discounts.

" + } + }, + "ECSSavingsEstimationMode": { + "base": "

Describes the savings estimation mode used for calculating savings opportunity for Amazon ECS services.

", + "refs": { + "ECSEffectiveRecommendationPreferences$savingsEstimationMode": "

Describes the savings estimation mode preference applied for calculating savings opportunity for Amazon ECS services.

" + } + }, + "ECSSavingsEstimationModeSource": { + "base": null, + "refs": { + "ECSSavingsEstimationMode$source": "

Describes the source for calculating the savings opportunity for Amazon ECS services.

" + } + }, + "ECSSavingsOpportunityAfterDiscounts": { + "base": "

Describes the savings opportunity for Amazon ECS service recommendations after applying Savings Plans discounts.

Savings opportunity represents the estimated monthly savings after applying Savings Plans discounts. You can achieve this by implementing a given Compute Optimizer recommendation.

", + "refs": { + "ECSServiceRecommendationOption$savingsOpportunityAfterDiscounts": "

Describes the savings opportunity for Amazon ECS service recommendations or for the recommendation option.

Savings opportunity represents the estimated monthly savings after applying Savings Plans discounts. You can achieve this by implementing a given Compute Optimizer recommendation.

" + } + }, "ECSServiceLaunchType": { "base": null, "refs": { @@ -440,6 +541,20 @@ "ECSServiceRecommendation$utilizationMetrics": "

An array of objects that describe the utilization metrics of the Amazon ECS service.

" } }, + "EffectivePreferredResource": { + "base": "

Describes the effective preferred resources that Compute Optimizer considers as rightsizing recommendation candidates.

Compute Optimizer only supports Amazon EC2 instance types.

", + "refs": { + "EffectivePreferredResources$member": null + } + }, + "EffectivePreferredResources": { + "base": null, + "refs": { + "EffectiveRecommendationPreferences$preferredResources": "

The resource type values that are considered as candidates when generating rightsizing recommendations.

", + "GetEffectiveRecommendationPreferencesResponse$preferredResources": "

The resource type values that are considered as candidates when generating rightsizing recommendations. This object resolves any wildcard expressions and returns the effective list of candidate resource type values. It also considers all applicable preferences that you set at the resource, account, and organization level.

To validate that the preference is applied to your last generated set of recommendations, review the effectiveRecommendationPreferences value in the response of the GetAutoScalingGroupRecommendations or GetEC2InstanceRecommendations actions.

", + "RecommendationPreferencesDetail$preferredResources": "

The preference to control which resource type values are considered when generating rightsizing recommendations. This object resolves any wildcard expressions and returns the effective list of candidate resource type values. If the preference isn’t set, this object is null.

" + } + }, "EffectiveRecommendationPreferences": { "base": "

Describes the effective recommendation preferences for a resource.

", "refs": { @@ -1006,6 +1121,12 @@ "GetEC2InstanceRecommendationsRequest$instanceArns": "

The Amazon Resource Name (ARN) of the instances for which to return recommendations.

" } }, + "InstanceEstimatedMonthlySavings": { + "base": "

An object that describes the estimated monthly savings possible by adopting Compute Optimizer’s Amazon EC2 instance recommendations. This is based on the Savings Plans and Reserved Instances pricing discounts.

", + "refs": { + "InstanceSavingsOpportunityAfterDiscounts$estimatedMonthlySavings": "

An object that describes the estimated monthly savings possible by adopting Compute Optimizer’s Amazon EC2 instance recommendations. This is based on pricing after applying the Savings Plans and Reserved Instances discounts.

" + } + }, "InstanceIdle": { "base": null, "refs": { @@ -1048,6 +1169,24 @@ "GetEC2InstanceRecommendationsResponse$instanceRecommendations": "

An array of objects that describe instance recommendations.

" } }, + "InstanceSavingsEstimationMode": { + "base": "

Describes the savings estimation mode used for calculating savings opportunity for Amazon EC2 instances.

", + "refs": { + "EffectiveRecommendationPreferences$savingsEstimationMode": "

Describes the savings estimation mode applied for calculating savings opportunity for a resource.

" + } + }, + "InstanceSavingsEstimationModeSource": { + "base": null, + "refs": { + "InstanceSavingsEstimationMode$source": "

Describes the source for calculating the savings opportunity for Amazon EC2 instances.

" + } + }, + "InstanceSavingsOpportunityAfterDiscounts": { + "base": "

Describes the savings opportunity for instance recommendations after applying the Savings Plans and Reserved Instances discounts.

Savings opportunity after discounts represents the estimated monthly savings you can achieve by implementing Compute Optimizer recommendations.

", + "refs": { + "InstanceRecommendationOption$savingsOpportunityAfterDiscounts": "

An object that describes the savings opportunity for the instance recommendation option that includes Savings Plans and Reserved Instances discounts. Savings opportunity includes the estimated monthly savings and percentage.

" + } + }, "InstanceState": { "base": null, "refs": { @@ -1115,6 +1254,18 @@ "RecommendationExportJob$status": "

The status of the export job.

" } }, + "LambdaEffectiveRecommendationPreferences": { + "base": "

Describes the effective recommendation preferences for Lambda functions.

", + "refs": { + "LambdaFunctionRecommendation$effectiveRecommendationPreferences": "

Describes the effective recommendation preferences for Lambda functions.

" + } + }, + "LambdaEstimatedMonthlySavings": { + "base": "

Describes the estimated monthly savings possible for Lambda functions by adopting Compute Optimizer recommendations. This is based on Lambda functions pricing after applying Savings Plans discounts.

", + "refs": { + "LambdaSavingsOpportunityAfterDiscounts$estimatedMonthlySavings": "

The estimated monthly savings possible by adopting Compute Optimizer’s Lambda function recommendations. This includes any applicable Savings Plans discounts.

" + } + }, "LambdaFunctionMemoryMetricName": { "base": null, "refs": { @@ -1224,6 +1375,24 @@ "LambdaFunctionRecommendation$utilizationMetrics": "

An array of objects that describe the utilization metrics of the function.

" } }, + "LambdaSavingsEstimationMode": { + "base": "

Describes the savings estimation used for calculating savings opportunity for Lambda functions.

", + "refs": { + "LambdaEffectiveRecommendationPreferences$savingsEstimationMode": "

Describes the savings estimation mode applied for calculating savings opportunity for Lambda functions.

" + } + }, + "LambdaSavingsEstimationModeSource": { + "base": null, + "refs": { + "LambdaSavingsEstimationMode$source": "

Describes the source for calculation of savings opportunity for Lambda functions.

" + } + }, + "LambdaSavingsOpportunityAfterDiscounts": { + "base": "

Describes the savings opportunity for Lambda functions recommendations after applying Savings Plans discounts.

Savings opportunity represents the estimated monthly savings after applying Savings Plans discounts. You can achieve this by implementing a given Compute Optimizer recommendation.

", + "refs": { + "LambdaFunctionMemoryRecommendationOption$savingsOpportunityAfterDiscounts": "

An object that describes the savings opportunity for the Lambda recommendation option which includes Saving Plans discounts. Savings opportunity includes the estimated monthly savings and percentage.

" + } + }, "LastRefreshTimestamp": { "base": null, "refs": { @@ -1352,6 +1521,15 @@ "VolumeRecommendation$lookBackPeriodInDays": "

The number of days for which utilization metrics were analyzed for the volume.

" } }, + "LookBackPeriodPreference": { + "base": null, + "refs": { + "EffectiveRecommendationPreferences$lookBackPeriod": "

The number of days the utilization metrics of the Amazon Web Services resource are analyzed.

", + "GetEffectiveRecommendationPreferencesResponse$lookBackPeriod": "

The number of days the utilization metrics of the Amazon Web Services resource are analyzed.

To validate that the preference is applied to your last generated set of recommendations, review the effectiveRecommendationPreferences value in the response of the GetAutoScalingGroupRecommendations or GetEC2InstanceRecommendations actions.

", + "PutRecommendationPreferencesRequest$lookBackPeriod": "

The preference to control the number of days the utilization metrics of the Amazon Web Services resource are analyzed. When this preference isn't specified, we use the default value DAYS_14.

You can only set this preference for the Amazon EC2 instance and Auto Scaling group resource types.

", + "RecommendationPreferencesDetail$lookBackPeriod": "

The preference to control the number of days the utilization metrics of the Amazon Web Services resource are analyzed. If the preference isn’t set, this object is null.

" + } + }, "Low": { "base": null, "refs": { @@ -1606,6 +1784,41 @@ "InstanceRecommendationOption$platformDifferences": "

Describes the configuration differences between the current instance and the recommended instance type. You should consider the configuration differences before migrating your workloads from the current instance to the recommended instance type. The Change the instance type guide for Linux and Change the instance type guide for Windows provide general guidance for getting started with an instance migration.

Platform differences include:

" } }, + "PreferredResource": { + "base": "

The preference to control which resource type values are considered when generating rightsizing recommendations. You can specify this preference as a combination of include and exclude lists. You must specify either an includeList or excludeList. If the preference is an empty set of resource type values, an error occurs. For more information, see Rightsizing recommendation preferences in the Compute Optimizer User Guide.

", + "refs": { + "PreferredResources$member": null + } + }, + "PreferredResourceName": { + "base": null, + "refs": { + "EffectivePreferredResource$name": "

The name of the preferred resource list.

", + "PreferredResource$name": "

The type of preferred resource to customize.

Compute Optimizer only supports the customization of Ec2InstanceTypes.

" + } + }, + "PreferredResourceValue": { + "base": null, + "refs": { + "PreferredResourceValues$member": null + } + }, + "PreferredResourceValues": { + "base": null, + "refs": { + "EffectivePreferredResource$includeList": "

The list of preferred resource values that you want considered as rightsizing recommendation candidates.

", + "EffectivePreferredResource$effectiveIncludeList": "

The expanded version of your preferred resource's include list.

", + "EffectivePreferredResource$excludeList": "

The list of preferred resources values that you want excluded from rightsizing recommendation candidates.

", + "PreferredResource$includeList": "

The preferred resource type values to include in the recommendation candidates. You can specify the exact resource type value, such as m5.large, or use wild card expressions, such as m5. If this isn’t specified, all supported resources are included by default. You can specify up to 1000 values in this list.

", + "PreferredResource$excludeList": "

The preferred resource type values to exclude from the recommendation candidates. If this isn’t specified, all supported resources are included by default. You can specify up to 1000 values in this list.

" + } + }, + "PreferredResources": { + "base": null, + "refs": { + "PutRecommendationPreferencesRequest$preferredResources": "

The preference to control which resource type values are considered when generating rightsizing recommendations. You can specify this preference as a combination of include and exclude lists. You must specify either an includeList or excludeList. If the preference is an empty set of resource type values, an error occurs.

You can only set this preference for the Amazon EC2 instance and Auto Scaling group resource types.

" + } + }, "ProjectedMetric": { "base": "

Describes a projected utilization metric of a recommendation option, such as an Amazon EC2 instance. This represents the projected utilization of a recommendation option had you used that resource during the analyzed period.

Compare the utilization metric data of your resource against its projected utilization metric data to determine the performance difference between your current resource and the recommended option.

The Cpu, Memory, GPU, and GPU_MEMORY metrics are the only projected utilization metrics returned when you run the GetEC2RecommendationProjectedMetrics action. Additionally, these metrics are only returned for resources with the unified CloudWatch agent installed on them. For more information, see Enabling Memory Utilization with the CloudWatch Agent and Enabling NVIDIA GPU utilization with the CloudWatch Agent.

", "refs": { @@ -1823,6 +2036,13 @@ "ExportLicenseRecommendationsRequest$s3DestinationConfig": null } }, + "SavingsEstimationMode": { + "base": null, + "refs": { + "PutRecommendationPreferencesRequest$savingsEstimationMode": "

The status of the savings estimation mode preference to create or update.

Specify the AfterDiscounts status to activate the preference, or specify BeforeDiscounts to deactivate the preference.

Only the account manager or delegated administrator of your organization can activate this preference.

For more information, see Savings estimation mode in the Compute Optimizer User Guide.

", + "RecommendationPreferencesDetail$savingsEstimationMode": "

Describes the savings estimation mode used for calculating savings opportunity.

Only the account manager or delegated administrator of your organization can activate this preference.

" + } + }, "SavingsOpportunity": { "base": "

Describes the savings opportunity for recommendations of a given resource type or for the recommendation option of an individual resource.

Savings opportunity represents the estimated monthly savings you can achieve by implementing a given Compute Optimizer recommendation.

Savings opportunity data requires that you opt in to Cost Explorer, as well as activate Receive Amazon EC2 resource recommendations in the Cost Explorer preferences page. That creates a connection between Cost Explorer and Compute Optimizer. With this connection, Cost Explorer generates savings estimates considering the price of existing resources, the price of recommended resources, and historical usage data. Estimated monthly savings reflects the projected dollar savings associated with each of the recommendations generated. For more information, see Enabling Cost Explorer and Optimizing your cost with Rightsizing Recommendations in the Cost Management User Guide.

", "refs": { @@ -1838,6 +2058,11 @@ "SavingsOpportunityPercentage": { "base": null, "refs": { + "AutoScalingGroupSavingsOpportunityAfterDiscounts$savingsOpportunityPercentage": "

The estimated monthly savings possible as a percentage of monthly cost after applying the Savings Plans and Reserved Instances discounts. This saving can be achieved by adopting Compute Optimizer’s Auto Scaling group recommendations.

", + "EBSSavingsOpportunityAfterDiscounts$savingsOpportunityPercentage": "

The estimated monthly savings possible as a percentage of monthly cost after applying the specific discounts. This saving can be achieved by adopting Compute Optimizer’s Amazon EBS volume recommendations.

", + "ECSSavingsOpportunityAfterDiscounts$savingsOpportunityPercentage": "

The estimated monthly savings possible as a percentage of monthly cost by adopting Compute Optimizer’s Amazon ECS service recommendations. This includes any applicable Savings Plans discounts.

", + "InstanceSavingsOpportunityAfterDiscounts$savingsOpportunityPercentage": "

The estimated monthly savings possible as a percentage of monthly cost after applying the Savings Plans and Reserved Instances discounts. This saving can be achieved by adopting Compute Optimizer’s EC2 instance recommendations.

", + "LambdaSavingsOpportunityAfterDiscounts$savingsOpportunityPercentage": "

The estimated monthly savings possible as a percentage of monthly cost by adopting Compute Optimizer’s Lambda function recommendations. This includes any applicable Savings Plans discounts.

", "SavingsOpportunity$savingsOpportunityPercentage": "

The estimated monthly savings possible as a percentage of monthly cost by adopting Compute Optimizer recommendations for a given resource.

" } }, @@ -2009,10 +2234,30 @@ "InstanceRecommendation$utilizationMetrics": "

An array of objects that describe the utilization metrics of the instance.

" } }, + "UtilizationPreference": { + "base": "

The preference to control the resource’s CPU utilization thresholds - threshold and headroom.

This preference is only available for the Amazon EC2 instance resource type.

", + "refs": { + "UtilizationPreferences$member": null + } + }, + "UtilizationPreferences": { + "base": null, + "refs": { + "EffectiveRecommendationPreferences$utilizationPreferences": "

The resource’s CPU utilization threshold preferences, such as threshold and headroom, that are used to generate rightsizing recommendations.

This preference is only available for the Amazon EC2 instance resource type.

", + "GetEffectiveRecommendationPreferencesResponse$utilizationPreferences": "

The resource’s CPU utilization threshold preferences, such as threshold and headroom, that were used to generate rightsizing recommendations. It considers all applicable preferences that you set at the resource, account, and organization level.

To validate that the preference is applied to your last generated set of recommendations, review the effectiveRecommendationPreferences value in the response of the GetAutoScalingGroupRecommendations or GetEC2InstanceRecommendations actions.

", + "PutRecommendationPreferencesRequest$utilizationPreferences": "

The preference to control the resource’s CPU utilization thresholds - threshold and headroom. When this preference isn't specified, we use the following default values:

You can only set this preference for the Amazon EC2 instance resource type.

", + "RecommendationPreferencesDetail$utilizationPreferences": "

The preference to control the resource’s CPU utilization thresholds - threshold and headroom. If the preference isn’t set, this object is null.

This preference is only available for the Amazon EC2 instance resource type.

" + } + }, "Value": { "base": null, "refs": { - "EstimatedMonthlySavings$value": "

The value of the estimated monthly savings.

" + "AutoScalingGroupEstimatedMonthlySavings$value": "

The value of the estimated monthly savings.

", + "EBSEstimatedMonthlySavings$value": "

The value of the estimated monthly savings.

", + "ECSEstimatedMonthlySavings$value": "

The value of the estimated monthly savings for Amazon ECS services.

", + "EstimatedMonthlySavings$value": "

The value of the estimated monthly savings.

", + "InstanceEstimatedMonthlySavings$value": "

The value of the estimated monthly savings.

", + "LambdaEstimatedMonthlySavings$value": "

The value of the estimated monthly savings.

" } }, "VeryLow": { diff --git a/models/apis/compute-optimizer/2019-11-01/endpoint-rule-set-1.json b/models/apis/compute-optimizer/2019-11-01/endpoint-rule-set-1.json index dfdfa862172..86716225fea 100644 --- a/models/apis/compute-optimizer/2019-11-01/endpoint-rule-set-1.json +++ b/models/apis/compute-optimizer/2019-11-01/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/config/2014-11-12/api-2.json b/models/apis/config/2014-11-12/api-2.json index e4196a0745a..923197cf037 100644 --- a/models/apis/config/2014-11-12/api-2.json +++ b/models/apis/config/2014-11-12/api-2.json @@ -983,6 +983,7 @@ "input":{"shape":"PutConfigurationRecorderRequest"}, "errors":[ {"shape":"MaxNumberOfConfigurationRecordersExceededException"}, + {"shape":"ValidationException"}, {"shape":"InvalidConfigurationRecorderNameException"}, {"shape":"InvalidRoleException"}, {"shape":"InvalidRecordingGroupException"} @@ -1518,7 +1519,9 @@ "availabilityZone":{"shape":"AvailabilityZone"}, "resourceCreationTime":{"shape":"ResourceCreationTime"}, "configuration":{"shape":"Configuration"}, - "supplementaryConfiguration":{"shape":"SupplementaryConfiguration"} + "supplementaryConfiguration":{"shape":"SupplementaryConfiguration"}, + "recordingFrequency":{"shape":"RecordingFrequency"}, + "configurationItemDeliveryTime":{"shape":"ConfigurationItemDeliveryTime"} } }, "BaseConfigurationItems":{ @@ -1826,10 +1829,13 @@ "relatedEvents":{"shape":"RelatedEventList"}, "relationships":{"shape":"RelationshipList"}, "configuration":{"shape":"Configuration"}, - "supplementaryConfiguration":{"shape":"SupplementaryConfiguration"} + "supplementaryConfiguration":{"shape":"SupplementaryConfiguration"}, + "recordingFrequency":{"shape":"RecordingFrequency"}, + "configurationItemDeliveryTime":{"shape":"ConfigurationItemDeliveryTime"} } }, "ConfigurationItemCaptureTime":{"type":"timestamp"}, + "ConfigurationItemDeliveryTime":{"type":"timestamp"}, "ConfigurationItemList":{ "type":"list", "member":{"shape":"ConfigurationItem"} @@ -1850,7 +1856,8 @@ "members":{ "name":{"shape":"RecorderName"}, "roleARN":{"shape":"String"}, - "recordingGroup":{"shape":"RecordingGroup"} + "recordingGroup":{"shape":"RecordingGroup"}, + "recordingMode":{"shape":"RecordingMode"} } }, "ConfigurationRecorderList":{ @@ -2740,6 +2747,11 @@ "NextToken":{"shape":"NextToken"} } }, + "Description":{ + "type":"string", + "max":256, + "min":1 + }, "DiscoveredResourceIdentifierList":{ "type":"list", "member":{"shape":"AggregateResourceIdentifier"} @@ -4320,6 +4332,13 @@ "Failure" ] }, + "RecordingFrequency":{ + "type":"string", + "enum":[ + "CONTINUOUS", + "DAILY" + ] + }, "RecordingGroup":{ "type":"structure", "members":{ @@ -4330,6 +4349,36 @@ "recordingStrategy":{"shape":"RecordingStrategy"} } }, + "RecordingMode":{ + "type":"structure", + "required":["recordingFrequency"], + "members":{ + "recordingFrequency":{"shape":"RecordingFrequency"}, + "recordingModeOverrides":{"shape":"RecordingModeOverrides"} + } + }, + "RecordingModeOverride":{ + "type":"structure", + "required":[ + "resourceTypes", + "recordingFrequency" + ], + "members":{ + "description":{"shape":"Description"}, + "resourceTypes":{"shape":"RecordingModeResourceTypesList"}, + "recordingFrequency":{"shape":"RecordingFrequency"} + } + }, + "RecordingModeOverrides":{ + "type":"list", + "member":{"shape":"RecordingModeOverride"}, + "max":1, + "min":0 + }, + "RecordingModeResourceTypesList":{ + "type":"list", + "member":{"shape":"ResourceType"} + }, "RecordingStrategy":{ "type":"structure", "members":{ diff --git a/models/apis/config/2014-11-12/docs-2.json b/models/apis/config/2014-11-12/docs-2.json index a69b882620b..19ae07a95ad 100644 --- a/models/apis/config/2014-11-12/docs-2.json +++ b/models/apis/config/2014-11-12/docs-2.json @@ -305,7 +305,7 @@ "AllSupported": { "base": null, "refs": { - "RecordingGroup$allSupported": "

Specifies whether Config records configuration changes for all supported regionally recorded resource types.

If you set this field to true, when Config adds support for a new regionally recorded resource type, Config starts recording resources of that type automatically.

If you set this field to true, you cannot enumerate specific resource types to record in the resourceTypes field of RecordingGroup, or to exclude in the resourceTypes field of ExclusionByResourceTypes.

Region Availability

Check Resource Coverage by Region Availability to see if a resource type is supported in the Amazon Web Services Region where you set up Config.

" + "RecordingGroup$allSupported": "

Specifies whether Config records configuration changes for all supported resource types, excluding the global IAM resource types.

If you set this field to true, when Config adds support for a new resource type, Config starts recording resources of that type automatically.

If you set this field to true, you cannot enumerate specific resource types to record in the resourceTypes field of RecordingGroup, or to exclude in the resourceTypes field of ExclusionByResourceTypes.

Region availability

Check Resource Coverage by Region Availability to see if a resource type is supported in the Amazon Web Services Region where you set up Config.

" } }, "AmazonResourceName": { @@ -366,7 +366,7 @@ } }, "BaseConfigurationItem": { - "base": "

The detailed configuration of a specified resource.

", + "base": "

The detailed configurations of a specified resource.

", "refs": { "BaseConfigurationItems$member": null } @@ -706,8 +706,15 @@ "ConfigurationItemCaptureTime": { "base": null, "refs": { - "BaseConfigurationItem$configurationItemCaptureTime": "

The time when the configuration recording was initiated.

", - "ConfigurationItem$configurationItemCaptureTime": "

The time when the configuration recording was initiated.

" + "BaseConfigurationItem$configurationItemCaptureTime": "

The time when the recording of configuration changes was initiated for the resource.

", + "ConfigurationItem$configurationItemCaptureTime": "

The time when the recording of configuration changes was initiated for the resource.

" + } + }, + "ConfigurationItemDeliveryTime": { + "base": null, + "refs": { + "BaseConfigurationItem$configurationItemDeliveryTime": "

The time when configuration changes for the resource were delivered.

", + "ConfigurationItem$configurationItemDeliveryTime": "

The time when configuration changes for the resource were delivered.

" } }, "ConfigurationItemList": { @@ -725,12 +732,12 @@ "ConfigurationItemStatus": { "base": null, "refs": { - "BaseConfigurationItem$configurationItemStatus": "

The configuration item status. The valid values are:

", - "ConfigurationItem$configurationItemStatus": "

The configuration item status. The valid values are:

" + "BaseConfigurationItem$configurationItemStatus": "

The configuration item status. Valid values include:

", + "ConfigurationItem$configurationItemStatus": "

The configuration item status. Valid values include:

" } }, "ConfigurationRecorder": { - "base": "

Records configuration changes to specified resource types. For more information about the configuration recorder, see Managing the Configuration Recorder in the Config Developer Guide.

", + "base": "

Records configuration changes to your specified resource types. For more information about the configuration recorder, see Managing the Configuration Recorder in the Config Developer Guide.

", "refs": { "ConfigurationRecorderList$member": null, "PutConfigurationRecorderRequest$ConfigurationRecorder": "

An object for the configuration recorder to record configuration changes for specified resource types.

" @@ -1479,6 +1486,12 @@ "refs": { } }, + "Description": { + "base": null, + "refs": { + "RecordingModeOverride$description": "

A description that you provide for the override.

" + } + }, "DiscoveredResourceIdentifierList": { "base": null, "refs": { @@ -1609,9 +1622,9 @@ } }, "ExclusionByResourceTypes": { - "base": "

Specifies whether the configuration recorder excludes certain resource types from being recorded. Use the resourceTypes field to enter a comma-separated list of resource types you want to exclude from recording.

By default, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

How to use

To use this option, you must set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES.

Config will then record configuration changes for all supported resource types, except the resource types that you specify to exclude from being recorded.

Globally recorded resources

Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled. IAM users, groups, roles, and customer managed policies will be recorded automatically in all enabled Config Regions where Config was available before February 2022. This list does not include the following Regions:

", + "base": "

Specifies whether the configuration recorder excludes certain resource types from being recorded. Use the resourceTypes field to enter a comma-separated list of resource types you want to exclude from recording.

By default, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

How to use the exclusion recording strategy

To use this option, you must set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES.

Config will then record configuration changes for all supported resource types, except the resource types that you specify to exclude from being recorded.

Global resource types and the exclusion recording strategy

Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

", "refs": { - "RecordingGroup$exclusionByResourceTypes": "

An object that specifies how Config excludes resource types from being recorded by the configuration recorder.

To use this option, you must set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES.

" + "RecordingGroup$exclusionByResourceTypes": "

An object that specifies how Config excludes resource types from being recorded by the configuration recorder.

Required fields

To use this option, you must set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES.

" } }, "ExecutionControls": { @@ -1906,7 +1919,7 @@ "IncludeGlobalResourceTypes": { "base": null, "refs": { - "RecordingGroup$includeGlobalResourceTypes": "

A legacy field which only applies to the globally recorded IAM resource types: IAM users, groups, roles, and customer managed policies. If you select this option, these resource types will be recorded in all enabled Config regions where Config was available before February 2022. This list does not include the following Regions:

Aurora global clusters are automatically globally recorded

The AWS::RDS::GlobalCluster resource type will be recorded in all supported Config Regions where the configuration recorder is enabled, even if includeGlobalResourceTypes is not set to true. includeGlobalResourceTypes is a legacy field which only applies to IAM users, groups, roles, and customer managed policies.

If you do not want to record AWS::RDS::GlobalCluster in all enabled Regions, use one of the following recording strategies:

  1. Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES), or

  2. Record specific resource types (INCLUSION_BY_RESOURCE_TYPES).

For more information, see Selecting Which Resources are Recorded in the Config developer guide.

Required and optional fields

Before you set this field to true, set the allSupported field of RecordingGroup to true. Optionally, you can set the useOnly field of RecordingStrategy to ALL_SUPPORTED_RESOURCE_TYPES.

Overriding fields

If you set this field to false but list globally recorded IAM resource types in the resourceTypes field of RecordingGroup, Config will still record configuration changes for those specified resource types regardless of if you set the includeGlobalResourceTypes field to false.

If you do not want to record configuration changes to the globally recorded IAM resource types (IAM users, groups, roles, and customer managed policies), make sure to not list them in the resourceTypes field in addition to setting the includeGlobalResourceTypes field to false.

" + "RecordingGroup$includeGlobalResourceTypes": "

This option is a bundle which only applies to the global IAM resource types: IAM users, groups, roles, and customer managed policies. These global IAM resource types can only be recorded by Config in Regions where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

Aurora global clusters are recorded in all enabled Regions

The AWS::RDS::GlobalCluster resource type will be recorded in all supported Config Regions where the configuration recorder is enabled, even if includeGlobalResourceTypes is not set to true. The includeGlobalResourceTypes option is a bundle which only applies to IAM users, groups, roles, and customer managed policies.

If you do not want to record AWS::RDS::GlobalCluster in all enabled Regions, use one of the following recording strategies:

  1. Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES), or

  2. Record specific resource types (INCLUSION_BY_RESOURCE_TYPES).

For more information, see Selecting Which Resources are Recorded in the Config developer guide.

Before you set this field to true, set the allSupported field of RecordingGroup to true. Optionally, you can set the useOnly field of RecordingStrategy to ALL_SUPPORTED_RESOURCE_TYPES.

Overriding fields

If you set this field to false but list global IAM resource types in the resourceTypes field of RecordingGroup, Config will still record configuration changes for those specified resource types regardless of if you set the includeGlobalResourceTypes field to false.

If you do not want to record configuration changes to the global IAM resource types (IAM users, groups, roles, and customer managed policies), make sure to not list them in the resourceTypes field in addition to setting the includeGlobalResourceTypes field to false.

" } }, "InsufficientDeliveryPolicyException": { @@ -2774,7 +2787,7 @@ "RecorderName": { "base": null, "refs": { - "ConfigurationRecorder$name": "

The name of the configuration recorder. Config automatically assigns the name of \"default\" when creating the configuration recorder.

You cannot change the name of the configuration recorder after it has been created. To change the configuration recorder name, you must delete it and create a new configuration recorder with a new name.

", + "ConfigurationRecorder$name": "

The name of the configuration recorder. Config automatically assigns the name of \"default\" when creating the configuration recorder.

You cannot change the name of the configuration recorder after it has been created. To change the configuration recorder name, you must delete it and create a new configuration recorder with a new name.

", "ConfigurationRecorderNameList$member": null, "DeleteConfigurationRecorderRequest$ConfigurationRecorderName": "

The name of the configuration recorder to be deleted. You can retrieve the name of your configuration recorder by using the DescribeConfigurationRecorders action.

", "StartConfigurationRecorderRequest$ConfigurationRecorderName": "

The name of the recorder object that records each configuration change made to the resources.

", @@ -2787,22 +2800,55 @@ "ConfigurationRecorderStatus$lastStatus": "

The status of the latest recording event processed by the recorder.

" } }, + "RecordingFrequency": { + "base": null, + "refs": { + "BaseConfigurationItem$recordingFrequency": "

The recording frequency that Config uses to record configuration changes for the resource.

", + "ConfigurationItem$recordingFrequency": "

The recording frequency that Config uses to record configuration changes for the resource.

", + "RecordingMode$recordingFrequency": "

The default recording frequency that Config uses to record configuration changes.

Daily recording is not supported for the following resource types:

For the allSupported (ALL_SUPPORTED_RESOURCE_TYPES) recording strategy, these resource types will be set to Continuous recording.

", + "RecordingModeOverride$recordingFrequency": "

The recording frequency that will be applied to all the resource types specified in the override.

Firewall Manager depends on continuous recording to monitor your resources. If you are using Firewall Manager, it is recommended that you set the recording frequency to Continuous.

" + } + }, "RecordingGroup": { - "base": "

Specifies which resource types Config records for configuration changes. By default, Config records configuration changes for all current and future supported resource types in the Amazon Web Services Region where you have enabled Config (excluding the globally recorded IAM resource types: IAM users, groups, roles, and customer managed policies).

In the recording group, you specify whether you want to record all supported current and future supported resource types or to include or exclude specific resources types. For a list of supported resource types, see Supported Resource Types in the Config developer guide.

If you don't want Config to record all current and future supported resource types, use one of the following recording strategies:

  1. Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES), or

  2. Record specific resource types (INCLUSION_BY_RESOURCE_TYPES).

Aurora global clusters are automatically globally recorded

The AWS::RDS::GlobalCluster resource type will be recorded in all supported Config Regions where the configuration recorder is enabled.

If you do not want to record AWS::RDS::GlobalCluster in all enabled Regions, use the EXCLUSION_BY_RESOURCE_TYPES or INCLUSION_BY_RESOURCE_TYPES recording strategy.

", + "base": "

Specifies which resource types Config records for configuration changes. By default, Config records configuration changes for all current and future supported resource types in the Amazon Web Services Region where you have enabled Config, excluding the global IAM resource types: IAM users, groups, roles, and customer managed policies.

In the recording group, you specify whether you want to record all supported current and future supported resource types or to include or exclude specific resources types. For a list of supported resource types, see Supported Resource Types in the Config developer guide.

If you don't want Config to record all current and future supported resource types (excluding the global IAM resource types), use one of the following recording strategies:

  1. Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES), or

  2. Record specific resource types (INCLUSION_BY_RESOURCE_TYPES).

If you use the recording strategy to Record all current and future resource types (ALL_SUPPORTED_RESOURCE_TYPES), you can use the flag includeGlobalResourceTypes to include the global IAM resource types in your recording.

Aurora global clusters are recorded in all enabled Regions

The AWS::RDS::GlobalCluster resource type will be recorded in all supported Config Regions where the configuration recorder is enabled.

If you do not want to record AWS::RDS::GlobalCluster in all enabled Regions, use the EXCLUSION_BY_RESOURCE_TYPES or INCLUSION_BY_RESOURCE_TYPES recording strategy.

", "refs": { "ConfigurationRecorder$recordingGroup": "

Specifies which resource types Config records for configuration changes.

High Number of Config Evaluations

You may notice increased activity in your account during your initial month recording with Config when compared to subsequent months. During the initial bootstrapping process, Config runs evaluations on all the resources in your account that you have selected for Config to record.

If you are running ephemeral workloads, you may see increased activity from Config as it records configuration changes associated with creating and deleting these temporary resources. An ephemeral workload is a temporary use of computing resources that are loaded and run when needed. Examples include Amazon Elastic Compute Cloud (Amazon EC2) Spot Instances, Amazon EMR jobs, and Auto Scaling. If you want to avoid the increased activity from running ephemeral workloads, you can run these types of workloads in a separate account with Config turned off to avoid increased configuration recording and rule evaluations.

" } }, + "RecordingMode": { + "base": "

Specifies the default recording frequency that Config uses to record configuration changes. Config supports Continuous recording and Daily recording.

Firewall Manager depends on continuous recording to monitor your resources. If you are using Firewall Manager, it is recommended that you set the recording frequency to Continuous.

You can also override the recording frequency for specific resource types.

", + "refs": { + "ConfigurationRecorder$recordingMode": "

Specifies the default recording frequency that Config uses to record configuration changes. Config supports Continuous recording and Daily recording.

Firewall Manager depends on continuous recording to monitor your resources. If you are using Firewall Manager, it is recommended that you set the recording frequency to Continuous.

You can also override the recording frequency for specific resource types.

" + } + }, + "RecordingModeOverride": { + "base": "

An object for you to specify your overrides for the recording mode.

", + "refs": { + "RecordingModeOverrides$member": null + } + }, + "RecordingModeOverrides": { + "base": null, + "refs": { + "RecordingMode$recordingModeOverrides": "

An array of recordingModeOverride objects for you to specify your overrides for the recording mode. The recordingModeOverride object in the recordingModeOverrides array consists of three fields: a description, the new recordingFrequency, and an array of resourceTypes to override.

" + } + }, + "RecordingModeResourceTypesList": { + "base": null, + "refs": { + "RecordingModeOverride$resourceTypes": "

A comma-separated list that specifies which resource types Config includes in the override.

Daily recording is not supported for the following resource types:

" + } + }, "RecordingStrategy": { "base": "

Specifies the recording strategy of the configuration recorder.

", "refs": { - "RecordingGroup$recordingStrategy": "

An object that specifies the recording strategy for the configuration recorder.

Required and optional fields

The recordingStrategy field is optional when you set the allSupported field of RecordingGroup to true.

The recordingStrategy field is optional when you list resource types in the resourceTypes field of RecordingGroup.

The recordingStrategy field is required if you list resource types to exclude from recording in the resourceTypes field of ExclusionByResourceTypes.

Overriding fields

If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the exclusionByResourceTypes field will override other properties in the request.

For example, even if you set includeGlobalResourceTypes to false, globally recorded IAM resource types will still be automatically recorded in this option unless those resource types are specifically listed as exclusions in the resourceTypes field of exclusionByResourceTypes.

Global resources types and the resource exclusion recording strategy

By default, if you choose the EXCLUSION_BY_RESOURCE_TYPES recording strategy, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

In addition, unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled. IAM users, groups, roles, and customer managed policies will be recorded automatically in all enabled Config Regions where Config was available before February 2022. This list does not include the following Regions:

" + "RecordingGroup$recordingStrategy": "

An object that specifies the recording strategy for the configuration recorder.

Required and optional fields

The recordingStrategy field is optional when you set the allSupported field of RecordingGroup to true.

The recordingStrategy field is optional when you list resource types in the resourceTypes field of RecordingGroup.

The recordingStrategy field is required if you list resource types to exclude from recording in the resourceTypes field of ExclusionByResourceTypes.

Overriding fields

If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the exclusionByResourceTypes field will override other properties in the request.

For example, even if you set includeGlobalResourceTypes to false, global IAM resource types will still be automatically recorded in this option unless those resource types are specifically listed as exclusions in the resourceTypes field of exclusionByResourceTypes.

Global resources types and the resource exclusion recording strategy

By default, if you choose the EXCLUSION_BY_RESOURCE_TYPES recording strategy, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

" } }, "RecordingStrategyType": { "base": null, "refs": { - "RecordingStrategy$useOnly": "

The recording strategy for the configuration recorder.

Required and optional fields

The recordingStrategy field is optional when you set the allSupported field of RecordingGroup to true.

The recordingStrategy field is optional when you list resource types in the resourceTypes field of RecordingGroup.

The recordingStrategy field is required if you list resource types to exclude from recording in the resourceTypes field of ExclusionByResourceTypes.

Overriding fields

If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the exclusionByResourceTypes field will override other properties in the request.

For example, even if you set includeGlobalResourceTypes to false, globally recorded IAM resource types will still be automatically recorded in this option unless those resource types are specifically listed as exclusions in the resourceTypes field of exclusionByResourceTypes.

Global resource types and the exclusion recording strategy

By default, if you choose the EXCLUSION_BY_RESOURCE_TYPES recording strategy, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

In addition, unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled. IAM users, groups, roles, and customer managed policies will be recorded automatically in all enabled Config Regions where Config was available before February 2022. This list does not include the following Regions:

" + "RecordingStrategy$useOnly": "

The recording strategy for the configuration recorder.

Required and optional fields

The recordingStrategy field is optional when you set the allSupported field of RecordingGroup to true.

The recordingStrategy field is optional when you list resource types in the resourceTypes field of RecordingGroup.

The recordingStrategy field is required if you list resource types to exclude from recording in the resourceTypes field of ExclusionByResourceTypes.

Overriding fields

If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the exclusionByResourceTypes field will override other properties in the request.

For example, even if you set includeGlobalResourceTypes to false, global IAM resource types will still be automatically recorded in this option unless those resource types are specifically listed as exclusions in the resourceTypes field of exclusionByResourceTypes.

Global resource types and the exclusion recording strategy

By default, if you choose the EXCLUSION_BY_RESOURCE_TYPES recording strategy, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

" } }, "ReevaluateConfigRuleNames": { @@ -3138,6 +3184,7 @@ "GetResourceConfigHistoryRequest$resourceType": "

The resource type.

", "ListAggregateDiscoveredResourcesRequest$ResourceType": "

The type of resources that you want Config to list in the response.

", "ListDiscoveredResourcesRequest$resourceType": "

The type of resources that you want Config to list in the response.

", + "RecordingModeResourceTypesList$member": null, "Relationship$resourceType": "

The resource type of the related resource.

", "ResourceCount$resourceType": "

The resource type (for example, \"AWS::EC2::Instance\").

", "ResourceCountFilters$ResourceType": "

The type of the Amazon Web Services resource.

", @@ -3150,7 +3197,7 @@ "base": null, "refs": { "ExclusionByResourceTypes$resourceTypes": "

A comma-separated list of resource types to exclude from recording by the configuration recorder.

", - "RecordingGroup$resourceTypes": "

A comma-separated list that specifies which resource types Config records.

Optionally, you can set the useOnly field of RecordingStrategy to INCLUSION_BY_RESOURCE_TYPES.

To record all configuration changes, set the allSupported field of RecordingGroup to true, and either omit this field or don't specify any resource types in this field. If you set the allSupported field to false and specify values for resourceTypes, when Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group.

For a list of valid resourceTypes values, see the Resource Type Value column in Supported Amazon Web Services resource Types in the Config developer guide.

Region Availability

Before specifying a resource type for Config to track, check Resource Coverage by Region Availability to see if the resource type is supported in the Amazon Web Services Region where you set up Config. If a resource type is supported by Config in at least one Region, you can enable the recording of that resource type in all Regions supported by Config, even if the specified resource type is not supported in the Amazon Web Services Region where you set up Config.

" + "RecordingGroup$resourceTypes": "

A comma-separated list that specifies which resource types Config records.

For a list of valid resourceTypes values, see the Resource Type Value column in Supported Amazon Web Services resource Types in the Config developer guide.

Required and optional fields

Optionally, you can set the useOnly field of RecordingStrategy to INCLUSION_BY_RESOURCE_TYPES.

To record all configuration changes, set the allSupported field of RecordingGroup to true, and either omit this field or don't specify any resource types in this field. If you set the allSupported field to false and specify values for resourceTypes, when Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group.

Region availability

Before specifying a resource type for Config to track, check Resource Coverage by Region Availability to see if the resource type is supported in the Amazon Web Services Region where you set up Config. If a resource type is supported by Config in at least one Region, you can enable the recording of that resource type in all Regions supported by Config, even if the specified resource type is not supported in the Amazon Web Services Region where you set up Config.

" } }, "ResourceTypeString": { diff --git a/models/apis/controltower/2018-05-10/api-2.json b/models/apis/controltower/2018-05-10/api-2.json index 7eaa7484256..dab551ecb42 100644 --- a/models/apis/controltower/2018-05-10/api-2.json +++ b/models/apis/controltower/2018-05-10/api-2.json @@ -1,545 +1,1147 @@ { - "version":"2.0", - "metadata":{ - "apiVersion":"2018-05-10", - "endpointPrefix":"controltower", - "jsonVersion":"1.1", - "protocol":"rest-json", - "serviceFullName":"AWS Control Tower", - "serviceId":"ControlTower", - "signatureVersion":"v4", - "signingName":"controltower", - "uid":"controltower-2018-05-10" + "metadata": { + "apiVersion": "2018-05-10", + "endpointPrefix": "controltower", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "AWS Control Tower", + "serviceId": "ControlTower", + "signatureVersion": "v4", + "signingName": "controltower", + "uid": "controltower-2018-05-10" }, - "operations":{ - "DisableControl":{ - "name":"DisableControl", - "http":{ - "method":"POST", - "requestUri":"/disable-control", - "responseCode":200 - }, - "input":{"shape":"DisableControlInput"}, - "output":{"shape":"DisableControlOutput"}, - "errors":[ - {"shape":"ValidationException"}, - {"shape":"ConflictException"}, - {"shape":"ServiceQuotaExceededException"}, - {"shape":"InternalServerException"}, - {"shape":"AccessDeniedException"}, - {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"} - ] - }, - "EnableControl":{ - "name":"EnableControl", - "http":{ - "method":"POST", - "requestUri":"/enable-control", - "responseCode":200 - }, - "input":{"shape":"EnableControlInput"}, - "output":{"shape":"EnableControlOutput"}, - "errors":[ - {"shape":"ValidationException"}, - {"shape":"ConflictException"}, - {"shape":"ServiceQuotaExceededException"}, - {"shape":"InternalServerException"}, - {"shape":"AccessDeniedException"}, - {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"} - ] - }, - "GetControlOperation":{ - "name":"GetControlOperation", - "http":{ - "method":"POST", - "requestUri":"/get-control-operation", - "responseCode":200 - }, - "input":{"shape":"GetControlOperationInput"}, - "output":{"shape":"GetControlOperationOutput"}, - "errors":[ - {"shape":"ValidationException"}, - {"shape":"InternalServerException"}, - {"shape":"AccessDeniedException"}, - {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"} - ] - }, - "GetEnabledControl":{ - "name":"GetEnabledControl", - "http":{ - "method":"POST", - "requestUri":"/get-enabled-control", - "responseCode":200 - }, - "input":{"shape":"GetEnabledControlInput"}, - "output":{"shape":"GetEnabledControlOutput"}, - "errors":[ - {"shape":"ValidationException"}, - {"shape":"InternalServerException"}, - {"shape":"AccessDeniedException"}, - {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"} - ] - }, - "ListEnabledControls":{ - "name":"ListEnabledControls", - "http":{ - "method":"POST", - "requestUri":"/list-enabled-controls", - "responseCode":200 - }, - "input":{"shape":"ListEnabledControlsInput"}, - "output":{"shape":"ListEnabledControlsOutput"}, - "errors":[ - {"shape":"ValidationException"}, - {"shape":"InternalServerException"}, - {"shape":"AccessDeniedException"}, - {"shape":"ThrottlingException"}, - {"shape":"ResourceNotFoundException"} - ] - }, - "ListTagsForResource":{ - "name":"ListTagsForResource", - "http":{ - "method":"GET", - "requestUri":"/tags/{resourceArn}", - "responseCode":200 - }, - "input":{"shape":"ListTagsForResourceInput"}, - "output":{"shape":"ListTagsForResourceOutput"}, - "errors":[ - {"shape":"ValidationException"}, - {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} - ] - }, - "TagResource":{ - "name":"TagResource", - "http":{ - "method":"POST", - "requestUri":"/tags/{resourceArn}", - "responseCode":204 - }, - "input":{"shape":"TagResourceInput"}, - "output":{"shape":"TagResourceOutput"}, - "errors":[ - {"shape":"ValidationException"}, - {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} - ] - }, - "UntagResource":{ - "name":"UntagResource", - "http":{ - "method":"DELETE", - "requestUri":"/tags/{resourceArn}", - "responseCode":204 - }, - "input":{"shape":"UntagResourceInput"}, - "output":{"shape":"UntagResourceOutput"}, - "errors":[ - {"shape":"ValidationException"}, - {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} - ] + "operations": { + "DeleteLandingZone": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ResourceNotFoundException" + } + ], + "http": { + "method": "POST", + "requestUri": "/delete-landingzone", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "DeleteLandingZoneInput" + }, + "name": "DeleteLandingZone", + "output": { + "shape": "DeleteLandingZoneOutput" + } + }, + "DisableControl": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ServiceQuotaExceededException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ResourceNotFoundException" + } + ], + "http": { + "method": "POST", + "requestUri": "/disable-control", + "responseCode": 200 + }, + "input": { + "shape": "DisableControlInput" + }, + "name": "DisableControl", + "output": { + "shape": "DisableControlOutput" + } + }, + "EnableControl": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ServiceQuotaExceededException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ResourceNotFoundException" + } + ], + "http": { + "method": "POST", + "requestUri": "/enable-control", + "responseCode": 200 + }, + "input": { + "shape": "EnableControlInput" + }, + "name": "EnableControl", + "output": { + "shape": "EnableControlOutput" + } + }, + "GetControlOperation": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ResourceNotFoundException" + } + ], + "http": { + "method": "POST", + "requestUri": "/get-control-operation", + "responseCode": 200 + }, + "input": { + "shape": "GetControlOperationInput" + }, + "name": "GetControlOperation", + "output": { + "shape": "GetControlOperationOutput" + } + }, + "GetEnabledControl": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ResourceNotFoundException" + } + ], + "http": { + "method": "POST", + "requestUri": "/get-enabled-control", + "responseCode": 200 + }, + "input": { + "shape": "GetEnabledControlInput" + }, + "name": "GetEnabledControl", + "output": { + "shape": "GetEnabledControlOutput" + } + }, + "GetLandingZoneOperation": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ResourceNotFoundException" + } + ], + "http": { + "method": "POST", + "requestUri": "/get-landingzone-operation", + "responseCode": 200 + }, + "input": { + "shape": "GetLandingZoneOperationInput" + }, + "name": "GetLandingZoneOperation", + "output": { + "shape": "GetLandingZoneOperationOutput" + } + }, + "ListEnabledControls": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ResourceNotFoundException" + } + ], + "http": { + "method": "POST", + "requestUri": "/list-enabled-controls", + "responseCode": 200 + }, + "input": { + "shape": "ListEnabledControlsInput" + }, + "name": "ListEnabledControls", + "output": { + "shape": "ListEnabledControlsOutput" + } + }, + "ListLandingZones": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ThrottlingException" + } + ], + "http": { + "method": "POST", + "requestUri": "/list-landingzones", + "responseCode": 200 + }, + "input": { + "shape": "ListLandingZonesInput" + }, + "name": "ListLandingZones", + "output": { + "shape": "ListLandingZonesOutput" + } + }, + "ListTagsForResource": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ResourceNotFoundException" + } + ], + "http": { + "method": "GET", + "requestUri": "/tags/{resourceArn}", + "responseCode": 200 + }, + "input": { + "shape": "ListTagsForResourceInput" + }, + "name": "ListTagsForResource", + "output": { + "shape": "ListTagsForResourceOutput" + } + }, + "ResetLandingZone": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ResourceNotFoundException" + } + ], + "http": { + "method": "POST", + "requestUri": "/reset-landingzone", + "responseCode": 200 + }, + "input": { + "shape": "ResetLandingZoneInput" + }, + "name": "ResetLandingZone", + "output": { + "shape": "ResetLandingZoneOutput" + } + }, + "TagResource": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ResourceNotFoundException" + } + ], + "http": { + "method": "POST", + "requestUri": "/tags/{resourceArn}", + "responseCode": 204 + }, + "input": { + "shape": "TagResourceInput" + }, + "name": "TagResource", + "output": { + "shape": "TagResourceOutput" + } + }, + "UntagResource": { + "errors": [ + { + "shape": "ValidationException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ResourceNotFoundException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/tags/{resourceArn}", + "responseCode": 204 + }, + "input": { + "shape": "UntagResourceInput" + }, + "name": "UntagResource", + "output": { + "shape": "UntagResourceOutput" + } } }, - "shapes":{ - "AccessDeniedException":{ - "type":"structure", - "required":["message"], - "members":{ - "message":{"shape":"String"} - }, - "error":{ - "httpStatusCode":403, - "senderFault":true - }, - "exception":true - }, - "Arn":{ - "type":"string", - "max":2048, - "min":20, - "pattern":"^arn:aws[0-9a-zA-Z_\\-:\\/]+$" - }, - "ConflictException":{ - "type":"structure", - "required":["message"], - "members":{ - "message":{"shape":"String"} - }, - "error":{ - "httpStatusCode":409, - "senderFault":true - }, - "exception":true - }, - "ControlIdentifier":{ - "type":"string", - "max":2048, - "min":20, - "pattern":"^arn:aws[0-9a-zA-Z_\\-:\\/]+$" - }, - "ControlOperation":{ - "type":"structure", - "members":{ - "endTime":{"shape":"SyntheticTimestamp_date_time"}, - "operationType":{"shape":"ControlOperationType"}, - "startTime":{"shape":"SyntheticTimestamp_date_time"}, - "status":{"shape":"ControlOperationStatus"}, - "statusMessage":{"shape":"String"} - } + "shapes": { + "AccessDeniedException": { + "error": { + "httpStatusCode": 403, + "senderFault": true + }, + "exception": true, + "members": { + "message": { + "shape": "String" + } + }, + "required": [ + "message" + ], + "type": "structure" + }, + "Arn": { + "max": 2048, + "min": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" }, - "ControlOperationStatus":{ - "type":"string", - "enum":[ + "ConflictException": { + "error": { + "httpStatusCode": 409, + "senderFault": true + }, + "exception": true, + "members": { + "message": { + "shape": "String" + } + }, + "required": [ + "message" + ], + "type": "structure" + }, + "ControlIdentifier": { + "max": 2048, + "min": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "ControlOperation": { + "members": { + "endTime": { + "shape": "SyntheticTimestamp_date_time" + }, + "operationType": { + "shape": "ControlOperationType" + }, + "startTime": { + "shape": "SyntheticTimestamp_date_time" + }, + "status": { + "shape": "ControlOperationStatus" + }, + "statusMessage": { + "shape": "String" + } + }, + "type": "structure" + }, + "ControlOperationStatus": { + "enum": [ "SUCCEEDED", "FAILED", "IN_PROGRESS" - ] + ], + "type": "string" }, - "ControlOperationType":{ - "type":"string", - "enum":[ + "ControlOperationType": { + "enum": [ "ENABLE_CONTROL", "DISABLE_CONTROL" - ] + ], + "type": "string" + }, + "CreateLandingZoneOutput": { + "members": { + "arn": { + "shape": "Arn" + }, + "operationIdentifier": { + "shape": "OperationIdentifier" + } + }, + "required": [ + "arn", + "operationIdentifier" + ], + "type": "structure" + }, + "DeleteLandingZoneInput": { + "members": { + "landingZoneIdentifier": { + "shape": "String" + } + }, + "required": [ + "landingZoneIdentifier" + ], + "type": "structure" }, - "DisableControlInput":{ - "type":"structure", - "required":[ + "DeleteLandingZoneOutput": { + "members": { + "operationIdentifier": { + "shape": "OperationIdentifier" + } + }, + "required": [ + "operationIdentifier" + ], + "type": "structure" + }, + "DisableControlInput": { + "members": { + "controlIdentifier": { + "shape": "ControlIdentifier" + }, + "targetIdentifier": { + "shape": "TargetIdentifier" + } + }, + "required": [ "controlIdentifier", "targetIdentifier" ], - "members":{ - "controlIdentifier":{"shape":"ControlIdentifier"}, - "targetIdentifier":{"shape":"TargetIdentifier"} - } + "type": "structure" }, - "DisableControlOutput":{ - "type":"structure", - "required":["operationIdentifier"], - "members":{ - "operationIdentifier":{"shape":"OperationIdentifier"} - } + "DisableControlOutput": { + "members": { + "operationIdentifier": { + "shape": "OperationIdentifier" + } + }, + "required": [ + "operationIdentifier" + ], + "type": "structure" }, - "DriftStatus":{ - "type":"string", - "enum":[ + "DriftStatus": { + "enum": [ "DRIFTED", "IN_SYNC", "NOT_CHECKING", "UNKNOWN" - ] + ], + "type": "string" }, - "DriftStatusSummary":{ - "type":"structure", - "members":{ - "driftStatus":{"shape":"DriftStatus"} - } + "DriftStatusSummary": { + "members": { + "driftStatus": { + "shape": "DriftStatus" + } + }, + "type": "structure" }, - "EnableControlInput":{ - "type":"structure", - "required":[ + "EnableControlInput": { + "members": { + "controlIdentifier": { + "shape": "ControlIdentifier" + }, + "tags": { + "shape": "TagMap" + }, + "targetIdentifier": { + "shape": "TargetIdentifier" + } + }, + "required": [ "controlIdentifier", "targetIdentifier" ], - "members":{ - "controlIdentifier":{"shape":"ControlIdentifier"}, - "tags":{"shape":"TagMap"}, - "targetIdentifier":{"shape":"TargetIdentifier"} - } + "type": "structure" }, - "EnableControlOutput":{ - "type":"structure", - "required":["operationIdentifier"], - "members":{ - "arn":{"shape":"Arn"}, - "operationIdentifier":{"shape":"OperationIdentifier"} - } + "EnableControlOutput": { + "members": { + "arn": { + "shape": "Arn" + }, + "operationIdentifier": { + "shape": "OperationIdentifier" + } + }, + "required": [ + "operationIdentifier" + ], + "type": "structure" }, - "EnabledControlDetails":{ - "type":"structure", - "members":{ - "arn":{"shape":"Arn"}, - "controlIdentifier":{"shape":"ControlIdentifier"}, - "driftStatusSummary":{"shape":"DriftStatusSummary"}, - "statusSummary":{"shape":"EnablementStatusSummary"}, - "targetIdentifier":{"shape":"TargetIdentifier"}, - "targetRegions":{"shape":"TargetRegions"} - } + "EnabledControlDetails": { + "members": { + "arn": { + "shape": "Arn" + }, + "controlIdentifier": { + "shape": "ControlIdentifier" + }, + "driftStatusSummary": { + "shape": "DriftStatusSummary" + }, + "statusSummary": { + "shape": "EnablementStatusSummary" + }, + "targetIdentifier": { + "shape": "TargetIdentifier" + }, + "targetRegions": { + "shape": "TargetRegions" + } + }, + "type": "structure" }, - "EnabledControlSummary":{ - "type":"structure", - "members":{ - "arn":{"shape":"Arn"}, - "controlIdentifier":{"shape":"ControlIdentifier"}, - "driftStatusSummary":{"shape":"DriftStatusSummary"}, - "statusSummary":{"shape":"EnablementStatusSummary"}, - "targetIdentifier":{"shape":"TargetIdentifier"} - } + "EnabledControlSummary": { + "members": { + "arn": { + "shape": "Arn" + }, + "controlIdentifier": { + "shape": "ControlIdentifier" + }, + "driftStatusSummary": { + "shape": "DriftStatusSummary" + }, + "statusSummary": { + "shape": "EnablementStatusSummary" + }, + "targetIdentifier": { + "shape": "TargetIdentifier" + } + }, + "type": "structure" }, - "EnabledControls":{ - "type":"list", - "member":{"shape":"EnabledControlSummary"} + "EnabledControls": { + "member": { + "shape": "EnabledControlSummary" + }, + "type": "list" }, - "EnablementStatus":{ - "type":"string", - "enum":[ + "EnablementStatus": { + "enum": [ "SUCCEEDED", "FAILED", "UNDER_CHANGE" - ] + ], + "type": "string" }, - "EnablementStatusSummary":{ - "type":"structure", - "members":{ - "lastOperationIdentifier":{"shape":"OperationIdentifier"}, - "status":{"shape":"EnablementStatus"} - } + "EnablementStatusSummary": { + "members": { + "lastOperationIdentifier": { + "shape": "OperationIdentifier" + }, + "status": { + "shape": "EnablementStatus" + } + }, + "type": "structure" }, - "GetControlOperationInput":{ - "type":"structure", - "required":["operationIdentifier"], - "members":{ - "operationIdentifier":{"shape":"OperationIdentifier"} - } + "GetControlOperationInput": { + "members": { + "operationIdentifier": { + "shape": "OperationIdentifier" + } + }, + "required": [ + "operationIdentifier" + ], + "type": "structure" }, - "GetControlOperationOutput":{ - "type":"structure", - "required":["controlOperation"], - "members":{ - "controlOperation":{"shape":"ControlOperation"} - } + "GetControlOperationOutput": { + "members": { + "controlOperation": { + "shape": "ControlOperation" + } + }, + "required": [ + "controlOperation" + ], + "type": "structure" }, - "GetEnabledControlInput":{ - "type":"structure", - "required":["enabledControlIdentifier"], - "members":{ - "enabledControlIdentifier":{"shape":"Arn"} - } + "GetEnabledControlInput": { + "members": { + "enabledControlIdentifier": { + "shape": "Arn" + } + }, + "required": [ + "enabledControlIdentifier" + ], + "type": "structure" }, - "GetEnabledControlOutput":{ - "type":"structure", - "required":["enabledControlDetails"], - "members":{ - "enabledControlDetails":{"shape":"EnabledControlDetails"} - } + "GetEnabledControlOutput": { + "members": { + "enabledControlDetails": { + "shape": "EnabledControlDetails" + } + }, + "required": [ + "enabledControlDetails" + ], + "type": "structure" }, - "Integer":{ - "type":"integer", - "box":true - }, - "InternalServerException":{ - "type":"structure", - "required":["message"], - "members":{ - "message":{"shape":"String"} - }, - "error":{"httpStatusCode":500}, - "exception":true, - "fault":true, - "retryable":{"throttling":false} - }, - "ListEnabledControlsInput":{ - "type":"structure", - "required":["targetIdentifier"], - "members":{ - "maxResults":{"shape":"MaxResults"}, - "nextToken":{"shape":"String"}, - "targetIdentifier":{"shape":"TargetIdentifier"} - } + "GetLandingZoneInput": { + "members": { + "landingZoneIdentifier": { + "shape": "String" + } + }, + "required": [ + "landingZoneIdentifier" + ], + "type": "structure" }, - "ListEnabledControlsOutput":{ - "type":"structure", - "required":["enabledControls"], - "members":{ - "enabledControls":{"shape":"EnabledControls"}, - "nextToken":{"shape":"String"} - } + "GetLandingZoneOperationInput": { + "members": { + "operationIdentifier": { + "shape": "OperationIdentifier" + } + }, + "required": [ + "operationIdentifier" + ], + "type": "structure" }, - "ListTagsForResourceInput":{ - "type":"structure", - "required":["resourceArn"], - "members":{ - "resourceArn":{ - "shape":"Arn", - "location":"uri", - "locationName":"resourceArn" + "GetLandingZoneOperationOutput": { + "members": { + "operationDetails": { + "shape": "LandingZoneOperationDetail" } - } + }, + "required": [ + "operationDetails" + ], + "type": "structure" }, - "ListTagsForResourceOutput":{ - "type":"structure", - "required":["tags"], - "members":{ - "tags":{"shape":"TagMap"} - } + "Integer": { + "box": true, + "type": "integer" + }, + "InternalServerException": { + "error": { + "httpStatusCode": 500 + }, + "exception": true, + "fault": true, + "members": { + "message": { + "shape": "String" + } + }, + "required": [ + "message" + ], + "retryable": { + "throttling": false + }, + "type": "structure" + }, + "LandingZoneDriftStatus": { + "enum": [ + "DRIFTED", + "IN_SYNC" + ], + "type": "string" + }, + "LandingZoneDriftStatusSummary": { + "members": { + "status": { + "shape": "LandingZoneDriftStatus" + } + }, + "type": "structure" + }, + "LandingZoneOperationDetail": { + "members": { + "endTime": { + "shape": "Timestamp" + }, + "operationType": { + "shape": "LandingZoneOperationType" + }, + "startTime": { + "shape": "Timestamp" + }, + "status": { + "shape": "LandingZoneOperationStatus" + }, + "statusMessage": { + "shape": "String" + } + }, + "type": "structure" + }, + "LandingZoneOperationStatus": { + "enum": [ + "SUCCEEDED", + "FAILED", + "IN_PROGRESS" + ], + "type": "string" + }, + "LandingZoneOperationType": { + "enum": [ + "DELETE", + "CREATE", + "UPDATE", + "RESET" + ], + "type": "string" + }, + "LandingZoneStatus": { + "enum": [ + "ACTIVE", + "PROCESSING", + "FAILED" + ], + "type": "string" + }, + "LandingZoneSummary": { + "members": { + "arn": { + "shape": "Arn" + } + }, + "type": "structure" + }, + "LandingZoneVersion": { + "max": 10, + "min": 3, + "pattern": "^\\d+.\\d+$", + "type": "string" }, - "MaxResults":{ - "type":"integer", - "box":true, - "max":200, - "min":1 - }, - "OperationIdentifier":{ - "type":"string", - "max":36, - "min":36, - "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" - }, - "Region":{ - "type":"structure", - "members":{ - "name":{"shape":"RegionName"} + "ListEnabledControlsInput": { + "members": { + "maxResults": { + "shape": "MaxResults" + }, + "nextToken": { + "shape": "String" + }, + "targetIdentifier": { + "shape": "TargetIdentifier" + } + }, + "required": [ + "targetIdentifier" + ], + "type": "structure" + }, + "ListEnabledControlsOutput": { + "members": { + "enabledControls": { + "shape": "EnabledControls" + }, + "nextToken": { + "shape": "String" + } + }, + "required": [ + "enabledControls" + ], + "type": "structure" + }, + "ListLandingZonesInput": { + "members": { + "maxResults": { + "shape": "ListLandingZonesMaxResults" + }, + "nextToken": { + "shape": "String" + } + }, + "type": "structure" + }, + "ListLandingZonesMaxResults": { + "box": true, + "max": 1, + "min": 1, + "type": "integer" + }, + "ListLandingZonesOutput": { + "members": { + "landingZones": { + "shape": "ListLandingZonesOutputLandingZonesList" + }, + "nextToken": { + "shape": "String" + } + }, + "required": [ + "landingZones" + ], + "type": "structure" + }, + "ListLandingZonesOutputLandingZonesList": { + "max": 1, + "member": { + "shape": "LandingZoneSummary" + }, + "min": 0, + "type": "list" + }, + "ListTagsForResourceInput": { + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn", + "shape": "Arn" + } + }, + "required": [ + "resourceArn" + ], + "type": "structure" + }, + "ListTagsForResourceOutput": { + "members": { + "tags": { + "shape": "TagMap" + } + }, + "required": [ + "tags" + ], + "type": "structure" + }, + "MaxResults": { + "box": true, + "max": 200, + "min": 1, + "type": "integer" + }, + "OperationIdentifier": { + "max": 36, + "min": 36, + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + "type": "string" + }, + "Region": { + "members": { + "name": { + "shape": "RegionName" + } + }, + "type": "structure" + }, + "RegionName": { + "max": 50, + "min": 1, + "type": "string" + }, + "ResetLandingZoneInput": { + "members": { + "landingZoneIdentifier": { + "shape": "String" + } + }, + "required": [ + "landingZoneIdentifier" + ], + "type": "structure" + }, + "ResetLandingZoneOutput": { + "members": { + "operationIdentifier": { + "shape": "OperationIdentifier" + } + }, + "required": [ + "operationIdentifier" + ], + "type": "structure" + }, + "ResourceNotFoundException": { + "error": { + "httpStatusCode": 404, + "senderFault": true + }, + "exception": true, + "members": { + "message": { + "shape": "String" + } + }, + "required": [ + "message" + ], + "type": "structure" + }, + "ServiceQuotaExceededException": { + "error": { + "httpStatusCode": 402, + "senderFault": true + }, + "exception": true, + "members": { + "message": { + "shape": "String" + } + }, + "required": [ + "message" + ], + "type": "structure" + }, + "String": { + "type": "string" + }, + "SyntheticTimestamp_date_time": { + "timestampFormat": "iso8601", + "type": "timestamp" + }, + "TagKey": { + "max": 128, + "min": 1, + "type": "string" + }, + "TagKeys": { + "max": 200, + "member": { + "shape": "TagKey" + }, + "min": 0, + "type": "list" + }, + "TagMap": { + "key": { + "shape": "TagKey" + }, + "max": 200, + "min": 0, + "type": "map", + "value": { + "shape": "TagValue" } }, - "RegionName":{ - "type":"string", - "max":50, - "min":1 - }, - "ResourceNotFoundException":{ - "type":"structure", - "required":["message"], - "members":{ - "message":{"shape":"String"} - }, - "error":{ - "httpStatusCode":404, - "senderFault":true - }, - "exception":true - }, - "ServiceQuotaExceededException":{ - "type":"structure", - "required":["message"], - "members":{ - "message":{"shape":"String"} - }, - "error":{ - "httpStatusCode":402, - "senderFault":true - }, - "exception":true - }, - "String":{"type":"string"}, - "SyntheticTimestamp_date_time":{ - "type":"timestamp", - "timestampFormat":"iso8601" - }, - "TagKey":{ - "type":"string", - "max":128, - "min":1 - }, - "TagKeys":{ - "type":"list", - "member":{"shape":"TagKey"}, - "max":200, - "min":0 - }, - "TagMap":{ - "type":"map", - "key":{"shape":"TagKey"}, - "value":{"shape":"TagValue"}, - "max":200, - "min":0 - }, - "TagResourceInput":{ - "type":"structure", - "required":[ + "TagResourceInput": { + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn", + "shape": "Arn" + }, + "tags": { + "shape": "TagMap" + } + }, + "required": [ "resourceArn", "tags" ], - "members":{ - "resourceArn":{ - "shape":"Arn", - "location":"uri", - "locationName":"resourceArn" + "type": "structure" + }, + "TagResourceOutput": { + "members": {}, + "type": "structure" + }, + "TagValue": { + "max": 256, + "min": 0, + "type": "string" + }, + "TargetIdentifier": { + "max": 2048, + "min": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "TargetRegions": { + "member": { + "shape": "Region" + }, + "type": "list" + }, + "ThrottlingException": { + "error": { + "httpStatusCode": 429, + "senderFault": true + }, + "exception": true, + "members": { + "message": { + "shape": "String" }, - "tags":{"shape":"TagMap"} - } + "quotaCode": { + "shape": "String" + }, + "retryAfterSeconds": { + "location": "header", + "locationName": "Retry-After", + "shape": "Integer" + }, + "serviceCode": { + "shape": "String" + } + }, + "required": [ + "message" + ], + "retryable": { + "throttling": true + }, + "type": "structure" }, - "TagResourceOutput":{ - "type":"structure", - "members":{ - } + "Timestamp": { + "timestampFormat": "iso8601", + "type": "timestamp" }, - "TagValue":{ - "type":"string", - "max":256, - "min":0 - }, - "TargetIdentifier":{ - "type":"string", - "max":2048, - "min":20, - "pattern":"^arn:aws[0-9a-zA-Z_\\-:\\/]+$" - }, - "TargetRegions":{ - "type":"list", - "member":{"shape":"Region"} - }, - "ThrottlingException":{ - "type":"structure", - "required":["message"], - "members":{ - "message":{"shape":"String"}, - "quotaCode":{"shape":"String"}, - "retryAfterSeconds":{ - "shape":"Integer", - "location":"header", - "locationName":"Retry-After" - }, - "serviceCode":{"shape":"String"} - }, - "error":{ - "httpStatusCode":429, - "senderFault":true - }, - "exception":true, - "retryable":{"throttling":true} - }, - "UntagResourceInput":{ - "type":"structure", - "required":[ + "UntagResourceInput": { + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn", + "shape": "Arn" + }, + "tagKeys": { + "location": "querystring", + "locationName": "tagKeys", + "shape": "TagKeys" + } + }, + "required": [ "resourceArn", "tagKeys" ], - "members":{ - "resourceArn":{ - "shape":"Arn", - "location":"uri", - "locationName":"resourceArn" - }, - "tagKeys":{ - "shape":"TagKeys", - "location":"querystring", - "locationName":"tagKeys" - } - } + "type": "structure" }, - "UntagResourceOutput":{ - "type":"structure", - "members":{ - } + "UntagResourceOutput": { + "members": {}, + "type": "structure" + }, + "UpdateLandingZoneOutput": { + "members": { + "operationIdentifier": { + "shape": "OperationIdentifier" + } + }, + "required": [ + "operationIdentifier" + ], + "type": "structure" }, - "ValidationException":{ - "type":"structure", - "required":["message"], - "members":{ - "message":{"shape":"String"} + "ValidationException": { + "error": { + "httpStatusCode": 400, + "senderFault": true }, - "error":{ - "httpStatusCode":400, - "senderFault":true + "exception": true, + "members": { + "message": { + "shape": "String" + } }, - "exception":true + "required": [ + "message" + ], + "type": "structure" } - } -} + }, + "version": "2.0" +} \ No newline at end of file diff --git a/models/apis/controltower/2018-05-10/docs-2.json b/models/apis/controltower/2018-05-10/docs-2.json index b849bab1929..bc12815a461 100644 --- a/models/apis/controltower/2018-05-10/docs-2.json +++ b/models/apis/controltower/2018-05-10/docs-2.json @@ -1,29 +1,39 @@ { "version": "2.0", - "service": "

These interfaces allow you to apply the AWS library of pre-defined controls to your organizational units, programmatically. In AWS Control Tower, the terms \"control\" and \"guardrail\" are synonyms.

To call these APIs, you'll need to know:

To get the controlIdentifier for your AWS Control Tower control:

The controlIdentifier is an ARN that is specified for each control. You can view the controlIdentifier in the console on the Control details page, as well as in the documentation.

The controlIdentifier is unique in each AWS Region for each control. You can find the controlIdentifier for each Region and control in the Tables of control metadata in the AWS Control Tower User Guide.

A quick-reference list of control identifers for the AWS Control Tower legacy Strongly recommended and Elective controls is given in Resource identifiers for APIs and controls in the Controls reference guide section of the AWS Control Tower User Guide. Remember that Mandatory controls cannot be added or removed.

ARN format: arn:aws:controltower:{REGION}::control/{CONTROL_NAME}

Example:

arn:aws:controltower:us-west-2::control/AWS-GR_AUTOSCALING_LAUNCH_CONFIG_PUBLIC_IP_DISABLED

To get the targetIdentifier:

The targetIdentifier is the ARN for an OU.

In the AWS Organizations console, you can find the ARN for the OU on the Organizational unit details page associated with that OU.

OU ARN format:

arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}

Details and examples

To view the open source resource repository on GitHub, see aws-cloudformation/aws-cloudformation-resource-providers-controltower

Recording API Requests

AWS Control Tower supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine which requests the AWS Control Tower service received, who made the request and when, and so on. For more about AWS Control Tower and its support for CloudTrail, see Logging AWS Control Tower Actions with AWS CloudTrail in the AWS Control Tower User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

", + "service": "

These interfaces allow you to apply the Amazon Web Services library of pre-defined controls to your organizational units, programmatically. In Amazon Web Services Control Tower, the terms \"control\" and \"guardrail\" are synonyms.

To call these APIs, you'll need to know:

To get the controlIdentifier for your AWS Control Tower control:

The controlIdentifier is an ARN that is specified for each control. You can view the controlIdentifier in the console on the Control details page, as well as in the documentation.

The controlIdentifier is unique in each Amazon Web Services Region for each control. You can find the controlIdentifier for each Region and control in the Tables of control metadata in the Amazon Web Services Control Tower User Guide.

A quick-reference list of control identifers for the Amazon Web Services Control Tower legacy Strongly recommended and Elective controls is given in Resource identifiers for APIs and controls in the Controls reference guide section of the Amazon Web Services Control Tower User Guide. Remember that Mandatory controls cannot be added or removed.

ARN format: arn:aws:controltower:{REGION}::control/{CONTROL_NAME}

Example:

arn:aws:controltower:us-west-2::control/AWS-GR_AUTOSCALING_LAUNCH_CONFIG_PUBLIC_IP_DISABLED

To get the targetIdentifier:

The targetIdentifier is the ARN for an OU.

In the Amazon Web Services Organizations console, you can find the ARN for the OU on the Organizational unit details page associated with that OU.

OU ARN format:

arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}

Details and examples

To view the open source resource repository on GitHub, see aws-cloudformation/aws-cloudformation-resource-providers-controltower

Recording API Requests

Amazon Web Services Control Tower supports Amazon Web Services CloudTrail, a service that records Amazon Web Services API calls for your Amazon Web Services account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine which requests the Amazon Web Services Control Tower service received, who made the request and when, and so on. For more about Amazon Web Services Control Tower and its support for CloudTrail, see Logging Amazon Web Services Control Tower Actions with Amazon Web Services CloudTrail in the Amazon Web Services Control Tower User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the Amazon Web Services CloudTrail User Guide.

", "operations": { - "DisableControl": "

This API call turns off a control. It starts an asynchronous operation that deletes AWS resources on the specified organizational unit and the accounts it contains. The resources will vary according to the control that you specify. For usage examples, see the AWS Control Tower User Guide .

", - "EnableControl": "

This API call activates a control. It starts an asynchronous operation that creates AWS resources on the specified organizational unit and the accounts it contains. The resources created will vary according to the control that you specify. For usage examples, see the AWS Control Tower User Guide .

", - "GetControlOperation": "

Returns the status of a particular EnableControl or DisableControl operation. Displays a message in case of error. Details for an operation are available for 90 days. For usage examples, see the AWS Control Tower User Guide .

", - "GetEnabledControl": "

Retrieves details about an enabled control. For usage examples, see the AWS Control Tower User Guide .

", - "ListEnabledControls": "

Lists the controls enabled by AWS Control Tower on the specified organizational unit and the accounts it contains. For usage examples, see the AWS Control Tower User Guide .

", - "ListTagsForResource": "

Returns a list of tags associated with the resource. For usage examples, see the AWS Control Tower User Guide .

", - "TagResource": "

Applies tags to a resource. For usage examples, see the AWS Control Tower User Guide .

", - "UntagResource": "

Removes tags from a resource. For usage examples, see the AWS Control Tower User Guide .

" + "CreateLandingZone": "

Creates a new landing zone. This starts an asynchronous operation that creates and configures a landing zone based on the parameters specified in the manifest JSON file.

", + "DeleteLandingZone": "

This decommissions a landing zone. This starts an asynchronous operation that deletes Amazon Web Services Control Tower resources deployed in Amazon Web Services Control Tower managed accounts.

", + "DisableControl": "

This API call turns off a control. It starts an asynchronous operation that deletes Amazon Web Services resources on the specified organizational unit and the accounts it contains. The resources will vary according to the control that you specify. For usage examples, see the Amazon Web Services Control Tower User Guide .

", + "EnableControl": "

This API call activates a control. It starts an asynchronous operation that creates Amazon Web Services resources on the specified organizational unit and the accounts it contains. The resources created will vary according to the control that you specify. For usage examples, see the Amazon Web Services Control Tower User Guide .

", + "GetControlOperation": "

Returns the status of a particular EnableControl or DisableControl operation. Displays a message in case of error. Details for an operation are available for 90 days. For usage examples, see the Amazon Web Services Control Tower User Guide .

", + "GetEnabledControl": "

Retrieves details about an enabled control. For usage examples, see the Amazon Web Services Control Tower User Guide .

", + "GetLandingZone": "

Returns details about the landing zone. Displays a message in case of error.

", + "GetLandingZoneOperation": "

Returns the status of the specified landing zone operation. Details for an operation are available for X days.

", + "ListEnabledControls": "

Lists the controls enabled by Amazon Web Services Control Tower on the specified organizational unit and the accounts it contains. For usage examples, see the Amazon Web Services Control Tower User Guide .

", + "ListLandingZones": "

Returns the landing zone ARN for the landing zone deployed in your managed account. This API also creates an ARN for existing accounts that do not yet have a landing zone ARN.

The return limit is one landing zone ARN.

", + "ListTagsForResource": "

Returns a list of tags associated with the resource. For usage examples, see the Amazon Web Services Control Tower User Guide .

", + "ResetLandingZone": "

This API call resets a landing zone. It starts an asynchronous operation that resets the landing zone to the parameters specified in its original configuration.

", + "TagResource": "

Applies tags to a resource. For usage examples, see the Amazon Web Services Control Tower User Guide .

", + "UntagResource": "

Removes tags from a resource. For usage examples, see the Amazon Web Services Control Tower User Guide .

", + "UpdateLandingZone": "

This API call updates the landing zone. It starts an asynchronous operation that updates the landing zone based on the new landing zone version or the updated parameters specified in the updated manifest file.

" }, "shapes": { "AccessDeniedException": { - "base": "

User does not have sufficient access to perform this action.

", + "base": "

You do not have sufficient access to perform this action.

", "refs": { } }, "Arn": { "base": null, "refs": { + "CreateLandingZoneOutput$arn": "

The ARN of the landing zone.

", "EnableControlOutput$arn": "

The ARN of the EnabledControl resource.

", "EnabledControlDetails$arn": "

The ARN of the enabled control.

", "EnabledControlSummary$arn": "

The ARN of the enabled control.

", "GetEnabledControlInput$enabledControlIdentifier": "

The controlIdentifier of the enabled control.

", + "LandingZoneDetail$arn": "

The ARN of the landing zone.

", + "LandingZoneSummary$arn": "

The ARN of the landing zone.

", "ListTagsForResourceInput$resourceArn": "

The ARN of the resource.

", "TagResourceInput$resourceArn": "

The ARN of the resource to be tagged.

", "UntagResourceInput$resourceArn": "

The ARN of the resource.

" @@ -61,6 +71,26 @@ "ControlOperation$operationType": "

One of ENABLE_CONTROL or DISABLE_CONTROL.

" } }, + "CreateLandingZoneInput": { + "base": null, + "refs": { + } + }, + "CreateLandingZoneOutput": { + "base": null, + "refs": { + } + }, + "DeleteLandingZoneInput": { + "base": null, + "refs": { + } + }, + "DeleteLandingZoneOutput": { + "base": null, + "refs": { + } + }, "DisableControlInput": { "base": null, "refs": { @@ -74,11 +104,11 @@ "DriftStatus": { "base": null, "refs": { - "DriftStatusSummary$driftStatus": "

The drift status of the enabled control.

Valid values:

" + "DriftStatusSummary$driftStatus": "

The drift status of the enabled control.

Valid values:

" } }, "DriftStatusSummary": { - "base": "

The drift summary of the enabled control.

AWS Control Tower expects the enabled control configuration to include all supported and governed Regions. If the enabled control differs from the expected configuration, it is defined to be in a state of drift. You can repair this drift by resetting the enabled control.

", + "base": "

The drift summary of the enabled control.

Amazon Web Services Control Tower expects the enabled control configuration to include all supported and governed Regions. If the enabled control differs from the expected configuration, it is defined to be in a state of drift. You can repair this drift by resetting the enabled control.

", "refs": { "EnabledControlDetails$driftStatusSummary": "

The drift status of the enabled control.

", "EnabledControlSummary$driftStatusSummary": "

The drift status of the enabled control.

" @@ -109,7 +139,7 @@ "EnabledControls": { "base": null, "refs": { - "ListEnabledControlsOutput$enabledControls": "

Lists the controls enabled by AWS Control Tower on the specified organizational unit and the accounts it contains.

" + "ListEnabledControlsOutput$enabledControls": "

Lists the controls enabled by Amazon Web Services Control Tower on the specified organizational unit and the accounts it contains.

" } }, "EnablementStatus": { @@ -145,6 +175,26 @@ "refs": { } }, + "GetLandingZoneInput": { + "base": null, + "refs": { + } + }, + "GetLandingZoneOperationInput": { + "base": null, + "refs": { + } + }, + "GetLandingZoneOperationOutput": { + "base": null, + "refs": { + } + }, + "GetLandingZoneOutput": { + "base": null, + "refs": { + } + }, "Integer": { "base": null, "refs": { @@ -156,6 +206,63 @@ "refs": { } }, + "LandingZoneDetail": { + "base": "

Information about the landing zone.

", + "refs": { + "GetLandingZoneOutput$landingZone": "

Information about the landing zone.

" + } + }, + "LandingZoneDriftStatus": { + "base": null, + "refs": { + "LandingZoneDriftStatusSummary$status": "

The drift status of the landing zone.

Valid values:

" + } + }, + "LandingZoneDriftStatusSummary": { + "base": "

The drift status summary of the landing zone.

If the landing zone differs from the expected configuration, it is defined to be in a state of drift. You can repair this drift by resetting the landing zone.

", + "refs": { + "LandingZoneDetail$driftStatus": "

The drift status of the landing zone.

" + } + }, + "LandingZoneOperationDetail": { + "base": "

Information about a landing zone operation.

", + "refs": { + "GetLandingZoneOperationOutput$operationDetails": "

The landing zone operation details.

" + } + }, + "LandingZoneOperationStatus": { + "base": null, + "refs": { + "LandingZoneOperationDetail$status": "

The landing zone operation status.

Valid values:

" + } + }, + "LandingZoneOperationType": { + "base": null, + "refs": { + "LandingZoneOperationDetail$operationType": "

The landing zone operation type.

Valid values:

" + } + }, + "LandingZoneStatus": { + "base": null, + "refs": { + "LandingZoneDetail$status": "

The landing zone deployment status.

Valid values:

" + } + }, + "LandingZoneSummary": { + "base": "

Returns a summary of information about a landing zone.

", + "refs": { + "ListLandingZonesOutputLandingZonesList$member": null + } + }, + "LandingZoneVersion": { + "base": null, + "refs": { + "CreateLandingZoneInput$version": "

The landing zone version.

", + "LandingZoneDetail$latestAvailableVersion": "

The latest available version of the landing zone.

", + "LandingZoneDetail$version": "

The landing zone's current deployed version.

", + "UpdateLandingZoneInput$version": "

The landing zone version.

" + } + }, "ListEnabledControlsInput": { "base": null, "refs": { @@ -166,6 +273,28 @@ "refs": { } }, + "ListLandingZonesInput": { + "base": null, + "refs": { + } + }, + "ListLandingZonesMaxResults": { + "base": null, + "refs": { + "ListLandingZonesInput$maxResults": "

The maximum number of returned landing zone ARNs.

" + } + }, + "ListLandingZonesOutput": { + "base": null, + "refs": { + } + }, + "ListLandingZonesOutputLandingZonesList": { + "base": null, + "refs": { + "ListLandingZonesOutput$landingZones": "

The ARN of the landing zone.

" + } + }, "ListTagsForResourceInput": { "base": null, "refs": { @@ -176,6 +305,14 @@ "refs": { } }, + "Manifest": { + "base": null, + "refs": { + "CreateLandingZoneInput$manifest": "

The manifest.yaml file is a text file that describes your Amazon Web Services resources. For examples, review The manifest file.

", + "LandingZoneDetail$manifest": "

The landing zone manifest.yaml text file that specifies the landing zone configurations.

", + "UpdateLandingZoneInput$manifest": "

The manifest.yaml file is a text file that describes your Amazon Web Services resources. For examples, review The manifest file

" + } + }, "MaxResults": { "base": null, "refs": { @@ -185,14 +322,19 @@ "OperationIdentifier": { "base": null, "refs": { + "CreateLandingZoneOutput$operationIdentifier": "

A unique identifier assigned to a CreateLandingZone operation. You can use this identifier as an input of GetLandingZoneOperation to check the operation's status.

", + "DeleteLandingZoneOutput$operationIdentifier": "

A unique identifier assigned to a DeleteLandingZone operation. You can use this identifier as an input of GetLandingZoneOperation to check the operation's status.

", "DisableControlOutput$operationIdentifier": "

The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days.

", "EnableControlOutput$operationIdentifier": "

The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days.

", "EnablementStatusSummary$lastOperationIdentifier": "

The last operation identifier for the enabled control.

", - "GetControlOperationInput$operationIdentifier": "

The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days.

" + "GetControlOperationInput$operationIdentifier": "

The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days.

", + "GetLandingZoneOperationInput$operationIdentifier": "

A unique identifier assigned to a landing zone operation.

", + "ResetLandingZoneOutput$operationIdentifier": "

A unique identifier assigned to a ResetLandingZone operation. You can use this identifier as an input of GetLandingZoneOperation to check the operation's status.

", + "UpdateLandingZoneOutput$operationIdentifier": "

A unique identifier assigned to a UpdateLandingZone operation. You can use this identifier as an input of GetLandingZoneOperation to check the operation's status.

" } }, "Region": { - "base": "

An AWS Region in which AWS Control Tower expects to find the control deployed.

The expected Regions are based on the Regions that are governed by the landing zone. In certain cases, a control is not actually enabled in the Region as expected, such as during drift, or mixed governance.

", + "base": "

An Amazon Web Services Region in which Amazon Web Services Control Tower expects to find the control deployed.

The expected Regions are based on the Regions that are governed by the landing zone. In certain cases, a control is not actually enabled in the Region as expected, such as during drift, or mixed governance.

", "refs": { "TargetRegions$member": null } @@ -200,7 +342,17 @@ "RegionName": { "base": null, "refs": { - "Region$name": "

The AWS Region name.

" + "Region$name": "

The Amazon Web Services Region name.

" + } + }, + "ResetLandingZoneInput": { + "base": null, + "refs": { + } + }, + "ResetLandingZoneOutput": { + "base": null, + "refs": { } }, "ResourceNotFoundException": { @@ -219,14 +371,21 @@ "AccessDeniedException$message": null, "ConflictException$message": null, "ControlOperation$statusMessage": "

If the operation result is FAILED, this string contains a message explaining why the operation failed.

", + "DeleteLandingZoneInput$landingZoneIdentifier": "

The unique identifier of the landing zone.

", + "GetLandingZoneInput$landingZoneIdentifier": "

The unique identifier of the landing zone.

", "InternalServerException$message": null, + "LandingZoneOperationDetail$statusMessage": "

If the operation result is FAILED, this string contains a message explaining why the operation failed.

", "ListEnabledControlsInput$nextToken": "

The token to continue the list from a previous API call with the same parameters.

", "ListEnabledControlsOutput$nextToken": "

Retrieves the next page of results. If the string is empty, the current response is the end of the results.

", + "ListLandingZonesInput$nextToken": "

The token to continue the list from a previous API call with the same parameters.

", + "ListLandingZonesOutput$nextToken": "

Retrieves the next page of results. If the string is empty, the current response is the end of the results.

", + "ResetLandingZoneInput$landingZoneIdentifier": "

The unique identifier of the landing zone.

", "ResourceNotFoundException$message": null, "ServiceQuotaExceededException$message": null, "ThrottlingException$message": null, "ThrottlingException$quotaCode": "

The ID of the service quota that was exceeded.

", "ThrottlingException$serviceCode": "

The ID of the service that is associated with the error.

", + "UpdateLandingZoneInput$landingZoneIdentifier": "

The unique identifier of the landing zone.

", "ValidationException$message": null } }, @@ -253,6 +412,7 @@ "TagMap": { "base": null, "refs": { + "CreateLandingZoneInput$tags": "

Tags to be applied to the landing zone.

", "EnableControlInput$tags": "

Tags to be applied to the EnabledControl resource.

", "ListTagsForResourceOutput$tags": "

A list of tags, as key:value strings.

", "TagResourceInput$tags": "

Tags to be applied to the resource.

" @@ -287,14 +447,21 @@ "TargetRegions": { "base": null, "refs": { - "EnabledControlDetails$targetRegions": "

Target AWS Regions for the enabled control.

" + "EnabledControlDetails$targetRegions": "

Target Amazon Web Services Regions for the enabled control.

" } }, "ThrottlingException": { - "base": "

Request was denied due to request throttling.

", + "base": "

Request was denied due to request throttling.

", "refs": { } }, + "Timestamp": { + "base": null, + "refs": { + "LandingZoneOperationDetail$endTime": "

The landing zone operation end time.

", + "LandingZoneOperationDetail$startTime": "

The landing zone operation start time.

" + } + }, "UntagResourceInput": { "base": null, "refs": { @@ -305,8 +472,18 @@ "refs": { } }, + "UpdateLandingZoneInput": { + "base": null, + "refs": { + } + }, + "UpdateLandingZoneOutput": { + "base": null, + "refs": { + } + }, "ValidationException": { - "base": "

The input fails to satisfy the constraints specified by an AWS service.

", + "base": "

The input fails to satisfy the constraints specified by an Amazon Web Services service.

", "refs": { } } diff --git a/models/apis/controltower/2018-05-10/endpoint-tests-1.json b/models/apis/controltower/2018-05-10/endpoint-tests-1.json index b5e526bdf11..592037b78a1 100644 --- a/models/apis/controltower/2018-05-10/endpoint-tests-1.json +++ b/models/apis/controltower/2018-05-10/endpoint-tests-1.json @@ -529,17 +529,6 @@ "expect": { "error": "Invalid Configuration: Missing Region" } - }, - { - "documentation": "Partition doesn't support DualStack", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "Region": "us-isob-east-1", - "UseFIPS": false, - "UseDualStack": true - } } ], "version": "1.0" diff --git a/models/apis/controltower/2018-05-10/paginators-1.json b/models/apis/controltower/2018-05-10/paginators-1.json index 3d1220dffd0..24f2f2bdf59 100644 --- a/models/apis/controltower/2018-05-10/paginators-1.json +++ b/models/apis/controltower/2018-05-10/paginators-1.json @@ -5,6 +5,12 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "enabledControls" + }, + "ListLandingZones": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "landingZones" } } } diff --git a/models/apis/cost-optimization-hub/2022-07-26/api-2.json b/models/apis/cost-optimization-hub/2022-07-26/api-2.json new file mode 100644 index 00000000000..b53396cb305 --- /dev/null +++ b/models/apis/cost-optimization-hub/2022-07-26/api-2.json @@ -0,0 +1,936 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-07-26", + "endpointPrefix":"cost-optimization-hub", + "jsonVersion":"1.0", + "protocol":"json", + "serviceFullName":"Cost Optimization Hub", + "serviceId":"Cost Optimization Hub", + "signatureVersion":"v4", + "signingName":"cost-optimization-hub", + "targetPrefix":"CostOptimizationHubService", + "uid":"cost-optimization-hub-2022-07-26" + }, + "operations":{ + "GetPreferences":{ + "name":"GetPreferences", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPreferencesRequest"}, + "output":{"shape":"GetPreferencesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ] + }, + "GetRecommendation":{ + "name":"GetRecommendation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRecommendationRequest"}, + "output":{"shape":"GetRecommendationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ] + }, + "ListEnrollmentStatuses":{ + "name":"ListEnrollmentStatuses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListEnrollmentStatusesRequest"}, + "output":{"shape":"ListEnrollmentStatusesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ] + }, + "ListRecommendationSummaries":{ + "name":"ListRecommendationSummaries", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRecommendationSummariesRequest"}, + "output":{"shape":"ListRecommendationSummariesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ] + }, + "ListRecommendations":{ + "name":"ListRecommendations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRecommendationsRequest"}, + "output":{"shape":"ListRecommendationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdateEnrollmentStatus":{ + "name":"UpdateEnrollmentStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateEnrollmentStatusRequest"}, + "output":{"shape":"UpdateEnrollmentStatusResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ] + }, + "UpdatePreferences":{ + "name":"UpdatePreferences", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdatePreferencesRequest"}, + "output":{"shape":"UpdatePreferencesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "exception":true + }, + "AccountEnrollmentStatus":{ + "type":"structure", + "members":{ + "accountId":{"shape":"AccountId"}, + "createdTimestamp":{"shape":"Timestamp"}, + "lastUpdatedTimestamp":{"shape":"Timestamp"}, + "status":{"shape":"EnrollmentStatus"} + } + }, + "AccountEnrollmentStatuses":{ + "type":"list", + "member":{"shape":"AccountEnrollmentStatus"} + }, + "AccountId":{ + "type":"string", + "pattern":"^[0-9]{12}$" + }, + "AccountIdList":{ + "type":"list", + "member":{"shape":"AccountId"}, + "max":100, + "min":1 + }, + "ActionType":{ + "type":"string", + "enum":[ + "Rightsize", + "Stop", + "Upgrade", + "PurchaseSavingsPlans", + "PurchaseReservedInstances", + "MigrateToGraviton" + ] + }, + "ActionTypeList":{ + "type":"list", + "member":{"shape":"ActionType"}, + "max":100, + "min":1 + }, + "BlockStoragePerformanceConfiguration":{ + "type":"structure", + "members":{ + "iops":{"shape":"Double"}, + "throughput":{"shape":"Double"} + } + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "ComputeConfiguration":{ + "type":"structure", + "members":{ + "architecture":{"shape":"String"}, + "memorySizeInMB":{"shape":"Integer"}, + "platform":{"shape":"String"}, + "vCpu":{"shape":"Double"} + } + }, + "ComputeSavingsPlans":{ + "type":"structure", + "members":{ + "configuration":{"shape":"ComputeSavingsPlansConfiguration"}, + "costCalculation":{"shape":"SavingsPlansCostCalculation"} + } + }, + "ComputeSavingsPlansConfiguration":{ + "type":"structure", + "members":{ + "accountScope":{"shape":"String"}, + "hourlyCommitment":{"shape":"String"}, + "paymentOption":{"shape":"String"}, + "term":{"shape":"String"} + } + }, + "Datetime":{"type":"timestamp"}, + "Double":{ + "type":"double", + "box":true + }, + "EbsVolume":{ + "type":"structure", + "members":{ + "configuration":{"shape":"EbsVolumeConfiguration"}, + "costCalculation":{"shape":"ResourceCostCalculation"} + } + }, + "EbsVolumeConfiguration":{ + "type":"structure", + "members":{ + "attachmentState":{"shape":"String"}, + "performance":{"shape":"BlockStoragePerformanceConfiguration"}, + "storage":{"shape":"StorageConfiguration"} + } + }, + "Ec2AutoScalingGroup":{ + "type":"structure", + "members":{ + "configuration":{"shape":"Ec2AutoScalingGroupConfiguration"}, + "costCalculation":{"shape":"ResourceCostCalculation"} + } + }, + "Ec2AutoScalingGroupConfiguration":{ + "type":"structure", + "members":{ + "instance":{"shape":"InstanceConfiguration"} + } + }, + "Ec2Instance":{ + "type":"structure", + "members":{ + "configuration":{"shape":"Ec2InstanceConfiguration"}, + "costCalculation":{"shape":"ResourceCostCalculation"} + } + }, + "Ec2InstanceConfiguration":{ + "type":"structure", + "members":{ + "instance":{"shape":"InstanceConfiguration"} + } + }, + "Ec2InstanceSavingsPlans":{ + "type":"structure", + "members":{ + "configuration":{"shape":"Ec2InstanceSavingsPlansConfiguration"}, + "costCalculation":{"shape":"SavingsPlansCostCalculation"} + } + }, + "Ec2InstanceSavingsPlansConfiguration":{ + "type":"structure", + "members":{ + "accountScope":{"shape":"String"}, + "hourlyCommitment":{"shape":"String"}, + "instanceFamily":{"shape":"String"}, + "paymentOption":{"shape":"String"}, + "savingsPlansRegion":{"shape":"String"}, + "term":{"shape":"String"} + } + }, + "Ec2ReservedInstances":{ + "type":"structure", + "members":{ + "configuration":{"shape":"Ec2ReservedInstancesConfiguration"}, + "costCalculation":{"shape":"ReservedInstancesCostCalculation"} + } + }, + "Ec2ReservedInstancesConfiguration":{ + "type":"structure", + "members":{ + "accountScope":{"shape":"String"}, + "currentGeneration":{"shape":"String"}, + "instanceFamily":{"shape":"String"}, + "instanceType":{"shape":"String"}, + "monthlyRecurringCost":{"shape":"String"}, + "normalizedUnitsToPurchase":{"shape":"String"}, + "numberOfInstancesToPurchase":{"shape":"String"}, + "offeringClass":{"shape":"String"}, + "paymentOption":{"shape":"String"}, + "platform":{"shape":"String"}, + "reservedInstancesRegion":{"shape":"String"}, + "service":{"shape":"String"}, + "sizeFlexEligible":{"shape":"Boolean"}, + "tenancy":{"shape":"String"}, + "term":{"shape":"String"}, + "upfrontCost":{"shape":"String"} + } + }, + "EcsService":{ + "type":"structure", + "members":{ + "configuration":{"shape":"EcsServiceConfiguration"}, + "costCalculation":{"shape":"ResourceCostCalculation"} + } + }, + "EcsServiceConfiguration":{ + "type":"structure", + "members":{ + "compute":{"shape":"ComputeConfiguration"} + } + }, + "ElastiCacheReservedInstances":{ + "type":"structure", + "members":{ + "configuration":{"shape":"ElastiCacheReservedInstancesConfiguration"}, + "costCalculation":{"shape":"ReservedInstancesCostCalculation"} + } + }, + "ElastiCacheReservedInstancesConfiguration":{ + "type":"structure", + "members":{ + "accountScope":{"shape":"String"}, + "currentGeneration":{"shape":"String"}, + "instanceFamily":{"shape":"String"}, + "instanceType":{"shape":"String"}, + "monthlyRecurringCost":{"shape":"String"}, + "normalizedUnitsToPurchase":{"shape":"String"}, + "numberOfInstancesToPurchase":{"shape":"String"}, + "paymentOption":{"shape":"String"}, + "reservedInstancesRegion":{"shape":"String"}, + "service":{"shape":"String"}, + "sizeFlexEligible":{"shape":"Boolean"}, + "term":{"shape":"String"}, + "upfrontCost":{"shape":"String"} + } + }, + "EnrollmentStatus":{ + "type":"string", + "enum":[ + "Active", + "Inactive" + ] + }, + "EstimatedDiscounts":{ + "type":"structure", + "members":{ + "otherDiscount":{"shape":"Double"}, + "reservedInstancesDiscount":{"shape":"Double"}, + "savingsPlansDiscount":{"shape":"Double"} + } + }, + "Filter":{ + "type":"structure", + "members":{ + "accountIds":{"shape":"AccountIdList"}, + "actionTypes":{"shape":"ActionTypeList"}, + "implementationEfforts":{"shape":"ImplementationEffortList"}, + "recommendationIds":{"shape":"RecommendationIdList"}, + "regions":{"shape":"RegionList"}, + "resourceArns":{"shape":"ResourceArnList"}, + "resourceIds":{"shape":"ResourceIdList"}, + "resourceTypes":{"shape":"ResourceTypeList"}, + "restartNeeded":{"shape":"Boolean"}, + "rollbackPossible":{"shape":"Boolean"}, + "tags":{"shape":"TagList"} + } + }, + "GetPreferencesRequest":{ + "type":"structure", + "members":{ + } + }, + "GetPreferencesResponse":{ + "type":"structure", + "members":{ + "memberAccountDiscountVisibility":{"shape":"MemberAccountDiscountVisibility"}, + "savingsEstimationMode":{"shape":"SavingsEstimationMode"} + } + }, + "GetRecommendationRequest":{ + "type":"structure", + "required":["recommendationId"], + "members":{ + "recommendationId":{"shape":"String"} + } + }, + "GetRecommendationResponse":{ + "type":"structure", + "members":{ + "accountId":{"shape":"String"}, + "actionType":{"shape":"ActionType"}, + "costCalculationLookbackPeriodInDays":{"shape":"Integer"}, + "currencyCode":{"shape":"String"}, + "currentResourceDetails":{"shape":"ResourceDetails"}, + "currentResourceType":{"shape":"ResourceType"}, + "estimatedMonthlyCost":{"shape":"Double"}, + "estimatedMonthlySavings":{"shape":"Double"}, + "estimatedSavingsOverCostCalculationLookbackPeriod":{"shape":"Double"}, + "estimatedSavingsPercentage":{"shape":"Double"}, + "implementationEffort":{"shape":"ImplementationEffort"}, + "lastRefreshTimestamp":{"shape":"Datetime"}, + "recommendationId":{"shape":"String"}, + "recommendationLookbackPeriodInDays":{"shape":"Integer"}, + "recommendedResourceDetails":{"shape":"ResourceDetails"}, + "recommendedResourceType":{"shape":"ResourceType"}, + "region":{"shape":"String"}, + "resourceArn":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "restartNeeded":{"shape":"Boolean"}, + "rollbackPossible":{"shape":"Boolean"}, + "source":{"shape":"Source"}, + "tags":{"shape":"TagList"} + } + }, + "ImplementationEffort":{ + "type":"string", + "enum":[ + "VeryLow", + "Low", + "Medium", + "High", + "VeryHigh" + ] + }, + "ImplementationEffortList":{ + "type":"list", + "member":{"shape":"ImplementationEffort"}, + "max":100, + "min":1 + }, + "InstanceConfiguration":{ + "type":"structure", + "members":{ + "type":{"shape":"String"} + } + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "exception":true, + "fault":true + }, + "LambdaFunction":{ + "type":"structure", + "members":{ + "configuration":{"shape":"LambdaFunctionConfiguration"}, + "costCalculation":{"shape":"ResourceCostCalculation"} + } + }, + "LambdaFunctionConfiguration":{ + "type":"structure", + "members":{ + "compute":{"shape":"ComputeConfiguration"} + } + }, + "ListEnrollmentStatusesRequest":{ + "type":"structure", + "members":{ + "accountId":{"shape":"AccountId"}, + "includeOrganizationInfo":{"shape":"PrimitiveBoolean"}, + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"String"} + } + }, + "ListEnrollmentStatusesResponse":{ + "type":"structure", + "members":{ + "items":{"shape":"AccountEnrollmentStatuses"}, + "nextToken":{"shape":"String"} + } + }, + "ListRecommendationSummariesRequest":{ + "type":"structure", + "required":["groupBy"], + "members":{ + "filter":{"shape":"Filter"}, + "groupBy":{"shape":"String"}, + "maxResults":{"shape":"ListRecommendationSummariesRequestMaxResultsInteger"}, + "nextToken":{"shape":"String"} + } + }, + "ListRecommendationSummariesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":0 + }, + "ListRecommendationSummariesResponse":{ + "type":"structure", + "members":{ + "currencyCode":{"shape":"String"}, + "estimatedTotalDedupedSavings":{"shape":"Double"}, + "groupBy":{"shape":"String"}, + "items":{"shape":"RecommendationSummariesList"}, + "nextToken":{"shape":"String"} + } + }, + "ListRecommendationsRequest":{ + "type":"structure", + "members":{ + "filter":{"shape":"Filter"}, + "includeAllRecommendations":{"shape":"PrimitiveBoolean"}, + "maxResults":{"shape":"ListRecommendationsRequestMaxResultsInteger"}, + "nextToken":{"shape":"String"}, + "orderBy":{"shape":"OrderBy"} + } + }, + "ListRecommendationsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":0 + }, + "ListRecommendationsResponse":{ + "type":"structure", + "members":{ + "items":{"shape":"RecommendationList"}, + "nextToken":{"shape":"String"} + } + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":0 + }, + "MemberAccountDiscountVisibility":{ + "type":"string", + "enum":[ + "All", + "None" + ] + }, + "OpenSearchReservedInstances":{ + "type":"structure", + "members":{ + "configuration":{"shape":"OpenSearchReservedInstancesConfiguration"}, + "costCalculation":{"shape":"ReservedInstancesCostCalculation"} + } + }, + "OpenSearchReservedInstancesConfiguration":{ + "type":"structure", + "members":{ + "accountScope":{"shape":"String"}, + "currentGeneration":{"shape":"String"}, + "instanceType":{"shape":"String"}, + "monthlyRecurringCost":{"shape":"String"}, + "normalizedUnitsToPurchase":{"shape":"String"}, + "numberOfInstancesToPurchase":{"shape":"String"}, + "paymentOption":{"shape":"String"}, + "reservedInstancesRegion":{"shape":"String"}, + "service":{"shape":"String"}, + "sizeFlexEligible":{"shape":"Boolean"}, + "term":{"shape":"String"}, + "upfrontCost":{"shape":"String"} + } + }, + "Order":{ + "type":"string", + "enum":[ + "Asc", + "Desc" + ] + }, + "OrderBy":{ + "type":"structure", + "members":{ + "dimension":{"shape":"String"}, + "order":{"shape":"Order"} + } + }, + "PrimitiveBoolean":{"type":"boolean"}, + "RdsReservedInstances":{ + "type":"structure", + "members":{ + "configuration":{"shape":"RdsReservedInstancesConfiguration"}, + "costCalculation":{"shape":"ReservedInstancesCostCalculation"} + } + }, + "RdsReservedInstancesConfiguration":{ + "type":"structure", + "members":{ + "accountScope":{"shape":"String"}, + "currentGeneration":{"shape":"String"}, + "databaseEdition":{"shape":"String"}, + "databaseEngine":{"shape":"String"}, + "deploymentOption":{"shape":"String"}, + "instanceFamily":{"shape":"String"}, + "instanceType":{"shape":"String"}, + "licenseModel":{"shape":"String"}, + "monthlyRecurringCost":{"shape":"String"}, + "normalizedUnitsToPurchase":{"shape":"String"}, + "numberOfInstancesToPurchase":{"shape":"String"}, + "paymentOption":{"shape":"String"}, + "reservedInstancesRegion":{"shape":"String"}, + "service":{"shape":"String"}, + "sizeFlexEligible":{"shape":"Boolean"}, + "term":{"shape":"String"}, + "upfrontCost":{"shape":"String"} + } + }, + "Recommendation":{ + "type":"structure", + "members":{ + "accountId":{"shape":"String"}, + "actionType":{"shape":"String"}, + "currencyCode":{"shape":"String"}, + "currentResourceSummary":{"shape":"String"}, + "currentResourceType":{"shape":"String"}, + "estimatedMonthlyCost":{"shape":"Double"}, + "estimatedMonthlySavings":{"shape":"Double"}, + "estimatedSavingsPercentage":{"shape":"Double"}, + "implementationEffort":{"shape":"String"}, + "lastRefreshTimestamp":{"shape":"Datetime"}, + "recommendationId":{"shape":"String"}, + "recommendationLookbackPeriodInDays":{"shape":"Integer"}, + "recommendedResourceSummary":{"shape":"String"}, + "recommendedResourceType":{"shape":"String"}, + "region":{"shape":"String"}, + "resourceArn":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "restartNeeded":{"shape":"Boolean"}, + "rollbackPossible":{"shape":"Boolean"}, + "source":{"shape":"Source"}, + "tags":{"shape":"TagList"} + } + }, + "RecommendationIdList":{ + "type":"list", + "member":{"shape":"String"}, + "max":100, + "min":1 + }, + "RecommendationList":{ + "type":"list", + "member":{"shape":"Recommendation"} + }, + "RecommendationSummariesList":{ + "type":"list", + "member":{"shape":"RecommendationSummary"} + }, + "RecommendationSummary":{ + "type":"structure", + "members":{ + "estimatedMonthlySavings":{"shape":"Double"}, + "group":{"shape":"String"}, + "recommendationCount":{"shape":"Integer"} + } + }, + "RedshiftReservedInstances":{ + "type":"structure", + "members":{ + "configuration":{"shape":"RedshiftReservedInstancesConfiguration"}, + "costCalculation":{"shape":"ReservedInstancesCostCalculation"} + } + }, + "RedshiftReservedInstancesConfiguration":{ + "type":"structure", + "members":{ + "accountScope":{"shape":"String"}, + "currentGeneration":{"shape":"String"}, + "instanceFamily":{"shape":"String"}, + "instanceType":{"shape":"String"}, + "monthlyRecurringCost":{"shape":"String"}, + "normalizedUnitsToPurchase":{"shape":"String"}, + "numberOfInstancesToPurchase":{"shape":"String"}, + "paymentOption":{"shape":"String"}, + "reservedInstancesRegion":{"shape":"String"}, + "service":{"shape":"String"}, + "sizeFlexEligible":{"shape":"Boolean"}, + "term":{"shape":"String"}, + "upfrontCost":{"shape":"String"} + } + }, + "RegionList":{ + "type":"list", + "member":{"shape":"String"}, + "max":100, + "min":1 + }, + "ReservedInstancesCostCalculation":{ + "type":"structure", + "members":{ + "pricing":{"shape":"ReservedInstancesPricing"} + } + }, + "ReservedInstancesPricing":{ + "type":"structure", + "members":{ + "estimatedMonthlyAmortizedReservationCost":{"shape":"Double"}, + "estimatedOnDemandCost":{"shape":"Double"}, + "monthlyReservationEligibleCost":{"shape":"Double"}, + "savingsPercentage":{"shape":"Double"} + } + }, + "ResourceArnList":{ + "type":"list", + "member":{"shape":"String"}, + "max":100, + "min":1 + }, + "ResourceCostCalculation":{ + "type":"structure", + "members":{ + "pricing":{"shape":"ResourcePricing"}, + "usages":{"shape":"UsageList"} + } + }, + "ResourceDetails":{ + "type":"structure", + "members":{ + "computeSavingsPlans":{"shape":"ComputeSavingsPlans"}, + "ebsVolume":{"shape":"EbsVolume"}, + "ec2AutoScalingGroup":{"shape":"Ec2AutoScalingGroup"}, + "ec2Instance":{"shape":"Ec2Instance"}, + "ec2InstanceSavingsPlans":{"shape":"Ec2InstanceSavingsPlans"}, + "ec2ReservedInstances":{"shape":"Ec2ReservedInstances"}, + "ecsService":{"shape":"EcsService"}, + "elastiCacheReservedInstances":{"shape":"ElastiCacheReservedInstances"}, + "lambdaFunction":{"shape":"LambdaFunction"}, + "openSearchReservedInstances":{"shape":"OpenSearchReservedInstances"}, + "rdsReservedInstances":{"shape":"RdsReservedInstances"}, + "redshiftReservedInstances":{"shape":"RedshiftReservedInstances"}, + "sageMakerSavingsPlans":{"shape":"SageMakerSavingsPlans"} + }, + "union":true + }, + "ResourceIdList":{ + "type":"list", + "member":{"shape":"String"}, + "max":100, + "min":1 + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{"shape":"String"} + }, + "exception":true + }, + "ResourcePricing":{ + "type":"structure", + "members":{ + "estimatedCostAfterDiscounts":{"shape":"Double"}, + "estimatedCostBeforeDiscounts":{"shape":"Double"}, + "estimatedDiscounts":{"shape":"EstimatedDiscounts"}, + "estimatedNetUnusedAmortizedCommitments":{"shape":"Double"} + } + }, + "ResourceType":{ + "type":"string", + "enum":[ + "Ec2Instance", + "LambdaFunction", + "EbsVolume", + "EcsService", + "Ec2AutoScalingGroup", + "Ec2InstanceSavingsPlans", + "ComputeSavingsPlans", + "SageMakerSavingsPlans", + "Ec2ReservedInstances", + "RdsReservedInstances", + "OpenSearchReservedInstances", + "RedshiftReservedInstances", + "ElastiCacheReservedInstances" + ] + }, + "ResourceTypeList":{ + "type":"list", + "member":{"shape":"ResourceType"}, + "max":100, + "min":1 + }, + "SageMakerSavingsPlans":{ + "type":"structure", + "members":{ + "configuration":{"shape":"SageMakerSavingsPlansConfiguration"}, + "costCalculation":{"shape":"SavingsPlansCostCalculation"} + } + }, + "SageMakerSavingsPlansConfiguration":{ + "type":"structure", + "members":{ + "accountScope":{"shape":"String"}, + "hourlyCommitment":{"shape":"String"}, + "paymentOption":{"shape":"String"}, + "term":{"shape":"String"} + } + }, + "SavingsEstimationMode":{ + "type":"string", + "enum":[ + "BeforeDiscounts", + "AfterDiscounts" + ] + }, + "SavingsPlansCostCalculation":{ + "type":"structure", + "members":{ + "pricing":{"shape":"SavingsPlansPricing"} + } + }, + "SavingsPlansPricing":{ + "type":"structure", + "members":{ + "estimatedMonthlyCommitment":{"shape":"Double"}, + "estimatedOnDemandCost":{"shape":"Double"}, + "monthlySavingsPlansEligibleCost":{"shape":"Double"}, + "savingsPercentage":{"shape":"Double"} + } + }, + "Source":{ + "type":"string", + "enum":[ + "ComputeOptimizer", + "CostExplorer" + ] + }, + "StorageConfiguration":{ + "type":"structure", + "members":{ + "sizeInGb":{"shape":"Double"}, + "type":{"shape":"String"} + } + }, + "String":{"type":"string"}, + "Tag":{ + "type":"structure", + "members":{ + "key":{"shape":"String"}, + "value":{"shape":"String"} + } + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":100, + "min":1 + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "exception":true + }, + "Timestamp":{"type":"timestamp"}, + "UpdateEnrollmentStatusRequest":{ + "type":"structure", + "required":["status"], + "members":{ + "includeMemberAccounts":{"shape":"Boolean"}, + "status":{"shape":"EnrollmentStatus"} + } + }, + "UpdateEnrollmentStatusResponse":{ + "type":"structure", + "members":{ + "status":{"shape":"String"} + } + }, + "UpdatePreferencesRequest":{ + "type":"structure", + "members":{ + "memberAccountDiscountVisibility":{"shape":"MemberAccountDiscountVisibility"}, + "savingsEstimationMode":{"shape":"SavingsEstimationMode"} + } + }, + "UpdatePreferencesResponse":{ + "type":"structure", + "members":{ + "memberAccountDiscountVisibility":{"shape":"MemberAccountDiscountVisibility"}, + "savingsEstimationMode":{"shape":"SavingsEstimationMode"} + } + }, + "Usage":{ + "type":"structure", + "members":{ + "operation":{"shape":"String"}, + "productCode":{"shape":"String"}, + "unit":{"shape":"String"}, + "usageAmount":{"shape":"Double"}, + "usageType":{"shape":"String"} + } + }, + "UsageList":{ + "type":"list", + "member":{"shape":"Usage"} + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "fields":{"shape":"ValidationExceptionDetails"}, + "message":{"shape":"String"}, + "reason":{"shape":"ValidationExceptionReason"} + }, + "exception":true + }, + "ValidationExceptionDetail":{ + "type":"structure", + "required":[ + "fieldName", + "message" + ], + "members":{ + "fieldName":{"shape":"String"}, + "message":{"shape":"String"} + } + }, + "ValidationExceptionDetails":{ + "type":"list", + "member":{"shape":"ValidationExceptionDetail"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "FieldValidationFailed", + "Other" + ] + } + } +} diff --git a/models/apis/cost-optimization-hub/2022-07-26/docs-2.json b/models/apis/cost-optimization-hub/2022-07-26/docs-2.json new file mode 100644 index 00000000000..f55a95ff265 --- /dev/null +++ b/models/apis/cost-optimization-hub/2022-07-26/docs-2.json @@ -0,0 +1,796 @@ +{ + "version": "2.0", + "service": "

You can use the Cost Optimization Hub API to programmatically identify, filter, aggregate, and quantify savings for your cost optimization recommendations across multiple Amazon Web Services Regions and Amazon Web Services accounts in your organization.

The Cost Optimization Hub API provides the following endpoint:

", + "operations": { + "GetPreferences": "

Returns a set of preferences for an account in order to add account-specific preferences into the service. These preferences impact how the savings associated with recommendations are presented—estimated savings after discounts or estimated savings before discounts, for example.

", + "GetRecommendation": "

Returns both the current and recommended resource configuration and the estimated cost impact for a recommendation.

The recommendationId is only valid for up to a maximum of 24 hours as recommendations are refreshed daily. To retrieve the recommendationId, use the ListRecommendations API.

", + "ListEnrollmentStatuses": "

Retrieves the enrollment status for an account. It can also return the list of accounts that are enrolled under the organization.

", + "ListRecommendationSummaries": "

Returns a concise representation of savings estimates for resources. Also returns de-duped savings across different types of recommendations.

The following filters are not supported for this API: recommendationIds, resourceArns, and resourceIds.

", + "ListRecommendations": "

Returns a list of recommendations.

", + "UpdateEnrollmentStatus": "

Updates the enrollment (opt in and opt out) status of an account to the Cost Optimization Hub service.

If the account is a management account of an organization, this action can also be used to enroll member accounts of the organization.

You must have the appropriate permissions to opt in to Cost Optimization Hub and to view its recommendations. When you opt in, Cost Optimization Hub automatically creates a service-linked role in your account to access its data.

", + "UpdatePreferences": "

Updates a set of preferences for an account in order to add account-specific preferences into the service. These preferences impact how the savings associated with recommendations are presented.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You are not authorized to use this operation with the given parameters.

", + "refs": { + } + }, + "AccountEnrollmentStatus": { + "base": "

Describes the enrollment status of an organization's member accounts in Cost Optimization Hub.

", + "refs": { + "AccountEnrollmentStatuses$member": null + } + }, + "AccountEnrollmentStatuses": { + "base": null, + "refs": { + "ListEnrollmentStatusesResponse$items": "

The account enrollment statuses.

" + } + }, + "AccountId": { + "base": null, + "refs": { + "AccountEnrollmentStatus$accountId": "

The Amazon Web Services account ID.

", + "AccountIdList$member": null, + "ListEnrollmentStatusesRequest$accountId": "

The enrollment status of a specific account ID in the organization.

" + } + }, + "AccountIdList": { + "base": null, + "refs": { + "Filter$accountIds": "

The account that the recommendation is for.

" + } + }, + "ActionType": { + "base": null, + "refs": { + "ActionTypeList$member": null, + "GetRecommendationResponse$actionType": "

The type of action you can take by adopting the recommendation.

" + } + }, + "ActionTypeList": { + "base": null, + "refs": { + "Filter$actionTypes": "

The type of action you can take by adopting the recommendation.

" + } + }, + "BlockStoragePerformanceConfiguration": { + "base": "

Describes the Amazon Elastic Block Store performance configuration of the current and recommended resource configuration for a recommendation.

", + "refs": { + "EbsVolumeConfiguration$performance": "

The Amazon Elastic Block Store performance configuration.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "Ec2ReservedInstancesConfiguration$sizeFlexEligible": "

Determines whether the recommendation is size flexible.

", + "ElastiCacheReservedInstancesConfiguration$sizeFlexEligible": "

Determines whether the recommendation is size flexible.

", + "Filter$restartNeeded": "

Whether or not implementing the recommendation requires a restart.

", + "Filter$rollbackPossible": "

Whether or not implementing the recommendation can be rolled back.

", + "GetRecommendationResponse$restartNeeded": "

Whether or not implementing the recommendation requires a restart.

", + "GetRecommendationResponse$rollbackPossible": "

Whether or not implementing the recommendation can be rolled back.

", + "OpenSearchReservedInstancesConfiguration$sizeFlexEligible": "

Determines whether the recommendation is size flexible.

", + "RdsReservedInstancesConfiguration$sizeFlexEligible": "

Determines whether the recommendation is size flexible.

", + "Recommendation$restartNeeded": "

Whether or not implementing the recommendation requires a restart.

", + "Recommendation$rollbackPossible": "

Whether or not implementing the recommendation can be rolled back.

", + "RedshiftReservedInstancesConfiguration$sizeFlexEligible": "

Determines whether the recommendation is size flexible.

", + "UpdateEnrollmentStatusRequest$includeMemberAccounts": "

Indicates whether to enroll member accounts of the organization if the account is the management account.

" + } + }, + "ComputeConfiguration": { + "base": "

Describes the performance configuration for compute services such as Amazon EC2, Lambda, and ECS.

", + "refs": { + "EcsServiceConfiguration$compute": "

Details about the compute configuration.

", + "LambdaFunctionConfiguration$compute": "

Details about the compute configuration.

" + } + }, + "ComputeSavingsPlans": { + "base": "

The Compute Savings Plans recommendation details.

", + "refs": { + "ResourceDetails$computeSavingsPlans": "

The Compute Savings Plans recommendation details.

" + } + }, + "ComputeSavingsPlansConfiguration": { + "base": "

The Compute Savings Plans configuration used for recommendations.

", + "refs": { + "ComputeSavingsPlans$configuration": "

Configuration details of the Compute Savings Plans to purchase.

" + } + }, + "Datetime": { + "base": null, + "refs": { + "GetRecommendationResponse$lastRefreshTimestamp": "

The time when the recommendation was last generated.

", + "Recommendation$lastRefreshTimestamp": "

The time when the recommendation was last generated.

" + } + }, + "Double": { + "base": null, + "refs": { + "BlockStoragePerformanceConfiguration$iops": "

The number of I/O operations per second.

", + "BlockStoragePerformanceConfiguration$throughput": "

The throughput that the volume supports.

", + "ComputeConfiguration$vCpu": "

The number of vCPU cores in the resource.

", + "EstimatedDiscounts$otherDiscount": "

Estimated other discounts include all discounts that are not itemized. Itemized discounts include reservedInstanceDiscount and savingsPlansDiscount.

", + "EstimatedDiscounts$reservedInstancesDiscount": "

Estimated reserved instance discounts.

", + "EstimatedDiscounts$savingsPlansDiscount": "

Estimated Savings Plans discounts.

", + "GetRecommendationResponse$estimatedMonthlyCost": "

The estimated monthly cost of the recommendation.

", + "GetRecommendationResponse$estimatedMonthlySavings": "

The estimated monthly savings amount for the recommendation.

", + "GetRecommendationResponse$estimatedSavingsOverCostCalculationLookbackPeriod": "

The estimated savings amount over the lookback period used to calculate cost impact for a recommendation.

", + "GetRecommendationResponse$estimatedSavingsPercentage": "

The estimated savings percentage relative to the total cost over the cost calculation lookback period.

", + "ListRecommendationSummariesResponse$estimatedTotalDedupedSavings": "

The total overall savings for the aggregated view.

", + "Recommendation$estimatedMonthlyCost": "

The estimated monthly cost for the recommendation.

", + "Recommendation$estimatedMonthlySavings": "

The estimated monthly savings amount for the recommendation.

", + "Recommendation$estimatedSavingsPercentage": "

The estimated savings percentage relative to the total cost over the cost calculation lookback period.

", + "RecommendationSummary$estimatedMonthlySavings": "

The estimated total savings resulting from modifications, on a monthly basis.

", + "ReservedInstancesPricing$estimatedMonthlyAmortizedReservationCost": "

The estimated cost of your recurring monthly fees for the recommended reserved instance across the month.

", + "ReservedInstancesPricing$estimatedOnDemandCost": "

The remaining On-Demand cost estimated to not be covered by the recommended reserved instance, over the length of the lookback period.

", + "ReservedInstancesPricing$monthlyReservationEligibleCost": "

The cost of paying for the recommended reserved instance monthly.

", + "ReservedInstancesPricing$savingsPercentage": "

The savings percentage relative to the total On-Demand costs that are associated with this instance.

", + "ResourcePricing$estimatedCostAfterDiscounts": "

The savings estimate incorporating all discounts with Amazon Web Services, such as Reserved Instances and Savings Plans.

", + "ResourcePricing$estimatedCostBeforeDiscounts": "

The savings estimate using Amazon Web Services public pricing without incorporating any discounts.

", + "ResourcePricing$estimatedNetUnusedAmortizedCommitments": "

The estimated net unused amortized commitment for the recommendation.

", + "SavingsPlansPricing$estimatedMonthlyCommitment": "

Estimated monthly commitment for the Savings Plan.

", + "SavingsPlansPricing$estimatedOnDemandCost": "

Estimated On-Demand cost you will pay after buying the Savings Plan.

", + "SavingsPlansPricing$monthlySavingsPlansEligibleCost": "

The cost of paying for the recommended Savings Plan monthly.

", + "SavingsPlansPricing$savingsPercentage": "

Estimated savings as a percentage of your overall costs after buying the Savings Plan.

", + "StorageConfiguration$sizeInGb": "

The storage volume.

", + "Usage$usageAmount": "

The usage amount.

" + } + }, + "EbsVolume": { + "base": "

Describes the Amazon Elastic Block Store volume configuration of the current and recommended resource configuration for a recommendation.

", + "refs": { + "ResourceDetails$ebsVolume": "

The Amazon Elastic Block Store volume recommendation details.

" + } + }, + "EbsVolumeConfiguration": { + "base": "

The Amazon Elastic Block Store volume configuration used for recommendations.

", + "refs": { + "EbsVolume$configuration": "

The Amazon Elastic Block Store volume configuration used for recommendations.

" + } + }, + "Ec2AutoScalingGroup": { + "base": "

The EC2 Auto Scaling group recommendation details.

", + "refs": { + "ResourceDetails$ec2AutoScalingGroup": "

The EC2 Auto Scaling group recommendation details.

" + } + }, + "Ec2AutoScalingGroupConfiguration": { + "base": "

The EC2 auto scaling group configuration used for recommendations.

", + "refs": { + "Ec2AutoScalingGroup$configuration": "

The EC2 Auto Scaling group configuration used for recommendations.

" + } + }, + "Ec2Instance": { + "base": "

Describes the EC2 instance configuration of the current and recommended resource configuration for a recommendation.

", + "refs": { + "ResourceDetails$ec2Instance": "

The EC2 instance recommendation details.

" + } + }, + "Ec2InstanceConfiguration": { + "base": "

The EC2 instance configuration used for recommendations.

", + "refs": { + "Ec2Instance$configuration": "

The EC2 instance configuration used for recommendations.

" + } + }, + "Ec2InstanceSavingsPlans": { + "base": "

The EC2 instance Savings Plans recommendation details.

", + "refs": { + "ResourceDetails$ec2InstanceSavingsPlans": "

The EC2 instance Savings Plans recommendation details.

" + } + }, + "Ec2InstanceSavingsPlansConfiguration": { + "base": "

The EC2 instance Savings Plans configuration used for recommendations.

", + "refs": { + "Ec2InstanceSavingsPlans$configuration": "

The EC2 instance Savings Plans configuration used for recommendations.

" + } + }, + "Ec2ReservedInstances": { + "base": "

The EC2 reserved instances recommendation details.

", + "refs": { + "ResourceDetails$ec2ReservedInstances": "

The EC2 reserved instances recommendation details.

" + } + }, + "Ec2ReservedInstancesConfiguration": { + "base": "

The EC2 reserved instances configuration used for recommendations.

", + "refs": { + "Ec2ReservedInstances$configuration": "

The EC2 reserved instances configuration used for recommendations.

" + } + }, + "EcsService": { + "base": "

The ECS service recommendation details.

", + "refs": { + "ResourceDetails$ecsService": "

The ECS service recommendation details.

" + } + }, + "EcsServiceConfiguration": { + "base": "

The ECS service configuration used for recommendations.

", + "refs": { + "EcsService$configuration": "

The ECS service configuration used for recommendations.

" + } + }, + "ElastiCacheReservedInstances": { + "base": "

The ElastiCache reserved instances recommendation details.

", + "refs": { + "ResourceDetails$elastiCacheReservedInstances": "

The ElastiCache reserved instances recommendation details.

" + } + }, + "ElastiCacheReservedInstancesConfiguration": { + "base": "

The ElastiCache reserved instances configuration used for recommendations.

", + "refs": { + "ElastiCacheReservedInstances$configuration": "

The ElastiCache reserved instances configuration used for recommendations.

" + } + }, + "EnrollmentStatus": { + "base": null, + "refs": { + "AccountEnrollmentStatus$status": "

The account enrollment status.

", + "UpdateEnrollmentStatusRequest$status": "

Sets the account status.

" + } + }, + "EstimatedDiscounts": { + "base": "

Estimated discount details of the current and recommended resource configuration for a recommendation.

", + "refs": { + "ResourcePricing$estimatedDiscounts": "

The estimated discounts for a recommendation.

" + } + }, + "Filter": { + "base": "

Describes a filter that returns a more specific list of recommendations. Filters recommendations by different dimensions.

", + "refs": { + "ListRecommendationSummariesRequest$filter": null, + "ListRecommendationsRequest$filter": "

The constraints that you want all returned recommendations to match.

" + } + }, + "GetPreferencesRequest": { + "base": null, + "refs": { + } + }, + "GetPreferencesResponse": { + "base": null, + "refs": { + } + }, + "GetRecommendationRequest": { + "base": null, + "refs": { + } + }, + "GetRecommendationResponse": { + "base": null, + "refs": { + } + }, + "ImplementationEffort": { + "base": null, + "refs": { + "GetRecommendationResponse$implementationEffort": "

The effort required to implement the recommendation.

", + "ImplementationEffortList$member": null + } + }, + "ImplementationEffortList": { + "base": null, + "refs": { + "Filter$implementationEfforts": "

The effort required to implement the recommendation.

" + } + }, + "InstanceConfiguration": { + "base": "

The Instance configuration used for recommendations.

", + "refs": { + "Ec2AutoScalingGroupConfiguration$instance": "

Details about the instance.

", + "Ec2InstanceConfiguration$instance": "

Details about the instance.

" + } + }, + "Integer": { + "base": null, + "refs": { + "ComputeConfiguration$memorySizeInMB": "

The memory size of the resource.

", + "GetRecommendationResponse$costCalculationLookbackPeriodInDays": "

The lookback period used to calculate cost impact for a recommendation.

", + "GetRecommendationResponse$recommendationLookbackPeriodInDays": "

The lookback period that's used to generate the recommendation.

", + "Recommendation$recommendationLookbackPeriodInDays": "

The lookback period that's used to generate the recommendation.

", + "RecommendationSummary$recommendationCount": "

The total number of instance recommendations.

" + } + }, + "InternalServerException": { + "base": "

An error on the server occurred during the processing of your request. Try again later.

", + "refs": { + } + }, + "LambdaFunction": { + "base": "

The Lambda function recommendation details.

", + "refs": { + "ResourceDetails$lambdaFunction": "

The Lambda function recommendation details.

" + } + }, + "LambdaFunctionConfiguration": { + "base": "

The Lambda function configuration used for recommendations.

", + "refs": { + "LambdaFunction$configuration": "

The Lambda function configuration used for recommendations.

" + } + }, + "ListEnrollmentStatusesRequest": { + "base": null, + "refs": { + } + }, + "ListEnrollmentStatusesResponse": { + "base": null, + "refs": { + } + }, + "ListRecommendationSummariesRequest": { + "base": null, + "refs": { + } + }, + "ListRecommendationSummariesRequestMaxResultsInteger": { + "base": null, + "refs": { + "ListRecommendationSummariesRequest$maxResults": "

The maximum number of recommendations that are returned for the request.

" + } + }, + "ListRecommendationSummariesResponse": { + "base": null, + "refs": { + } + }, + "ListRecommendationsRequest": { + "base": null, + "refs": { + } + }, + "ListRecommendationsRequestMaxResultsInteger": { + "base": null, + "refs": { + "ListRecommendationsRequest$maxResults": "

The maximum number of recommendations that are returned for the request.

" + } + }, + "ListRecommendationsResponse": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListEnrollmentStatusesRequest$maxResults": "

The maximum number of objects that are returned for the request.

" + } + }, + "MemberAccountDiscountVisibility": { + "base": null, + "refs": { + "GetPreferencesResponse$memberAccountDiscountVisibility": "

Retrieves the status of the \"member account discount visibility\" preference.

", + "UpdatePreferencesRequest$memberAccountDiscountVisibility": "

Sets the \"member account discount visibility\" preference.

", + "UpdatePreferencesResponse$memberAccountDiscountVisibility": "

Shows the status of the \"member account discount visibility\" preference.

" + } + }, + "OpenSearchReservedInstances": { + "base": "

The OpenSearch reserved instances recommendation details.

", + "refs": { + "ResourceDetails$openSearchReservedInstances": "

The OpenSearch reserved instances recommendation details.

" + } + }, + "OpenSearchReservedInstancesConfiguration": { + "base": "

The OpenSearch reserved instances configuration used for recommendations.

", + "refs": { + "OpenSearchReservedInstances$configuration": "

The OpenSearch reserved instances configuration used for recommendations.

" + } + }, + "Order": { + "base": null, + "refs": { + "OrderBy$order": "

The order that's used to sort the data.

" + } + }, + "OrderBy": { + "base": "

Defines how rows will be sorted in the response.

", + "refs": { + "ListRecommendationsRequest$orderBy": "

The ordering of recommendations by a dimension.

" + } + }, + "PrimitiveBoolean": { + "base": null, + "refs": { + "ListEnrollmentStatusesRequest$includeOrganizationInfo": "

Indicates whether to return the enrollment status for the organization.

", + "ListRecommendationsRequest$includeAllRecommendations": "

List of all recommendations for a resource, or a single recommendation if de-duped by resourceId.

" + } + }, + "RdsReservedInstances": { + "base": "

The RDS reserved instances recommendation details.

", + "refs": { + "ResourceDetails$rdsReservedInstances": "

The RDS reserved instances recommendation details.

" + } + }, + "RdsReservedInstancesConfiguration": { + "base": "

The RDS reserved instances configuration used for recommendations.

", + "refs": { + "RdsReservedInstances$configuration": "

The RDS reserved instances configuration used for recommendations.

" + } + }, + "Recommendation": { + "base": "

Describes a recommendation.

", + "refs": { + "RecommendationList$member": null + } + }, + "RecommendationIdList": { + "base": null, + "refs": { + "Filter$recommendationIds": "

The IDs for the recommendations.

" + } + }, + "RecommendationList": { + "base": null, + "refs": { + "ListRecommendationsResponse$items": "

List of all savings recommendations.

" + } + }, + "RecommendationSummariesList": { + "base": null, + "refs": { + "ListRecommendationSummariesResponse$items": "

List of all savings recommendations.

" + } + }, + "RecommendationSummary": { + "base": "

The summary of rightsizing recommendations, including de-duped savings from all types of recommendations.

", + "refs": { + "RecommendationSummariesList$member": null + } + }, + "RedshiftReservedInstances": { + "base": "

The Redshift reserved instances recommendation details.

", + "refs": { + "ResourceDetails$redshiftReservedInstances": "

The Redshift reserved instances recommendation details.

" + } + }, + "RedshiftReservedInstancesConfiguration": { + "base": "

The Redshift reserved instances configuration used for recommendations.

", + "refs": { + "RedshiftReservedInstances$configuration": "

The Redshift reserved instances configuration used for recommendations.

" + } + }, + "RegionList": { + "base": null, + "refs": { + "Filter$regions": "

The Amazon Web Services Region of the resource.

" + } + }, + "ReservedInstancesCostCalculation": { + "base": "

Cost impact of the purchase recommendation.

", + "refs": { + "Ec2ReservedInstances$costCalculation": "

Cost impact of the purchase recommendation.

", + "ElastiCacheReservedInstances$costCalculation": "

Cost impact of the purchase recommendation.

", + "OpenSearchReservedInstances$costCalculation": "

Cost impact of the purchase recommendation.

", + "RdsReservedInstances$costCalculation": "

Cost impact of the purchase recommendation.

", + "RedshiftReservedInstances$costCalculation": "

Cost impact of the purchase recommendation.

" + } + }, + "ReservedInstancesPricing": { + "base": "

Pricing details for your recommended reserved instance.

", + "refs": { + "ReservedInstancesCostCalculation$pricing": "

Pricing details of the purchase recommendation.

" + } + }, + "ResourceArnList": { + "base": null, + "refs": { + "Filter$resourceArns": "

The Amazon Resource Name (ARN) of the recommendation.

" + } + }, + "ResourceCostCalculation": { + "base": "

Cost impact of the resource recommendation.

", + "refs": { + "EbsVolume$costCalculation": "

Cost impact of the recommendation.

", + "Ec2AutoScalingGroup$costCalculation": "

Cost impact of the recommendation.

", + "Ec2Instance$costCalculation": "

Cost impact of the recommendation.

", + "EcsService$costCalculation": "

Cost impact of the recommendation.

", + "LambdaFunction$costCalculation": "

Cost impact of the recommendation.

" + } + }, + "ResourceDetails": { + "base": "

Contains detailed information about the specified resource.

", + "refs": { + "GetRecommendationResponse$currentResourceDetails": "

The details for the resource.

", + "GetRecommendationResponse$recommendedResourceDetails": "

The details about the recommended resource.

" + } + }, + "ResourceIdList": { + "base": null, + "refs": { + "Filter$resourceIds": "

The resource ID of the recommendation.

" + } + }, + "ResourceNotFoundException": { + "base": "

The specified Amazon Resource Name (ARN) in the request doesn't exist.

", + "refs": { + } + }, + "ResourcePricing": { + "base": "

Contains pricing information about the specified resource.

", + "refs": { + "ResourceCostCalculation$pricing": "

Pricing details of the resource recommendation.

" + } + }, + "ResourceType": { + "base": null, + "refs": { + "GetRecommendationResponse$currentResourceType": "

The type of resource.

", + "GetRecommendationResponse$recommendedResourceType": "

The resource type of the recommendation.

", + "ResourceTypeList$member": null + } + }, + "ResourceTypeList": { + "base": null, + "refs": { + "Filter$resourceTypes": "

The resource type of the recommendation.

" + } + }, + "SageMakerSavingsPlans": { + "base": "

The SageMaker Savings Plans recommendation details.

", + "refs": { + "ResourceDetails$sageMakerSavingsPlans": "

The SageMaker Savings Plans recommendation details.

" + } + }, + "SageMakerSavingsPlansConfiguration": { + "base": "

The SageMaker Savings Plans configuration used for recommendations.

", + "refs": { + "SageMakerSavingsPlans$configuration": "

The SageMaker Savings Plans configuration used for recommendations.

" + } + }, + "SavingsEstimationMode": { + "base": null, + "refs": { + "GetPreferencesResponse$savingsEstimationMode": "

Retrieves the status of the \"savings estimation mode\" preference.

", + "UpdatePreferencesRequest$savingsEstimationMode": "

Sets the \"savings estimation mode\" preference.

", + "UpdatePreferencesResponse$savingsEstimationMode": "

Shows the status of the \"savings estimation mode\" preference.

" + } + }, + "SavingsPlansCostCalculation": { + "base": "

Cost impact of the purchase recommendation.

", + "refs": { + "ComputeSavingsPlans$costCalculation": "

Cost impact of the Savings Plans purchase recommendation.

", + "Ec2InstanceSavingsPlans$costCalculation": "

Cost impact of the Savings Plans purchase recommendation.

", + "SageMakerSavingsPlans$costCalculation": "

Cost impact of the Savings Plans purchase recommendation.

" + } + }, + "SavingsPlansPricing": { + "base": "

Pricing information about a Savings Plan.

", + "refs": { + "SavingsPlansCostCalculation$pricing": "

Pricing details of the purchase recommendation.

" + } + }, + "Source": { + "base": null, + "refs": { + "GetRecommendationResponse$source": "

The source of the recommendation.

", + "Recommendation$source": "

The source of the recommendation.

" + } + }, + "StorageConfiguration": { + "base": "

The storage configuration used for recommendations.

", + "refs": { + "EbsVolumeConfiguration$storage": "

The disk storage of the Amazon Elastic Block Store volume.

" + } + }, + "String": { + "base": null, + "refs": { + "AccessDeniedException$message": null, + "ComputeConfiguration$architecture": "

The architecture of the resource.

", + "ComputeConfiguration$platform": "

The platform of the resource. The platform is the specific combination of operating system, license model, and software on an instance.

", + "ComputeSavingsPlansConfiguration$accountScope": "

The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the management account and member accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual member accounts only.

", + "ComputeSavingsPlansConfiguration$hourlyCommitment": "

The hourly commitment for the Savings Plans type.

", + "ComputeSavingsPlansConfiguration$paymentOption": "

The payment option for the commitment.

", + "ComputeSavingsPlansConfiguration$term": "

The Savings Plans recommendation term in years.

", + "EbsVolumeConfiguration$attachmentState": "

The Amazon Elastic Block Store attachment state.

", + "Ec2InstanceSavingsPlansConfiguration$accountScope": "

The account scope that you want your recommendations for.

", + "Ec2InstanceSavingsPlansConfiguration$hourlyCommitment": "

The hourly commitment for the Savings Plans type.

", + "Ec2InstanceSavingsPlansConfiguration$instanceFamily": "

The instance family of the recommended Savings Plan.

", + "Ec2InstanceSavingsPlansConfiguration$paymentOption": "

The payment option for the commitment.

", + "Ec2InstanceSavingsPlansConfiguration$savingsPlansRegion": "

The Amazon Web Services Region of the commitment.

", + "Ec2InstanceSavingsPlansConfiguration$term": "

The Savings Plans recommendation term in years.

", + "Ec2ReservedInstancesConfiguration$accountScope": "

The account scope that you want your recommendations for.

", + "Ec2ReservedInstancesConfiguration$currentGeneration": "

Determines whether the recommendation is for a current generation instance.

", + "Ec2ReservedInstancesConfiguration$instanceFamily": "

The instance family of the recommended reservation.

", + "Ec2ReservedInstancesConfiguration$instanceType": "

The type of instance that Amazon Web Services recommends.

", + "Ec2ReservedInstancesConfiguration$monthlyRecurringCost": "

How much purchasing reserved instances costs you on a monthly basis.

", + "Ec2ReservedInstancesConfiguration$normalizedUnitsToPurchase": "

The number of normalized units that Amazon Web Services recommends that you purchase.

", + "Ec2ReservedInstancesConfiguration$numberOfInstancesToPurchase": "

The number of instances that Amazon Web Services recommends that you purchase.

", + "Ec2ReservedInstancesConfiguration$offeringClass": "

Indicates whether the recommendation is for standard or convertible reservations.

", + "Ec2ReservedInstancesConfiguration$paymentOption": "

The payment option for the commitment.

", + "Ec2ReservedInstancesConfiguration$platform": "

The platform of the recommended reservation. The platform is the specific combination of operating system, license model, and software on an instance.

", + "Ec2ReservedInstancesConfiguration$reservedInstancesRegion": "

The Amazon Web Services Region of the commitment.

", + "Ec2ReservedInstancesConfiguration$service": "

The service that you want your recommendations for.

", + "Ec2ReservedInstancesConfiguration$tenancy": "

Determines whether the recommended reservation is dedicated or shared.

", + "Ec2ReservedInstancesConfiguration$term": "

The reserved instances recommendation term in years.

", + "Ec2ReservedInstancesConfiguration$upfrontCost": "

How much purchasing this instance costs you upfront.

", + "ElastiCacheReservedInstancesConfiguration$accountScope": "

The account scope that you want your recommendations for.

", + "ElastiCacheReservedInstancesConfiguration$currentGeneration": "

Determines whether the recommendation is for a current generation instance.

", + "ElastiCacheReservedInstancesConfiguration$instanceFamily": "

The instance family of the recommended reservation.

", + "ElastiCacheReservedInstancesConfiguration$instanceType": "

The type of instance that Amazon Web Services recommends.

", + "ElastiCacheReservedInstancesConfiguration$monthlyRecurringCost": "

How much purchasing reserved instances costs you on a monthly basis.

", + "ElastiCacheReservedInstancesConfiguration$normalizedUnitsToPurchase": "

The number of normalized units that Amazon Web Services recommends that you purchase.

", + "ElastiCacheReservedInstancesConfiguration$numberOfInstancesToPurchase": "

The number of instances that Amazon Web Services recommends that you purchase.

", + "ElastiCacheReservedInstancesConfiguration$paymentOption": "

The payment option for the commitment.

", + "ElastiCacheReservedInstancesConfiguration$reservedInstancesRegion": "

The Amazon Web Services Region of the commitment.

", + "ElastiCacheReservedInstancesConfiguration$service": "

The service that you want your recommendations for.

", + "ElastiCacheReservedInstancesConfiguration$term": "

The reserved instances recommendation term in years.

", + "ElastiCacheReservedInstancesConfiguration$upfrontCost": "

How much purchasing this instance costs you upfront.

", + "GetRecommendationRequest$recommendationId": "

The ID for the recommendation.

", + "GetRecommendationResponse$accountId": "

The account that the recommendation is for.

", + "GetRecommendationResponse$currencyCode": "

The currency code used for the recommendation.

", + "GetRecommendationResponse$recommendationId": "

The ID for the recommendation.

", + "GetRecommendationResponse$region": "

The Amazon Web Services Region of the resource.

", + "GetRecommendationResponse$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

", + "GetRecommendationResponse$resourceId": "

The unique identifier for the resource. This is the same as the Amazon Resource Name (ARN), if available.

", + "InstanceConfiguration$type": "

Details about the type.

", + "InternalServerException$message": null, + "ListEnrollmentStatusesRequest$nextToken": "

The token to retrieve the next set of results.

", + "ListEnrollmentStatusesResponse$nextToken": "

The token to retrieve the next set of results.

", + "ListRecommendationSummariesRequest$groupBy": "

The grouping of recommendations by a dimension.

", + "ListRecommendationSummariesRequest$nextToken": "

The token to retrieve the next set of results.

", + "ListRecommendationSummariesResponse$currencyCode": "

The currency code used for the recommendation.

", + "ListRecommendationSummariesResponse$groupBy": "

The dimension used to group the recommendations by.

", + "ListRecommendationSummariesResponse$nextToken": "

The token to retrieve the next set of results.

", + "ListRecommendationsRequest$nextToken": "

The token to retrieve the next set of results.

", + "ListRecommendationsResponse$nextToken": "

The token to retrieve the next set of results.

", + "OpenSearchReservedInstancesConfiguration$accountScope": "

The account scope that you want your recommendations for.

", + "OpenSearchReservedInstancesConfiguration$currentGeneration": "

Determines whether the recommendation is for a current generation instance.

", + "OpenSearchReservedInstancesConfiguration$instanceType": "

The type of instance that Amazon Web Services recommends.

", + "OpenSearchReservedInstancesConfiguration$monthlyRecurringCost": "

How much purchasing reserved instances costs you on a monthly basis.

", + "OpenSearchReservedInstancesConfiguration$normalizedUnitsToPurchase": "

The number of normalized units that Amazon Web Services recommends that you purchase.

", + "OpenSearchReservedInstancesConfiguration$numberOfInstancesToPurchase": "

The number of instances that Amazon Web Services recommends that you purchase.

", + "OpenSearchReservedInstancesConfiguration$paymentOption": "

The payment option for the commitment.

", + "OpenSearchReservedInstancesConfiguration$reservedInstancesRegion": "

The Amazon Web Services Region of the commitment.

", + "OpenSearchReservedInstancesConfiguration$service": "

The service that you want your recommendations for.

", + "OpenSearchReservedInstancesConfiguration$term": "

The reserved instances recommendation term in years.

", + "OpenSearchReservedInstancesConfiguration$upfrontCost": "

How much purchasing this instance costs you upfront.

", + "OrderBy$dimension": "

Sorts by dimension values.

", + "RdsReservedInstancesConfiguration$accountScope": "

The account scope that you want your recommendations for.

", + "RdsReservedInstancesConfiguration$currentGeneration": "

Determines whether the recommendation is for a current generation instance.

", + "RdsReservedInstancesConfiguration$databaseEdition": "

The database edition that the recommended reservation supports.

", + "RdsReservedInstancesConfiguration$databaseEngine": "

The database engine that the recommended reservation supports.

", + "RdsReservedInstancesConfiguration$deploymentOption": "

Determines whether the recommendation is for a reservation in a single Availability Zone or a reservation with a backup in a second Availability Zone.

", + "RdsReservedInstancesConfiguration$instanceFamily": "

The instance family of the recommended reservation.

", + "RdsReservedInstancesConfiguration$instanceType": "

The type of instance that Amazon Web Services recommends.

", + "RdsReservedInstancesConfiguration$licenseModel": "

The license model that the recommended reservation supports.

", + "RdsReservedInstancesConfiguration$monthlyRecurringCost": "

How much purchasing this instance costs you on a monthly basis.

", + "RdsReservedInstancesConfiguration$normalizedUnitsToPurchase": "

The number of normalized units that Amazon Web Services recommends that you purchase.

", + "RdsReservedInstancesConfiguration$numberOfInstancesToPurchase": "

The number of instances that Amazon Web Services recommends that you purchase.

", + "RdsReservedInstancesConfiguration$paymentOption": "

The payment option for the commitment.

", + "RdsReservedInstancesConfiguration$reservedInstancesRegion": "

The Amazon Web Services Region of the commitment.

", + "RdsReservedInstancesConfiguration$service": "

The service that you want your recommendations for.

", + "RdsReservedInstancesConfiguration$term": "

The reserved instances recommendation term in years.

", + "RdsReservedInstancesConfiguration$upfrontCost": "

How much purchasing this instance costs you upfront.

", + "Recommendation$accountId": "

The account that the recommendation is for.

", + "Recommendation$actionType": "

The type of tasks that can be carried out by this action.

", + "Recommendation$currencyCode": "

The currency code used for the recommendation.

", + "Recommendation$currentResourceSummary": "

Describes the current resource.

", + "Recommendation$currentResourceType": "

The current resource type.

", + "Recommendation$implementationEffort": "

The effort required to implement the recommendation.

", + "Recommendation$recommendationId": "

The ID for the recommendation.

", + "Recommendation$recommendedResourceSummary": "

Describes the recommended resource.

", + "Recommendation$recommendedResourceType": "

The recommended resource type.

", + "Recommendation$region": "

The Amazon Web Services Region of the resource.

", + "Recommendation$resourceArn": "

The Amazon Resource Name (ARN) for the recommendation.

", + "Recommendation$resourceId": "

The resource ID for the recommendation.

", + "RecommendationIdList$member": null, + "RecommendationSummary$group": "

The grouping of recommendations.

", + "RedshiftReservedInstancesConfiguration$accountScope": "

The account scope that you want your recommendations for.

", + "RedshiftReservedInstancesConfiguration$currentGeneration": "

Determines whether the recommendation is for a current generation instance.

", + "RedshiftReservedInstancesConfiguration$instanceFamily": "

The instance family of the recommended reservation.

", + "RedshiftReservedInstancesConfiguration$instanceType": "

The type of instance that Amazon Web Services recommends.

", + "RedshiftReservedInstancesConfiguration$monthlyRecurringCost": "

How much purchasing reserved instances costs you on a monthly basis.

", + "RedshiftReservedInstancesConfiguration$normalizedUnitsToPurchase": "

The number of normalized units that Amazon Web Services recommends that you purchase.

", + "RedshiftReservedInstancesConfiguration$numberOfInstancesToPurchase": "

The number of instances that Amazon Web Services recommends that you purchase.

", + "RedshiftReservedInstancesConfiguration$paymentOption": "

The payment option for the commitment.

", + "RedshiftReservedInstancesConfiguration$reservedInstancesRegion": "

The Amazon Web Services Region of the commitment.

", + "RedshiftReservedInstancesConfiguration$service": "

The service that you want your recommendations for.

", + "RedshiftReservedInstancesConfiguration$term": "

The reserved instances recommendation term in years.

", + "RedshiftReservedInstancesConfiguration$upfrontCost": "

How much purchasing this instance costs you upfront.

", + "RegionList$member": null, + "ResourceArnList$member": null, + "ResourceIdList$member": null, + "ResourceNotFoundException$message": null, + "ResourceNotFoundException$resourceId": "

The identifier of the resource that was not found.

", + "SageMakerSavingsPlansConfiguration$accountScope": "

The account scope that you want your recommendations for.

", + "SageMakerSavingsPlansConfiguration$hourlyCommitment": "

The hourly commitment for the Savings Plans type.

", + "SageMakerSavingsPlansConfiguration$paymentOption": "

The payment option for the commitment.

", + "SageMakerSavingsPlansConfiguration$term": "

The Savings Plans recommendation term in years.

", + "StorageConfiguration$type": "

The storage type.

", + "Tag$key": "

The key that's associated with the tag.

", + "Tag$value": "

The value that's associated with the tag.

", + "ThrottlingException$message": null, + "UpdateEnrollmentStatusResponse$status": "

The enrollment status of the account.

", + "Usage$operation": "

The operation value.

", + "Usage$productCode": "

The product code.

", + "Usage$unit": "

The usage unit.

", + "Usage$usageType": "

The usage type.

", + "ValidationException$message": null, + "ValidationExceptionDetail$fieldName": "

The field name where the invalid entry was detected.

", + "ValidationExceptionDetail$message": "

A message with the reason for the validation exception error.

" + } + }, + "Tag": { + "base": "

The tag structure that contains a tag key and value.

", + "refs": { + "TagList$member": null + } + }, + "TagList": { + "base": null, + "refs": { + "Filter$tags": "

A list of tags assigned to the recommendation.

", + "GetRecommendationResponse$tags": "

A list of tags associated with the resource for which the recommendation exists.

", + "Recommendation$tags": "

A list of tags assigned to the recommendation.

" + } + }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "AccountEnrollmentStatus$createdTimestamp": "

The time when the account enrollment status was created.

", + "AccountEnrollmentStatus$lastUpdatedTimestamp": "

The time when the account enrollment status was last updated.

" + } + }, + "UpdateEnrollmentStatusRequest": { + "base": null, + "refs": { + } + }, + "UpdateEnrollmentStatusResponse": { + "base": null, + "refs": { + } + }, + "UpdatePreferencesRequest": { + "base": null, + "refs": { + } + }, + "UpdatePreferencesResponse": { + "base": null, + "refs": { + } + }, + "Usage": { + "base": "

Details about the usage.

", + "refs": { + "UsageList$member": null + } + }, + "UsageList": { + "base": null, + "refs": { + "ResourceCostCalculation$usages": "

Usage details of the resource recommendation.

" + } + }, + "ValidationException": { + "base": "

The input fails to satisfy the constraints specified by an Amazon Web Services service.

", + "refs": { + } + }, + "ValidationExceptionDetail": { + "base": "

The input failed to meet the constraints specified by the Amazon Web Services service in a specified field.

", + "refs": { + "ValidationExceptionDetails$member": null + } + }, + "ValidationExceptionDetails": { + "base": null, + "refs": { + "ValidationException$fields": "

The list of fields that are invalid.

" + } + }, + "ValidationExceptionReason": { + "base": null, + "refs": { + "ValidationException$reason": "

The reason for the validation exception.

" + } + } + } +} diff --git a/models/apis/cost-optimization-hub/2022-07-26/endpoint-rule-set-1.json b/models/apis/cost-optimization-hub/2022-07-26/endpoint-rule-set-1.json new file mode 100644 index 00000000000..009d68485ce --- /dev/null +++ b/models/apis/cost-optimization-hub/2022-07-26/endpoint-rule-set-1.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cost-optimization-hub-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cost-optimization-hub-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cost-optimization-hub.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cost-optimization-hub.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/models/apis/cost-optimization-hub/2022-07-26/endpoint-tests-1.json b/models/apis/cost-optimization-hub/2022-07-26/endpoint-tests-1.json new file mode 100644 index 00000000000..ba946348e14 --- /dev/null +++ b/models/apis/cost-optimization-hub/2022-07-26/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cost-optimization-hub.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/cost-optimization-hub/2022-07-26/examples-1.json b/models/apis/cost-optimization-hub/2022-07-26/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/cost-optimization-hub/2022-07-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/cost-optimization-hub/2022-07-26/paginators-1.json b/models/apis/cost-optimization-hub/2022-07-26/paginators-1.json new file mode 100644 index 00000000000..39460e689e5 --- /dev/null +++ b/models/apis/cost-optimization-hub/2022-07-26/paginators-1.json @@ -0,0 +1,22 @@ +{ + "pagination": { + "ListEnrollmentStatuses": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListRecommendationSummaries": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListRecommendations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + } + } +} diff --git a/models/apis/detective/2018-10-26/api-2.json b/models/apis/detective/2018-10-26/api-2.json index 2149bf15135..3a81f385b29 100644 --- a/models/apis/detective/2018-10-26/api-2.json +++ b/models/apis/detective/2018-10-26/api-2.json @@ -175,6 +175,22 @@ {"shape":"TooManyRequestsException"} ] }, + "GetInvestigation":{ + "name":"GetInvestigation", + "http":{ + "method":"POST", + "requestUri":"/investigations/getInvestigation" + }, + "input":{"shape":"GetInvestigationRequest"}, + "output":{"shape":"GetInvestigationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"} + ] + }, "GetMembers":{ "name":"GetMembers", "http":{ @@ -219,6 +235,38 @@ {"shape":"ValidationException"} ] }, + "ListIndicators":{ + "name":"ListIndicators", + "http":{ + "method":"POST", + "requestUri":"/investigations/listIndicators" + }, + "input":{"shape":"ListIndicatorsRequest"}, + "output":{"shape":"ListIndicatorsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"} + ] + }, + "ListInvestigations":{ + "name":"ListInvestigations", + "http":{ + "method":"POST", + "requestUri":"/investigations/listInvestigations" + }, + "input":{"shape":"ListInvestigationsRequest"}, + "output":{"shape":"ListInvestigationsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"} + ] + }, "ListInvitations":{ "name":"ListInvitations", "http":{ @@ -294,6 +342,22 @@ {"shape":"ValidationException"} ] }, + "StartInvestigation":{ + "name":"StartInvestigation", + "http":{ + "method":"POST", + "requestUri":"/investigations/startInvestigation" + }, + "input":{"shape":"StartInvestigationRequest"}, + "output":{"shape":"StartInvestigationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "StartMonitoringMember":{ "name":"StartMonitoringMember", "http":{ @@ -357,6 +421,21 @@ {"shape":"ValidationException"} ] }, + "UpdateInvestigationState":{ + "name":"UpdateInvestigationState", + "http":{ + "method":"POST", + "requestUri":"/investigations/updateInvestigationState" + }, + "input":{"shape":"UpdateInvestigationStateRequest"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"} + ] + }, "UpdateOrganizationConfiguration":{ "name":"UpdateOrganizationConfiguration", "http":{ @@ -373,6 +452,9 @@ } }, "shapes":{ + "APIFailureCount":{"type":"long"}, + "APIName":{"type":"string"}, + "APISuccessCount":{"type":"long"}, "AcceptInvitationRequest":{ "type":"structure", "required":["GraphArn"], @@ -439,6 +521,12 @@ "type":"list", "member":{"shape":"Administrator"} }, + "AiPaginationToken":{ + "type":"string", + "max":2048, + "min":1 + }, + "Aso":{"type":"string"}, "BatchGetGraphMemberDatasourcesRequest":{ "type":"structure", "required":[ @@ -564,6 +652,17 @@ "VolumeUsageUpdateTime":{"shape":"Timestamp"} } }, + "DateFilter":{ + "type":"structure", + "required":[ + "StartInclusive", + "EndInclusive" + ], + "members":{ + "StartInclusive":{"shape":"Timestamp"}, + "EndInclusive":{"shape":"Timestamp"} + } + }, "DeleteGraphRequest":{ "type":"structure", "required":["GraphArn"], @@ -629,6 +728,17 @@ "AccountId":{"shape":"AccountId"} } }, + "EntityArn":{ + "type":"string", + "pattern":"^arn:.*" + }, + "EntityType":{ + "type":"string", + "enum":[ + "IAM_ROLE", + "IAM_USER" + ] + }, "ErrorCode":{ "type":"string", "enum":[ @@ -639,6 +749,57 @@ }, "ErrorCodeReason":{"type":"string"}, "ErrorMessage":{"type":"string"}, + "Field":{ + "type":"string", + "enum":[ + "SEVERITY", + "STATUS", + "CREATED_TIME" + ] + }, + "FilterCriteria":{ + "type":"structure", + "members":{ + "Severity":{"shape":"StringFilter"}, + "Status":{"shape":"StringFilter"}, + "State":{"shape":"StringFilter"}, + "EntityArn":{"shape":"StringFilter"}, + "CreatedTime":{"shape":"DateFilter"} + } + }, + "FlaggedIpAddressDetail":{ + "type":"structure", + "members":{ + "IpAddress":{"shape":"IpAddress"}, + "Reason":{"shape":"Reason"} + } + }, + "GetInvestigationRequest":{ + "type":"structure", + "required":[ + "GraphArn", + "InvestigationId" + ], + "members":{ + "GraphArn":{"shape":"GraphArn"}, + "InvestigationId":{"shape":"InvestigationId"} + } + }, + "GetInvestigationResponse":{ + "type":"structure", + "members":{ + "GraphArn":{"shape":"GraphArn"}, + "InvestigationId":{"shape":"InvestigationId"}, + "EntityArn":{"shape":"EntityArn"}, + "EntityType":{"shape":"EntityType"}, + "CreatedTime":{"shape":"Timestamp"}, + "ScopeStartTime":{"shape":"Timestamp"}, + "ScopeEndTime":{"shape":"Timestamp"}, + "Status":{"shape":"Status"}, + "Severity":{"shape":"Severity"}, + "State":{"shape":"State"} + } + }, "GetMembersRequest":{ "type":"structure", "required":[ @@ -678,6 +839,58 @@ "type":"list", "member":{"shape":"Graph"} }, + "HourlyTimeDelta":{ + "type":"integer", + "box":true + }, + "Id":{"type":"string"}, + "ImpossibleTravelDetail":{ + "type":"structure", + "members":{ + "StartingIpAddress":{"shape":"IpAddress"}, + "EndingIpAddress":{"shape":"IpAddress"}, + "StartingLocation":{"shape":"Location"}, + "EndingLocation":{"shape":"Location"}, + "HourlyTimeDelta":{"shape":"HourlyTimeDelta"} + } + }, + "Indicator":{ + "type":"structure", + "members":{ + "IndicatorType":{"shape":"IndicatorType"}, + "IndicatorDetail":{"shape":"IndicatorDetail"} + } + }, + "IndicatorDetail":{ + "type":"structure", + "members":{ + "TTPsObservedDetail":{"shape":"TTPsObservedDetail"}, + "ImpossibleTravelDetail":{"shape":"ImpossibleTravelDetail"}, + "FlaggedIpAddressDetail":{"shape":"FlaggedIpAddressDetail"}, + "NewGeolocationDetail":{"shape":"NewGeolocationDetail"}, + "NewAsoDetail":{"shape":"NewAsoDetail"}, + "NewUserAgentDetail":{"shape":"NewUserAgentDetail"}, + "RelatedFindingDetail":{"shape":"RelatedFindingDetail"}, + "RelatedFindingGroupDetail":{"shape":"RelatedFindingGroupDetail"} + } + }, + "IndicatorType":{ + "type":"string", + "enum":[ + "TTP_OBSERVED", + "IMPOSSIBLE_TRAVEL", + "FLAGGED_IP_ADDRESS", + "NEW_GEOLOCATION", + "NEW_ASO", + "NEW_USER_AGENT", + "RELATED_FINDING", + "RELATED_FINDING_GROUP" + ] + }, + "Indicators":{ + "type":"list", + "member":{"shape":"Indicator"} + }, "InternalServerException":{ "type":"structure", "members":{ @@ -686,6 +899,28 @@ "error":{"httpStatusCode":500}, "exception":true }, + "InvestigationDetail":{ + "type":"structure", + "members":{ + "InvestigationId":{"shape":"InvestigationId"}, + "Severity":{"shape":"Severity"}, + "Status":{"shape":"Status"}, + "State":{"shape":"State"}, + "CreatedTime":{"shape":"Timestamp"}, + "EntityArn":{"shape":"EntityArn"}, + "EntityType":{"shape":"EntityType"} + } + }, + "InvestigationDetails":{ + "type":"list", + "member":{"shape":"InvestigationDetail"} + }, + "InvestigationId":{ + "type":"string", + "max":21, + "min":21, + "pattern":"^[0-9]+$" + }, "InvitationType":{ "type":"string", "enum":[ @@ -693,6 +928,8 @@ "ORGANIZATION" ] }, + "IpAddress":{"type":"string"}, + "IsNewForEntireAccount":{"type":"boolean"}, "LastIngestStateChangeDates":{ "type":"map", "key":{"shape":"DatasourcePackageIngestState"}, @@ -728,6 +965,47 @@ "NextToken":{"shape":"PaginationToken"} } }, + "ListIndicatorsRequest":{ + "type":"structure", + "required":[ + "GraphArn", + "InvestigationId" + ], + "members":{ + "GraphArn":{"shape":"GraphArn"}, + "InvestigationId":{"shape":"InvestigationId"}, + "IndicatorType":{"shape":"IndicatorType"}, + "NextToken":{"shape":"AiPaginationToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "ListIndicatorsResponse":{ + "type":"structure", + "members":{ + "GraphArn":{"shape":"GraphArn"}, + "InvestigationId":{"shape":"InvestigationId"}, + "NextToken":{"shape":"AiPaginationToken"}, + "Indicators":{"shape":"Indicators"} + } + }, + "ListInvestigationsRequest":{ + "type":"structure", + "required":["GraphArn"], + "members":{ + "GraphArn":{"shape":"GraphArn"}, + "NextToken":{"shape":"AiPaginationToken"}, + "MaxResults":{"shape":"MaxResults"}, + "FilterCriteria":{"shape":"FilterCriteria"}, + "SortCriteria":{"shape":"SortCriteria"} + } + }, + "ListInvestigationsResponse":{ + "type":"structure", + "members":{ + "InvestigationDetails":{"shape":"InvestigationDetails"}, + "NextToken":{"shape":"AiPaginationToken"} + } + }, "ListInvitationsRequest":{ "type":"structure", "members":{ @@ -789,6 +1067,13 @@ "Tags":{"shape":"TagMap"} } }, + "Location":{"type":"string"}, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, "MemberDetail":{ "type":"structure", "members":{ @@ -869,12 +1154,39 @@ "type":"list", "member":{"shape":"MembershipDatasources"} }, + "NewAsoDetail":{ + "type":"structure", + "members":{ + "Aso":{"shape":"Aso"}, + "IsNewForEntireAccount":{"shape":"IsNewForEntireAccount"} + } + }, + "NewGeolocationDetail":{ + "type":"structure", + "members":{ + "Location":{"shape":"Location"}, + "IpAddress":{"shape":"IpAddress"}, + "IsNewForEntireAccount":{"shape":"IsNewForEntireAccount"} + } + }, + "NewUserAgentDetail":{ + "type":"structure", + "members":{ + "UserAgent":{"shape":"UserAgent"}, + "IsNewForEntireAccount":{"shape":"IsNewForEntireAccount"} + } + }, "PaginationToken":{ "type":"string", "max":1024, "min":1 }, "Percentage":{"type":"double"}, + "Procedure":{"type":"string"}, + "Reason":{ + "type":"string", + "enum":["AWS_THREAT_INTELLIGENCE"] + }, "RejectInvitationRequest":{ "type":"structure", "required":["GraphArn"], @@ -882,6 +1194,20 @@ "GraphArn":{"shape":"GraphArn"} } }, + "RelatedFindingDetail":{ + "type":"structure", + "members":{ + "Arn":{"shape":"EntityArn"}, + "Type":{"shape":"Type"}, + "IpAddress":{"shape":"IpAddress"} + } + }, + "RelatedFindingGroupDetail":{ + "type":"structure", + "members":{ + "Id":{"shape":"Id"} + } + }, "Resource":{ "type":"string", "max":64, @@ -910,6 +1236,51 @@ "error":{"httpStatusCode":402}, "exception":true }, + "Severity":{ + "type":"string", + "enum":[ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ] + }, + "SortCriteria":{ + "type":"structure", + "members":{ + "Field":{"shape":"Field"}, + "SortOrder":{"shape":"SortOrder"} + } + }, + "SortOrder":{ + "type":"string", + "enum":[ + "ASC", + "DESC" + ] + }, + "StartInvestigationRequest":{ + "type":"structure", + "required":[ + "GraphArn", + "EntityArn", + "ScopeStartTime", + "ScopeEndTime" + ], + "members":{ + "GraphArn":{"shape":"GraphArn"}, + "EntityArn":{"shape":"EntityArn"}, + "ScopeStartTime":{"shape":"Timestamp"}, + "ScopeEndTime":{"shape":"Timestamp"} + } + }, + "StartInvestigationResponse":{ + "type":"structure", + "members":{ + "InvestigationId":{"shape":"InvestigationId"} + } + }, "StartMonitoringMemberRequest":{ "type":"structure", "required":[ @@ -921,6 +1292,41 @@ "AccountId":{"shape":"AccountId"} } }, + "State":{ + "type":"string", + "enum":[ + "ACTIVE", + "ARCHIVED" + ] + }, + "Status":{ + "type":"string", + "enum":[ + "RUNNING", + "FAILED", + "SUCCESSFUL" + ] + }, + "StringFilter":{ + "type":"structure", + "required":["Value"], + "members":{ + "Value":{"shape":"Value"} + } + }, + "TTPsObservedDetail":{ + "type":"structure", + "members":{ + "Tactic":{"shape":"Tactic"}, + "Technique":{"shape":"Technique"}, + "Procedure":{"shape":"Procedure"}, + "IpAddress":{"shape":"IpAddress"}, + "APIName":{"shape":"APIName"}, + "APISuccessCount":{"shape":"APISuccessCount"}, + "APIFailureCount":{"shape":"APIFailureCount"} + } + }, + "Tactic":{"type":"string"}, "TagKey":{ "type":"string", "max":128, @@ -964,6 +1370,7 @@ "type":"string", "max":256 }, + "Technique":{"type":"string"}, "Timestamp":{ "type":"timestamp", "timestampFormat":"iso8601" @@ -982,6 +1389,7 @@ "error":{"httpStatusCode":429}, "exception":true }, + "Type":{"type":"string"}, "UnprocessedAccount":{ "type":"structure", "members":{ @@ -1040,6 +1448,19 @@ "DatasourcePackages":{"shape":"DatasourcePackageList"} } }, + "UpdateInvestigationStateRequest":{ + "type":"structure", + "required":[ + "GraphArn", + "InvestigationId", + "State" + ], + "members":{ + "GraphArn":{"shape":"GraphArn"}, + "InvestigationId":{"shape":"InvestigationId"}, + "State":{"shape":"State"} + } + }, "UpdateOrganizationConfigurationRequest":{ "type":"structure", "required":["GraphArn"], @@ -1048,6 +1469,7 @@ "AutoEnable":{"shape":"Boolean"} } }, + "UserAgent":{"type":"string"}, "ValidationException":{ "type":"structure", "members":{ @@ -1058,6 +1480,11 @@ "error":{"httpStatusCode":400}, "exception":true }, + "Value":{ + "type":"string", + "max":500, + "min":1 + }, "VolumeUsageByDatasourcePackage":{ "type":"map", "key":{"shape":"DatasourcePackage"}, diff --git a/models/apis/detective/2018-10-26/docs-2.json b/models/apis/detective/2018-10-26/docs-2.json index 956273df360..93a31bfde86 100644 --- a/models/apis/detective/2018-10-26/docs-2.json +++ b/models/apis/detective/2018-10-26/docs-2.json @@ -13,21 +13,44 @@ "DisableOrganizationAdminAccount": "

Removes the Detective administrator account in the current Region. Deletes the organization behavior graph.

Can only be called by the organization management account.

Removing the Detective administrator account does not affect the delegated administrator account for Detective in Organizations.

To remove the delegated administrator account in Organizations, use the Organizations API. Removing the delegated administrator account also removes the Detective administrator account in all Regions, except for Regions where the Detective administrator account is the organization management account.

", "DisassociateMembership": "

Removes the member account from the specified behavior graph. This operation can only be called by an invited member account that has the ENABLED status.

DisassociateMembership cannot be called by an organization account in the organization behavior graph. For the organization behavior graph, the Detective administrator account determines which organization accounts to enable or disable as member accounts.

", "EnableOrganizationAdminAccount": "

Designates the Detective administrator account for the organization in the current Region.

If the account does not have Detective enabled, then enables Detective for that account and creates a new behavior graph.

Can only be called by the organization management account.

If the organization has a delegated administrator account in Organizations, then the Detective administrator account must be either the delegated administrator account or the organization management account.

If the organization does not have a delegated administrator account in Organizations, then you can choose any account in the organization. If you choose an account other than the organization management account, Detective calls Organizations to make that account the delegated administrator account for Detective. The organization management account cannot be the delegated administrator account.

", + "GetInvestigation": "

Returns the investigation results of an investigation for a behavior graph.

", "GetMembers": "

Returns the membership details for specified member accounts for a behavior graph.

", "ListDatasourcePackages": "

Lists data source packages in the behavior graph.

", "ListGraphs": "

Returns the list of behavior graphs that the calling account is an administrator account of. This operation can only be called by an administrator account.

Because an account can currently only be the administrator of one behavior graph within a Region, the results always contain a single behavior graph.

", + "ListIndicators": "

Get the indicators from an investigation

", + "ListInvestigations": "

List all Investigations.

", "ListInvitations": "

Retrieves the list of open and accepted behavior graph invitations for the member account. This operation can only be called by an invited member account.

Open invitations are invitations that the member account has not responded to.

The results do not include behavior graphs for which the member account declined the invitation. The results also do not include behavior graphs that the member account resigned from or was removed from.

", "ListMembers": "

Retrieves the list of member accounts for a behavior graph.

For invited accounts, the results do not include member accounts that were removed from the behavior graph.

For the organization behavior graph, the results do not include organization accounts that the Detective administrator account has not enabled as member accounts.

", "ListOrganizationAdminAccounts": "

Returns information about the Detective administrator account for an organization. Can only be called by the organization management account.

", "ListTagsForResource": "

Returns the tag values that are assigned to a behavior graph.

", "RejectInvitation": "

Rejects an invitation to contribute the account data to a behavior graph. This operation must be called by an invited member account that has the INVITED status.

RejectInvitation cannot be called by an organization account in the organization behavior graph. In the organization behavior graph, organization accounts do not receive an invitation.

", + "StartInvestigation": "

initiate an investigation on an entity in a graph

", "StartMonitoringMember": "

Sends a request to enable data ingest for a member account that has a status of ACCEPTED_BUT_DISABLED.

For valid member accounts, the status is updated as follows.

", "TagResource": "

Applies tag values to a behavior graph.

", "UntagResource": "

Removes tags from a behavior graph.

", "UpdateDatasourcePackages": "

Starts a data source packages for the behavior graph.

", + "UpdateInvestigationState": "

Update the state of an investigation.

", "UpdateOrganizationConfiguration": "

Updates the configuration for the Organizations integration in the current Region. Can only be called by the Detective administrator account for the organization.

" }, "shapes": { + "APIFailureCount": { + "base": null, + "refs": { + "TTPsObservedDetail$APIFailureCount": "

The total number of failed API requests.

" + } + }, + "APIName": { + "base": null, + "refs": { + "TTPsObservedDetail$APIName": "

The name of the API where the TTP was observed.

" + } + }, + "APISuccessCount": { + "base": null, + "refs": { + "TTPsObservedDetail$APISuccessCount": "

The total number of successful API requests.

" + } + }, "AcceptInvitationRequest": { "base": null, "refs": { @@ -92,6 +115,21 @@ "ListOrganizationAdminAccountsResponse$Administrators": "

The list of Detective administrator accounts.

" } }, + "AiPaginationToken": { + "base": null, + "refs": { + "ListIndicatorsRequest$NextToken": "

List if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

Each pagination token expires after 24 hours. Using an expired pagination token will return a Validation Exception error.

", + "ListIndicatorsResponse$NextToken": "

List if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

Each pagination token expires after 24 hours. Using an expired pagination token will return a Validation Exception error.

", + "ListInvestigationsRequest$NextToken": "

List if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

Each pagination token expires after 24 hours. Using an expired pagination token will return a Validation Exception error.

", + "ListInvestigationsResponse$NextToken": "

List if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

" + } + }, + "Aso": { + "base": null, + "refs": { + "NewAsoDetail$Aso": "

Details about the new Autonomous System Organization (ASO).

" + } + }, "BatchGetGraphMemberDatasourcesRequest": { "base": null, "refs": { @@ -206,6 +244,12 @@ "VolumeUsageByDatasourcePackage$value": null } }, + "DateFilter": { + "base": "

Contains details on the time range used to filter data.

", + "refs": { + "FilterCriteria$CreatedTime": "

Filter the investigation results based on when the investigation was created.

" + } + }, "DeleteGraphRequest": { "base": null, "refs": { @@ -254,6 +298,22 @@ "refs": { } }, + "EntityArn": { + "base": null, + "refs": { + "GetInvestigationResponse$EntityArn": "

The unique Amazon Resource Name (ARN) of the IAM user and IAM role.

", + "InvestigationDetail$EntityArn": "

The unique Amazon Resource Name (ARN) of the IAM user and IAM role.

", + "RelatedFindingDetail$Arn": "

The ARN of the related finding.

", + "StartInvestigationRequest$EntityArn": "

The unique Amazon Resource Name (ARN) of the IAM user and IAM role.

" + } + }, + "EntityType": { + "base": null, + "refs": { + "GetInvestigationResponse$EntityType": "

Type of entity. For example, Amazon Web Services accounts, such as IAM user and role.

", + "InvestigationDetail$EntityType": "

Type of entity. For example, Amazon Web Services accounts, such as IAM user and role.

" + } + }, "ErrorCode": { "base": null, "refs": { @@ -282,6 +342,34 @@ "ValidationException$Message": null } }, + "Field": { + "base": null, + "refs": { + "SortCriteria$Field": "

Represents the Field attribute to sort investigations.

" + } + }, + "FilterCriteria": { + "base": "

Details on the criteria used to define the filter for investigation results.

", + "refs": { + "ListInvestigationsRequest$FilterCriteria": "

Filter the investigation results based on a criteria.

" + } + }, + "FlaggedIpAddressDetail": { + "base": "

Contains information on suspicious IP addresses identified as indicators of compromise. This indicator is derived from Amazon Web Services threat intelligence.

", + "refs": { + "IndicatorDetail$FlaggedIpAddressDetail": "

Suspicious IP addresses that are flagged, which indicates critical or severe threats based on threat intelligence by Detective. This indicator is derived from AWS threat intelligence.

" + } + }, + "GetInvestigationRequest": { + "base": null, + "refs": { + } + }, + "GetInvestigationResponse": { + "base": null, + "refs": { + } + }, "GetMembersRequest": { "base": null, "refs": { @@ -310,20 +398,27 @@ "DeleteMembersRequest$GraphArn": "

The ARN of the behavior graph to remove members from.

", "DescribeOrganizationConfigurationRequest$GraphArn": "

The ARN of the organization behavior graph.

", "DisassociateMembershipRequest$GraphArn": "

The ARN of the behavior graph to remove the member account from.

The member account's member status in the behavior graph must be ENABLED.

", + "GetInvestigationRequest$GraphArn": "

The ARN of the behavior graph.

", + "GetInvestigationResponse$GraphArn": "

The ARN of the behavior graph.

", "GetMembersRequest$GraphArn": "

The ARN of the behavior graph for which to request the member details.

", "Graph$Arn": "

The ARN of the behavior graph.

", "GraphArnList$member": null, "ListDatasourcePackagesRequest$GraphArn": "

The ARN of the behavior graph.

", + "ListIndicatorsRequest$GraphArn": "

The ARN of the behavior graph.

", + "ListIndicatorsResponse$GraphArn": "

The ARN of the behavior graph.

", + "ListInvestigationsRequest$GraphArn": "

The ARN of the behavior graph.

", "ListMembersRequest$GraphArn": "

The ARN of the behavior graph for which to retrieve the list of member accounts.

", "ListTagsForResourceRequest$ResourceArn": "

The ARN of the behavior graph for which to retrieve the tag values.

", "MemberDetail$GraphArn": "

The ARN of the behavior graph.

", "MembershipDatasources$GraphArn": "

The ARN of the organization behavior graph.

", "RejectInvitationRequest$GraphArn": "

The ARN of the behavior graph to reject the invitation to.

The member account's current member status in the behavior graph must be INVITED.

", + "StartInvestigationRequest$GraphArn": "

The ARN of the behavior graph.

", "StartMonitoringMemberRequest$GraphArn": "

The ARN of the behavior graph.

", "TagResourceRequest$ResourceArn": "

The ARN of the behavior graph to assign the tags to.

", "UnprocessedGraph$GraphArn": "

The ARN of the organization behavior graph.

", "UntagResourceRequest$ResourceArn": "

The ARN of the behavior graph to remove the tags from.

", "UpdateDatasourcePackagesRequest$GraphArn": "

The ARN of the behavior graph.

", + "UpdateInvestigationStateRequest$GraphArn": "

The ARN of the behavior graph.

", "UpdateOrganizationConfigurationRequest$GraphArn": "

The ARN of the organization behavior graph.

" } }, @@ -339,17 +434,103 @@ "ListGraphsResponse$GraphList": "

A list of behavior graphs that the account is an administrator account for.

" } }, + "HourlyTimeDelta": { + "base": null, + "refs": { + "ImpossibleTravelDetail$HourlyTimeDelta": "

Returns the time difference between the first and last timestamp the resource was used.

" + } + }, + "Id": { + "base": null, + "refs": { + "RelatedFindingGroupDetail$Id": "

The unique identifier for the finding group.

" + } + }, + "ImpossibleTravelDetail": { + "base": "

Contains information on unusual and impossible travel in an account.

", + "refs": { + "IndicatorDetail$ImpossibleTravelDetail": "

Identifies unusual and impossible user activity for an account.

" + } + }, + "Indicator": { + "base": "

Investigations triages indicators of compromises such as a finding and surfaces only the most critical and suspicious issues, so you can focus on high-level investigations.

", + "refs": { + "Indicators$member": null + } + }, + "IndicatorDetail": { + "base": "

Details about the indicators of compromise which are used to determine if a resource is involved in a security incident.

", + "refs": { + "Indicator$IndicatorDetail": "

Details about the indicator of compromise.

" + } + }, + "IndicatorType": { + "base": null, + "refs": { + "Indicator$IndicatorType": "

The type of indicator.

", + "ListIndicatorsRequest$IndicatorType": "

See Detective investigations..

" + } + }, + "Indicators": { + "base": null, + "refs": { + "ListIndicatorsResponse$Indicators": "

Indicators of compromise listed based on severity.

" + } + }, "InternalServerException": { "base": "

The request was valid but failed because of a problem with the service.

", "refs": { } }, + "InvestigationDetail": { + "base": "

Details about the investigation related to a potential security event identified by Detective

", + "refs": { + "InvestigationDetails$member": null + } + }, + "InvestigationDetails": { + "base": null, + "refs": { + "ListInvestigationsResponse$InvestigationDetails": "

Investigations details lists the summary of uncommon behavior or malicious activity which indicates a compromise.

" + } + }, + "InvestigationId": { + "base": null, + "refs": { + "GetInvestigationRequest$InvestigationId": "

The investigation ID of the investigation report.

", + "GetInvestigationResponse$InvestigationId": "

The investigation ID of the investigation report.

", + "InvestigationDetail$InvestigationId": "

The investigation ID of the investigation report.

", + "ListIndicatorsRequest$InvestigationId": "

The investigation ID of the investigation report.

", + "ListIndicatorsResponse$InvestigationId": "

The investigation ID of the investigation report.

", + "StartInvestigationResponse$InvestigationId": "

The investigation ID of the investigation report.

", + "UpdateInvestigationStateRequest$InvestigationId": "

The investigation ID of the investigation report.

" + } + }, "InvitationType": { "base": null, "refs": { "MemberDetail$InvitationType": "

The type of behavior graph membership.

For an organization account in the organization behavior graph, the type is ORGANIZATION.

For an account that was invited to a behavior graph, the type is INVITATION.

" } }, + "IpAddress": { + "base": null, + "refs": { + "FlaggedIpAddressDetail$IpAddress": "

IP address of the suspicious entity.

", + "ImpossibleTravelDetail$StartingIpAddress": "

IP address where the resource was first used in the impossible travel

", + "ImpossibleTravelDetail$EndingIpAddress": "

IP address where the resource was last used in the impossible travel.

", + "NewGeolocationDetail$IpAddress": "

IP address using which the resource was accessed.

", + "RelatedFindingDetail$IpAddress": "

The IP address of the finding.

", + "TTPsObservedDetail$IpAddress": "

The IP address where the TTP was observed.

" + } + }, + "IsNewForEntireAccount": { + "base": null, + "refs": { + "NewAsoDetail$IsNewForEntireAccount": "

Checks if the ASO is for new for the entire account.

", + "NewGeolocationDetail$IsNewForEntireAccount": "

Checks if the gelocation is new for the entire account.

", + "NewUserAgentDetail$IsNewForEntireAccount": "

Checks if the user agent is new for the entire account.

" + } + }, "LastIngestStateChangeDates": { "base": null, "refs": { @@ -377,6 +558,26 @@ "refs": { } }, + "ListIndicatorsRequest": { + "base": null, + "refs": { + } + }, + "ListIndicatorsResponse": { + "base": null, + "refs": { + } + }, + "ListInvestigationsRequest": { + "base": null, + "refs": { + } + }, + "ListInvestigationsResponse": { + "base": null, + "refs": { + } + }, "ListInvitationsRequest": { "base": null, "refs": { @@ -417,6 +618,21 @@ "refs": { } }, + "Location": { + "base": null, + "refs": { + "ImpossibleTravelDetail$StartingLocation": "

Location where the resource was first used in the impossible travel

", + "ImpossibleTravelDetail$EndingLocation": "

Location where the resource was last used in the impossible travel.

", + "NewGeolocationDetail$Location": "

Location where the resource was accessed.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListIndicatorsRequest$MaxResults": "

List the maximum number of indicators in a page.

", + "ListInvestigationsRequest$MaxResults": "

List the maximum number of investigations in a page.

" + } + }, "MemberDetail": { "base": "

Details about a member account in a behavior graph.

", "refs": { @@ -467,6 +683,24 @@ "BatchGetMembershipDatasourcesResponse$MembershipDatasources": "

Details on the data source package history for an member of the behavior graph.

" } }, + "NewAsoDetail": { + "base": "

Details new Autonomous System Organizations (ASOs) used either at the resource or account level.

", + "refs": { + "IndicatorDetail$NewAsoDetail": "

Contains details about the new Autonomous System Organization (ASO).

" + } + }, + "NewGeolocationDetail": { + "base": "

Details new geolocations used either at the resource or account level. For example, lists an observed geolocation that is an infrequent or unused location based on previous user activity.

", + "refs": { + "IndicatorDetail$NewGeolocationDetail": "

Contains details about the new geographic location.

" + } + }, + "NewUserAgentDetail": { + "base": "

Details new user agents used either at the resource or account level.

", + "refs": { + "IndicatorDetail$NewUserAgentDetail": "

Contains details about the new user agent.

" + } + }, "PaginationToken": { "base": null, "refs": { @@ -488,11 +722,35 @@ "MemberDetail$PercentOfGraphUtilization": "

The member account data volume as a percentage of the maximum allowed data volume. 0 indicates 0 percent, and 100 indicates 100 percent.

Note that this is not the percentage of the behavior graph data volume.

For example, the data volume for the behavior graph is 80 GB per day. The maximum data volume is 160 GB per day. If the data volume for the member account is 40 GB per day, then PercentOfGraphUtilization is 25. It represents 25% of the maximum allowed data volume.

" } }, + "Procedure": { + "base": null, + "refs": { + "TTPsObservedDetail$Procedure": "

The procedure used, identified by the investigation.

" + } + }, + "Reason": { + "base": null, + "refs": { + "FlaggedIpAddressDetail$Reason": "

Details the reason the IP address was flagged as suspicious.

" + } + }, "RejectInvitationRequest": { "base": null, "refs": { } }, + "RelatedFindingDetail": { + "base": "

Details related activities associated with a potential security event. Lists all distinct categories of evidence that are connected to the resource or the finding group.

", + "refs": { + "IndicatorDetail$RelatedFindingDetail": "

Contains details about related findings.

" + } + }, + "RelatedFindingGroupDetail": { + "base": "

Details multiple activities as they related to a potential security event. Detective uses graph analysis technique that infers relationships between findings and entities, and groups them together as a finding group.

", + "refs": { + "IndicatorDetail$RelatedFindingGroupDetail": "

Contains details about related finding groups.

" + } + }, "Resource": { "base": null, "refs": { @@ -515,11 +773,76 @@ "refs": { } }, + "Severity": { + "base": null, + "refs": { + "GetInvestigationResponse$Severity": "

Severity based on the likelihood and impact of the indicators of compromise discovered in the investigation.

", + "InvestigationDetail$Severity": "

Severity based on the likelihood and impact of the indicators of compromise discovered in the investigation.

" + } + }, + "SortCriteria": { + "base": "

Details about the criteria used for sorting investigations.

", + "refs": { + "ListInvestigationsRequest$SortCriteria": "

Sorts the investigation results based on a criteria.

" + } + }, + "SortOrder": { + "base": null, + "refs": { + "SortCriteria$SortOrder": "

The order by which the sorted findings are displayed.

" + } + }, + "StartInvestigationRequest": { + "base": null, + "refs": { + } + }, + "StartInvestigationResponse": { + "base": null, + "refs": { + } + }, "StartMonitoringMemberRequest": { "base": null, "refs": { } }, + "State": { + "base": null, + "refs": { + "GetInvestigationResponse$State": "

The current state of the investigation. An archived investigation indicates you have completed reviewing the investigation.

", + "InvestigationDetail$State": "

The current state of the investigation. An archived investigation indicates you have completed reviewing the investigation.

", + "UpdateInvestigationStateRequest$State": "

The current state of the investigation. An archived investigation indicates you have completed reviewing the investigation.

" + } + }, + "Status": { + "base": null, + "refs": { + "GetInvestigationResponse$Status": "

Status based on the completion status of the investigation.

", + "InvestigationDetail$Status": "

Status based on the completion status of the investigation.

" + } + }, + "StringFilter": { + "base": "

A string for filtering Detective investigations.

", + "refs": { + "FilterCriteria$Severity": "

Filter the investigation results based on the severity.

", + "FilterCriteria$Status": "

Filter the investigation results based on the status.

", + "FilterCriteria$State": "

Filter the investigation results based on the state.

", + "FilterCriteria$EntityArn": "

Filter the investigation results based on the Amazon Resource Name (ARN) of the entity.

" + } + }, + "TTPsObservedDetail": { + "base": "

Details tactics, techniques, and procedures (TTPs) used in a potential security event. Tactics are based on MITRE ATT&CK Matrix for Enterprise.

", + "refs": { + "IndicatorDetail$TTPsObservedDetail": "

Details about the indicator of compromise.

" + } + }, + "Tactic": { + "base": null, + "refs": { + "TTPsObservedDetail$Tactic": "

The tactic used, identified by the investigation.

" + } + }, "TagKey": { "base": null, "refs": { @@ -557,16 +880,30 @@ "TagMap$value": null } }, + "Technique": { + "base": null, + "refs": { + "TTPsObservedDetail$Technique": "

The technique used, identified by the investigation.

" + } + }, "Timestamp": { "base": null, "refs": { "Administrator$DelegationTime": "

The date and time when the Detective administrator account was enabled. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", "DatasourcePackageUsageInfo$VolumeUsageUpdateTime": "

The data and time when the member account data volume was last updated. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", + "DateFilter$StartInclusive": "

A timestamp representing the start of the time period from when data is filtered, including the start date.

", + "DateFilter$EndInclusive": "

A timestamp representing the end date of the time period until when data is filtered , including the end date.

", + "GetInvestigationResponse$CreatedTime": "

The UTC time stamp of the creation time of the investigation report.

", + "GetInvestigationResponse$ScopeStartTime": "

The start date and time for the scope time set to generate the investigation report.

", + "GetInvestigationResponse$ScopeEndTime": "

The data and time when the investigation began. The value is an UTC ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", "Graph$CreatedTime": "

The date and time that the behavior graph was created. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", + "InvestigationDetail$CreatedTime": "

The UTC time stamp of the creation time of the investigation report.

", "MemberDetail$InvitedTime": "

For invited accounts, the date and time that Detective sent the invitation to the account. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", "MemberDetail$UpdatedTime": "

The date and time that the member account was last updated. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", "MemberDetail$VolumeUsageUpdatedTime": "

The data and time when the member account data volume was last updated. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", "MemberDetail$PercentOfGraphUtilizationUpdatedTime": "

The date and time when the graph utilization percentage was last updated. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", + "StartInvestigationRequest$ScopeStartTime": "

The data and time when the investigation began. The value is an UTC ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", + "StartInvestigationRequest$ScopeEndTime": "

The data and time when the investigation began. The value is an UTC ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", "TimestampForCollection$Timestamp": "

The data and time when data collection began for a source package. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

" } }, @@ -581,6 +918,12 @@ "refs": { } }, + "Type": { + "base": null, + "refs": { + "RelatedFindingDetail$Type": "

The type of finding.

" + } + }, "UnprocessedAccount": { "base": "

A member account that was included in a request but for which the request could not be processed.

", "refs": { @@ -630,16 +973,33 @@ "refs": { } }, + "UpdateInvestigationStateRequest": { + "base": null, + "refs": { + } + }, "UpdateOrganizationConfigurationRequest": { "base": null, "refs": { } }, + "UserAgent": { + "base": null, + "refs": { + "NewUserAgentDetail$UserAgent": "

New user agent which accessed the resource.

" + } + }, "ValidationException": { "base": "

The request parameters are invalid.

", "refs": { } }, + "Value": { + "base": null, + "refs": { + "StringFilter$Value": "

The string filter value.

" + } + }, "VolumeUsageByDatasourcePackage": { "base": null, "refs": { diff --git a/models/apis/detective/2018-10-26/endpoint-rule-set-1.json b/models/apis/detective/2018-10-26/endpoint-rule-set-1.json index fa378ddc6d0..2f409ed9707 100644 --- a/models/apis/detective/2018-10-26/endpoint-rule-set-1.json +++ b/models/apis/detective/2018-10-26/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/ecs/2014-11-13/api-2.json b/models/apis/ecs/2014-11-13/api-2.json index efe8002780f..ff4c33e9d5d 100644 --- a/models/apis/ecs/2014-11-13/api-2.json +++ b/models/apis/ecs/2014-11-13/api-2.json @@ -3165,7 +3165,8 @@ "members":{ "name":{"shape":"SettingName"}, "value":{"shape":"String"}, - "principalArn":{"shape":"String"} + "principalArn":{"shape":"String"}, + "type":{"shape":"SettingType"} } }, "SettingName":{ @@ -3178,7 +3179,15 @@ "containerInsights", "fargateFIPSMode", "tagResourceAuthorization", - "fargateTaskRetirementWaitPeriod" + "fargateTaskRetirementWaitPeriod", + "guardDutyActivate" + ] + }, + "SettingType":{ + "type":"string", + "enum":[ + "user", + "aws_managed" ] }, "Settings":{ diff --git a/models/apis/ecs/2014-11-13/docs-2.json b/models/apis/ecs/2014-11-13/docs-2.json index 41128d6ede6..04feb858f03 100644 --- a/models/apis/ecs/2014-11-13/docs-2.json +++ b/models/apis/ecs/2014-11-13/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "Amazon Elastic Container Service

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service. It makes it easy to run, stop, and manage Docker containers. You can host your cluster on a serverless infrastructure that's managed by Amazon ECS by launching your services or tasks on Fargate. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) or External (on-premises) instances that you manage.

Amazon ECS makes it easy to launch and stop container-based applications with simple API calls. This makes it easy to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features.

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. With Amazon ECS, you don't need to operate your own cluster management and configuration management systems. You also don't need to worry about scaling your management infrastructure.

", + "service": "Amazon Elastic Container Service

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service. It makes it easy to run, stop, and manage Docker containers. You can host your cluster on a serverless infrastructure that's managed by Amazon ECS by launching your services or tasks on Fargate. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) or External (on-premises) instances that you manage.

Amazon ECS makes it easy to launch and stop container-based applications with simple API calls. This makes it easy to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features.

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. With Amazon ECS, you don't need to operate your own cluster management and configuration management systems. You also don't need to worry about scaling your management infrastructure.

", "operations": { "CreateCapacityProvider": "

Creates a new capacity provider. Capacity providers are associated with an Amazon ECS cluster and are used in capacity provider strategies to facilitate cluster auto scaling.

Only capacity providers that use an Auto Scaling group can be created. Amazon ECS tasks on Fargate use the FARGATE and FARGATE_SPOT capacity providers. These providers are available to all accounts in the Amazon Web Services Regions that Fargate supports.

", "CreateCluster": "

Creates a new Amazon ECS cluster. By default, your account receives a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action.

When you call the CreateCluster API operation, Amazon ECS attempts to create the Amazon ECS service-linked role for your account. This is so that it can manage required resources in other Amazon Web Services services on your behalf. However, if the user that makes the call doesn't have permissions to create the service-linked role, it isn't created. For more information, see Using service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

", @@ -35,7 +35,7 @@ "ListTaskDefinitionFamilies": "

Returns a list of task definition families that are registered to your account. This list includes task definition families that no longer have any ACTIVE task definition revisions.

You can filter out task definition families that don't contain any ACTIVE task definition revisions by setting the status parameter to ACTIVE. You can also filter the results with the familyPrefix parameter.

", "ListTaskDefinitions": "

Returns a list of task definitions that are registered to your account. You can filter the results by family name with the familyPrefix parameter or by status with the status parameter.

", "ListTasks": "

Returns a list of tasks. You can filter the results by cluster, task definition family, container instance, launch type, what IAM principal started the task, or by the desired status of the task.

Recently stopped tasks might appear in the returned results.

", - "PutAccountSetting": "

Modifies an account setting. Account settings are set on a per-Region basis.

If you change the root user account setting, the default settings are reset for users and roles that do not have specified individual account settings. For more information, see Account Settings in the Amazon Elastic Container Service Developer Guide.

When you specify serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified user, role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource is defined by the opt-in status of the user or role that created the resource. You must turn on this setting to use Amazon ECS features such as resource tagging.

When you specify awsvpcTrunking, the elastic network interface (ENI) limit for any new container instances that support the feature is changed. If awsvpcTrunking is turned on, any new container instances that support the feature are launched have the increased ENI limits available to them. For more information, see Elastic Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

When you specify containerInsights, the default setting indicating whether Amazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. If containerInsights is turned on, any new clusters that are created will have Container Insights turned on unless you disable it during cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

Amazon ECS is introducing tagging authorization for resource creation. Users must have permissions for actions that create the resource, such as ecsCreateCluster. If tags are specified when you create a resource, Amazon Web Services performs additional authorization to verify if users or roles have permissions to create tags. Therefore, you must grant explicit permissions to use the ecs:TagResource action. For more information, see Grant permission to tag resources on creation in the Amazon ECS Developer Guide.

When Amazon Web Services determines that a security or infrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod to configure the wait time to retire a Fargate task. For information about the Fargate tasks maintenance, see Amazon Web Services Fargate task maintenance in the Amazon ECS Developer Guide.

", + "PutAccountSetting": "

Modifies an account setting. Account settings are set on a per-Region basis.

If you change the root user account setting, the default settings are reset for users and roles that do not have specified individual account settings. For more information, see Account Settings in the Amazon Elastic Container Service Developer Guide.

When you specify serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified user, role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource is defined by the opt-in status of the user or role that created the resource. You must turn on this setting to use Amazon ECS features such as resource tagging.

When you specify awsvpcTrunking, the elastic network interface (ENI) limit for any new container instances that support the feature is changed. If awsvpcTrunking is turned on, any new container instances that support the feature are launched have the increased ENI limits available to them. For more information, see Elastic Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

When you specify containerInsights, the default setting indicating whether Amazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. If containerInsights is turned on, any new clusters that are created will have Container Insights turned on unless you disable it during cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

Amazon ECS is introducing tagging authorization for resource creation. Users must have permissions for actions that create the resource, such as ecsCreateCluster. If tags are specified when you create a resource, Amazon Web Services performs additional authorization to verify if users or roles have permissions to create tags. Therefore, you must grant explicit permissions to use the ecs:TagResource action. For more information, see Grant permission to tag resources on creation in the Amazon ECS Developer Guide.

When Amazon Web Services determines that a security or infrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod to configure the wait time to retire a Fargate task. For information about the Fargate tasks maintenance, see Amazon Web Services Fargate task maintenance in the Amazon ECS Developer Guide.

The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

", "PutAccountSettingDefault": "

Modifies an account setting for all users on an account for whom no individual account setting has been specified. Account settings are set on a per-Region basis.

", "PutAttributes": "

Create or update an attribute on an Amazon ECS resource. If the attribute doesn't exist, it's created. If the attribute exists, its value is replaced with the specified value. To delete an attribute, use DeleteAttributes. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

", "PutClusterCapacityProviders": "

Modifies the available capacity providers and the default capacity provider strategy for a cluster.

You must specify both the available capacity providers and a default capacity provider strategy for the cluster. If the specified cluster has existing capacity providers associated with it, you must specify all existing capacity providers in addition to any new ones you want to add. Any existing capacity providers that are associated with a cluster that are omitted from a PutClusterCapacityProviders API call will be disassociated with the cluster. You can only disassociate an existing capacity provider from a cluster if it's not being used by any existing tasks.

When creating a service or running a task on a cluster, if no capacity provider or launch type is specified, then the cluster's default capacity provider strategy is used. We recommend that you define a default capacity provider strategy for your cluster. However, you must specify an empty array ([]) to bypass defining a default strategy.

", @@ -1946,11 +1946,17 @@ "refs": { "DeleteAccountSettingRequest$name": "

The resource name to disable the account setting for. If serviceLongArnFormat is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat is specified, the ARN and resource ID for your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified, the ARN and resource ID for your Amazon ECS container instances is affected. If awsvpcTrunking is specified, the ENI limit for your Amazon ECS container instances is affected.

", "ListAccountSettingsRequest$name": "

The name of the account setting you want to list the settings for.

", - "PutAccountSettingDefaultRequest$name": "

The resource name for which to modify the account setting. If you specify serviceLongArnFormat, the ARN for your Amazon ECS services is affected. If you specify taskLongArnFormat, the ARN and resource ID for your Amazon ECS tasks is affected. If you specify containerInstanceLongArnFormat, the ARN and resource ID for your Amazon ECS container instances is affected. If you specify awsvpcTrunking, the ENI limit for your Amazon ECS container instances is affected. If you specify containerInsights, the default setting for Amazon Web Services CloudWatch Container Insights for your clusters is affected. If you specify tagResourceAuthorization, the opt-in option for tagging resources on creation is affected. For information about the opt-in timeline, see Tagging authorization timeline in the Amazon ECS Developer Guide. If you specify fargateTaskRetirementWaitPeriod, the default wait time to retire a Fargate task due to required maintenance is affected.

When you specify fargateFIPSMode for the name and enabled for the value, Fargate uses FIPS-140 compliant cryptographic algorithms on your tasks. For more information about FIPS-140 compliance with Fargate, see Amazon Web Services Fargate Federal Information Processing Standard (FIPS) 140-2 compliance in the Amazon Elastic Container Service Developer Guide.

When Amazon Web Services determines that a security or infrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod to set the wait time to retire a Fargate task to the default. For information about the Fargate tasks maintenance, see Amazon Web Services Fargate task maintenance in the Amazon ECS Developer Guide.

", - "PutAccountSettingRequest$name": "

The Amazon ECS resource name for which to modify the account setting. If you specify serviceLongArnFormat, the ARN for your Amazon ECS services is affected. If you specify taskLongArnFormat, the ARN and resource ID for your Amazon ECS tasks is affected. If you specify containerInstanceLongArnFormat, the ARN and resource ID for your Amazon ECS container instances is affected. If you specify awsvpcTrunking, the elastic network interface (ENI) limit for your Amazon ECS container instances is affected. If you specify containerInsights, the default setting for Amazon Web Services CloudWatch Container Insights for your clusters is affected. If you specify fargateFIPSMode, Fargate FIPS 140 compliance is affected. If you specify tagResourceAuthorization, the opt-in option for tagging resources on creation is affected. For information about the opt-in timeline, see Tagging authorization timeline in the Amazon ECS Developer Guide. If you specify fargateTaskRetirementWaitPeriod, the wait time to retire a Fargate task is affected.

", + "PutAccountSettingDefaultRequest$name": "

The resource name for which to modify the account setting. If you specify serviceLongArnFormat, the ARN for your Amazon ECS services is affected. If you specify taskLongArnFormat, the ARN and resource ID for your Amazon ECS tasks is affected. If you specify containerInstanceLongArnFormat, the ARN and resource ID for your Amazon ECS container instances is affected. If you specify awsvpcTrunking, the ENI limit for your Amazon ECS container instances is affected. If you specify containerInsights, the default setting for Amazon Web Services CloudWatch Container Insights for your clusters is affected. If you specify tagResourceAuthorization, the opt-in option for tagging resources on creation is affected. For information about the opt-in timeline, see Tagging authorization timeline in the Amazon ECS Developer Guide. If you specify fargateTaskRetirementWaitPeriod, the default wait time to retire a Fargate task due to required maintenance is affected.

When you specify fargateFIPSMode for the name and enabled for the value, Fargate uses FIPS-140 compliant cryptographic algorithms on your tasks. For more information about FIPS-140 compliance with Fargate, see Amazon Web Services Fargate Federal Information Processing Standard (FIPS) 140-2 compliance in the Amazon Elastic Container Service Developer Guide.

When Amazon Web Services determines that a security or infrastructure update is needed for an Amazon ECS task hosted on Fargate, the tasks need to be stopped and new tasks launched to replace them. Use fargateTaskRetirementWaitPeriod to set the wait time to retire a Fargate task to the default. For information about the Fargate tasks maintenance, see Amazon Web Services Fargate task maintenance in the Amazon ECS Developer Guide.

The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

", + "PutAccountSettingRequest$name": "

The Amazon ECS resource name for which to modify the account setting. If you specify serviceLongArnFormat, the ARN for your Amazon ECS services is affected. If you specify taskLongArnFormat, the ARN and resource ID for your Amazon ECS tasks is affected. If you specify containerInstanceLongArnFormat, the ARN and resource ID for your Amazon ECS container instances is affected. If you specify awsvpcTrunking, the elastic network interface (ENI) limit for your Amazon ECS container instances is affected. If you specify containerInsights, the default setting for Amazon Web Services CloudWatch Container Insights for your clusters is affected. If you specify fargateFIPSMode, Fargate FIPS 140 compliance is affected. If you specify tagResourceAuthorization, the opt-in option for tagging resources on creation is affected. For information about the opt-in timeline, see Tagging authorization timeline in the Amazon ECS Developer Guide. If you specify fargateTaskRetirementWaitPeriod, the wait time to retire a Fargate task is affected.

The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

", "Setting$name": "

The Amazon ECS resource name.

" } }, + "SettingType": { + "base": null, + "refs": { + "Setting$type": "

Indicates whether Amazon Web Services manages the account setting, or if the user manages it.

aws_managed account settings are read-only, as Amazon Web Services manages such on the customer's behalf. Currently, the guardDutyActivate account setting is the only one Amazon Web Services manages.

" + } + }, "Settings": { "base": null, "refs": { diff --git a/models/apis/eks-auth/2023-11-26/api-2.json b/models/apis/eks-auth/2023-11-26/api-2.json new file mode 100644 index 00000000000..47fab60d111 --- /dev/null +++ b/models/apis/eks-auth/2023-11-26/api-2.json @@ -0,0 +1,229 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2023-11-26", + "endpointPrefix":"eks-auth", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon EKS Auth", + "serviceId":"EKS Auth", + "signatureVersion":"v4", + "signingName":"eks-auth", + "uid":"eks-auth-2023-11-26" + }, + "operations":{ + "AssumeRoleForPodIdentity":{ + "name":"AssumeRoleForPodIdentity", + "http":{ + "method":"POST", + "requestUri":"/clusters/{clusterName}/assume-role-for-pod-identity", + "responseCode":200 + }, + "input":{"shape":"AssumeRoleForPodIdentityRequest"}, + "output":{"shape":"AssumeRoleForPodIdentityResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidTokenException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ExpiredTokenException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AssumeRoleForPodIdentityRequest":{ + "type":"structure", + "required":[ + "clusterName", + "token" + ], + "members":{ + "clusterName":{ + "shape":"ClusterName", + "location":"uri", + "locationName":"clusterName" + }, + "token":{"shape":"JwtToken"} + } + }, + "AssumeRoleForPodIdentityResponse":{ + "type":"structure", + "required":[ + "subject", + "audience", + "podIdentityAssociation", + "assumedRoleUser", + "credentials" + ], + "members":{ + "subject":{"shape":"Subject"}, + "audience":{"shape":"String"}, + "podIdentityAssociation":{"shape":"PodIdentityAssociation"}, + "assumedRoleUser":{"shape":"AssumedRoleUser"}, + "credentials":{"shape":"Credentials"} + } + }, + "AssumedRoleUser":{ + "type":"structure", + "required":[ + "arn", + "assumeRoleId" + ], + "members":{ + "arn":{"shape":"String"}, + "assumeRoleId":{"shape":"String"} + } + }, + "ClusterName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[0-9A-Za-z][A-Za-z0-9\\-_]*" + }, + "Credentials":{ + "type":"structure", + "required":[ + "sessionToken", + "secretAccessKey", + "accessKeyId", + "expiration" + ], + "members":{ + "sessionToken":{"shape":"String"}, + "secretAccessKey":{"shape":"String"}, + "accessKeyId":{"shape":"String"}, + "expiration":{"shape":"Timestamp"} + }, + "sensitive":true + }, + "ExpiredTokenException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidRequestException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "InvalidTokenException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "JwtToken":{ + "type":"string", + "min":1, + "pattern":"[A-Za-z0-9-_=]+\\.[A-Za-z0-9-_=]+\\.[A-Za-z0-9-_=]+", + "sensitive":true + }, + "PodIdentityAssociation":{ + "type":"structure", + "required":[ + "associationArn", + "associationId" + ], + "members":{ + "associationArn":{"shape":"String"}, + "associationId":{"shape":"String"} + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{"httpStatusCode":503}, + "exception":true, + "fault":true + }, + "String":{"type":"string"}, + "Subject":{ + "type":"structure", + "required":[ + "namespace", + "serviceAccount" + ], + "members":{ + "namespace":{"shape":"String"}, + "serviceAccount":{"shape":"String"} + } + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "Timestamp":{"type":"timestamp"} + } +} diff --git a/models/apis/eks-auth/2023-11-26/docs-2.json b/models/apis/eks-auth/2023-11-26/docs-2.json new file mode 100644 index 00000000000..e4310f64f1e --- /dev/null +++ b/models/apis/eks-auth/2023-11-26/docs-2.json @@ -0,0 +1,130 @@ +{ + "version": "2.0", + "service": "

The Amazon EKS Auth API and the AssumeRoleForPodIdentity action are only used by the EKS Pod Identity Agent.

", + "operations": { + "AssumeRoleForPodIdentity": "

The Amazon EKS Auth API and the AssumeRoleForPodIdentity action are only used by the EKS Pod Identity Agent.

We recommend that applications use the Amazon Web Services SDKs to connect to Amazon Web Services services; if credentials from an EKS Pod Identity association are available in the pod, the latest versions of the SDKs use them automatically.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You don't have permissions to perform the requested operation. The IAM principal making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see Access management in the IAM User Guide.

", + "refs": { + } + }, + "AssumeRoleForPodIdentityRequest": { + "base": null, + "refs": { + } + }, + "AssumeRoleForPodIdentityResponse": { + "base": null, + "refs": { + } + }, + "AssumedRoleUser": { + "base": "

An object with the permanent IAM role identity and the temporary session name.

", + "refs": { + "AssumeRoleForPodIdentityResponse$assumedRoleUser": "

An object with the permanent IAM role identity and the temporary session name.

The ARN of the IAM role that the temporary credentials authenticate to.

The session name of the temporary session requested to STS. The value is a unique identifier that contains the role ID, a colon (:), and the role session name of the role that is being assumed. The role ID is generated by IAM when the role is created. The role session name part of the value follows this format: eks-clustername-podname-random UUID

" + } + }, + "ClusterName": { + "base": null, + "refs": { + "AssumeRoleForPodIdentityRequest$clusterName": "

The name of the cluster for the request.

" + } + }, + "Credentials": { + "base": "

The Amazon Web Services Signature Version 4 type of temporary credentials.

", + "refs": { + "AssumeRoleForPodIdentityResponse$credentials": "

The Amazon Web Services Signature Version 4 type of temporary credentials.

" + } + }, + "ExpiredTokenException": { + "base": "

The specified Kubernetes service account token is expired.

", + "refs": { + } + }, + "InternalServerException": { + "base": "

These errors are usually caused by a server-side issue.

", + "refs": { + } + }, + "InvalidParameterException": { + "base": "

The specified parameter is invalid. Review the available parameters for the API request.

", + "refs": { + } + }, + "InvalidRequestException": { + "base": "

This exception is thrown if the request contains a semantic error. The precise meaning will depend on the API, and will be documented in the error message.

", + "refs": { + } + }, + "InvalidTokenException": { + "base": "

The specified Kubernetes service account token is invalid.

", + "refs": { + } + }, + "JwtToken": { + "base": null, + "refs": { + "AssumeRoleForPodIdentityRequest$token": "

The token of the Kubernetes service account for the pod.

" + } + }, + "PodIdentityAssociation": { + "base": "

Amazon EKS Pod Identity associations provide the ability to manage credentials for your applications, similar to the way that Amazon EC2 instance profiles provide credentials to Amazon EC2 instances.

", + "refs": { + "AssumeRoleForPodIdentityResponse$podIdentityAssociation": "

The Amazon Resource Name (ARN) and ID of the EKS Pod Identity association.

" + } + }, + "ResourceNotFoundException": { + "base": "

The specified resource could not be found.

", + "refs": { + } + }, + "ServiceUnavailableException": { + "base": "

The service is unavailable. Back off and retry the operation.

", + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "AccessDeniedException$message": null, + "AssumeRoleForPodIdentityResponse$audience": "

The identity that is allowed to use the credentials. This value is always pods.eks.amazonaws.com.

", + "AssumedRoleUser$arn": "

The ARN of the IAM role that the temporary credentials authenticate to.

", + "AssumedRoleUser$assumeRoleId": "

The session name of the temporary session requested to STS. The value is a unique identifier that contains the role ID, a colon (:), and the role session name of the role that is being assumed. The role ID is generated by IAM when the role is created. The role session name part of the value follows this format: eks-clustername-podname-random UUID

", + "Credentials$sessionToken": "

The token that applications inside the pods must pass to any service API to use the temporary credentials.

", + "Credentials$secretAccessKey": "

The secret access key that applications inside the pods use to sign requests.

", + "Credentials$accessKeyId": "

The access key ID that identifies the temporary security credentials.

", + "ExpiredTokenException$message": null, + "InternalServerException$message": null, + "InvalidParameterException$message": null, + "InvalidRequestException$message": null, + "InvalidTokenException$message": null, + "PodIdentityAssociation$associationArn": "

The Amazon Resource Name (ARN) of the EKS Pod Identity association.

", + "PodIdentityAssociation$associationId": "

The ID of the association.

", + "ResourceNotFoundException$message": null, + "ServiceUnavailableException$message": null, + "Subject$namespace": "

The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the pods that use the service account must be in this namespace.

", + "Subject$serviceAccount": "

The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.

", + "ThrottlingException$message": null + } + }, + "Subject": { + "base": "

An object containing the name of the Kubernetes service account inside the cluster to associate the IAM credentials with.

", + "refs": { + "AssumeRoleForPodIdentityResponse$subject": "

The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.

" + } + }, + "ThrottlingException": { + "base": "

The request was denied because your request rate is too high. Reduce the frequency of requests.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "Credentials$expiration": "

The Unix epoch timestamp in seconds when the current credentials expire.

" + } + } + } +} diff --git a/models/apis/eks-auth/2023-11-26/endpoint-rule-set-1.json b/models/apis/eks-auth/2023-11-26/endpoint-rule-set-1.json new file mode 100644 index 00000000000..f174f455c63 --- /dev/null +++ b/models/apis/eks-auth/2023-11-26/endpoint-rule-set-1.json @@ -0,0 +1,247 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://eks-auth-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://eks-auth.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://eks-auth-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://eks-auth.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/eks-auth/2023-11-26/endpoint-tests-1.json b/models/apis/eks-auth/2023-11-26/endpoint-tests-1.json new file mode 100644 index 00000000000..2f75975a45b --- /dev/null +++ b/models/apis/eks-auth/2023-11-26/endpoint-tests-1.json @@ -0,0 +1,119 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-auth-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-auth.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-auth-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-auth.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-auth-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-auth.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/eks-auth/2023-11-26/examples-1.json b/models/apis/eks-auth/2023-11-26/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/eks-auth/2023-11-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/eks-auth/2023-11-26/paginators-1.json b/models/apis/eks-auth/2023-11-26/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/eks-auth/2023-11-26/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/models/apis/eks-auth/2023-11-26/smoke.json b/models/apis/eks-auth/2023-11-26/smoke.json new file mode 100644 index 00000000000..047a1d85ef7 --- /dev/null +++ b/models/apis/eks-auth/2023-11-26/smoke.json @@ -0,0 +1,6 @@ +{ + "version": 1, + "defaultRegion": "us-west-2", + "testCases": [ + ] +} \ No newline at end of file diff --git a/models/apis/eks-auth/2023-11-26/waiters-2.json b/models/apis/eks-auth/2023-11-26/waiters-2.json new file mode 100644 index 00000000000..4b20636aa4c --- /dev/null +++ b/models/apis/eks-auth/2023-11-26/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} \ No newline at end of file diff --git a/models/apis/eks/2017-11-01/api-2.json b/models/apis/eks/2017-11-01/api-2.json index 80873929cf0..58d7558617e 100644 --- a/models/apis/eks/2017-11-01/api-2.json +++ b/models/apis/eks/2017-11-01/api-2.json @@ -133,6 +133,23 @@ {"shape":"ServiceUnavailableException"} ] }, + "CreatePodIdentityAssociation":{ + "name":"CreatePodIdentityAssociation", + "http":{ + "method":"POST", + "requestUri":"/clusters/{name}/pod-identity-associations" + }, + "input":{"shape":"CreatePodIdentityAssociationRequest"}, + "output":{"shape":"CreatePodIdentityAssociationResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ResourceInUseException"} + ] + }, "DeleteAddon":{ "name":"DeleteAddon", "http":{ @@ -212,6 +229,21 @@ {"shape":"ServiceUnavailableException"} ] }, + "DeletePodIdentityAssociation":{ + "name":"DeletePodIdentityAssociation", + "http":{ + "method":"DELETE", + "requestUri":"/clusters/{name}/pod-identity-associations/{associationId}" + }, + "input":{"shape":"DeletePodIdentityAssociationRequest"}, + "output":{"shape":"DeletePodIdentityAssociationResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"} + ] + }, "DeregisterCluster":{ "name":"DeregisterCluster", "http":{ @@ -350,6 +382,21 @@ {"shape":"ServiceUnavailableException"} ] }, + "DescribePodIdentityAssociation":{ + "name":"DescribePodIdentityAssociation", + "http":{ + "method":"GET", + "requestUri":"/clusters/{name}/pod-identity-associations/{associationId}" + }, + "input":{"shape":"DescribePodIdentityAssociationRequest"}, + "output":{"shape":"DescribePodIdentityAssociationResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"} + ] + }, "DescribeUpdate":{ "name":"DescribeUpdate", "http":{ @@ -475,6 +522,21 @@ {"shape":"ResourceNotFoundException"} ] }, + "ListPodIdentityAssociations":{ + "name":"ListPodIdentityAssociations", + "http":{ + "method":"GET", + "requestUri":"/clusters/{name}/pod-identity-associations" + }, + "input":{"shape":"ListPodIdentityAssociationsRequest"}, + "output":{"shape":"ListPodIdentityAssociationsResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"} + ] + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -648,6 +710,21 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidRequestException"} ] + }, + "UpdatePodIdentityAssociation":{ + "name":"UpdatePodIdentityAssociation", + "http":{ + "method":"POST", + "requestUri":"/clusters/{name}/pod-identity-associations/{associationId}" + }, + "input":{"shape":"UpdatePodIdentityAssociationRequest"}, + "output":{"shape":"UpdatePodIdentityAssociationResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"} + ] } }, "shapes":{ @@ -1175,6 +1252,36 @@ "nodegroup":{"shape":"Nodegroup"} } }, + "CreatePodIdentityAssociationRequest":{ + "type":"structure", + "required":[ + "clusterName", + "namespace", + "serviceAccount", + "roleArn" + ], + "members":{ + "clusterName":{ + "shape":"String", + "location":"uri", + "locationName":"name" + }, + "namespace":{"shape":"String"}, + "serviceAccount":{"shape":"String"}, + "roleArn":{"shape":"String"}, + "clientRequestToken":{ + "shape":"String", + "idempotencyToken":true + }, + "tags":{"shape":"TagMap"} + } + }, + "CreatePodIdentityAssociationResponse":{ + "type":"structure", + "members":{ + "association":{"shape":"PodIdentityAssociation"} + } + }, "DeleteAddonRequest":{ "type":"structure", "required":[ @@ -1289,6 +1396,31 @@ "nodegroup":{"shape":"Nodegroup"} } }, + "DeletePodIdentityAssociationRequest":{ + "type":"structure", + "required":[ + "clusterName", + "associationId" + ], + "members":{ + "clusterName":{ + "shape":"String", + "location":"uri", + "locationName":"name" + }, + "associationId":{ + "shape":"String", + "location":"uri", + "locationName":"associationId" + } + } + }, + "DeletePodIdentityAssociationResponse":{ + "type":"structure", + "members":{ + "association":{"shape":"PodIdentityAssociation"} + } + }, "DeregisterClusterRequest":{ "type":"structure", "required":["name"], @@ -1516,6 +1648,31 @@ "nodegroup":{"shape":"Nodegroup"} } }, + "DescribePodIdentityAssociationRequest":{ + "type":"structure", + "required":[ + "clusterName", + "associationId" + ], + "members":{ + "clusterName":{ + "shape":"String", + "location":"uri", + "locationName":"name" + }, + "associationId":{ + "shape":"String", + "location":"uri", + "locationName":"associationId" + } + } + }, + "DescribePodIdentityAssociationResponse":{ + "type":"structure", + "members":{ + "association":{"shape":"PodIdentityAssociation"} + } + }, "DescribeUpdateRequest":{ "type":"structure", "required":[ @@ -2020,6 +2177,50 @@ "nextToken":{"shape":"String"} } }, + "ListPodIdentityAssociationsMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListPodIdentityAssociationsRequest":{ + "type":"structure", + "required":["clusterName"], + "members":{ + "clusterName":{ + "shape":"String", + "location":"uri", + "locationName":"name" + }, + "namespace":{ + "shape":"String", + "location":"querystring", + "locationName":"namespace" + }, + "serviceAccount":{ + "shape":"String", + "location":"querystring", + "locationName":"serviceAccount" + }, + "maxResults":{ + "shape":"ListPodIdentityAssociationsMaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListPodIdentityAssociationsResponse":{ + "type":"structure", + "members":{ + "associations":{"shape":"PodIdentityAssociationSummaries"}, + "nextToken":{"shape":"String"} + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["resourceArn"], @@ -2309,6 +2510,34 @@ "max":100, "min":1 }, + "PodIdentityAssociation":{ + "type":"structure", + "members":{ + "clusterName":{"shape":"String"}, + "namespace":{"shape":"String"}, + "serviceAccount":{"shape":"String"}, + "roleArn":{"shape":"String"}, + "associationArn":{"shape":"String"}, + "associationId":{"shape":"String"}, + "tags":{"shape":"TagMap"}, + "createdAt":{"shape":"Timestamp"}, + "modifiedAt":{"shape":"Timestamp"} + } + }, + "PodIdentityAssociationSummaries":{ + "type":"list", + "member":{"shape":"PodIdentityAssociationSummary"} + }, + "PodIdentityAssociationSummary":{ + "type":"structure", + "members":{ + "clusterName":{"shape":"String"}, + "namespace":{"shape":"String"}, + "serviceAccount":{"shape":"String"}, + "associationArn":{"shape":"String"}, + "associationId":{"shape":"String"} + } + }, "Provider":{ "type":"structure", "members":{ @@ -2753,6 +2982,36 @@ "type":"list", "member":{"shape":"UpdateParam"} }, + "UpdatePodIdentityAssociationRequest":{ + "type":"structure", + "required":[ + "clusterName", + "associationId" + ], + "members":{ + "clusterName":{ + "shape":"String", + "location":"uri", + "locationName":"name" + }, + "associationId":{ + "shape":"String", + "location":"uri", + "locationName":"associationId" + }, + "roleArn":{"shape":"String"}, + "clientRequestToken":{ + "shape":"String", + "idempotencyToken":true + } + } + }, + "UpdatePodIdentityAssociationResponse":{ + "type":"structure", + "members":{ + "association":{"shape":"PodIdentityAssociation"} + } + }, "UpdateStatus":{ "type":"string", "enum":[ diff --git a/models/apis/eks/2017-11-01/docs-2.json b/models/apis/eks/2017-11-01/docs-2.json index a1caed50dc9..ecd3f0b58cc 100644 --- a/models/apis/eks/2017-11-01/docs-2.json +++ b/models/apis/eks/2017-11-01/docs-2.json @@ -5,15 +5,17 @@ "AssociateEncryptionConfig": "

Associate encryption configuration to an existing cluster.

You can use this API to enable encryption on existing clusters which do not have encryption already enabled. This allows you to implement a defense-in-depth security strategy without migrating applications to new Amazon EKS clusters.

", "AssociateIdentityProviderConfig": "

Associate an identity provider configuration to a cluster.

If you want to authenticate identities using an identity provider, you can create an identity provider configuration and associate it to your cluster. After configuring authentication to your cluster you can create Kubernetes roles and clusterroles to assign permissions to the roles, and then bind the roles to the identities using Kubernetes rolebindings and clusterrolebindings. For more information see Using RBAC Authorization in the Kubernetes documentation.

", "CreateAddon": "

Creates an Amazon EKS add-on.

Amazon EKS add-ons help to automate the provisioning and lifecycle management of common operational software for Amazon EKS clusters. For more information, see Amazon EKS add-ons in the Amazon EKS User Guide.

", - "CreateCluster": "

Creates an Amazon EKS control plane.

The Amazon EKS control plane consists of control plane instances that run the Kubernetes software, such as etcd and the API server. The control plane runs in an account managed by Amazon Web Services, and the Kubernetes API is exposed by the Amazon EKS API server endpoint. Each Amazon EKS cluster control plane is single tenant and unique. It runs on its own set of Amazon EC2 instances.

The cluster control plane is provisioned across multiple Availability Zones and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic network interfaces in your VPC subnets to provide connectivity from the control plane instances to the nodes (for example, to support kubectl exec, logs, and proxy data flows).

Amazon EKS nodes run in your Amazon Web Services account and connect to your cluster's control plane over the Kubernetes API server endpoint and a certificate file that is created for your cluster.

In most cases, it takes several minutes to create a cluster. After you create an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate with the API server and launch nodes into your cluster. For more information, see Managing Cluster Authentication and Launching Amazon EKS nodes in the Amazon EKS User Guide.

", + "CreateCluster": "

Creates an Amazon EKS control plane.

The Amazon EKS control plane consists of control plane instances that run the Kubernetes software, such as etcd and the API server. The control plane runs in an account managed by Amazon Web Services, and the Kubernetes API is exposed by the Amazon EKS API server endpoint. Each Amazon EKS cluster control plane is single tenant and unique. It runs on its own set of Amazon EC2 instances.

The cluster control plane is provisioned across multiple Availability Zones and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic network interfaces in your VPC subnets to provide connectivity from the control plane instances to the nodes (for example, to support kubectl exec, logs, and proxy data flows).

Amazon EKS nodes run in your Amazon Web Services account and connect to your cluster's control plane over the Kubernetes API server endpoint and a certificate file that is created for your cluster.

You can use the endpointPublicAccess and endpointPrivateAccess parameters to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. For more information, see Amazon EKS Cluster Endpoint Access Control in the Amazon EKS User Guide .

You can use the logging parameter to enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster Control Plane Logs in the Amazon EKS User Guide .

CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For more information, see CloudWatch Pricing.

In most cases, it takes several minutes to create a cluster. After you create an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate with the API server and launch nodes into your cluster. For more information, see Managing Cluster Authentication and Launching Amazon EKS nodes in the Amazon EKS User Guide.

", "CreateEksAnywhereSubscription": "

Creates an EKS Anywhere subscription. When a subscription is created, it is a contract agreement for the length of the term specified in the request. Licenses that are used to validate support are provisioned in Amazon Web Services License Manager and the caller account is granted access to EKS Anywhere Curated Packages.

", "CreateFargateProfile": "

Creates an Fargate profile for your Amazon EKS cluster. You must have at least one Fargate profile in a cluster to be able to run pods on Fargate.

The Fargate profile allows an administrator to declare which pods run on Fargate and specify which pods run on which Fargate profile. This declaration is done through the profile’s selectors. Each profile can have up to five selectors that contain a namespace and labels. A namespace is required for every selector. The label field consists of multiple optional key-value pairs. Pods that match the selectors are scheduled on Fargate. If a to-be-scheduled pod matches any of the selectors in the Fargate profile, then that pod is run on Fargate.

When you create a Fargate profile, you must specify a pod execution role to use with the pods that are scheduled with the profile. This role is added to the cluster's Kubernetes Role Based Access Control (RBAC) for authorization so that the kubelet that is running on the Fargate infrastructure can register with your Amazon EKS cluster so that it can appear in your cluster as a node. The pod execution role also provides IAM permissions to the Fargate infrastructure to allow read access to Amazon ECR image repositories. For more information, see Pod Execution Role in the Amazon EKS User Guide.

Fargate profiles are immutable. However, you can create a new updated profile to replace an existing profile and then delete the original after the updated profile has finished creating.

If any Fargate profiles in a cluster are in the DELETING status, you must wait for that Fargate profile to finish deleting before you can create any other profiles in that cluster.

For more information, see Fargate Profile in the Amazon EKS User Guide.

", "CreateNodegroup": "

Creates a managed node group for an Amazon EKS cluster. You can only create a node group for your cluster that is equal to the current Kubernetes version for the cluster.

An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and associated Amazon EC2 instances that are managed by Amazon Web Services for an Amazon EKS cluster. For more information, see Managed node groups in the Amazon EKS User Guide.

Windows AMI types are only supported for commercial Regions that support Windows Amazon EKS.

", + "CreatePodIdentityAssociation": "

Creates an EKS Pod Identity association between a service account in an Amazon EKS cluster and an IAM role with EKS Pod Identity. Use EKS Pod Identity to give temporary IAM credentials to pods and the credentials are rotated automatically.

Amazon EKS Pod Identity associations provide the ability to manage credentials for your applications, similar to the way that 7EC2l instance profiles provide credentials to Amazon EC2 instances.

If a pod uses a service account that has an association, Amazon EKS sets environment variables in the containers of the pod. The environment variables configure the Amazon Web Services SDKs, including the Command Line Interface, to use the EKS Pod Identity credentials.

Pod Identity is a simpler method than IAM roles for service accounts, as this method doesn't use OIDC identity providers. Additionally, you can configure a role for Pod Identity once, and reuse it across clusters.

", "DeleteAddon": "

Delete an Amazon EKS add-on.

When you remove the add-on, it will also be deleted from the cluster. You can always manually start an add-on on the cluster using the Kubernetes API.

", "DeleteCluster": "

Deletes the Amazon EKS cluster control plane.

If you have active services in your cluster that are associated with a load balancer, you must delete those services before deleting the cluster so that the load balancers are deleted properly. Otherwise, you can have orphaned resources in your VPC that prevent you from being able to delete the VPC. For more information, see Deleting a Cluster in the Amazon EKS User Guide.

If you have managed node groups or Fargate profiles attached to the cluster, you must delete them first. For more information, see DeleteNodegroup and DeleteFargateProfile.

", - "DeleteEksAnywhereSubscription": "

Deletes an expired / inactive subscription. Deleting inactive subscriptions removes them from the Amazon Web Services Management Console view and from list/describe API responses. Subscriptions can only be cancelled within 7 days of creation, and are cancelled by creating a ticket in the Amazon Web Services Support Center.

", + "DeleteEksAnywhereSubscription": "

Deletes an expired or inactive subscription. Deleting inactive subscriptions removes them from the Amazon Web Services Management Console view and from list/describe API responses. Subscriptions can only be cancelled within 7 days of creation and are cancelled by creating a ticket in the Amazon Web Services Support Center.

", "DeleteFargateProfile": "

Deletes an Fargate profile.

When you delete a Fargate profile, any pods running on Fargate that were created with the profile are deleted. If those pods match another Fargate profile, then they are scheduled on Fargate with that profile. If they no longer match any Fargate profiles, then they are not scheduled on Fargate and they may remain in a pending state.

Only one Fargate profile in a cluster can be in the DELETING status at a time. You must wait for a Fargate profile to finish deleting before you can delete any other profiles in that cluster.

", "DeleteNodegroup": "

Deletes an Amazon EKS node group for a cluster.

", + "DeletePodIdentityAssociation": "

Deletes a EKS Pod Identity association.

The temporary Amazon Web Services credentials from the previous IAM role session might still be valid until the session expiry. If you need to immediately revoke the temporary session credentials, then go to the role in the IAM console.

", "DeregisterCluster": "

Deregisters a connected cluster to remove it from the Amazon EKS control plane.

", "DescribeAddon": "

Describes an Amazon EKS add-on.

", "DescribeAddonConfiguration": "

Returns configuration options.

", @@ -23,6 +25,7 @@ "DescribeFargateProfile": "

Returns descriptive information about an Fargate profile.

", "DescribeIdentityProviderConfig": "

Returns descriptive information about an identity provider configuration.

", "DescribeNodegroup": "

Returns descriptive information about an Amazon EKS node group.

", + "DescribePodIdentityAssociation": "

Returns descriptive information about an EKS Pod Identity association.

This action requires the ID of the association. You can get the ID from the response to the CreatePodIdentityAssocation for newly created associations. Or, you can list the IDs for associations with ListPodIdentityAssociations and filter the list by namespace or service account.

", "DescribeUpdate": "

Returns descriptive information about an update against your Amazon EKS cluster or associated managed node group or Amazon EKS add-on.

When the status of the update is Succeeded, the update is complete. If an update fails, the status is Failed, and an error detail explains the reason for the failure.

", "DisassociateIdentityProviderConfig": "

Disassociates an identity provider configuration from a cluster. If you disassociate an identity provider from your cluster, users included in the provider can no longer access the cluster. However, you can still access the cluster with IAM principals.

", "ListAddons": "

Lists the installed add-ons.

", @@ -31,17 +34,19 @@ "ListFargateProfiles": "

Lists the Fargate profiles associated with the specified cluster in your Amazon Web Services account in the specified Region.

", "ListIdentityProviderConfigs": "

A list of identity provider configurations.

", "ListNodegroups": "

Lists the Amazon EKS managed node groups associated with the specified cluster in your Amazon Web Services account in the specified Region. Self-managed node groups are not listed.

", + "ListPodIdentityAssociations": "

List the EKS Pod Identity associations in a cluster. You can filter the list by the namespace that the association is in or the service account that the association uses.

", "ListTagsForResource": "

List the tags for an Amazon EKS resource.

", "ListUpdates": "

Lists the updates associated with an Amazon EKS cluster or managed node group in your Amazon Web Services account, in the specified Region.

", "RegisterCluster": "

Connects a Kubernetes cluster to the Amazon EKS control plane.

Any Kubernetes cluster can be connected to the Amazon EKS control plane to view current information about the cluster and its nodes.

Cluster connection requires two steps. First, send a RegisterClusterRequest to add it to the Amazon EKS control plane.

Second, a Manifest containing the activationID and activationCode must be applied to the Kubernetes cluster through it's native provider to provide visibility.

After the Manifest is updated and applied, then the connected cluster is visible to the Amazon EKS control plane. If the Manifest is not applied within three days, then the connected cluster will no longer be visible and must be deregistered. See DeregisterCluster.

", "TagResource": "

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well. Tags that you create for Amazon EKS resources do not propagate to any other resources associated with the cluster. For example, if you tag a cluster with this operation, that tag does not automatically propagate to the subnets and nodes associated with the cluster.

", "UntagResource": "

Deletes specified tags from a resource.

", "UpdateAddon": "

Updates an Amazon EKS add-on.

", - "UpdateClusterConfig": "

Updates an Amazon EKS cluster configuration. Your cluster continues to function during the update. The response output includes an update ID that you can use to track the status of your cluster update with the DescribeUpdate API operation.

You can use this API operation to enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster Control Plane Logs in the Amazon EKS User Guide .

CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For more information, see CloudWatch Pricing.

You can also use this API operation to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. For more information, see Amazon EKS cluster endpoint access control in the Amazon EKS User Guide .

You can't update the subnets or security group IDs for an existing cluster.

Cluster updates are asynchronous, and they should finish within a few minutes. During an update, the cluster status moves to UPDATING (this status transition is eventually consistent). When the update is complete (either Failed or Successful), the cluster status moves to Active.

", + "UpdateClusterConfig": "

Updates an Amazon EKS cluster configuration. Your cluster continues to function during the update. The response output includes an update ID that you can use to track the status of your cluster update with the DescribeUpdate API operation.

You can use this API operation to enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster Control Plane Logs in the Amazon EKS User Guide .

CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For more information, see CloudWatch Pricing.

You can also use this API operation to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. For more information, see Amazon EKS cluster endpoint access control in the Amazon EKS User Guide .

You can also use this API operation to choose different subnets and security groups for the cluster. You must specify at least two subnets that are in different Availability Zones. You can't change which VPC the subnets are from, the subnets must be in the same VPC as the subnets that the cluster was created with. For more information about the VPC requirements, see https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html in the Amazon EKS User Guide .

Cluster updates are asynchronous, and they should finish within a few minutes. During an update, the cluster status moves to UPDATING (this status transition is eventually consistent). When the update is complete (either Failed or Successful), the cluster status moves to Active.

", "UpdateClusterVersion": "

Updates an Amazon EKS cluster to the specified Kubernetes version. Your cluster continues to function during the update. The response output includes an update ID that you can use to track the status of your cluster update with the DescribeUpdate API operation.

Cluster updates are asynchronous, and they should finish within a few minutes. During an update, the cluster status moves to UPDATING (this status transition is eventually consistent). When the update is complete (either Failed or Successful), the cluster status moves to Active.

If your cluster has managed node groups attached to it, all of your node groups’ Kubernetes versions must match the cluster’s Kubernetes version in order to update the cluster to a new Kubernetes version.

", "UpdateEksAnywhereSubscription": "

Update an EKS Anywhere Subscription. Only auto renewal and tags can be updated after subscription creation.

", "UpdateNodegroupConfig": "

Updates an Amazon EKS managed node group configuration. Your node group continues to function during the update. The response output includes an update ID that you can use to track the status of your node group update with the DescribeUpdate API operation. Currently you can update the Kubernetes labels for a node group or the scaling configuration.

", - "UpdateNodegroupVersion": "

Updates the Kubernetes version or AMI version of an Amazon EKS managed node group.

You can update a node group using a launch template only if the node group was originally deployed with a launch template. If you need to update a custom AMI in a node group that was deployed with a launch template, then update your custom AMI, specify the new ID in a new version of the launch template, and then update the node group to the new version of the launch template.

If you update without a launch template, then you can update to the latest available AMI version of a node group's current Kubernetes version by not specifying a Kubernetes version in the request. You can update to the latest AMI version of your cluster's current Kubernetes version by specifying your cluster's Kubernetes version in the request. For information about Linux versions, see Amazon EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. For information about Windows versions, see Amazon EKS optimized Windows AMI versions in the Amazon EKS User Guide.

You cannot roll back a node group to an earlier Kubernetes version or AMI version.

When a node in a managed node group is terminated due to a scaling action or update, the pods in that node are drained first. Amazon EKS attempts to drain the nodes gracefully and will fail if it is unable to do so. You can force the update if Amazon EKS is unable to drain the nodes as a result of a pod disruption budget issue.

" + "UpdateNodegroupVersion": "

Updates the Kubernetes version or AMI version of an Amazon EKS managed node group.

You can update a node group using a launch template only if the node group was originally deployed with a launch template. If you need to update a custom AMI in a node group that was deployed with a launch template, then update your custom AMI, specify the new ID in a new version of the launch template, and then update the node group to the new version of the launch template.

If you update without a launch template, then you can update to the latest available AMI version of a node group's current Kubernetes version by not specifying a Kubernetes version in the request. You can update to the latest AMI version of your cluster's current Kubernetes version by specifying your cluster's Kubernetes version in the request. For information about Linux versions, see Amazon EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. For information about Windows versions, see Amazon EKS optimized Windows AMI versions in the Amazon EKS User Guide.

You cannot roll back a node group to an earlier Kubernetes version or AMI version.

When a node in a managed node group is terminated due to a scaling action or update, the pods in that node are drained first. Amazon EKS attempts to drain the nodes gracefully and will fail if it is unable to do so. You can force the update if Amazon EKS is unable to drain the nodes as a result of a pod disruption budget issue.

", + "UpdatePodIdentityAssociation": "

Updates a EKS Pod Identity association. Only the IAM role can be changed; an association can't be moved between clusters, namespaces, or service accounts. If you need to edit the namespace or service account, you need to remove the association and then create a new association with your desired settings.

" }, "shapes": { "AMITypes": { @@ -353,6 +358,16 @@ "refs": { } }, + "CreatePodIdentityAssociationRequest": { + "base": null, + "refs": { + } + }, + "CreatePodIdentityAssociationResponse": { + "base": null, + "refs": { + } + }, "DeleteAddonRequest": { "base": null, "refs": { @@ -403,6 +418,16 @@ "refs": { } }, + "DeletePodIdentityAssociationRequest": { + "base": null, + "refs": { + } + }, + "DeletePodIdentityAssociationResponse": { + "base": null, + "refs": { + } + }, "DeregisterClusterRequest": { "base": null, "refs": { @@ -499,6 +524,16 @@ "refs": { } }, + "DescribePodIdentityAssociationRequest": { + "base": null, + "refs": { + } + }, + "DescribePodIdentityAssociationResponse": { + "base": null, + "refs": { + } + }, "DescribeUpdateRequest": { "base": null, "refs": { @@ -570,7 +605,7 @@ "EksAnywhereSubscriptionTermUnit": { "base": null, "refs": { - "EksAnywhereSubscriptionTerm$unit": "

The term unit of the subscription. Valid value is MONTHS.

" + "EksAnywhereSubscriptionTerm$unit": "

The term unit of the subscription. Valid value is MONTHS.

" } }, "EncryptionConfig": { @@ -679,8 +714,8 @@ "Integer": { "base": null, "refs": { - "CreateEksAnywhereSubscriptionRequest$licenseQuantity": "

The number of licenses to purchase with the subscription. Valid values are between 1 and 1000. This value cannot be changed after creating the subscription.

", - "EksAnywhereSubscription$licenseQuantity": "

The number of licenses included in a subscription. Valid values are between 1 and 1000.

", + "CreateEksAnywhereSubscriptionRequest$licenseQuantity": "

The number of licenses to purchase with the subscription. Valid values are between 1 and 100. This value can't be changed after creating the subscription.

", + "EksAnywhereSubscription$licenseQuantity": "

The number of licenses included in a subscription. Valid values are between 1 and 100.

", "EksAnywhereSubscriptionTerm$duration": "

The duration of the subscription term. Valid values are 12 and 36, indicating a 12 month or 36 month subscription.

" } }, @@ -823,6 +858,22 @@ "refs": { } }, + "ListPodIdentityAssociationsMaxResults": { + "base": null, + "refs": { + "ListPodIdentityAssociationsRequest$maxResults": "

The maximum number of EKS Pod Identity association results returned by ListPodIdentityAssociations in paginated output. When you use this parameter, ListPodIdentityAssociations returns only maxResults results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another ListPodIdentityAssociations request with the returned nextToken value. This value can be between 1 and 100. If you don't use this parameter, ListPodIdentityAssociations returns up to 100 results and a nextToken value if applicable.

" + } + }, + "ListPodIdentityAssociationsRequest": { + "base": null, + "refs": { + } + }, + "ListPodIdentityAssociationsResponse": { + "base": null, + "refs": { + } + }, "ListTagsForResourceRequest": { "base": null, "refs": { @@ -983,6 +1034,27 @@ "NodegroupUpdateConfig$maxUnavailablePercentage": "

The maximum percentage of nodes unavailable during a version update. This percentage of nodes will be updated in parallel, up to 100 nodes at once. This value or maxUnavailable is required to have a value.

" } }, + "PodIdentityAssociation": { + "base": "

Amazon EKS Pod Identity associations provide the ability to manage credentials for your applications, similar to the way that 7EC2l instance profiles provide credentials to Amazon EC2 instances.

", + "refs": { + "CreatePodIdentityAssociationResponse$association": "

The full description of your new association.

The description includes an ID for the association. Use the ID of the association in further actions to manage the association.

", + "DeletePodIdentityAssociationResponse$association": "

The full description of the EKS Pod Identity association that was deleted.

", + "DescribePodIdentityAssociationResponse$association": "

The full description of the EKS Pod Identity association.

", + "UpdatePodIdentityAssociationResponse$association": "

The full description of the EKS Pod Identity association that was updated.

" + } + }, + "PodIdentityAssociationSummaries": { + "base": null, + "refs": { + "ListPodIdentityAssociationsResponse$associations": "

The list of summarized descriptions of the associations that are in the cluster and match any filters that you provided.

Each summary is simplified by removing these fields compared to the full PodIdentityAssociation :

" + } + }, + "PodIdentityAssociationSummary": { + "base": "

The summarized description of the association.

Each summary is simplified by removing these fields compared to the full PodIdentityAssociation :

", + "refs": { + "PodIdentityAssociationSummaries$member": null + } + }, "Provider": { "base": "

Identifies the Key Management Service (KMS) key used to encrypt the secrets.

", "refs": { @@ -1053,7 +1125,7 @@ "String": { "base": null, "refs": { - "AccessDeniedException$message": null, + "AccessDeniedException$message": "

You do not have sufficient access to perform this action.

", "Addon$addonName": "

The name of the add-on.

", "Addon$addonVersion": "

The version of the add-on.

", "Addon$addonArn": "

The Amazon Resource Name (ARN) of the add-on.

", @@ -1072,13 +1144,13 @@ "AssociateIdentityProviderConfigRequest$clusterName": "

The name of the cluster to associate the configuration to.

", "AssociateIdentityProviderConfigRequest$clientRequestToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "AutoScalingGroup$name": "

The name of the Auto Scaling group associated with an Amazon EKS managed node group.

", - "BadRequestException$message": null, + "BadRequestException$message": "

This exception is thrown if the request contains a semantic error. The precise meaning will depend on the API, and will be documented in the error message.

", "Certificate$data": "

The Base64-encoded certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kubeconfig file for your cluster.

", "ClientException$clusterName": "

The Amazon EKS cluster associated with the exception.

", "ClientException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", - "ClientException$addonName": null, + "ClientException$addonName": "

The Amazon EKS add-on name associated with the exception.

", "ClientException$subscriptionId": "

The Amazon EKS subscription ID with the exception.

", - "ClientException$message": null, + "ClientException$message": "

These errors are usually caused by a client action. Actions can include using an action or resource on behalf of an IAM principal that doesn't have permissions to use the action or resource or specifying an identifier that is not valid.

", "Cluster$name": "

The name of the cluster.

", "Cluster$arn": "

The Amazon Resource Name (ARN) of the cluster.

", "Cluster$version": "

The Kubernetes server version for the cluster.

", @@ -1114,6 +1186,11 @@ "CreateNodegroupRequest$clientRequestToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "CreateNodegroupRequest$version": "

The Kubernetes version to use for your managed nodes. By default, the Kubernetes version of the cluster is used, and this is the only accepted specified value. If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify version, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", "CreateNodegroupRequest$releaseVersion": "

The AMI version of the Amazon EKS optimized AMI to use with your node group. By default, the latest available AMI version for the node group's current Kubernetes version is used. For information about Linux versions, see Amazon EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. Amazon EKS managed node groups support the November 2022 and later releases of the Windows AMIs. For information about Windows versions, see Amazon EKS optimized Windows AMI versions in the Amazon EKS User Guide.

If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify releaseVersion, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", + "CreatePodIdentityAssociationRequest$clusterName": "

The name of the cluster to create the association in.

", + "CreatePodIdentityAssociationRequest$namespace": "

The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the pods that use the service account must be in this namespace.

", + "CreatePodIdentityAssociationRequest$serviceAccount": "

The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.

", + "CreatePodIdentityAssociationRequest$roleArn": "

The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the pods that use this service account.

", + "CreatePodIdentityAssociationRequest$clientRequestToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "DeleteAddonRequest$addonName": "

The name of the add-on. The name must match one of the names returned by ListAddons .

", "DeleteClusterRequest$name": "

The name of the cluster to delete.

", "DeleteEksAnywhereSubscriptionRequest$id": "

The ID of the subscription.

", @@ -1121,6 +1198,8 @@ "DeleteFargateProfileRequest$fargateProfileName": "

The name of the Fargate profile to delete.

", "DeleteNodegroupRequest$clusterName": "

The name of the Amazon EKS cluster that is associated with your node group.

", "DeleteNodegroupRequest$nodegroupName": "

The name of the node group to delete.

", + "DeletePodIdentityAssociationRequest$clusterName": "

The cluster name that

", + "DeletePodIdentityAssociationRequest$associationId": "

The ID of the association to be deleted.

", "DeregisterClusterRequest$name": "

The name of the connected cluster to deregister.

", "DescribeAddonConfigurationRequest$addonName": "

The name of the add-on. The name must match one of the names that DescribeAddonVersions returns.

", "DescribeAddonConfigurationRequest$addonVersion": "

The version of the add-on. The version must match one of the versions returned by DescribeAddonVersions .

", @@ -1131,7 +1210,7 @@ "DescribeAddonVersionsRequest$kubernetesVersion": "

The Kubernetes versions that you can use the add-on with.

", "DescribeAddonVersionsRequest$nextToken": "

The nextToken value returned from a previous paginated DescribeAddonVersionsRequest where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.

", "DescribeAddonVersionsRequest$addonName": "

The name of the add-on. The name must match one of the names returned by ListAddons .

", - "DescribeAddonVersionsResponse$nextToken": "

The nextToken value returned from a previous paginated DescribeAddonVersionsResponse where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.

", + "DescribeAddonVersionsResponse$nextToken": "

The nextToken value to include in a future DescribeAddonVersions request. When the results of a DescribeAddonVersions request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.

", "DescribeClusterRequest$name": "

The name of the cluster to describe.

", "DescribeEksAnywhereSubscriptionRequest$id": "

The ID of the subscription.

", "DescribeFargateProfileRequest$clusterName": "

The name of the Amazon EKS cluster associated with the Fargate profile.

", @@ -1139,6 +1218,8 @@ "DescribeIdentityProviderConfigRequest$clusterName": "

The cluster name that the identity provider configuration is associated to.

", "DescribeNodegroupRequest$clusterName": "

The name of the Amazon EKS cluster associated with the node group.

", "DescribeNodegroupRequest$nodegroupName": "

The name of the node group to describe.

", + "DescribePodIdentityAssociationRequest$clusterName": "

The name of the cluster that the association is in.

", + "DescribePodIdentityAssociationRequest$associationId": "

The ID of the association that you want the description of.

", "DescribeUpdateRequest$name": "

The name of the Amazon EKS cluster associated with the update.

", "DescribeUpdateRequest$updateId": "

The ID of the update to describe.

", "DescribeUpdateRequest$nodegroupName": "

The name of the Amazon EKS node group associated with the update. This parameter is required if the update is a node group update.

", @@ -1162,14 +1243,14 @@ "InvalidParameterException$clusterName": "

The Amazon EKS cluster associated with the exception.

", "InvalidParameterException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", "InvalidParameterException$fargateProfileName": "

The Fargate profile associated with the exception.

", - "InvalidParameterException$addonName": null, + "InvalidParameterException$addonName": "

The specified parameter for the add-on name is invalid. Review the available parameters for the API request

", "InvalidParameterException$subscriptionId": "

The Amazon EKS subscription ID with the exception.

", - "InvalidParameterException$message": null, + "InvalidParameterException$message": "

The specified parameter is invalid. Review the available parameters for the API request.

", "InvalidRequestException$clusterName": "

The Amazon EKS cluster associated with the exception.

", "InvalidRequestException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", - "InvalidRequestException$addonName": null, + "InvalidRequestException$addonName": "

The request is invalid given the state of the add-on name. Check the state of the cluster and the associated operations.

", "InvalidRequestException$subscriptionId": "

The Amazon EKS subscription ID with the exception.

", - "InvalidRequestException$message": null, + "InvalidRequestException$message": "

The Amazon EKS add-on name associated with the exception.

", "Issue$message": "

The error message associated with the issue.

", "KubernetesNetworkConfigRequest$serviceIpv4Cidr": "

Don't specify a value if you select ipv6 for ipFamily. The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. The block must meet the following requirements:

You can only specify a custom CIDR block when you create a cluster and can't change this value once the cluster is created.

", "KubernetesNetworkConfigResponse$serviceIpv4Cidr": "

The CIDR block that Kubernetes pod and service IP addresses are assigned from. Kubernetes assigns addresses from an IPv4 CIDR block assigned to a subnet that the node is in. If you didn't specify a CIDR block when you created the cluster, then Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. If this was specified, then it was specified when the cluster was created and it can't be changed.

", @@ -1178,20 +1259,25 @@ "LaunchTemplateSpecification$version": "

The version number of the launch template to use. If no version is specified, then the template's default version is used.

", "LaunchTemplateSpecification$id": "

The ID of the launch template.

You must specify either the launch template ID or the launch template name in the request, but not both.

", "ListAddonsRequest$nextToken": "

The nextToken value returned from a previous paginated ListAddonsRequest where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.

", - "ListAddonsResponse$nextToken": "

The nextToken value returned from a previous paginated ListAddonsResponse where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.

", + "ListAddonsResponse$nextToken": "

The nextToken value to include in a future ListAddons request. When the results of a ListAddons request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.

", "ListClustersRequest$nextToken": "

The nextToken value returned from a previous paginated ListClusters request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.

", "ListClustersResponse$nextToken": "

The nextToken value to include in a future ListClusters request. When the results of a ListClusters request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

", - "ListEksAnywhereSubscriptionsRequest$nextToken": "

The nextToken value to include in a future ListEksAnywhereSubscriptions request. When the results of a ListEksAnywhereSubscriptions request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListEksAnywhereSubscriptionsRequest$nextToken": "

The nextToken value returned from a previous paginated ListEksAnywhereSubscriptions request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

", "ListEksAnywhereSubscriptionsResponse$nextToken": "

The nextToken value to include in a future ListEksAnywhereSubscriptions request. When the results of a ListEksAnywhereSubscriptions request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

", "ListFargateProfilesRequest$clusterName": "

The name of the Amazon EKS cluster that you would like to list Fargate profiles in.

", "ListFargateProfilesRequest$nextToken": "

The nextToken value returned from a previous paginated ListFargateProfiles request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

", "ListFargateProfilesResponse$nextToken": "

The nextToken value to include in a future ListFargateProfiles request. When the results of a ListFargateProfiles request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

", "ListIdentityProviderConfigsRequest$clusterName": "

The cluster name that you want to list identity provider configurations for.

", "ListIdentityProviderConfigsRequest$nextToken": "

The nextToken value returned from a previous paginated IdentityProviderConfigsRequest where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

", - "ListIdentityProviderConfigsResponse$nextToken": "

The nextToken value returned from a previous paginated ListIdentityProviderConfigsResponse where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

", + "ListIdentityProviderConfigsResponse$nextToken": "

The nextToken value to include in a future ListIdentityProviderConfigsResponse request. When the results of a ListIdentityProviderConfigsResponse request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

", "ListNodegroupsRequest$clusterName": "

The name of the Amazon EKS cluster that you would like to list node groups in.

", "ListNodegroupsRequest$nextToken": "

The nextToken value returned from a previous paginated ListNodegroups request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

", "ListNodegroupsResponse$nextToken": "

The nextToken value to include in a future ListNodegroups request. When the results of a ListNodegroups request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListPodIdentityAssociationsRequest$clusterName": "

The name of the cluster that the associations are in.

", + "ListPodIdentityAssociationsRequest$namespace": "

The name of the Kubernetes namespace inside the cluster that the associations are in.

", + "ListPodIdentityAssociationsRequest$serviceAccount": "

The name of the Kubernetes service account that the associations use.

", + "ListPodIdentityAssociationsRequest$nextToken": "

The nextToken value returned from a previous paginated ListUpdates request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.

", + "ListPodIdentityAssociationsResponse$nextToken": "

The nextToken value to include in a future ListPodIdentityAssociations request. When the results of a ListPodIdentityAssociations request exceed maxResults, you can use this value to retrieve the next page of results. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.

", "ListTagsForResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Amazon EKS clusters and managed node groups.

", "ListUpdatesRequest$name": "

The name of the Amazon EKS cluster to list updates for.

", "ListUpdatesRequest$nodegroupName": "

The name of the Amazon EKS managed node group to list updates for.

", @@ -1207,7 +1293,7 @@ "Nodegroup$releaseVersion": "

If the node group was deployed using a launch template with a custom AMI, then this is the AMI ID that was specified in the launch template. For node groups that weren't deployed using a launch template, this is the version of the Amazon EKS optimized AMI that the node group was deployed with.

", "Nodegroup$nodeRole": "

The IAM role associated with your node group. The Amazon EKS node kubelet daemon makes calls to Amazon Web Services APIs on your behalf. Nodes receive permissions for these API calls through an IAM instance profile and associated policies.

", "NodegroupResources$remoteAccessSecurityGroup": "

The remote access security group associated with the node group. This security group controls SSH access to the nodes.

", - "NotFoundException$message": null, + "NotFoundException$message": "

A service resource associated with the request could not be found. Clients should not retry such requests.

", "OIDC$issuer": "

The issuer URL for the OIDC identity provider.

", "OidcIdentityProviderConfig$identityProviderConfigName": "

The name of the configuration.

", "OidcIdentityProviderConfig$identityProviderConfigArn": "

The ARN of the configuration.

", @@ -1227,33 +1313,44 @@ "OidcIdentityProviderConfigRequest$groupsPrefix": "

The prefix that is prepended to group claims to prevent clashes with existing names (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra.

", "OutpostConfigRequest$controlPlaneInstanceType": "

The Amazon EC2 instance type that you want to use for your local Amazon EKS cluster on Outposts. Choose an instance type based on the number of nodes that your cluster will have. For more information, see Capacity considerations in the Amazon EKS User Guide.

The instance type that you specify is used for all Kubernetes control plane instances. The instance type can't be changed after cluster creation. The control plane is not automatically scaled by Amazon EKS.

", "OutpostConfigResponse$controlPlaneInstanceType": "

The Amazon EC2 instance type used for the control plane. The instance type is the same for all control plane instances.

", + "PodIdentityAssociation$clusterName": "

The name of the cluster that the association is in.

", + "PodIdentityAssociation$namespace": "

The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the pods that use the service account must be in this namespace.

", + "PodIdentityAssociation$serviceAccount": "

The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.

", + "PodIdentityAssociation$roleArn": "

The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the pods that use this service account.

", + "PodIdentityAssociation$associationArn": "

The Amazon Resource Name (ARN) of the association.

", + "PodIdentityAssociation$associationId": "

The ID of the association.

", + "PodIdentityAssociationSummary$clusterName": "

The name of the cluster that the association is in.

", + "PodIdentityAssociationSummary$namespace": "

The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the pods that use the service account must be in this namespace.

", + "PodIdentityAssociationSummary$serviceAccount": "

The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.

", + "PodIdentityAssociationSummary$associationArn": "

The Amazon Resource Name (ARN) of the association.

", + "PodIdentityAssociationSummary$associationId": "

The ID of the association.

", "Provider$keyArn": "

Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric and created in the same Amazon Web Services Region as the cluster. If the KMS key was created in a different account, the IAM principal must have access to the KMS key. For more information, see Allowing users in other accounts to use a KMS key in the Key Management Service Developer Guide.

", "RegisterClusterRequest$clientRequestToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "RemoteAccessConfig$ec2SshKey": "

The Amazon EC2 SSH key name that provides access for SSH communication with the nodes in the managed node group. For more information, see Amazon EC2 key pairs and Linux instances in the Amazon Elastic Compute Cloud User Guide for Linux Instances. For Windows, an Amazon EC2 SSH key is used to obtain the RDP password. For more information, see Amazon EC2 key pairs and Windows instances in the Amazon Elastic Compute Cloud User Guide for Windows Instances.

", "ResourceInUseException$clusterName": "

The Amazon EKS cluster associated with the exception.

", "ResourceInUseException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", - "ResourceInUseException$addonName": null, - "ResourceInUseException$message": null, + "ResourceInUseException$addonName": "

The specified add-on name is in use.

", + "ResourceInUseException$message": "

The Amazon EKS message associated with the exception.

", "ResourceLimitExceededException$clusterName": "

The Amazon EKS cluster associated with the exception.

", "ResourceLimitExceededException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", "ResourceLimitExceededException$subscriptionId": "

The Amazon EKS subscription ID with the exception.

", - "ResourceLimitExceededException$message": null, + "ResourceLimitExceededException$message": "

The Amazon EKS message associated with the exception.

", "ResourceNotFoundException$clusterName": "

The Amazon EKS cluster associated with the exception.

", "ResourceNotFoundException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", "ResourceNotFoundException$fargateProfileName": "

The Fargate profile associated with the exception.

", - "ResourceNotFoundException$addonName": null, + "ResourceNotFoundException$addonName": "

The Amazon EKS add-on name associated with the exception.

", "ResourceNotFoundException$subscriptionId": "

The Amazon EKS subscription ID with the exception.

", - "ResourceNotFoundException$message": null, - "ResourcePropagationDelayException$message": null, + "ResourceNotFoundException$message": "

The Amazon EKS message associated with the exception.

", + "ResourcePropagationDelayException$message": "

Required resources (such as service-linked roles) were created and are still propagating. Retry later.

", "ServerException$clusterName": "

The Amazon EKS cluster associated with the exception.

", "ServerException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", - "ServerException$addonName": null, + "ServerException$addonName": "

The Amazon EKS add-on name associated with the exception.

", "ServerException$subscriptionId": "

The Amazon EKS subscription ID with the exception.

", - "ServerException$message": null, - "ServiceUnavailableException$message": null, + "ServerException$message": "

These errors are usually caused by a server-side issue.

", + "ServiceUnavailableException$message": "

The request has failed due to a temporary failure of the server.

", "StringList$member": null, "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource to which to add tags. Currently, the supported resources are Amazon EKS clusters and managed node groups.

", - "UnsupportedAvailabilityZoneException$message": null, + "UnsupportedAvailabilityZoneException$message": "

At least one of your specified cluster subnets is in an Availability Zone that does not support Amazon EKS. The exception output specifies the supported Availability Zones for your account, from which you can choose subnets for your cluster.

", "UnsupportedAvailabilityZoneException$clusterName": "

The Amazon EKS cluster associated with the exception.

", "UnsupportedAvailabilityZoneException$nodegroupName": "

The Amazon EKS managed node group associated with the exception.

", "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource from which to delete tags. Currently, the supported resources are Amazon EKS clusters and managed node groups.

", @@ -1267,7 +1364,7 @@ "UpdateClusterVersionRequest$name": "

The name of the Amazon EKS cluster to update.

", "UpdateClusterVersionRequest$version": "

The desired Kubernetes version following a successful update.

", "UpdateClusterVersionRequest$clientRequestToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", - "UpdateEksAnywhereSubscriptionRequest$id": "

", + "UpdateEksAnywhereSubscriptionRequest$id": "

The ID of the subscription.

", "UpdateEksAnywhereSubscriptionRequest$clientRequestToken": "

Unique, case-sensitive identifier to ensure the idempotency of the request.

", "UpdateNodegroupConfigRequest$clusterName": "

The name of the Amazon EKS cluster that the managed node group resides in.

", "UpdateNodegroupConfigRequest$nodegroupName": "

The name of the managed node group to update.

", @@ -1278,6 +1375,10 @@ "UpdateNodegroupVersionRequest$releaseVersion": "

The AMI version of the Amazon EKS optimized AMI to use for the update. By default, the latest available AMI version for the node group's Kubernetes version is used. For information about Linux versions, see Amazon EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. Amazon EKS managed node groups support the November 2022 and later releases of the Windows AMIs. For information about Windows versions, see Amazon EKS optimized Windows AMI versions in the Amazon EKS User Guide.

If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify releaseVersion, or the node group update will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

", "UpdateNodegroupVersionRequest$clientRequestToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "UpdateParam$value": "

The value of the keys submitted as part of an update request.

", + "UpdatePodIdentityAssociationRequest$clusterName": "

The name of the cluster that you want to update the association in.

", + "UpdatePodIdentityAssociationRequest$associationId": "

The ID of the association to be updated.

", + "UpdatePodIdentityAssociationRequest$roleArn": "

The new IAM role to change the

", + "UpdatePodIdentityAssociationRequest$clientRequestToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "VpcConfigResponse$clusterSecurityGroupId": "

The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication.

", "VpcConfigResponse$vpcId": "

The VPC associated with your cluster.

", "labelsKeyList$member": null @@ -1296,7 +1397,7 @@ "DescribeAddonVersionsRequest$types": "

The type of the add-on. For valid types, don't specify a value for this property.

", "DescribeAddonVersionsRequest$publishers": "

The publisher of the add-on. For valid publishers, don't specify a value for this property.

", "DescribeAddonVersionsRequest$owners": "

The owner of the add-on. For valid owners, don't specify a value for this property.

", - "EksAnywhereSubscription$licenseArns": "

License Manager License ARNs associated with the subscription.

", + "EksAnywhereSubscription$licenseArns": "

Amazon Web Services License Manager ARN associated with the subscription.

", "EncryptionConfig$resources": "

Specifies the resources to be encrypted. The only supported value is \"secrets\".

", "ErrorDetail$resourceIds": "

An optional field that contains the resource IDs associated with the error.

", "FargateProfile$subnets": "

The IDs of subnets to launch pods into.

", @@ -1321,7 +1422,7 @@ } }, "TagKey": { - "base": null, + "base": "

One part of a key-value pair that make up a tag. A key is a general label that acts like a category for more specific tag values.

", "refs": { "TagKeyList$member": null, "TagMap$key": null @@ -1334,7 +1435,7 @@ } }, "TagMap": { - "base": null, + "base": "

The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.

The following basic restrictions apply to tags:

", "refs": { "Addon$tags": "

The metadata that you apply to the add-on to assist with categorization and organization. Each tag consists of a key and an optional value. You define both. Add-on tags do not propagate to any other resources associated with the cluster.

", "AssociateIdentityProviderConfigRequest$tags": "

The metadata to apply to the configuration to assist with categorization and organization. Each tag consists of a key and an optional value. You define both.

", @@ -1342,14 +1443,16 @@ "Cluster$tags": "

The metadata that you apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value. You define both. Cluster tags do not propagate to any other resources associated with the cluster.

", "CreateAddonRequest$tags": "

The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value. You define both.

", "CreateClusterRequest$tags": "

The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value. You define both.

", - "CreateEksAnywhereSubscriptionRequest$tags": "

The metadata for a subscription to assist with categorization and organization. Each tag consists of a key and an optional value. Subscription tags do not propagate to any other resources associated with the subscription.

", + "CreateEksAnywhereSubscriptionRequest$tags": "

The metadata for a subscription to assist with categorization and organization. Each tag consists of a key and an optional value. Subscription tags don't propagate to any other resources associated with the subscription.

", "CreateFargateProfileRequest$tags": "

The metadata to apply to the Fargate profile to assist with categorization and organization. Each tag consists of a key and an optional value. You define both. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it.

", "CreateNodegroupRequest$tags": "

The metadata to apply to the node group to assist with categorization and organization. Each tag consists of a key and an optional value. You define both. Node group tags do not propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets.

", + "CreatePodIdentityAssociationRequest$tags": "

The metadata that you apply to a resource to assist with categorization and organization. Each tag consists of a key and an optional value. You define both.

The following basic restrictions apply to tags:

", "EksAnywhereSubscription$tags": "

The metadata for a subscription to assist with categorization and organization. Each tag consists of a key and an optional value. Subscription tags do not propagate to any other resources associated with the subscription.

", "FargateProfile$tags": "

The metadata applied to the Fargate profile to assist with categorization and organization. Each tag consists of a key and an optional value. You define both. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it.

", "ListTagsForResourceResponse$tags": "

The tags for the resource.

", "Nodegroup$tags": "

The metadata applied to the node group to assist with categorization and organization. Each tag consists of a key and an optional value. You define both. Node group tags do not propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets.

", "OidcIdentityProviderConfig$tags": "

The metadata to apply to the provider configuration to assist with categorization and organization. Each tag consists of a key and an optional value. You define both.

", + "PodIdentityAssociation$tags": "

The metadata that you apply to a resource to assist with categorization and organization. Each tag consists of a key and an optional value. You define both.

The following basic restrictions apply to tags:

", "RegisterClusterRequest$tags": "

The metadata that you apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Cluster tags do not propagate to any other resources associated with the cluster.

", "TagResourceRequest$tags": "

The tags to add to the resource. A tag is an array of key-value pairs.

" } @@ -1365,7 +1468,7 @@ } }, "TagValue": { - "base": null, + "base": "

The optional part of a key-value pair that make up a tag. A value acts as a descriptor within a tag category (key).

", "refs": { "TagMap$value": null } @@ -1395,6 +1498,8 @@ "FargateProfile$createdAt": "

The Unix epoch timestamp in seconds for when the Fargate profile was created.

", "Nodegroup$createdAt": "

The Unix epoch timestamp in seconds for when the managed node group was created.

", "Nodegroup$modifiedAt": "

The Unix epoch timestamp in seconds for when the managed node group was last modified.

", + "PodIdentityAssociation$createdAt": "

The timestamp that the association was created at.

", + "PodIdentityAssociation$modifiedAt": "

The most recent timestamp that the association was modified at

", "Update$createdAt": "

The Unix epoch timestamp in seconds for when the update was created.

" } }, @@ -1511,6 +1616,16 @@ "Update$params": "

A key-value map that contains the parameters associated with the update.

" } }, + "UpdatePodIdentityAssociationRequest": { + "base": null, + "refs": { + } + }, + "UpdatePodIdentityAssociationResponse": { + "base": null, + "refs": { + } + }, "UpdateStatus": { "base": null, "refs": { diff --git a/models/apis/eks/2017-11-01/paginators-1.json b/models/apis/eks/2017-11-01/paginators-1.json index 025ef9c5a41..fd4610d9af6 100644 --- a/models/apis/eks/2017-11-01/paginators-1.json +++ b/models/apis/eks/2017-11-01/paginators-1.json @@ -18,6 +18,12 @@ "output_token": "nextToken", "result_key": "clusters" }, + "ListEksAnywhereSubscriptions": { + "input_token": "nextToken", + "limit_key": "maxResults", + "output_token": "nextToken", + "result_key": "subscriptions" + }, "ListFargateProfiles": { "input_token": "nextToken", "limit_key": "maxResults", @@ -36,6 +42,12 @@ "output_token": "nextToken", "result_key": "nodegroups" }, + "ListPodIdentityAssociations": { + "input_token": "nextToken", + "limit_key": "maxResults", + "output_token": "nextToken", + "result_key": "associations" + }, "ListUpdates": { "input_token": "nextToken", "limit_key": "maxResults", diff --git a/models/apis/elasticfilesystem/2015-02-01/api-2.json b/models/apis/elasticfilesystem/2015-02-01/api-2.json index 2ed1bc45849..3c0b9b16e8b 100644 --- a/models/apis/elasticfilesystem/2015-02-01/api-2.json +++ b/models/apis/elasticfilesystem/2015-02-01/api-2.json @@ -1167,7 +1167,8 @@ "Value":{"shape":"FileSystemSizeValue"}, "Timestamp":{"shape":"Timestamp"}, "ValueInIA":{"shape":"FileSystemNullableSizeValue"}, - "ValueInStandard":{"shape":"FileSystemNullableSizeValue"} + "ValueInStandard":{"shape":"FileSystemNullableSizeValue"}, + "ValueInArchive":{"shape":"FileSystemNullableSizeValue"} } }, "FileSystemSizeValue":{ @@ -1269,13 +1270,14 @@ "LifecyclePolicies":{ "type":"list", "member":{"shape":"LifecyclePolicy"}, - "max":2 + "max":3 }, "LifecyclePolicy":{ "type":"structure", "members":{ "TransitionToIA":{"shape":"TransitionToIARules"}, - "TransitionToPrimaryStorageClass":{"shape":"TransitionToPrimaryStorageClassRules"} + "TransitionToPrimaryStorageClass":{"shape":"TransitionToPrimaryStorageClassRules"}, + "TransitionToArchive":{"shape":"TransitionToArchiveRules"} } }, "ListTagsForResourceRequest":{ @@ -1767,6 +1769,20 @@ "error":{"httpStatusCode":429}, "exception":true }, + "TransitionToArchiveRules":{ + "type":"string", + "enum":[ + "AFTER_1_DAY", + "AFTER_7_DAYS", + "AFTER_14_DAYS", + "AFTER_30_DAYS", + "AFTER_60_DAYS", + "AFTER_90_DAYS", + "AFTER_180_DAYS", + "AFTER_270_DAYS", + "AFTER_365_DAYS" + ] + }, "TransitionToIARules":{ "type":"string", "enum":[ @@ -1775,7 +1791,10 @@ "AFTER_30_DAYS", "AFTER_60_DAYS", "AFTER_90_DAYS", - "AFTER_1_DAY" + "AFTER_1_DAY", + "AFTER_180_DAYS", + "AFTER_270_DAYS", + "AFTER_365_DAYS" ] }, "TransitionToPrimaryStorageClassRules":{ diff --git a/models/apis/elasticfilesystem/2015-02-01/docs-2.json b/models/apis/elasticfilesystem/2015-02-01/docs-2.json index 8e036afb448..0c8f6b4d1ff 100644 --- a/models/apis/elasticfilesystem/2015-02-01/docs-2.json +++ b/models/apis/elasticfilesystem/2015-02-01/docs-2.json @@ -3,9 +3,9 @@ "service": "Amazon Elastic File System

Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage for use with Amazon EC2 Linux and Mac instances in the Amazon Web Services Cloud. With Amazon EFS, storage capacity is elastic, growing and shrinking automatically as you add and remove files, so that your applications have the storage they need, when they need it. For more information, see the Amazon Elastic File System API Reference and the Amazon Elastic File System User Guide.

", "operations": { "CreateAccessPoint": "

Creates an EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point. The operating system user and group override any identity information provided by the NFS client. The file system path is exposed as the access point's root directory. Applications using the access point can only access data in the application's own directory and any subdirectories. To learn more, see Mounting a file system using EFS access points.

If multiple requests to create access points on the same file system are sent in quick succession, and the file system is near the limit of 1,000 access points, you may experience a throttling response for these requests. This is to ensure that the file system does not exceed the stated access point limit.

This operation requires permissions for the elasticfilesystem:CreateAccessPoint action.

Access points can be tagged on creation. If tags are specified in the creation action, IAM performs additional authorization on the elasticfilesystem:TagResource action to verify if users have permissions to create tags. Therefore, you must grant explicit permissions to use the elasticfilesystem:TagResource action. For more information, see Granting permissions to tag resources during creation.

", - "CreateFileSystem": "

Creates a new, empty file system. The operation requires a creation token in the request that Amazon EFS uses to ensure idempotent creation (calling the operation with same creation token has no effect). If a file system does not currently exist that is owned by the caller's Amazon Web Services account with the specified creation token, this operation does the following:

Otherwise, this operation returns a FileSystemAlreadyExists error with the ID of the existing file system.

For basic use cases, you can use a randomly generated UUID for the creation token.

The idempotent operation allows you to retry a CreateFileSystem call without risk of creating an extra file system. This can happen when an initial call fails in a way that leaves it uncertain whether or not a file system was actually created. An example might be that a transport level timeout occurred or your connection was reset. As long as you use the same creation token, if the initial call had succeeded in creating a file system, the client can learn of its existence from the FileSystemAlreadyExists error.

For more information, see Creating a file system in the Amazon EFS User Guide.

The CreateFileSystem call returns while the file system's lifecycle state is still creating. You can check the file system creation status by calling the DescribeFileSystems operation, which among other things returns the file system state.

This operation accepts an optional PerformanceMode parameter that you choose for your 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. The performance mode can't be changed after the file system has been created. For more information, see Amazon EFS performance modes.

You can set the throughput mode for the file system using the ThroughputMode parameter.

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.

This operation requires permissions for the elasticfilesystem:CreateFileSystem action.

File systems can be tagged on creation. If tags are specified in the creation action, IAM performs additional authorization on the elasticfilesystem:TagResource action to verify if users have permissions to create tags. Therefore, you must grant explicit permissions to use the elasticfilesystem:TagResource action. For more information, see Granting permissions to tag resources during creation.

", - "CreateMountTarget": "

Creates a mount target for a file system. You can then mount the file system on EC2 instances by using the mount target.

You can create one mount target in each Availability Zone in your VPC. All EC2 instances in a VPC within a given Availability Zone share a single mount 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.

You can create only one mount target for an EFS file system using One Zone storage classes. You must create that mount target in the same Availability Zone in which the file system is located. Use the AvailabilityZoneName and AvailabiltyZoneId properties in the DescribeFileSystems response object to get this information. Use the subnetId associated with the file system's Availability Zone when creating the mount target.

For more information, see Amazon EFS: How it Works.

To create a mount target for a file system, the file system's lifecycle state must be available. For more information, see DescribeFileSystems.

In the request, provide the following:

After creating the mount target, Amazon EFS returns a response that includes, a MountTargetId and an IpAddress. You use this IP address when mounting the file system in an EC2 instance. You can also use the mount target's DNS name 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.

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 the file system already has one or more mount targets created for it, the subnet specified in the request to add another mount target must meet the following requirements:

If the request satisfies the requirements, Amazon EFS does the following:

The CreateMountTarget call returns only after creating the network interface, but while the mount target state is still creating, you can check the mount target creation status by calling the DescribeMountTargets operation, which among other things returns the mount target state.

We recommend that you create a mount target in each of the Availability Zones. There are cost considerations for using a file system in an Availability Zone through a mount target created in another Availability Zone. For more information, see Amazon 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 can't access your file system through that mount target.

This operation requires permissions for the following action on the file system:

This operation also requires permissions for the following Amazon EC2 actions:

", - "CreateReplicationConfiguration": "

Creates a replication configuration that replicates an existing EFS file system to a new, read-only file system. For more information, see Amazon EFS replication in the Amazon EFS User Guide. The replication configuration specifies the following:

The following properties are set by default:

The following properties are turned off by default:

For more information, see Amazon EFS replication in the Amazon EFS User Guide.

", + "CreateFileSystem": "

Creates a new, empty file system. The operation requires a creation token in the request that Amazon EFS uses to ensure idempotent creation (calling the operation with same creation token has no effect). If a file system does not currently exist that is owned by the caller's Amazon Web Services account with the specified creation token, this operation does the following:

Otherwise, this operation returns a FileSystemAlreadyExists error with the ID of the existing file system.

For basic use cases, you can use a randomly generated UUID for the creation token.

The idempotent operation allows you to retry a CreateFileSystem call without risk of creating an extra file system. This can happen when an initial call fails in a way that leaves it uncertain whether or not a file system was actually created. An example might be that a transport level timeout occurred or your connection was reset. As long as you use the same creation token, if the initial call had succeeded in creating a file system, the client can learn of its existence from the FileSystemAlreadyExists error.

For more information, see Creating a file system in the Amazon EFS User Guide.

The CreateFileSystem call returns while the file system's lifecycle state is still creating. You can check the file system creation status by calling the DescribeFileSystems operation, which among other things returns the file system state.

This operation accepts an optional PerformanceMode parameter that you choose for your file system. We recommend generalPurpose performance mode for all file systems. File systems using the maxIO mode is a previous generation performance type that is designed for highly parallelized workloads that can tolerate higher latencies than the General Purpose mode. Max I/O mode is not supported for One Zone file systems or file systems that use Elastic throughput.

Due to the higher per-operation latencies with Max I/O, we recommend using General Purpose performance mode for all file systems.

The performance mode can't be changed after the file system has been created. For more information, see Amazon EFS performance modes.

You can set the throughput mode for the file system using the ThroughputMode parameter.

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.

This operation requires permissions for the elasticfilesystem:CreateFileSystem action.

File systems can be tagged on creation. If tags are specified in the creation action, IAM performs additional authorization on the elasticfilesystem:TagResource action to verify if users have permissions to create tags. Therefore, you must grant explicit permissions to use the elasticfilesystem:TagResource action. For more information, see Granting permissions to tag resources during creation.

", + "CreateMountTarget": "

Creates a mount target for a file system. You can then mount the file system on EC2 instances by using the mount target.

You can create one mount target in each Availability Zone in your VPC. All EC2 instances in a VPC within a given Availability Zone share a single mount 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.

You can create only one mount target for a One Zone file system. You must create that mount target in the same Availability Zone in which the file system is located. Use the AvailabilityZoneName and AvailabiltyZoneId properties in the DescribeFileSystems response object to get this information. Use the subnetId associated with the file system's Availability Zone when creating the mount target.

For more information, see Amazon EFS: How it Works.

To create a mount target for a file system, the file system's lifecycle state must be available. For more information, see DescribeFileSystems.

In the request, provide the following:

After creating the mount target, Amazon EFS returns a response that includes, a MountTargetId and an IpAddress. You use this IP address when mounting the file system in an EC2 instance. You can also use the mount target's DNS name 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.

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 the file system already has one or more mount targets created for it, the subnet specified in the request to add another mount target must meet the following requirements:

If the request satisfies the requirements, Amazon EFS does the following:

The CreateMountTarget call returns only after creating the network interface, but while the mount target state is still creating, you can check the mount target creation status by calling the DescribeMountTargets operation, which among other things returns the mount target state.

We recommend that you create a mount target in each of the Availability Zones. There are cost considerations for using a file system in an Availability Zone through a mount target created in another Availability Zone. For more information, see Amazon 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 can't access your file system through that mount target.

This operation requires permissions for the following action on the file system:

This operation also requires permissions for the following Amazon EC2 actions:

", + "CreateReplicationConfiguration": "

Creates a replication configuration that replicates an existing EFS file system to a new, read-only file system. For more information, see Amazon EFS replication in the Amazon EFS User Guide. The replication configuration specifies the following:

The following properties are set by default:

The following properties are turned off by default:

For more information, see Amazon EFS replication in the Amazon EFS User Guide.

", "CreateTags": "

DEPRECATED - CreateTags is deprecated and not maintained. To create tags for EFS resources, use the API action.

Creates or overwrites tags associated with a file system. Each tag is a key-value pair. If a tag key specified in the request already exists on the file system, this operation overwrites its value with the value provided in the request. If you add the Name tag to your file system, Amazon EFS returns it in the response to the DescribeFileSystems operation.

This operation requires permission for the elasticfilesystem:CreateTags action.

", "DeleteAccessPoint": "

Deletes the specified access point. After deletion is complete, new clients can no longer connect to the access points. Clients connected to the access point at the time of deletion will continue to function until they terminate their connection.

This operation requires permissions for the elasticfilesystem:DeleteAccessPoint action.

", "DeleteFileSystem": "

Deletes a file system, permanently severing access to its contents. Upon return, the file system no longer exists and you can't access any contents of the deleted file system.

You need to manually delete mount targets attached to a file system before you can delete an EFS file system. This step is performed for you when you use the Amazon Web Services console to delete a file system.

You cannot delete a file system that is part of an EFS Replication configuration. You need to delete the replication configuration first.

You can't delete a file system that is in use. That is, if the file system has any mount targets, you must first delete them. For more information, see DescribeMountTargets and DeleteMountTarget.

The DeleteFileSystem call returns while the file system state is still deleting. You can check the file system deletion status by calling the DescribeFileSystems operation, which returns a list of file systems in your account. If you pass file system ID or creation token for the deleted file system, the DescribeFileSystems returns a 404 FileSystemNotFound error.

This operation requires permissions for the elasticfilesystem:DeleteFileSystem action.

", @@ -18,7 +18,7 @@ "DescribeBackupPolicy": "

Returns the backup policy for the specified EFS file system.

", "DescribeFileSystemPolicy": "

Returns the FileSystemPolicy for the specified EFS file system.

This operation requires permissions for the elasticfilesystem:DescribeFileSystemPolicy action.

", "DescribeFileSystems": "

Returns the description of a specific Amazon EFS file system if either the file system CreationToken or the FileSystemId is provided. Otherwise, it returns descriptions of all file systems owned by the caller's Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all file system descriptions, you can optionally specify the MaxItems parameter to limit the number of descriptions in a response. This number is automatically set to 100. If more file system descriptions remain, Amazon EFS returns a NextMarker, an opaque token, in the response. In this case, you should send a subsequent request with the Marker request parameter set to the value of NextMarker.

To retrieve a list of your file system descriptions, this operation is used in an iterative process, where DescribeFileSystems is called first without the Marker and then the operation continues to call it with the Marker parameter set to the value of the NextMarker from the previous response until the response has no NextMarker.

The order of file systems returned in the response of one DescribeFileSystems call and the order of file systems returned across the responses of a multi-call iteration is unspecified.

This operation requires permissions for the elasticfilesystem:DescribeFileSystems action.

", - "DescribeLifecycleConfiguration": "

Returns the current LifecycleConfiguration object for the specified Amazon EFS file system. EFS lifecycle management uses the LifecycleConfiguration 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.

When EFS Intelligent-Tiering is enabled, TransitionToPrimaryStorageClass has a value of AFTER_1_ACCESS.

This operation requires permissions for the elasticfilesystem:DescribeLifecycleConfiguration operation.

", + "DescribeLifecycleConfiguration": "

Returns the current LifecycleConfiguration object for the specified Amazon EFS file system. Llifecycle management uses the LifecycleConfiguration object to identify when to move files between storage classes. 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.

", "DescribeMountTargetSecurityGroups": "

Returns the security groups currently in effect for a mount target. This operation requires that the network interface of the mount target has been created and the lifecycle state of the mount target is not deleted.

This operation requires permissions for the following actions:

", "DescribeMountTargets": "

Returns the descriptions of all the current mount targets, or a specific mount target, for a file system. When requesting all of the current mount targets, the order of mount targets returned in the response is unspecified.

This operation requires permissions for the elasticfilesystem:DescribeMountTargets action, on either the file system ID that you specify in FileSystemId, or on the file system of the mount target that you specify in MountTargetId.

", "DescribeReplicationConfigurations": "

Retrieves the replication configuration for a specific file system. If a file system is not specified, all of the replication configurations for the Amazon Web Services account in an Amazon Web Services Region are retrieved.

", @@ -28,7 +28,7 @@ "PutAccountPreferences": "

Use this operation to set the account preference in the current Amazon Web Services Region to use long 17 character (63 bit) or short 8 character (32 bit) resource IDs for new EFS file system and mount target resources. All existing resource IDs are not affected by any changes you make. You can set the ID preference during the opt-in period as EFS transitions to long resource IDs. For more information, see Managing Amazon EFS resource IDs.

Starting in October, 2021, you will receive an error if you try to set the account preference to use the short 8 character format resource ID. Contact Amazon Web Services support if you receive an error and must use short IDs for file system and mount target resources.

", "PutBackupPolicy": "

Updates the file system's backup policy. Use this action to start or stop automatic backups of the file system.

", "PutFileSystemPolicy": "

Applies an Amazon EFS FileSystemPolicy to an Amazon EFS file system. A file system policy is an IAM resource-based policy and can contain multiple policy statements. A file system always has exactly one file system policy, which can be the default policy or an explicit policy set or updated using this API operation. EFS file system policies have a 20,000 character limit. When an explicit policy is set, it overrides the default policy. For more information about the default file system policy, see Default EFS File System Policy.

EFS file system policies have a 20,000 character limit.

This operation requires permissions for the elasticfilesystem:PutFileSystemPolicy action.

", - "PutLifecycleConfiguration": "

Use this action to manage EFS lifecycle management and EFS Intelligent-Tiering. A LifecycleConfiguration consists of one or more LifecyclePolicy objects that define the following:

For more information, see EFS Lifecycle Management.

Each Amazon EFS file system supports one lifecycle configuration, which applies 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 turns off lifecycle management and EFS Intelligent-Tiering for the file system.

In the request, specify the following:

This operation requires permissions for the elasticfilesystem:PutLifecycleConfiguration operation.

To apply a LifecycleConfiguration object to an encrypted file system, you need the same Key Management Service permissions as when you created the encrypted file system.

", + "PutLifecycleConfiguration": "

Use this action to manage storage of your file system. A LifecycleConfiguration consists of one or more LifecyclePolicy objects that define the following:

For more information, see Managing file system storage.

Each Amazon EFS file system supports one lifecycle configuration, which applies 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 for the file system.

In the request, specify the following:

This operation requires permissions for the elasticfilesystem:PutLifecycleConfiguration operation.

To apply a LifecycleConfiguration object to an encrypted file system, you need the same Key Management Service permissions as when you created the encrypted file system.

", "TagResource": "

Creates a tag for an EFS resource. You can create tags for EFS file systems and access points using this API operation.

This operation requires permissions for the elasticfilesystem:TagResource action.

", "UntagResource": "

Removes tags from an EFS resource. You can remove tags from EFS file systems and access points using this API operation.

This operation requires permissions for the elasticfilesystem:UntagResource action.

", "UpdateFileSystem": "

Updates the throughput mode or the amount of provisioned throughput of an existing file system.

" @@ -80,16 +80,16 @@ "AvailabilityZoneId": { "base": null, "refs": { - "FileSystemDescription$AvailabilityZoneId": "

The unique and consistent identifier of the Availability Zone in which the file system's One Zone storage classes exist. For example, use1-az1 is an Availability Zone ID for the us-east-1 Amazon Web Services Region, and it has the same location in every Amazon Web Services account.

", + "FileSystemDescription$AvailabilityZoneId": "

The unique and consistent identifier of the Availability Zone in which the file system is located, and is valid only for One Zone file systems. For example, use1-az1 is an Availability Zone ID for the us-east-1 Amazon Web Services Region, and it has the same location in every Amazon Web Services account.

", "MountTargetDescription$AvailabilityZoneId": "

The unique and consistent identifier of the Availability Zone that the mount target resides in. For example, use1-az1 is an AZ ID for the us-east-1 Region and it has the same location in every Amazon Web Services account.

" } }, "AvailabilityZoneName": { "base": null, "refs": { - "CreateFileSystemRequest$AvailabilityZoneName": "

Used to create a file system that uses One Zone storage classes. It specifies the Amazon Web Services Availability Zone in which to create the file system. Use the format us-east-1a to specify the Availability Zone. For more information about One Zone storage classes, see Using EFS storage classes in the Amazon EFS User Guide.

One Zone storage classes are not available in all Availability Zones in Amazon Web Services Regions where Amazon EFS is available.

", - "DestinationToCreate$AvailabilityZoneName": "

To create a file system that uses EFS One Zone storage, specify the name of the Availability Zone in which to create the destination file system.

", - "FileSystemDescription$AvailabilityZoneName": "

Describes the Amazon Web Services Availability Zone in which the file system is located, and is valid only for file systems using One Zone storage classes. For more information, see Using EFS storage classes in the Amazon EFS User Guide.

", + "CreateFileSystemRequest$AvailabilityZoneName": "

Used to create a One Zone file system. It specifies the Amazon Web Services Availability Zone in which to create the file system. Use the format us-east-1a to specify the Availability Zone. For more information about One Zone file systems, see Using EFS storage classes in the Amazon EFS User Guide.

One Zone file systems are not available in all Availability Zones in Amazon Web Services Regions where Amazon EFS is available.

", + "DestinationToCreate$AvailabilityZoneName": "

To create a file system that uses One Zone storage, specify the name of the Availability Zone in which to create the destination file system.

", + "FileSystemDescription$AvailabilityZoneName": "

Describes the Amazon Web Services Availability Zone in which the file system is located, and is valid only for One Zone file systems. For more information, see Using EFS storage classes in the Amazon EFS User Guide.

", "MountTargetDescription$AvailabilityZoneName": "

The name of the Availability Zone in which the mount target is located. Availability Zones are independently mapped to names for each Amazon Web Services account. For example, the Availability Zone us-east-1a for your Amazon Web Services account might not be the same location as us-east-1a for another Amazon Web Services account.

" } }, @@ -109,7 +109,7 @@ "Backup": { "base": null, "refs": { - "CreateFileSystemRequest$Backup": "

Specifies whether automatic backups are enabled on the file system that you are creating. Set the value to true to enable automatic backups. If you are creating a file system that uses One Zone storage classes, automatic backups are enabled by default. For more information, see Automatic backups in the Amazon EFS User Guide.

Default is false. However, if you specify an AvailabilityZoneName, the default is true.

Backup is not available in all Amazon Web Services Regions where Amazon EFS is available.

" + "CreateFileSystemRequest$Backup": "

Specifies whether automatic backups are enabled on the file system that you are creating. Set the value to true to enable automatic backups. If you are creating a One Zone file system, automatic backups are enabled by default. For more information, see Automatic backups in the Amazon EFS User Guide.

Default is false. However, if you specify an AvailabilityZoneName, the default is true.

Backup is not available in all Amazon Web Services Regions where Amazon EFS is available.

" } }, "BackupPolicy": { @@ -412,7 +412,7 @@ "refs": { "FileSystemDescription$FileSystemArn": "

The Amazon Resource Name (ARN) for the EFS file system, in the format arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id . Example with sample data: arn:aws:elasticfilesystem:us-west-2:1111333322228888:file-system/fs-01234567

", "ReplicationConfigurationDescription$SourceFileSystemArn": "

The Amazon Resource Name (ARN) of the current source file system in the replication configuration.

", - "ReplicationConfigurationDescription$OriginalSourceFileSystemArn": "

The Amazon Resource Name (ARN) of the original source Amazon EFS file system in the replication configuration.

" + "ReplicationConfigurationDescription$OriginalSourceFileSystemArn": "

The Amazon Resource Name (ARN) of the original source EFS file system in the replication configuration.

" } }, "FileSystemDescription": { @@ -440,7 +440,7 @@ "DeleteReplicationConfigurationRequest$SourceFileSystemId": "

The ID of the source file system in the replication configuration.

", "DeleteTagsRequest$FileSystemId": "

The ID of the file system whose tags you want to delete (String).

", "DescribeAccessPointsRequest$FileSystemId": "

(Optional) If you provide a FileSystemId, EFS returns all access points for that file system; mutually exclusive with AccessPointId.

", - "DescribeBackupPolicyRequest$FileSystemId": "

Specifies which EFS file system to retrieve the BackupPolicy for.

", + "DescribeBackupPolicyRequest$FileSystemId": "

Specifies which EFS file system for which to retrieve the BackupPolicy.

", "DescribeFileSystemPolicyRequest$FileSystemId": "

Specifies which EFS file system to retrieve the FileSystemPolicy for.

", "DescribeFileSystemsRequest$FileSystemId": "

(Optional) ID of the file system whose description you want to retrieve (String).

", "DescribeLifecycleConfigurationRequest$FileSystemId": "

The ID of the file system whose LifecycleConfiguration object you want to retrieve (String).

", @@ -478,7 +478,8 @@ "base": null, "refs": { "FileSystemSize$ValueInIA": "

The latest known metered size (in bytes) of data stored in the Infrequent Access storage class.

", - "FileSystemSize$ValueInStandard": "

The latest known metered size (in bytes) of data stored in the Standard storage class.

" + "FileSystemSize$ValueInStandard": "

The latest known metered size (in bytes) of data stored in the Standard storage class.

", + "FileSystemSize$ValueInArchive": "

The latest known metered size (in bytes) of data stored in the Archive storage class.

" } }, "FileSystemPolicyDescription": { @@ -567,11 +568,11 @@ "base": null, "refs": { "LifecycleConfigurationDescription$LifecyclePolicies": "

An array of lifecycle management policies. EFS supports a maximum of one policy per file system.

", - "PutLifecycleConfigurationRequest$LifecyclePolicies": "

An array of LifecyclePolicy objects that define the file system's LifecycleConfiguration object. A LifecycleConfiguration object informs EFS lifecycle management and EFS Intelligent-Tiering of the following:

When using the put-lifecycle-configuration CLI command or the PutLifecycleConfiguration API action, Amazon EFS requires that each LifecyclePolicy object have only a single transition. This means that in a request body, LifecyclePolicies must be structured as an array of LifecyclePolicy objects, one object for each transition, TransitionToIA, TransitionToPrimaryStorageClass. See the example requests in the following section for more information.

" + "PutLifecycleConfigurationRequest$LifecyclePolicies": "

An array of LifecyclePolicy objects that define the file system's LifecycleConfiguration object. A LifecycleConfiguration object informs EFS Lifecycle management of the following:

When using the put-lifecycle-configuration CLI command or the PutLifecycleConfiguration API action, Amazon EFS requires that each LifecyclePolicy object have only a single transition. This means that in a request body, LifecyclePolicies must be structured as an array of LifecyclePolicy objects, one object for each storage transition. See the example requests in the following section for more information.

" } }, "LifecyclePolicy": { - "base": "

Describes a policy used by EFS lifecycle management and EFS Intelligent-Tiering that specifies when to transition files into and out of the file system's Infrequent Access (IA) storage class. For more information, see EFS Intelligent‐Tiering and EFS Lifecycle Management.

When using the put-lifecycle-configuration CLI command or the PutLifecycleConfiguration API action, Amazon EFS requires that each LifecyclePolicy object have only a single transition. This means that in a request body, LifecyclePolicies must be structured as an array of LifecyclePolicy objects, one object for each transition, TransitionToIA, TransitionToPrimaryStorageClass. For more information, see the request examples in PutLifecycleConfiguration.

", + "base": "

Describes a policy used by Lifecycle management that specifies when to transition files into and out of the Infrequent Access (IA) and Archive storage classes. For more information, see Managing file system storage.

When using the put-lifecycle-configuration CLI command or the PutLifecycleConfiguration API action, Amazon EFS requires that each LifecyclePolicy object have only a single transition. This means that in a request body, LifecyclePolicies must be structured as an array of LifecyclePolicy objects, one object for each transition. For more information, see the request examples in PutLifecycleConfiguration.

", "refs": { "LifecyclePolicies$member": null } @@ -703,8 +704,8 @@ "PerformanceMode": { "base": null, "refs": { - "CreateFileSystemRequest$PerformanceMode": "

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. The performance mode can't be changed after the file system has been created.

The maxIO mode is not supported on file systems using One Zone storage classes.

Default is generalPurpose.

", - "FileSystemDescription$PerformanceMode": "

The performance mode of the file system.

" + "CreateFileSystemRequest$PerformanceMode": "

The Performance mode of the file system. We recommend generalPurpose performance mode for all 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. The performance mode can't be changed after the file system has been created. The maxIO mode is not supported on One Zone file systems.

Due to the higher per-operation latencies with Max I/O, we recommend using General Purpose performance mode for all file systems.

Default is generalPurpose.

", + "FileSystemDescription$PerformanceMode": "

The Performance mode of the file system.

" } }, "Permissions": { @@ -770,7 +771,7 @@ "refs": { "Destination$Region": "

The Amazon Web Services Region in which the destination file system is located.

", "DestinationToCreate$Region": "

To create a file system that uses Regional storage, specify the Amazon Web Services Region in which to create the destination file system.

", - "ReplicationConfigurationDescription$SourceFileSystemRegion": "

The Amazon Web Services Region in which the source Amazon EFS file system is located.

" + "ReplicationConfigurationDescription$SourceFileSystemRegion": "

The Amazon Web Services Region in which the source EFS file system is located.

" } }, "ReplicationConfigurationDescription": { @@ -793,7 +794,7 @@ "ReplicationStatus": { "base": null, "refs": { - "Destination$Status": "

Describes the status of the destination Amazon EFS file system.

" + "Destination$Status": "

Describes the status of the destination EFS file system.

" } }, "Resource": { @@ -833,8 +834,8 @@ "RootDirectory": { "base": "

Specifies the directory on the Amazon EFS file system that the access point provides access to. The access point exposes the specified file system path as the root directory of your file system to applications using the access point. NFS clients using the access point can only access data in the access point's RootDirectory and it's subdirectories.

", "refs": { - "AccessPointDescription$RootDirectory": "

The directory on the Amazon EFS file system that the access point exposes as the root directory to NFS clients using the access point.

", - "CreateAccessPointRequest$RootDirectory": "

Specifies the directory on the Amazon EFS file system that the access point exposes as the root directory of your file system to NFS clients using the access point. The clients using the access point can only access the root directory and below. If the RootDirectory > Path specified does not exist, EFS creates it and applies the CreationInfo settings when a client connects to an access point. When specifying a RootDirectory, you must provide the Path, and the CreationInfo.

Amazon EFS creates a root directory only if you have provided the CreationInfo: OwnUid, OwnGID, and permissions for the directory. If you do not provide this information, Amazon EFS does not create the root directory. If the root directory does not exist, attempts to mount using the access point will fail.

" + "AccessPointDescription$RootDirectory": "

The directory on the EFS file system that the access point exposes as the root directory to NFS clients using the access point.

", + "CreateAccessPointRequest$RootDirectory": "

Specifies the directory on the EFS file system that the access point exposes as the root directory of your file system to NFS clients using the access point. The clients using the access point can only access the root directory and below. If the RootDirectory > Path specified does not exist, Amazon EFS creates it and applies the CreationInfo settings when a client connects to an access point. When specifying a RootDirectory, you must provide the Path, and the CreationInfo.

Amazon EFS creates a root directory only if you have provided the CreationInfo: OwnUid, OwnGID, and permissions for the directory. If you do not provide this information, Amazon EFS does not create the root directory. If the root directory does not exist, attempts to mount using the access point will fail.

" } }, "SecondaryGids": { @@ -870,13 +871,13 @@ "Status": { "base": null, "refs": { - "BackupPolicy$Status": "

Describes the status of the file system's backup policy.

" + "BackupPolicy$Status": "

Describes the status of the file system's backup policy.

" } }, "SubnetId": { "base": null, "refs": { - "CreateMountTargetRequest$SubnetId": "

The ID of the subnet to add the mount target in. For file systems that use One Zone storage classes, use the subnet that is associated with the file system's Availability Zone.

", + "CreateMountTargetRequest$SubnetId": "

The ID of the subnet to add the mount target in. For One Zone file systems, use the subnet that is associated with the file system's Availability Zone.

", "MountTargetDescription$SubnetId": "

The ID of the mount target's subnet.

" } }, @@ -943,7 +944,7 @@ "ThroughputMode": { "base": null, "refs": { - "CreateFileSystemRequest$ThroughputMode": "

Specifies the throughput mode for the file system. The mode can be bursting, provisioned, or elastic. If you set ThroughputMode to provisioned, you must also set a value for ProvisionedThroughputInMibps. After you create the file system, you can decrease your file system's throughput in Provisioned Throughput mode or change between the throughput modes, with certain time restrictions. For more information, see Specifying throughput with provisioned mode in the Amazon EFS User Guide.

Default is bursting.

", + "CreateFileSystemRequest$ThroughputMode": "

Specifies the throughput mode for the file system. The mode can be bursting, provisioned, or elastic. If you set ThroughputMode to provisioned, you must also set a value for ProvisionedThroughputInMibps. After you create the file system, you can decrease your file system's Provisioned throughput or change between the throughput modes, with certain time restrictions. For more information, see Specifying throughput with provisioned mode in the Amazon EFS User Guide.

Default is bursting.

", "FileSystemDescription$ThroughputMode": "

Displays the file system's throughput mode. For more information, see Throughput modes in the Amazon EFS User Guide.

", "UpdateFileSystemRequest$ThroughputMode": "

(Optional) Updates the file system's throughput mode. If you're not updating your throughput mode, you don't need to provide this value in your request. If you are changing the ThroughputMode to provisioned, you must also set a value for ProvisionedThroughputInMibps.

" } @@ -975,16 +976,22 @@ "refs": { } }, + "TransitionToArchiveRules": { + "base": null, + "refs": { + "LifecyclePolicy$TransitionToArchive": "

The number of days after files were last accessed in primary storage (the Standard storage class) files at which to move them to Archive storage. Metadata operations such as listing the contents of a directory don't count as file access events.

" + } + }, "TransitionToIARules": { "base": null, "refs": { - "LifecyclePolicy$TransitionToIA": "

Describes the period of time that a file is not accessed, after which it transitions to IA storage. Metadata operations such as listing the contents of a directory don't count as file access events.

" + "LifecyclePolicy$TransitionToIA": "

The number of days after files were last accessed in primary storage (the Standard storage class) at which to move them to Infrequent Access (IA) storage. Metadata operations such as listing the contents of a directory don't count as file access events.

" } }, "TransitionToPrimaryStorageClassRules": { "base": null, "refs": { - "LifecyclePolicy$TransitionToPrimaryStorageClass": "

Describes when to transition a file from IA storage to primary storage. Metadata operations such as listing the contents of a directory don't count as file access events.

" + "LifecyclePolicy$TransitionToPrimaryStorageClass": "

Whether to move files back to primary (Standard) storage after they are accessed in IA or Archive storage. Metadata operations such as listing the contents of a directory don't count as file access events.

" } }, "Uid": { diff --git a/models/apis/elasticfilesystem/2015-02-01/endpoint-rule-set-1.json b/models/apis/elasticfilesystem/2015-02-01/endpoint-rule-set-1.json index 2501aa43f99..8a7960d9832 100644 --- a/models/apis/elasticfilesystem/2015-02-01/endpoint-rule-set-1.json +++ b/models/apis/elasticfilesystem/2015-02-01/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/elasticfilesystem/2015-02-01/paginators-1.json b/models/apis/elasticfilesystem/2015-02-01/paginators-1.json index 418186d345b..fe17ca326ff 100644 --- a/models/apis/elasticfilesystem/2015-02-01/paginators-1.json +++ b/models/apis/elasticfilesystem/2015-02-01/paginators-1.json @@ -3,17 +3,32 @@ "DescribeAccessPoints": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "AccessPoints" }, "DescribeFileSystems": { "input_token": "Marker", "output_token": "NextMarker", - "limit_key": "MaxItems" + "limit_key": "MaxItems", + "result_key": "FileSystems" + }, + "DescribeMountTargets": { + "input_token": "Marker", + "output_token": "NextMarker", + "limit_key": "MaxItems", + "result_key": "MountTargets" + }, + "DescribeReplicationConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Replications" }, "DescribeTags": { "input_token": "Marker", "output_token": "NextMarker", - "limit_key": "MaxItems" + "limit_key": "MaxItems", + "result_key": "Tags" }, "ListTagsForResource": { "input_token": "NextToken", diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json index fe40358656d..80d3c48c062 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/api-2.json @@ -46,7 +46,26 @@ {"shape":"LoadBalancerNotFoundException"}, {"shape":"TargetGroupNotFoundException"}, {"shape":"ListenerNotFoundException"}, - {"shape":"RuleNotFoundException"} + {"shape":"RuleNotFoundException"}, + {"shape":"TrustStoreNotFoundException"} + ] + }, + "AddTrustStoreRevocations":{ + "name":"AddTrustStoreRevocations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddTrustStoreRevocationsInput"}, + "output":{ + "shape":"AddTrustStoreRevocationsOutput", + "resultWrapper":"AddTrustStoreRevocationsResult" + }, + "errors":[ + {"shape":"TrustStoreNotFoundException"}, + {"shape":"InvalidRevocationContentException"}, + {"shape":"TooManyTrustStoreRevocationEntriesException"}, + {"shape":"RevocationContentNotFoundException"} ] }, "CreateListener":{ @@ -78,7 +97,9 @@ {"shape":"InvalidLoadBalancerActionException"}, {"shape":"TooManyUniqueTargetGroupsPerLoadBalancerException"}, {"shape":"ALPNPolicyNotSupportedException"}, - {"shape":"TooManyTagsException"} + {"shape":"TooManyTagsException"}, + {"shape":"TrustStoreNotFoundException"}, + {"shape":"TrustStoreNotReadyException"} ] }, "CreateLoadBalancer":{ @@ -155,6 +176,26 @@ {"shape":"TooManyTagsException"} ] }, + "CreateTrustStore":{ + "name":"CreateTrustStore", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTrustStoreInput"}, + "output":{ + "shape":"CreateTrustStoreOutput", + "resultWrapper":"CreateTrustStoreResult" + }, + "errors":[ + {"shape":"DuplicateTrustStoreNameException"}, + {"shape":"TooManyTrustStoresException"}, + {"shape":"InvalidCaCertificatesBundleException"}, + {"shape":"CaCertificatesBundleNotFoundException"}, + {"shape":"TooManyTagsException"}, + {"shape":"DuplicateTagKeysException"} + ] + }, "DeleteListener":{ "name":"DeleteListener", "http":{ @@ -219,6 +260,22 @@ {"shape":"ResourceInUseException"} ] }, + "DeleteTrustStore":{ + "name":"DeleteTrustStore", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTrustStoreInput"}, + "output":{ + "shape":"DeleteTrustStoreOutput", + "resultWrapper":"DeleteTrustStoreResult" + }, + "errors":[ + {"shape":"TrustStoreNotFoundException"}, + {"shape":"TrustStoreInUseException"} + ] + }, "DeregisterTargets":{ "name":"DeregisterTargets", "http":{ @@ -356,7 +413,8 @@ {"shape":"LoadBalancerNotFoundException"}, {"shape":"TargetGroupNotFoundException"}, {"shape":"ListenerNotFoundException"}, - {"shape":"RuleNotFoundException"} + {"shape":"RuleNotFoundException"}, + {"shape":"TrustStoreNotFoundException"} ] }, "DescribeTargetGroupAttributes":{ @@ -407,6 +465,83 @@ {"shape":"HealthUnavailableException"} ] }, + "DescribeTrustStoreAssociations":{ + "name":"DescribeTrustStoreAssociations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTrustStoreAssociationsInput"}, + "output":{ + "shape":"DescribeTrustStoreAssociationsOutput", + "resultWrapper":"DescribeTrustStoreAssociationsResult" + }, + "errors":[ + {"shape":"TrustStoreNotFoundException"} + ] + }, + "DescribeTrustStoreRevocations":{ + "name":"DescribeTrustStoreRevocations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTrustStoreRevocationsInput"}, + "output":{ + "shape":"DescribeTrustStoreRevocationsOutput", + "resultWrapper":"DescribeTrustStoreRevocationsResult" + }, + "errors":[ + {"shape":"TrustStoreNotFoundException"}, + {"shape":"RevocationIdNotFoundException"} + ] + }, + "DescribeTrustStores":{ + "name":"DescribeTrustStores", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTrustStoresInput"}, + "output":{ + "shape":"DescribeTrustStoresOutput", + "resultWrapper":"DescribeTrustStoresResult" + }, + "errors":[ + {"shape":"TrustStoreNotFoundException"} + ] + }, + "GetTrustStoreCaCertificatesBundle":{ + "name":"GetTrustStoreCaCertificatesBundle", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTrustStoreCaCertificatesBundleInput"}, + "output":{ + "shape":"GetTrustStoreCaCertificatesBundleOutput", + "resultWrapper":"GetTrustStoreCaCertificatesBundleResult" + }, + "errors":[ + {"shape":"TrustStoreNotFoundException"} + ] + }, + "GetTrustStoreRevocationContent":{ + "name":"GetTrustStoreRevocationContent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTrustStoreRevocationContentInput"}, + "output":{ + "shape":"GetTrustStoreRevocationContentOutput", + "resultWrapper":"GetTrustStoreRevocationContentResult" + }, + "errors":[ + {"shape":"TrustStoreNotFoundException"}, + {"shape":"RevocationIdNotFoundException"} + ] + }, "ModifyListener":{ "name":"ModifyListener", "http":{ @@ -435,7 +570,9 @@ {"shape":"TooManyActionsException"}, {"shape":"InvalidLoadBalancerActionException"}, {"shape":"TooManyUniqueTargetGroupsPerLoadBalancerException"}, - {"shape":"ALPNPolicyNotSupportedException"} + {"shape":"ALPNPolicyNotSupportedException"}, + {"shape":"TrustStoreNotFoundException"}, + {"shape":"TrustStoreNotReadyException"} ] }, "ModifyLoadBalancerAttributes":{ @@ -511,6 +648,23 @@ {"shape":"InvalidConfigurationRequestException"} ] }, + "ModifyTrustStore":{ + "name":"ModifyTrustStore", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyTrustStoreInput"}, + "output":{ + "shape":"ModifyTrustStoreOutput", + "resultWrapper":"ModifyTrustStoreResult" + }, + "errors":[ + {"shape":"TrustStoreNotFoundException"}, + {"shape":"InvalidCaCertificatesBundleException"}, + {"shape":"CaCertificatesBundleNotFoundException"} + ] + }, "RegisterTargets":{ "name":"RegisterTargets", "http":{ @@ -561,7 +715,24 @@ {"shape":"TargetGroupNotFoundException"}, {"shape":"ListenerNotFoundException"}, {"shape":"RuleNotFoundException"}, - {"shape":"TooManyTagsException"} + {"shape":"TooManyTagsException"}, + {"shape":"TrustStoreNotFoundException"} + ] + }, + "RemoveTrustStoreRevocations":{ + "name":"RemoveTrustStoreRevocations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveTrustStoreRevocationsInput"}, + "output":{ + "shape":"RemoveTrustStoreRevocationsOutput", + "resultWrapper":"RemoveTrustStoreRevocationsResult" + }, + "errors":[ + {"shape":"TrustStoreNotFoundException"}, + {"shape":"RevocationIdNotFoundException"} ] }, "SetIpAddressType":{ @@ -714,6 +885,20 @@ "members":{ } }, + "AddTrustStoreRevocationsInput":{ + "type":"structure", + "required":["TrustStoreArn"], + "members":{ + "TrustStoreArn":{"shape":"TrustStoreArn"}, + "RevocationContents":{"shape":"RevocationContents"} + } + }, + "AddTrustStoreRevocationsOutput":{ + "type":"structure", + "members":{ + "TrustStoreRevocations":{"shape":"TrustStoreRevocations"} + } + }, "AllocationId":{"type":"string"}, "AllocationIdNotFoundException":{ "type":"structure", @@ -731,6 +916,20 @@ "member":{"shape":"AlpnPolicyValue"} }, "AlpnPolicyValue":{"type":"string"}, + "AnomalyDetection":{ + "type":"structure", + "members":{ + "Result":{"shape":"AnomalyResultEnum"}, + "MitigationInEffect":{"shape":"MitigationInEffectEnum"} + } + }, + "AnomalyResultEnum":{ + "type":"string", + "enum":[ + "anomalous", + "normal" + ] + }, "AuthenticateCognitoActionAuthenticationRequestExtraParams":{ "type":"map", "key":{"shape":"AuthenticateCognitoActionAuthenticationRequestParamName"}, @@ -843,6 +1042,17 @@ "type":"list", "member":{"shape":"AvailabilityZone"} }, + "CaCertificatesBundleNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"CaCertificatesBundleNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "CanonicalHostedZoneId":{"type":"string"}, "Certificate":{ "type":"structure", @@ -898,7 +1108,8 @@ "Certificates":{"shape":"CertificateList"}, "DefaultActions":{"shape":"Actions"}, "AlpnPolicy":{"shape":"AlpnPolicyName"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "MutualAuthentication":{"shape":"MutualAuthenticationAttributes"} } }, "CreateListenerOutput":{ @@ -979,6 +1190,27 @@ "TargetGroups":{"shape":"TargetGroups"} } }, + "CreateTrustStoreInput":{ + "type":"structure", + "required":[ + "Name", + "CaCertificatesBundleS3Bucket", + "CaCertificatesBundleS3Key" + ], + "members":{ + "Name":{"shape":"TrustStoreName"}, + "CaCertificatesBundleS3Bucket":{"shape":"S3Bucket"}, + "CaCertificatesBundleS3Key":{"shape":"S3Key"}, + "CaCertificatesBundleS3ObjectVersion":{"shape":"S3ObjectVersion"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateTrustStoreOutput":{ + "type":"structure", + "members":{ + "TrustStores":{"shape":"TrustStores"} + } + }, "CreatedTime":{"type":"timestamp"}, "CustomerOwnedIpv4Pool":{ "type":"string", @@ -1035,6 +1267,18 @@ "members":{ } }, + "DeleteTrustStoreInput":{ + "type":"structure", + "required":["TrustStoreArn"], + "members":{ + "TrustStoreArn":{"shape":"TrustStoreArn"} + } + }, + "DeleteTrustStoreOutput":{ + "type":"structure", + "members":{ + } + }, "DeregisterTargetsInput":{ "type":"structure", "required":[ @@ -1206,15 +1450,85 @@ "required":["TargetGroupArn"], "members":{ "TargetGroupArn":{"shape":"TargetGroupArn"}, - "Targets":{"shape":"TargetDescriptions"} + "Targets":{"shape":"TargetDescriptions"}, + "Include":{"shape":"ListOfDescribeTargetHealthIncludeOptions"} } }, + "DescribeTargetHealthInputIncludeEnum":{ + "type":"string", + "enum":[ + "AnomalyDetection", + "All" + ] + }, "DescribeTargetHealthOutput":{ "type":"structure", "members":{ "TargetHealthDescriptions":{"shape":"TargetHealthDescriptions"} } }, + "DescribeTrustStoreAssociationsInput":{ + "type":"structure", + "required":["TrustStoreArn"], + "members":{ + "TrustStoreArn":{"shape":"TrustStoreArn"}, + "Marker":{"shape":"Marker"}, + "PageSize":{"shape":"PageSize"} + } + }, + "DescribeTrustStoreAssociationsOutput":{ + "type":"structure", + "members":{ + "TrustStoreAssociations":{"shape":"TrustStoreAssociations"}, + "NextMarker":{"shape":"Marker"} + } + }, + "DescribeTrustStoreRevocation":{ + "type":"structure", + "members":{ + "TrustStoreArn":{"shape":"TrustStoreArn"}, + "RevocationId":{"shape":"RevocationId"}, + "RevocationType":{"shape":"RevocationType"}, + "NumberOfRevokedEntries":{"shape":"NumberOfRevokedEntries"} + } + }, + "DescribeTrustStoreRevocationResponse":{ + "type":"list", + "member":{"shape":"DescribeTrustStoreRevocation"} + }, + "DescribeTrustStoreRevocationsInput":{ + "type":"structure", + "required":["TrustStoreArn"], + "members":{ + "TrustStoreArn":{"shape":"TrustStoreArn"}, + "RevocationIds":{"shape":"RevocationIds"}, + "Marker":{"shape":"Marker"}, + "PageSize":{"shape":"PageSize"} + } + }, + "DescribeTrustStoreRevocationsOutput":{ + "type":"structure", + "members":{ + "TrustStoreRevocations":{"shape":"DescribeTrustStoreRevocationResponse"}, + "NextMarker":{"shape":"Marker"} + } + }, + "DescribeTrustStoresInput":{ + "type":"structure", + "members":{ + "TrustStoreArns":{"shape":"TrustStoreArns"}, + "Names":{"shape":"TrustStoreNames"}, + "Marker":{"shape":"Marker"}, + "PageSize":{"shape":"PageSize"} + } + }, + "DescribeTrustStoresOutput":{ + "type":"structure", + "members":{ + "TrustStores":{"shape":"TrustStores"}, + "NextMarker":{"shape":"Marker"} + } + }, "Description":{"type":"string"}, "DuplicateListenerException":{ "type":"structure", @@ -1260,6 +1574,17 @@ }, "exception":true }, + "DuplicateTrustStoreNameException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"DuplicateTrustStoreName", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic":{"type":"string"}, "EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum":{ "type":"string", @@ -1298,6 +1623,36 @@ "TargetGroupStickinessConfig":{"shape":"TargetGroupStickinessConfig"} } }, + "GetTrustStoreCaCertificatesBundleInput":{ + "type":"structure", + "required":["TrustStoreArn"], + "members":{ + "TrustStoreArn":{"shape":"TrustStoreArn"} + } + }, + "GetTrustStoreCaCertificatesBundleOutput":{ + "type":"structure", + "members":{ + "Location":{"shape":"Location"} + } + }, + "GetTrustStoreRevocationContentInput":{ + "type":"structure", + "required":[ + "TrustStoreArn", + "RevocationId" + ], + "members":{ + "TrustStoreArn":{"shape":"TrustStoreArn"}, + "RevocationId":{"shape":"RevocationId"} + } + }, + "GetTrustStoreRevocationContentOutput":{ + "type":"structure", + "members":{ + "Location":{"shape":"Location"} + } + }, "GrpcCode":{"type":"string"}, "HealthCheckEnabled":{"type":"boolean"}, "HealthCheckIntervalSeconds":{ @@ -1348,6 +1703,7 @@ } }, "IPv6Address":{"type":"string"}, + "IgnoreClientCertificateExpiry":{"type":"boolean"}, "IncompatibleProtocolsException":{ "type":"structure", "members":{ @@ -1359,6 +1715,17 @@ }, "exception":true }, + "InvalidCaCertificatesBundleException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidCaCertificatesBundle", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidConfigurationRequestException":{ "type":"structure", "members":{ @@ -1381,6 +1748,17 @@ }, "exception":true }, + "InvalidRevocationContentException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"InvalidRevocationContent", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidSchemeException":{ "type":"structure", "members":{ @@ -1445,6 +1823,10 @@ "type":"list", "member":{"shape":"Limit"} }, + "ListOfDescribeTargetHealthIncludeOptions":{ + "type":"list", + "member":{"shape":"DescribeTargetHealthInputIncludeEnum"} + }, "ListOfString":{ "type":"list", "member":{"shape":"StringValue"} @@ -1459,7 +1841,8 @@ "Certificates":{"shape":"CertificateList"}, "SslPolicy":{"shape":"SslPolicyName"}, "DefaultActions":{"shape":"Actions"}, - "AlpnPolicy":{"shape":"AlpnPolicyName"} + "AlpnPolicy":{"shape":"AlpnPolicyName"}, + "MutualAuthentication":{"shape":"MutualAuthenticationAttributes"} } }, "ListenerArn":{"type":"string"}, @@ -1591,6 +1974,7 @@ "type":"list", "member":{"shape":"LoadBalancer"} }, + "Location":{"type":"string"}, "Marker":{"type":"string"}, "Matcher":{ "type":"structure", @@ -1600,6 +1984,14 @@ } }, "Max":{"type":"string"}, + "MitigationInEffectEnum":{ + "type":"string", + "enum":[ + "yes", + "no" + ] + }, + "Mode":{"type":"string"}, "ModifyListenerInput":{ "type":"structure", "required":["ListenerArn"], @@ -1610,7 +2002,8 @@ "SslPolicy":{"shape":"SslPolicyName"}, "Certificates":{"shape":"CertificateList"}, "DefaultActions":{"shape":"Actions"}, - "AlpnPolicy":{"shape":"AlpnPolicyName"} + "AlpnPolicy":{"shape":"AlpnPolicyName"}, + "MutualAuthentication":{"shape":"MutualAuthenticationAttributes"} } }, "ModifyListenerOutput":{ @@ -1690,7 +2083,37 @@ "TargetGroups":{"shape":"TargetGroups"} } }, + "ModifyTrustStoreInput":{ + "type":"structure", + "required":[ + "TrustStoreArn", + "CaCertificatesBundleS3Bucket", + "CaCertificatesBundleS3Key" + ], + "members":{ + "TrustStoreArn":{"shape":"TrustStoreArn"}, + "CaCertificatesBundleS3Bucket":{"shape":"S3Bucket"}, + "CaCertificatesBundleS3Key":{"shape":"S3Key"}, + "CaCertificatesBundleS3ObjectVersion":{"shape":"S3ObjectVersion"} + } + }, + "ModifyTrustStoreOutput":{ + "type":"structure", + "members":{ + "TrustStores":{"shape":"TrustStores"} + } + }, + "MutualAuthenticationAttributes":{ + "type":"structure", + "members":{ + "Mode":{"shape":"Mode"}, + "TrustStoreArn":{"shape":"TrustStoreArn"}, + "IgnoreClientCertificateExpiry":{"shape":"IgnoreClientCertificateExpiry"} + } + }, "Name":{"type":"string"}, + "NumberOfCaCertificates":{"type":"integer"}, + "NumberOfRevokedEntries":{"type":"long"}, "OperationNotPermittedException":{ "type":"structure", "members":{ @@ -1853,6 +2276,22 @@ "members":{ } }, + "RemoveTrustStoreRevocationsInput":{ + "type":"structure", + "required":[ + "TrustStoreArn", + "RevocationIds" + ], + "members":{ + "TrustStoreArn":{"shape":"TrustStoreArn"}, + "RevocationIds":{"shape":"RevocationIds"} + } + }, + "RemoveTrustStoreRevocationsOutput":{ + "type":"structure", + "members":{ + } + }, "ResourceArn":{"type":"string"}, "ResourceArns":{ "type":"list", @@ -1869,6 +2308,50 @@ }, "exception":true }, + "RevocationContent":{ + "type":"structure", + "members":{ + "S3Bucket":{"shape":"S3Bucket"}, + "S3Key":{"shape":"S3Key"}, + "S3ObjectVersion":{"shape":"S3ObjectVersion"}, + "RevocationType":{"shape":"RevocationType"} + } + }, + "RevocationContentNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"RevocationContentNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "RevocationContents":{ + "type":"list", + "member":{"shape":"RevocationContent"} + }, + "RevocationId":{"type":"long"}, + "RevocationIdNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"RevocationIdNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "RevocationIds":{ + "type":"list", + "member":{"shape":"RevocationId"} + }, + "RevocationType":{ + "type":"string", + "enum":["CRL"] + }, "Rule":{ "type":"structure", "members":{ @@ -1932,6 +2415,9 @@ "type":"list", "member":{"shape":"Rule"} }, + "S3Bucket":{"type":"string"}, + "S3Key":{"type":"string"}, + "S3ObjectVersion":{"type":"string"}, "SSLPolicyNotFoundException":{ "type":"structure", "members":{ @@ -2245,7 +2731,8 @@ "members":{ "Target":{"shape":"TargetDescription"}, "HealthCheckPort":{"shape":"HealthCheckPort"}, - "TargetHealth":{"shape":"TargetHealth"} + "TargetHealth":{"shape":"TargetHealth"}, + "AnomalyDetection":{"shape":"AnomalyDetection"} } }, "TargetHealthDescriptions":{ @@ -2389,6 +2876,28 @@ }, "exception":true }, + "TooManyTrustStoreRevocationEntriesException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TooManyTrustStoreRevocationEntries", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TooManyTrustStoresException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TooManyTrustStores", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "TooManyUniqueTargetGroupsPerLoadBalancerException":{ "type":"structure", "members":{ @@ -2400,6 +2909,100 @@ }, "exception":true }, + "TotalRevokedEntries":{"type":"long"}, + "TrustStore":{ + "type":"structure", + "members":{ + "Name":{"shape":"TrustStoreName"}, + "TrustStoreArn":{"shape":"TrustStoreArn"}, + "Status":{"shape":"TrustStoreStatus"}, + "NumberOfCaCertificates":{"shape":"NumberOfCaCertificates"}, + "TotalRevokedEntries":{"shape":"TotalRevokedEntries"} + } + }, + "TrustStoreArn":{"type":"string"}, + "TrustStoreArns":{ + "type":"list", + "member":{"shape":"TrustStoreArn"} + }, + "TrustStoreAssociation":{ + "type":"structure", + "members":{ + "ResourceArn":{"shape":"TrustStoreAssociationResourceArn"} + } + }, + "TrustStoreAssociationResourceArn":{"type":"string"}, + "TrustStoreAssociations":{ + "type":"list", + "member":{"shape":"TrustStoreAssociation"} + }, + "TrustStoreInUseException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TrustStoreInUse", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TrustStoreName":{ + "type":"string", + "max":32, + "min":1, + "pattern":"^([a-zA-Z0-9]+-)*[a-zA-Z0-9]+$" + }, + "TrustStoreNames":{ + "type":"list", + "member":{"shape":"TrustStoreName"} + }, + "TrustStoreNotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TrustStoreNotFound", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TrustStoreNotReadyException":{ + "type":"structure", + "members":{ + }, + "error":{ + "code":"TrustStoreNotReady", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TrustStoreRevocation":{ + "type":"structure", + "members":{ + "TrustStoreArn":{"shape":"TrustStoreArn"}, + "RevocationId":{"shape":"RevocationId"}, + "RevocationType":{"shape":"RevocationType"}, + "NumberOfRevokedEntries":{"shape":"NumberOfRevokedEntries"} + } + }, + "TrustStoreRevocations":{ + "type":"list", + "member":{"shape":"TrustStoreRevocation"} + }, + "TrustStoreStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "CREATING" + ] + }, + "TrustStores":{ + "type":"list", + "member":{"shape":"TrustStore"} + }, "UnsupportedProtocolException":{ "type":"structure", "members":{ diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json b/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json index aae89ff1ff7..2ccf03d8af3 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/docs-2.json @@ -3,15 +3,18 @@ "service": "Elastic Load Balancing

A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets.

Elastic Load Balancing supports the following types of load balancers: Application Load Balancers, Network Load Balancers, Gateway Load Balancers, and Classic Load Balancers. This reference covers the following load balancer types:

For more information, see the Elastic Load Balancing User Guide.

All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds.

", "operations": { "AddListenerCertificates": "

Adds the specified SSL server certificate to the certificate list for the specified HTTPS or TLS listener.

If the certificate in already in the certificate list, the call is successful but the certificate is not added again.

For more information, see HTTPS listeners in the Application Load Balancers Guide or TLS listeners in the Network Load Balancers Guide.

", - "AddTags": "

Adds the specified tags to the specified Elastic Load Balancing resource. You can tag your Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, listeners, and rules.

Each tag consists of a key and an optional value. If a resource already has a tag with the same key, AddTags updates its value.

", + "AddTags": "

Adds the specified tags to the specified Elastic Load Balancing resource. You can tag your Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, trust stores, listeners, and rules.

Each tag consists of a key and an optional value. If a resource already has a tag with the same key, AddTags updates its value.

", + "AddTrustStoreRevocations": "

Adds the specified revocation file to the specified trust store.

", "CreateListener": "

Creates a listener for the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer.

For more information, see the following:

This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple listeners with the same settings, each call succeeds.

", "CreateLoadBalancer": "

Creates an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer.

For more information, see the following:

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.

", "CreateRule": "

Creates a rule for the specified listener. The listener must be associated with an Application Load Balancer.

Each rule consists of a priority, one or more actions, and one or more conditions. 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 in the Application Load Balancers Guide.

", "CreateTargetGroup": "

Creates a target group.

For more information, see the following:

This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple target groups with the same settings, each call succeeds.

", + "CreateTrustStore": "

Creates a trust store.

", "DeleteListener": "

Deletes the specified listener.

Alternatively, your listener is deleted when you delete the load balancer to which it is attached.

", "DeleteLoadBalancer": "

Deletes the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. Deleting a load balancer also deletes its listeners.

You can't delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has already been deleted, the call succeeds.

Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or terminate them.

", "DeleteRule": "

Deletes the specified rule.

You can't delete the default rule.

", "DeleteTargetGroup": "

Deletes the specified target group.

You can delete a target group if it is not referenced by any actions. Deleting a target group also deletes any associated health checks. Deleting a target group does not affect its registered targets. For example, any EC2 instances continue to run until you stop or terminate them.

", + "DeleteTrustStore": "

Deletes a trust store.

", "DeregisterTargets": "

Deregisters the specified targets from the specified target group. After the targets are deregistered, they no longer receive traffic from the load balancer.

The load balancer stops sending requests to targets that are deregistering, but uses connection draining to ensure that in-flight traffic completes on the existing connections. This deregistration delay is configured by default but can be updated for each target group.

For more information, see the following:

Note: If the specified target does not exist, the action returns successfully.

", "DescribeAccountLimits": "

Describes the current Elastic Load Balancing resource limits for your Amazon Web Services account.

For more information, see the following:

", "DescribeListenerCertificates": "

Describes the default certificate and the certificate list for the specified HTTPS or TLS listener.

If the default certificate is also in the certificate list, it appears twice in the results (once with IsDefault set to true and once with IsDefault set to false).

For more information, see SSL certificates in the Application Load Balancers Guide or Server certificates in the Network Load Balancers Guide.

", @@ -24,14 +27,21 @@ "DescribeTargetGroupAttributes": "

Describes the attributes for the specified target group.

For more information, see the following:

", "DescribeTargetGroups": "

Describes the specified target groups or all of your target groups. By default, all target groups are described. Alternatively, you can specify one of the following to filter the results: the ARN of the load balancer, the names of one or more target groups, or the ARNs of one or more target groups.

", "DescribeTargetHealth": "

Describes the health of the specified targets or all of your targets.

", + "DescribeTrustStoreAssociations": "

Describes all resources associated with the specified trust store.

", + "DescribeTrustStoreRevocations": "

Describes the revocation files in use by the specified trust store arn, or revocation ID.

", + "DescribeTrustStores": "

Describes all trust stores for a given account by trust store arn’s or name.

", + "GetTrustStoreCaCertificatesBundle": "

Retrieves the ca certificate bundle.

This action returns a pre-signed S3 URI which is active for ten minutes.

", + "GetTrustStoreRevocationContent": "

Retrieves the specified revocation file.

This action returns a pre-signed S3 URI which is active for ten minutes.

", "ModifyListener": "

Replaces the specified properties of the specified listener. Any properties that you do not specify remain unchanged.

Changing the protocol from HTTPS to HTTP, or from TLS to TCP, removes the security policy and default certificate properties. If you change the protocol from HTTP to HTTPS, or from TCP to TLS, you must add the security policy and default certificate properties.

To add an item to a list, remove an item from a list, or update an item in a list, you must provide the entire list. For example, to add an action, specify a list with the current actions plus the new action.

", "ModifyLoadBalancerAttributes": "

Modifies the specified attributes of the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer.

If any of the specified attributes can't be modified as requested, the call fails. Any existing attributes that you do not modify retain their current values.

", "ModifyRule": "

Replaces the specified properties of the specified rule. Any properties that you do not specify are unchanged.

To add an item to a list, remove an item from a list, or update an item in a list, you must provide the entire list. For example, to add an action, specify a list with the current actions plus the new action.

", "ModifyTargetGroup": "

Modifies the health checks used when evaluating the health state of the targets in the specified target group.

", "ModifyTargetGroupAttributes": "

Modifies the specified attributes of the specified target group.

", + "ModifyTrustStore": "

Update the ca certificate bundle for a given trust store.

", "RegisterTargets": "

Registers the specified targets with the specified target group.

If the target is an EC2 instance, it must be in the running state when you register it.

By default, the load balancer routes requests to registered targets using the protocol and port for the target group. Alternatively, you can override the port for a target when you register it. You can register each EC2 instance or IP address with the same target group multiple times using different ports.

With a Network Load Balancer, you cannot register instances by instance ID if they have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can register instances of these types by IP address.

", "RemoveListenerCertificates": "

Removes the specified certificate from the certificate list for the specified HTTPS or TLS listener.

", "RemoveTags": "

Removes the specified tags from the specified Elastic Load Balancing resources. You can remove the tags for one or more Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, listeners, or rules.

", + "RemoveTrustStoreRevocations": "

Removes the specified revocation file from the specified trust store.

", "SetIpAddressType": "

Sets the type of IP addresses used by the subnets of the specified load balancer.

", "SetRulePriorities": "

Sets the priorities of the specified rules.

You can reorder the rules as long as there are no priority conflicts in the new order. Any existing rules that you do not specify retain their current priority.

", "SetSecurityGroups": "

Associates the specified security groups with the specified Application Load Balancer or Network Load Balancer. The specified security groups override the previously associated security groups.

You can't perform this operation on a Network Load Balancer unless you specified a security group for the load balancer when you created it.

You can't associate a security group with a Gateway Load Balancer.

", @@ -92,6 +102,16 @@ "refs": { } }, + "AddTrustStoreRevocationsInput": { + "base": null, + "refs": { + } + }, + "AddTrustStoreRevocationsOutput": { + "base": null, + "refs": { + } + }, "AllocationId": { "base": null, "refs": { @@ -118,6 +138,18 @@ "AlpnPolicyName$member": null } }, + "AnomalyDetection": { + "base": "

Information about anomaly detection and mitigation.

", + "refs": { + "TargetHealthDescription$AnomalyDetection": "

The anomaly detection result for the target.

If no anomalies were detected, the result is normal.

If anomalies were detected, the result is anomalous.

" + } + }, + "AnomalyResultEnum": { + "base": null, + "refs": { + "AnomalyDetection$Result": "

The latest anomaly detection result.

" + } + }, "AuthenticateCognitoActionAuthenticationRequestExtraParams": { "base": null, "refs": { @@ -292,6 +324,11 @@ "SetSubnetsOutput$AvailabilityZones": "

Information about the subnets.

" } }, + "CaCertificatesBundleNotFoundException": { + "base": "

The specified ca certificate bundle does not exist.

", + "refs": { + } + }, "CanonicalHostedZoneId": { "base": null, "refs": { @@ -397,6 +434,16 @@ "refs": { } }, + "CreateTrustStoreInput": { + "base": null, + "refs": { + } + }, + "CreateTrustStoreOutput": { + "base": null, + "refs": { + } + }, "CreatedTime": { "base": null, "refs": { @@ -462,6 +509,16 @@ "refs": { } }, + "DeleteTrustStoreInput": { + "base": null, + "refs": { + } + }, + "DeleteTrustStoreOutput": { + "base": null, + "refs": { + } + }, "DeregisterTargetsInput": { "base": null, "refs": { @@ -577,11 +634,59 @@ "refs": { } }, + "DescribeTargetHealthInputIncludeEnum": { + "base": null, + "refs": { + "ListOfDescribeTargetHealthIncludeOptions$member": null + } + }, "DescribeTargetHealthOutput": { "base": null, "refs": { } }, + "DescribeTrustStoreAssociationsInput": { + "base": null, + "refs": { + } + }, + "DescribeTrustStoreAssociationsOutput": { + "base": null, + "refs": { + } + }, + "DescribeTrustStoreRevocation": { + "base": "

Information about the revocations used by a trust store.

", + "refs": { + "DescribeTrustStoreRevocationResponse$member": null + } + }, + "DescribeTrustStoreRevocationResponse": { + "base": null, + "refs": { + "DescribeTrustStoreRevocationsOutput$TrustStoreRevocations": "

Information about the revocation file in the trust store.

" + } + }, + "DescribeTrustStoreRevocationsInput": { + "base": null, + "refs": { + } + }, + "DescribeTrustStoreRevocationsOutput": { + "base": null, + "refs": { + } + }, + "DescribeTrustStoresInput": { + "base": null, + "refs": { + } + }, + "DescribeTrustStoresOutput": { + "base": null, + "refs": { + } + }, "Description": { "base": null, "refs": { @@ -608,6 +713,11 @@ "refs": { } }, + "DuplicateTrustStoreNameException": { + "base": "

A trust store with the specified name already exists.

", + "refs": { + } + }, "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "base": null, "refs": { @@ -651,6 +761,26 @@ "Action$ForwardConfig": "

Information for creating an action that distributes requests among one or more target groups. For Network Load Balancers, you can specify a single target group. Specify only when Type is forward. If you specify both ForwardConfig and TargetGroupArn, you can specify only one target group using ForwardConfig and it must be the same target group specified in TargetGroupArn.

" } }, + "GetTrustStoreCaCertificatesBundleInput": { + "base": null, + "refs": { + } + }, + "GetTrustStoreCaCertificatesBundleOutput": { + "base": null, + "refs": { + } + }, + "GetTrustStoreRevocationContentInput": { + "base": null, + "refs": { + } + }, + "GetTrustStoreRevocationContentOutput": { + "base": null, + "refs": { + } + }, "GrpcCode": { "base": null, "refs": { @@ -743,11 +873,22 @@ "SubnetMapping$IPv6Address": "

[Network Load Balancers] The IPv6 address.

" } }, + "IgnoreClientCertificateExpiry": { + "base": null, + "refs": { + "MutualAuthenticationAttributes$IgnoreClientCertificateExpiry": "

Indicates whether expired client certificates are ignored.

" + } + }, "IncompatibleProtocolsException": { "base": "

The specified configuration is not valid with this protocol.

", "refs": { } }, + "InvalidCaCertificatesBundleException": { + "base": "

The specified ca certificate bundle is in an invalid format, or corrupt.

", + "refs": { + } + }, "InvalidConfigurationRequestException": { "base": "

The requested configuration is not valid.

", "refs": { @@ -758,6 +899,11 @@ "refs": { } }, + "InvalidRevocationContentException": { + "base": "

The provided revocation file is an invalid format, or uses an incorrect algorithm.

", + "refs": { + } + }, "InvalidSchemeException": { "base": "

The requested scheme is not valid.

", "refs": { @@ -813,6 +959,12 @@ "DescribeAccountLimitsOutput$Limits": "

Information about the limits.

" } }, + "ListOfDescribeTargetHealthIncludeOptions": { + "base": null, + "refs": { + "DescribeTargetHealthInput$Include": "

Used to inclue anomaly detection information.

" + } + }, "ListOfString": { "base": null, "refs": { @@ -915,7 +1067,7 @@ "LoadBalancerAttributeKey": { "base": null, "refs": { - "LoadBalancerAttribute$Key": "

The name of the attribute.

The following attributes are supported by all load balancers:

The following attributes are supported by both Application Load Balancers and Network Load Balancers:

The following attributes are supported by only Application Load Balancers:

The following attributes are supported by only Network Load Balancers:

" + "LoadBalancerAttribute$Key": "

The name of the attribute.

The following attributes are supported by all load balancers:

The following attributes are supported by both Application Load Balancers and Network Load Balancers:

The following attributes are supported by only Application Load Balancers:

The following attributes are supported by only Network Load Balancers:

" } }, "LoadBalancerAttributeValue": { @@ -985,6 +1137,13 @@ "DescribeLoadBalancersOutput$LoadBalancers": "

Information about the load balancers.

" } }, + "Location": { + "base": null, + "refs": { + "GetTrustStoreCaCertificatesBundleOutput$Location": "

The ca certificate bundles Amazon S3 URI.

", + "GetTrustStoreRevocationContentOutput$Location": "

The revocation files Amazon S3 URI.

" + } + }, "Marker": { "base": null, "refs": { @@ -1001,7 +1160,13 @@ "DescribeSSLPoliciesInput$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", "DescribeSSLPoliciesOutput$NextMarker": "

If there are additional results, this is the marker for the next set of results. Otherwise, this is null.

", "DescribeTargetGroupsInput$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", - "DescribeTargetGroupsOutput$NextMarker": "

If there are additional results, this is the marker for the next set of results. Otherwise, this is null.

" + "DescribeTargetGroupsOutput$NextMarker": "

If there are additional results, this is the marker for the next set of results. Otherwise, this is null.

", + "DescribeTrustStoreAssociationsInput$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", + "DescribeTrustStoreAssociationsOutput$NextMarker": "

If there are additional results, this is the marker for the next set of results. Otherwise, this is null.

", + "DescribeTrustStoreRevocationsInput$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", + "DescribeTrustStoreRevocationsOutput$NextMarker": "

If there are additional results, this is the marker for the next set of results. Otherwise, this is null.

", + "DescribeTrustStoresInput$Marker": "

The marker for the next set of results. (You received this marker from a previous call.)

", + "DescribeTrustStoresOutput$NextMarker": "

If there are additional results, this is the marker for the next set of results. Otherwise, this is null.

" } }, "Matcher": { @@ -1018,6 +1183,18 @@ "Limit$Max": "

The maximum value of the limit.

" } }, + "MitigationInEffectEnum": { + "base": null, + "refs": { + "AnomalyDetection$MitigationInEffect": "

Indicates whether anomaly mitigation is in progress.

" + } + }, + "Mode": { + "base": null, + "refs": { + "MutualAuthenticationAttributes$Mode": "

The client certificate handling method. Options are off, passthrough or verify. The default value is off.

" + } + }, "ModifyListenerInput": { "base": null, "refs": { @@ -1068,12 +1245,43 @@ "refs": { } }, + "ModifyTrustStoreInput": { + "base": null, + "refs": { + } + }, + "ModifyTrustStoreOutput": { + "base": null, + "refs": { + } + }, + "MutualAuthenticationAttributes": { + "base": "

Information about the mutual authentication attributes of a listener.

", + "refs": { + "CreateListenerInput$MutualAuthentication": "

The mutual authentication configuration information.

", + "Listener$MutualAuthentication": "

The mutual authentication configuration information.

", + "ModifyListenerInput$MutualAuthentication": "

The mutual authentication configuration information.

" + } + }, "Name": { "base": null, "refs": { "Limit$Name": "

The name of the limit. The possible values are:

" } }, + "NumberOfCaCertificates": { + "base": null, + "refs": { + "TrustStore$NumberOfCaCertificates": "

The number of ca certificates in the trust store.

" + } + }, + "NumberOfRevokedEntries": { + "base": null, + "refs": { + "DescribeTrustStoreRevocation$NumberOfRevokedEntries": "

The number of revoked certificates.

", + "TrustStoreRevocation$NumberOfRevokedEntries": "

The number of revoked certificates.

" + } + }, "OperationNotPermittedException": { "base": "

This operation is not allowed.

", "refs": { @@ -1094,7 +1302,10 @@ "DescribeLoadBalancersInput$PageSize": "

The maximum number of results to return with this call.

", "DescribeRulesInput$PageSize": "

The maximum number of results to return with this call.

", "DescribeSSLPoliciesInput$PageSize": "

The maximum number of results to return with this call.

", - "DescribeTargetGroupsInput$PageSize": "

The maximum number of results to return with this call.

" + "DescribeTargetGroupsInput$PageSize": "

The maximum number of results to return with this call.

", + "DescribeTrustStoreAssociationsInput$PageSize": "

The maximum number of results to return with this call.

", + "DescribeTrustStoreRevocationsInput$PageSize": "

The maximum number of results to return with this call.

", + "DescribeTrustStoresInput$PageSize": "

The maximum number of results to return with this call.

" } }, "Path": { @@ -1244,6 +1455,16 @@ "refs": { } }, + "RemoveTrustStoreRevocationsInput": { + "base": null, + "refs": { + } + }, + "RemoveTrustStoreRevocationsOutput": { + "base": null, + "refs": { + } + }, "ResourceArn": { "base": null, "refs": { @@ -1264,6 +1485,52 @@ "refs": { } }, + "RevocationContent": { + "base": "

Information about a revocation file.

", + "refs": { + "RevocationContents$member": null + } + }, + "RevocationContentNotFoundException": { + "base": "

The specified revocation file does not exist.

", + "refs": { + } + }, + "RevocationContents": { + "base": null, + "refs": { + "AddTrustStoreRevocationsInput$RevocationContents": "

The revocation file to add.

" + } + }, + "RevocationId": { + "base": null, + "refs": { + "DescribeTrustStoreRevocation$RevocationId": "

The revocation ID of a revocation file in use.

", + "GetTrustStoreRevocationContentInput$RevocationId": "

The revocation ID of the revocation file.

", + "RevocationIds$member": null, + "TrustStoreRevocation$RevocationId": "

The revocation ID of the revocation file.

" + } + }, + "RevocationIdNotFoundException": { + "base": "

The specified revocation ID does not exist.

", + "refs": { + } + }, + "RevocationIds": { + "base": null, + "refs": { + "DescribeTrustStoreRevocationsInput$RevocationIds": "

The revocation IDs of the revocation files you want to describe.

", + "RemoveTrustStoreRevocationsInput$RevocationIds": "

The revocation IDs of the revocation files you want to remove.

" + } + }, + "RevocationType": { + "base": null, + "refs": { + "DescribeTrustStoreRevocation$RevocationType": "

The type of revocation file.

", + "RevocationContent$RevocationType": "

The type of revocation file.

", + "TrustStoreRevocation$RevocationType": "

The type of revocation file.

" + } + }, "Rule": { "base": "

Information about a rule.

", "refs": { @@ -1333,6 +1600,30 @@ "SetRulePrioritiesOutput$Rules": "

Information about the rules.

" } }, + "S3Bucket": { + "base": null, + "refs": { + "CreateTrustStoreInput$CaCertificatesBundleS3Bucket": "

The Amazon S3 bucket for the ca certificates bundle.

", + "ModifyTrustStoreInput$CaCertificatesBundleS3Bucket": "

The Amazon S3 bucket for the ca certificates bundle.

", + "RevocationContent$S3Bucket": "

The Amazon S3 bucket for the revocation file.

" + } + }, + "S3Key": { + "base": null, + "refs": { + "CreateTrustStoreInput$CaCertificatesBundleS3Key": "

The Amazon S3 path for the ca certificates bundle.

", + "ModifyTrustStoreInput$CaCertificatesBundleS3Key": "

The Amazon S3 path for the ca certificates bundle.

", + "RevocationContent$S3Key": "

The Amazon S3 path for the revocation file.

" + } + }, + "S3ObjectVersion": { + "base": null, + "refs": { + "CreateTrustStoreInput$CaCertificatesBundleS3ObjectVersion": "

The Amazon S3 object version for the ca certificates bundle. If undefined the current version is used.

", + "ModifyTrustStoreInput$CaCertificatesBundleS3ObjectVersion": "

The Amazon S3 object version for the ca certificates bundle. If undefined the current version is used.

", + "RevocationContent$S3ObjectVersion": "

The Amazon S3 object version of the revocation file.

" + } + }, "SSLPolicyNotFoundException": { "base": "

The specified SSL policy does not exist.

", "refs": { @@ -1531,6 +1822,7 @@ "CreateLoadBalancerInput$Tags": "

The tags to assign to the load balancer.

", "CreateRuleInput$Tags": "

The tags to assign to the rule.

", "CreateTargetGroupInput$Tags": "

The tags to assign to the target group.

", + "CreateTrustStoreInput$Tags": "

The tags to assign to the trust store.

", "TagDescription$Tags": "

Information about the tags.

" } }, @@ -1597,7 +1889,7 @@ "TargetGroupAttributeKey": { "base": null, "refs": { - "TargetGroupAttribute$Key": "

The name of the attribute.

The following attributes are supported by all load balancers:

The following attributes are supported by Application Load Balancers and Network Load Balancers:

The following attributes are supported only if the load balancer is an Application Load Balancer and the target is an instance or an IP address:

The following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function:

The following attributes are supported only by Network Load Balancers:

The following attributes are supported only by Gateway Load Balancers:

" + "TargetGroupAttribute$Key": "

The name of the attribute.

The following attributes are supported by all load balancers:

The following attributes are supported by Application Load Balancers and Network Load Balancers:

The following attributes are supported only if the load balancer is an Application Load Balancer and the target is an instance or an IP address:

The following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function:

The following attributes are supported only by Network Load Balancers:

The following attributes are supported only by Gateway Load Balancers:

" } }, "TargetGroupAttributeValue": { @@ -1758,7 +2050,7 @@ } }, "TooManyTagsException": { - "base": "

You've reached the limit on the number of tags per load balancer.

", + "base": "

You've reached the limit on the number of tags for this resource.

", "refs": { } }, @@ -1772,11 +2064,130 @@ "refs": { } }, + "TooManyTrustStoreRevocationEntriesException": { + "base": "

The specified trust store has too many revocation entries.

", + "refs": { + } + }, + "TooManyTrustStoresException": { + "base": "

You've reached the limit on the number of trust stores for your Amazon Web Services account.

", + "refs": { + } + }, "TooManyUniqueTargetGroupsPerLoadBalancerException": { "base": "

You've reached the limit on the number of unique target groups per load balancer across all listeners. If a target group is used by multiple actions for a load balancer, it is counted as only one use.

", "refs": { } }, + "TotalRevokedEntries": { + "base": null, + "refs": { + "TrustStore$TotalRevokedEntries": "

The number of revoked certificates in the trust store.

" + } + }, + "TrustStore": { + "base": "

Information about a trust store.

", + "refs": { + "TrustStores$member": null + } + }, + "TrustStoreArn": { + "base": null, + "refs": { + "AddTrustStoreRevocationsInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "DeleteTrustStoreInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "DescribeTrustStoreAssociationsInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "DescribeTrustStoreRevocation$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "DescribeTrustStoreRevocationsInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "GetTrustStoreCaCertificatesBundleInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "GetTrustStoreRevocationContentInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "ModifyTrustStoreInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "MutualAuthenticationAttributes$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "RemoveTrustStoreRevocationsInput$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "TrustStore$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

", + "TrustStoreArns$member": null, + "TrustStoreRevocation$TrustStoreArn": "

The Amazon Resource Name (ARN) of the trust store.

" + } + }, + "TrustStoreArns": { + "base": null, + "refs": { + "DescribeTrustStoresInput$TrustStoreArns": "

The Amazon Resource Name (ARN) of the trust store.

" + } + }, + "TrustStoreAssociation": { + "base": "

Information about the resources a trust store is associated with.

", + "refs": { + "TrustStoreAssociations$member": null + } + }, + "TrustStoreAssociationResourceArn": { + "base": null, + "refs": { + "TrustStoreAssociation$ResourceArn": "

The Amazon Resource Name (ARN) of the resource.

" + } + }, + "TrustStoreAssociations": { + "base": null, + "refs": { + "DescribeTrustStoreAssociationsOutput$TrustStoreAssociations": "

Information about the resources the trust store is associated to.

" + } + }, + "TrustStoreInUseException": { + "base": "

The specified trust store is currently in use.

", + "refs": { + } + }, + "TrustStoreName": { + "base": null, + "refs": { + "CreateTrustStoreInput$Name": "

The name of the trust store.

This name must be unique per region and cannot be changed after creation.

", + "TrustStore$Name": "

The name of the trust store.

", + "TrustStoreNames$member": null + } + }, + "TrustStoreNames": { + "base": null, + "refs": { + "DescribeTrustStoresInput$Names": "

The names of the trust stores.

" + } + }, + "TrustStoreNotFoundException": { + "base": "

The specified trust store does not exist.

", + "refs": { + } + }, + "TrustStoreNotReadyException": { + "base": "

The specified trust store is not active.

", + "refs": { + } + }, + "TrustStoreRevocation": { + "base": "

Information about a revocation file in use by a trust store.

", + "refs": { + "TrustStoreRevocations$member": null + } + }, + "TrustStoreRevocations": { + "base": null, + "refs": { + "AddTrustStoreRevocationsOutput$TrustStoreRevocations": "

Information about the revocation file added to the trust store.

" + } + }, + "TrustStoreStatus": { + "base": null, + "refs": { + "TrustStore$Status": "

The current status of the trust store.

" + } + }, + "TrustStores": { + "base": null, + "refs": { + "CreateTrustStoreOutput$TrustStores": "

Information about the trust store created.

", + "DescribeTrustStoresOutput$TrustStores": "

Information about the trust stores.

", + "ModifyTrustStoreOutput$TrustStores": "

Information about the modified trust store.

" + } + }, "UnsupportedProtocolException": { "base": "

The specified protocol is not supported.

", "refs": { diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/endpoint-rule-set-1.json b/models/apis/elasticloadbalancingv2/2015-12-01/endpoint-rule-set-1.json index ac783e2300a..c840251e544 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/endpoint-rule-set-1.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,18 +212,17 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ - "aws-us-gov", { "fn": "getAttr", "argv": [ @@ -236,7 +231,8 @@ }, "name" ] - } + }, + "aws-us-gov" ] } ], @@ -256,14 +252,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -277,7 +275,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -297,7 +294,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -308,14 +304,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -326,9 +324,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/elasticloadbalancingv2/2015-12-01/paginators-1.json b/models/apis/elasticloadbalancingv2/2015-12-01/paginators-1.json index 1a281f25c08..ec7152a2d29 100644 --- a/models/apis/elasticloadbalancingv2/2015-12-01/paginators-1.json +++ b/models/apis/elasticloadbalancingv2/2015-12-01/paginators-1.json @@ -14,6 +14,21 @@ "input_token": "Marker", "output_token": "NextMarker", "result_key": "TargetGroups" + }, + "DescribeTrustStoreAssociations": { + "input_token": "Marker", + "limit_key": "PageSize", + "output_token": "NextMarker" + }, + "DescribeTrustStoreRevocations": { + "input_token": "Marker", + "limit_key": "PageSize", + "output_token": "NextMarker" + }, + "DescribeTrustStores": { + "input_token": "Marker", + "limit_key": "PageSize", + "output_token": "NextMarker" } } } \ No newline at end of file diff --git a/models/apis/freetier/2023-09-07/api-2.json b/models/apis/freetier/2023-09-07/api-2.json new file mode 100644 index 00000000000..584be17b11a --- /dev/null +++ b/models/apis/freetier/2023-09-07/api-2.json @@ -0,0 +1,175 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2023-09-07", + "endpointPrefix":"freetier", + "jsonVersion":"1.0", + "protocol":"json", + "serviceFullName":"AWS Free Tier", + "serviceId":"FreeTier", + "signatureVersion":"v4", + "signingName":"freetier", + "targetPrefix":"AWSFreeTierService", + "uid":"freetier-2023-09-07" + }, + "operations":{ + "GetFreeTierUsage":{ + "name":"GetFreeTierUsage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetFreeTierUsageRequest"}, + "output":{"shape":"GetFreeTierUsageResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ] + } + }, + "shapes":{ + "Dimension":{ + "type":"string", + "enum":[ + "SERVICE", + "OPERATION", + "USAGE_TYPE", + "REGION", + "FREE_TIER_TYPE", + "DESCRIPTION", + "USAGE_PERCENTAGE" + ] + }, + "DimensionValues":{ + "type":"structure", + "required":[ + "Key", + "MatchOptions", + "Values" + ], + "members":{ + "Key":{"shape":"Dimension"}, + "MatchOptions":{"shape":"MatchOptions"}, + "Values":{"shape":"Values"} + } + }, + "Expression":{ + "type":"structure", + "members":{ + "And":{"shape":"Expressions"}, + "Dimensions":{"shape":"DimensionValues"}, + "Not":{"shape":"Expression"}, + "Or":{"shape":"Expressions"} + } + }, + "Expressions":{ + "type":"list", + "member":{"shape":"Expression"} + }, + "FreeTierUsage":{ + "type":"structure", + "members":{ + "actualUsageAmount":{"shape":"GenericDouble"}, + "description":{"shape":"GenericString"}, + "forecastedUsageAmount":{"shape":"GenericDouble"}, + "freeTierType":{"shape":"GenericString"}, + "limit":{"shape":"GenericDouble"}, + "operation":{"shape":"GenericString"}, + "region":{"shape":"GenericString"}, + "service":{"shape":"GenericString"}, + "unit":{"shape":"GenericString"}, + "usageType":{"shape":"GenericString"} + } + }, + "FreeTierUsages":{ + "type":"list", + "member":{"shape":"FreeTierUsage"} + }, + "GenericDouble":{"type":"double"}, + "GenericString":{ + "type":"string", + "max":1024, + "min":0, + "pattern":"^[\\S\\s]*$" + }, + "GetFreeTierUsageRequest":{ + "type":"structure", + "members":{ + "filter":{"shape":"Expression"}, + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextPageToken"} + } + }, + "GetFreeTierUsageResponse":{ + "type":"structure", + "required":["freeTierUsages"], + "members":{ + "freeTierUsages":{"shape":"FreeTierUsages"}, + "nextToken":{"shape":"NextPageToken"} + } + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"GenericString"} + }, + "exception":true, + "fault":true + }, + "MatchOption":{ + "type":"string", + "enum":[ + "EQUALS", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "GREATER_THAN_OR_EQUAL" + ] + }, + "MatchOptions":{ + "type":"list", + "member":{"shape":"MatchOption"} + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "NextPageToken":{ + "type":"string", + "max":8192, + "min":1, + "pattern":"^[\\S\\s]*$" + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"GenericString"} + }, + "exception":true + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"GenericString"} + }, + "exception":true + }, + "Value":{ + "type":"string", + "max":20, + "min":1, + "pattern":"^[ a-zA-Z0-9\\-\\:\\.\\_\\/\\,\\$\\(\\)]*$" + }, + "Values":{ + "type":"list", + "member":{"shape":"Value"}, + "min":1 + } + } +} diff --git a/models/apis/freetier/2023-09-07/docs-2.json b/models/apis/freetier/2023-09-07/docs-2.json new file mode 100644 index 00000000000..666c04661ea --- /dev/null +++ b/models/apis/freetier/2023-09-07/docs-2.json @@ -0,0 +1,133 @@ +{ + "version": "2.0", + "service": "

You can use the Amazon Web Services Free Tier API to query programmatically your Free Tier usage data.

Free Tier tracks your monthly usage data for all free tier offers that are associated with your Amazon Web Services account. You can use the Free Tier API to filter and show only the data that you want.

Service endpoint

The Free Tier API provides the following endpoint:

For more information, see Using the Amazon Web Services Free Tier in the Billing User Guide.

", + "operations": { + "GetFreeTierUsage": "

Returns a list of all Free Tier usage objects that match your filters.

" + }, + "shapes": { + "Dimension": { + "base": null, + "refs": { + "DimensionValues$Key": "

The name of the dimension that you want to filter on.

" + } + }, + "DimensionValues": { + "base": "

Contains the specifications for the filters to use for your request.

", + "refs": { + "Expression$Dimensions": "

The specific dimension, values, and match type to filter objects with.

" + } + }, + "Expression": { + "base": "

Use Expression to filter in the GetFreeTierUsage API operation.

You can use the following patterns:

For simple dimension values, you can set the dimension name, values, and match type for the filters that you plan to use.

Example for simple dimension values

You can filter to match exactly for REGION==us-east-1 OR REGION==us-west-1.

The corresponding Expression appears like the following: { \"Dimensions\": { \"Key\": \"REGION\", \"Values\": [ \"us-east-1\", \"us-west-1\" ], \"MatchOptions\": [\"EQUALS\"] } }

As shown in the previous example, lists of dimension values are combined with OR when you apply the filter.

For complex expressions with logical operators, you can have nested expressions to use the logical operators and specify advanced filtering.

Example for complex expressions with logical operators

You can filter by ((REGION == us-east-1 OR REGION == us-west-1) OR (SERVICE CONTAINS AWSLambda)) AND (USAGE_TYPE !CONTAINS DataTransfer).

The corresponding Expression appears like the following: { \"And\": [ {\"Or\": [ {\"Dimensions\": { \"Key\": \"REGION\", \"Values\": [ \"us-east-1\", \"us-west-1\" ], \"MatchOptions\": [\"EQUALS\"] }}, {\"Dimensions\": { \"Key\": \"SERVICE\", \"Values\": [\"AWSLambda\"], \"MatchOptions\": [\"CONTAINS\"] } } ]}, {\"Not\": {\"Dimensions\": { \"Key\": \"USAGE_TYPE\", \"Values\": [\"DataTransfer\"], \"MatchOptions\": [\"CONTAINS\"] }}} ] }

In the following Contents, you must specify exactly one of the following root operators.

", + "refs": { + "Expression$Not": "

Return results that don’t match the Expression that you specified.

", + "Expressions$member": null, + "GetFreeTierUsageRequest$filter": "

An expression that specifies the conditions that you want each FreeTierUsage object to meet.

" + } + }, + "Expressions": { + "base": null, + "refs": { + "Expression$And": "

Return results that match all Expressions that you specified in the array.

", + "Expression$Or": "

Return results that match any of the Expressions that you specified. in the array.

" + } + }, + "FreeTierUsage": { + "base": "

Consists of a Amazon Web Services Free Tier offer’s metadata and your data usage for the offer.

", + "refs": { + "FreeTierUsages$member": null + } + }, + "FreeTierUsages": { + "base": null, + "refs": { + "GetFreeTierUsageResponse$freeTierUsages": "

The list of Free Tier usage objects that meet your filter expression.

" + } + }, + "GenericDouble": { + "base": null, + "refs": { + "FreeTierUsage$actualUsageAmount": "

Describes the actual usage accrued month-to-day (MTD) that you've used so far.

", + "FreeTierUsage$forecastedUsageAmount": "

Describes the forecasted usage by the month that you're expected to use.

", + "FreeTierUsage$limit": "

Describes the maximum usage allowed in Free Tier.

" + } + }, + "GenericString": { + "base": null, + "refs": { + "FreeTierUsage$description": "

The description of the Free Tier offer.

", + "FreeTierUsage$freeTierType": "

Describes the type of the Free Tier offer. For example, the offer can be \"12 Months Free\", \"Always Free\", and \"Free Trial\".

", + "FreeTierUsage$operation": "

Describes usageType more granularly with the specific Amazon Web Service API operation. For example, this can be the RunInstances API operation for Amazon Elastic Compute Cloud.

", + "FreeTierUsage$region": "

Describes the Amazon Web Services Region for which this offer is applicable

", + "FreeTierUsage$service": "

The name of the Amazon Web Service providing the Free Tier offer. For example, this can be Amazon Elastic Compute Cloud.

", + "FreeTierUsage$unit": "

Describes the unit of the usageType, such as Hrs.

", + "FreeTierUsage$usageType": "

Describes the usage details of the offer. For example, this might be Global-BoxUsage:freetrial.

", + "InternalServerException$message": null, + "ThrottlingException$message": null, + "ValidationException$message": null + } + }, + "GetFreeTierUsageRequest": { + "base": null, + "refs": { + } + }, + "GetFreeTierUsageResponse": { + "base": null, + "refs": { + } + }, + "InternalServerException": { + "base": "

An unexpected error occurred during the processing of your request.

", + "refs": { + } + }, + "MatchOption": { + "base": null, + "refs": { + "MatchOptions$member": null + } + }, + "MatchOptions": { + "base": null, + "refs": { + "DimensionValues$MatchOptions": "

The match options that you can use to filter your results. You can specify only one of these values in the array.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "GetFreeTierUsageRequest$maxResults": "

The maximum number of results to return in the response. MaxResults means that there can be up to the specified number of values, but there might be fewer results based on your filters.

" + } + }, + "NextPageToken": { + "base": null, + "refs": { + "GetFreeTierUsageRequest$nextToken": "

The pagination token that indicates the next set of results to retrieve.

", + "GetFreeTierUsageResponse$nextToken": "

The pagination token that indicates the next set of results to retrieve.

" + } + }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling.

", + "refs": { + } + }, + "ValidationException": { + "base": "

The input fails to satisfy the constraints specified by an Amazon Web Service.

", + "refs": { + } + }, + "Value": { + "base": null, + "refs": { + "Values$member": null + } + }, + "Values": { + "base": null, + "refs": { + "DimensionValues$Values": "

The metadata values you can specify to filter upon, so that the results all match at least one of the specified values.

" + } + } + } +} diff --git a/models/apis/freetier/2023-09-07/endpoint-rule-set-1.json b/models/apis/freetier/2023-09-07/endpoint-rule-set-1.json new file mode 100644 index 00000000000..1d469532530 --- /dev/null +++ b/models/apis/freetier/2023-09-07/endpoint-rule-set-1.json @@ -0,0 +1,392 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://freetier-fips.{Region}.api.aws", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://freetier.us-east-1.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "freetier", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://freetier-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://freetier.cn-northwest-1.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "freetier", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://freetier.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://freetier-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://freetier.cn-northwest-1.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "freetier", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://freetier.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/freetier/2023-09-07/endpoint-tests-1.json b/models/apis/freetier/2023-09-07/endpoint-tests-1.json new file mode 100644 index 00000000000..7d15539bb5b --- /dev/null +++ b/models/apis/freetier/2023-09-07/endpoint-tests-1.json @@ -0,0 +1,170 @@ +{ + "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "freetier", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://freetier.us-east-1.api.aws" + } + }, + "params": { + "Region": "aws-global", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://freetier-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "freetier", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://freetier.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region aws-cn-global with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "freetier", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://freetier.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "aws-cn-global", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://freetier-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://freetier.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://freetier-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://freetier.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/freetier/2023-09-07/examples-1.json b/models/apis/freetier/2023-09-07/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/freetier/2023-09-07/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/freetier/2023-09-07/paginators-1.json b/models/apis/freetier/2023-09-07/paginators-1.json new file mode 100644 index 00000000000..2ccdd2b7008 --- /dev/null +++ b/models/apis/freetier/2023-09-07/paginators-1.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "GetFreeTierUsage": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "freeTierUsages" + } + } +} diff --git a/models/apis/fsx/2018-03-01/api-2.json b/models/apis/fsx/2018-03-01/api-2.json index 7f9a284bb53..13f147daf22 100644 --- a/models/apis/fsx/2018-03-01/api-2.json +++ b/models/apis/fsx/2018-03-01/api-2.json @@ -67,6 +67,22 @@ ], "idempotent":true }, + "CopySnapshotAndUpdateVolume":{ + "name":"CopySnapshotAndUpdateVolume", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopySnapshotAndUpdateVolumeRequest"}, + "output":{"shape":"CopySnapshotAndUpdateVolumeResponse"}, + "errors":[ + {"shape":"BadRequest"}, + {"shape":"IncompatibleParameterError"}, + {"shape":"InternalServerError"}, + {"shape":"ServiceLimitExceeded"} + ], + "idempotent":true + }, "CreateBackup":{ "name":"CreateBackup", "http":{ @@ -463,6 +479,19 @@ {"shape":"InternalServerError"} ] }, + "DescribeSharedVpcConfiguration":{ + "name":"DescribeSharedVpcConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSharedVpcConfigurationRequest"}, + "output":{"shape":"DescribeSharedVpcConfigurationResponse"}, + "errors":[ + {"shape":"BadRequest"}, + {"shape":"InternalServerError"} + ] + }, "DescribeSnapshots":{ "name":"DescribeSnapshots", "http":{ @@ -670,6 +699,20 @@ {"shape":"ServiceLimitExceeded"} ] }, + "UpdateSharedVpcConfiguration":{ + "name":"UpdateSharedVpcConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSharedVpcConfigurationRequest"}, + "output":{"shape":"UpdateSharedVpcConfigurationResponse"}, + "errors":[ + {"shape":"BadRequest"}, + {"shape":"IncompatibleParameterError"}, + {"shape":"InternalServerError"} + ] + }, "UpdateSnapshot":{ "name":"UpdateSnapshot", "http":{ @@ -775,7 +818,9 @@ "TargetFileSystemValues":{"shape":"FileSystem"}, "FailureDetails":{"shape":"AdministrativeActionFailureDetails"}, "TargetVolumeValues":{"shape":"Volume"}, - "TargetSnapshotValues":{"shape":"Snapshot"} + "TargetSnapshotValues":{"shape":"Snapshot"}, + "TotalTransferBytes":{"shape":"TotalTransferBytes"}, + "RemainingTransferBytes":{"shape":"RemainingTransferBytes"} } }, "AdministrativeActionFailureDetails":{ @@ -798,7 +843,9 @@ "THROUGHPUT_OPTIMIZATION", "IOPS_OPTIMIZATION", "STORAGE_TYPE_OPTIMIZATION", - "MISCONFIGURED_STATE_RECOVERY" + "MISCONFIGURED_STATE_RECOVERY", + "VOLUME_UPDATE_WITH_SNAPSHOT", + "VOLUME_INITIALIZE_WITH_SNAPSHOT" ] }, "AdministrativeActions":{ @@ -806,6 +853,29 @@ "member":{"shape":"AdministrativeAction"}, "max":50 }, + "Aggregate":{ + "type":"string", + "max":6, + "min":5, + "pattern":"^(aggr[0-9]{1,2})$" + }, + "AggregateConfiguration":{ + "type":"structure", + "members":{ + "Aggregates":{"shape":"Aggregates"}, + "TotalConstituents":{"shape":"TotalConstituents"} + } + }, + "AggregateListMultiplier":{ + "type":"integer", + "max":200, + "min":1 + }, + "Aggregates":{ + "type":"list", + "member":{"shape":"Aggregate"}, + "max":6 + }, "Alias":{ "type":"structure", "members":{ @@ -1085,7 +1155,39 @@ "Backup":{"shape":"Backup"} } }, + "CopySnapshotAndUpdateVolumeRequest":{ + "type":"structure", + "required":[ + "VolumeId", + "SourceSnapshotARN" + ], + "members":{ + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + }, + "VolumeId":{"shape":"VolumeId"}, + "SourceSnapshotARN":{"shape":"ResourceARN"}, + "CopyStrategy":{"shape":"OpenZFSCopyStrategy"}, + "Options":{"shape":"UpdateOpenZFSVolumeOptions"} + } + }, + "CopySnapshotAndUpdateVolumeResponse":{ + "type":"structure", + "members":{ + "VolumeId":{"shape":"VolumeId"}, + "Lifecycle":{"shape":"VolumeLifecycle"}, + "AdministrativeActions":{"shape":"AdministrativeActions"} + } + }, "CopyTagsToDataRepositoryAssociations":{"type":"boolean"}, + "CreateAggregateConfiguration":{ + "type":"structure", + "members":{ + "Aggregates":{"shape":"Aggregates"}, + "ConstituentsPerAggregate":{"shape":"AggregateListMultiplier"} + } + }, "CreateBackupRequest":{ "type":"structure", "members":{ @@ -1258,10 +1360,7 @@ }, "CreateFileSystemOntapConfiguration":{ "type":"structure", - "required":[ - "DeploymentType", - "ThroughputCapacity" - ], + "required":["DeploymentType"], "members":{ "AutomaticBackupRetentionDays":{"shape":"AutomaticBackupRetentionDays"}, "DailyAutomaticBackupStartTime":{"shape":"DailyTime"}, @@ -1272,7 +1371,9 @@ "PreferredSubnetId":{"shape":"SubnetId"}, "RouteTableIds":{"shape":"RouteTableIds"}, "ThroughputCapacity":{"shape":"MegabytesPerSecond"}, - "WeeklyMaintenanceStartTime":{"shape":"WeeklyTime"} + "WeeklyMaintenanceStartTime":{"shape":"WeeklyTime"}, + "HAPairs":{"shape":"HAPairs"}, + "ThroughputCapacityPerHAPair":{"shape":"ThroughputCapacityPerHAPair"} } }, "CreateFileSystemOpenZFSConfiguration":{ @@ -1348,21 +1449,25 @@ }, "CreateOntapVolumeConfiguration":{ "type":"structure", - "required":[ - "SizeInMegabytes", - "StorageVirtualMachineId" - ], + "required":["StorageVirtualMachineId"], "members":{ "JunctionPath":{"shape":"JunctionPath"}, "SecurityStyle":{"shape":"SecurityStyle"}, - "SizeInMegabytes":{"shape":"VolumeCapacity"}, + "SizeInMegabytes":{ + "shape":"VolumeCapacity", + "deprecated":true, + "deprecatedMessage":"This property is deprecated, use SizeInBytes instead" + }, "StorageEfficiencyEnabled":{"shape":"Flag"}, "StorageVirtualMachineId":{"shape":"StorageVirtualMachineId"}, "TieringPolicy":{"shape":"TieringPolicy"}, "OntapVolumeType":{"shape":"InputOntapVolumeType"}, "SnapshotPolicy":{"shape":"SnapshotPolicy"}, "CopyTagsToBackups":{"shape":"Flag"}, - "SnaplockConfiguration":{"shape":"CreateSnaplockConfiguration"} + "SnaplockConfiguration":{"shape":"CreateSnaplockConfiguration"}, + "VolumeStyle":{"shape":"VolumeStyle"}, + "AggregateConfiguration":{"shape":"CreateAggregateConfiguration"}, + "SizeInBytes":{"shape":"VolumeCapacityBytes"} } }, "CreateOpenZFSOriginSnapshotConfiguration":{ @@ -2048,6 +2153,17 @@ "NextToken":{"shape":"NextToken"} } }, + "DescribeSharedVpcConfigurationRequest":{ + "type":"structure", + "members":{ + } + }, + "DescribeSharedVpcConfigurationResponse":{ + "type":"structure", + "members":{ + "EnableFsxRouteTableUpdatesFromParticipantAccounts":{"shape":"VerboseFlag"} + } + }, "DescribeSnapshotsRequest":{ "type":"structure", "members":{ @@ -2484,6 +2600,11 @@ "min":8, "pattern":"^arn:[^:]{1,63}:[^:]{0,63}:[^:]{0,63}:(?:|\\d{12}):[^/].{0,1023}$" }, + "HAPairs":{ + "type":"integer", + "max":6, + "min":1 + }, "IncompatibleParameterError":{ "type":"structure", "required":["Parameter"], @@ -2591,7 +2712,7 @@ }, "Iops":{ "type":"long", - "max":1000000, + "max":2400000, "min":0 }, "IpAddress":{ @@ -2823,13 +2944,14 @@ "type":"string", "enum":[ "MULTI_AZ_1", - "SINGLE_AZ_1" + "SINGLE_AZ_1", + "SINGLE_AZ_2" ] }, "OntapEndpointIpAddresses":{ "type":"list", "member":{"shape":"IpAddress"}, - "max":2, + "max":24, "min":1 }, "OntapFileSystemConfiguration":{ @@ -2845,7 +2967,9 @@ "RouteTableIds":{"shape":"RouteTableIds"}, "ThroughputCapacity":{"shape":"MegabytesPerSecond"}, "WeeklyMaintenanceStartTime":{"shape":"WeeklyTime"}, - "FsxAdminPassword":{"shape":"AdminPassword"} + "FsxAdminPassword":{"shape":"AdminPassword"}, + "HAPairs":{"shape":"HAPairs"}, + "ThroughputCapacityPerHAPair":{"shape":"ThroughputCapacityPerHAPair"} } }, "OntapVolumeConfiguration":{ @@ -2863,7 +2987,10 @@ "OntapVolumeType":{"shape":"OntapVolumeType"}, "SnapshotPolicy":{"shape":"SnapshotPolicy"}, "CopyTagsToBackups":{"shape":"Flag"}, - "SnaplockConfiguration":{"shape":"SnaplockConfiguration"} + "SnaplockConfiguration":{"shape":"SnaplockConfiguration"}, + "VolumeStyle":{"shape":"VolumeStyle"}, + "AggregateConfiguration":{"shape":"AggregateConfiguration"}, + "SizeInBytes":{"shape":"VolumeCapacityBytes"} } }, "OntapVolumeType":{ @@ -2900,7 +3027,8 @@ "type":"string", "enum":[ "CLONE", - "FULL_COPY" + "FULL_COPY", + "INCREMENTAL_COPY" ] }, "OpenZFSCreateRootVolumeConfiguration":{ @@ -3020,7 +3148,10 @@ "UserAndGroupQuotas":{"shape":"OpenZFSUserAndGroupQuotas"}, "RestoreToSnapshot":{"shape":"SnapshotId"}, "DeleteIntermediateSnaphots":{"shape":"Flag"}, - "DeleteClonedVolumes":{"shape":"Flag"} + "DeleteClonedVolumes":{"shape":"Flag"}, + "DeleteIntermediateData":{"shape":"Flag"}, + "SourceSnapshotARN":{"shape":"ResourceARN"}, + "DestinationSnapshot":{"shape":"SnapshotId"} } }, "OrganizationalUnitDistinguishedName":{ @@ -3082,6 +3213,10 @@ } }, "ReleasedCapacity":{"type":"long"}, + "RemainingTransferBytes":{ + "type":"long", + "min":0 + }, "ReportFormat":{ "type":"string", "enum":["REPORT_CSV_20191124"] @@ -3664,6 +3799,11 @@ "member":{"shape":"TaskId"}, "max":50 }, + "ThroughputCapacityPerHAPair":{ + "type":"integer", + "max":6144, + "min":128 + }, "TieringPolicy":{ "type":"structure", "members":{ @@ -3680,7 +3820,16 @@ "NONE" ] }, + "TotalConstituents":{ + "type":"integer", + "max":200, + "min":1 + }, "TotalCount":{"type":"long"}, + "TotalTransferBytes":{ + "type":"long", + "min":0 + }, "UUID":{ "type":"string", "max":36, @@ -3779,7 +3928,8 @@ "DiskIopsConfiguration":{"shape":"DiskIopsConfiguration"}, "ThroughputCapacity":{"shape":"MegabytesPerSecond"}, "AddRouteTableIds":{"shape":"RouteTableIds"}, - "RemoveRouteTableIds":{"shape":"RouteTableIds"} + "RemoveRouteTableIds":{"shape":"RouteTableIds"}, + "ThroughputCapacityPerHAPair":{"shape":"ThroughputCapacityPerHAPair"} } }, "UpdateFileSystemOpenZFSConfiguration":{ @@ -3841,7 +3991,8 @@ "TieringPolicy":{"shape":"TieringPolicy"}, "SnapshotPolicy":{"shape":"SnapshotPolicy"}, "CopyTagsToBackups":{"shape":"Flag"}, - "SnaplockConfiguration":{"shape":"UpdateSnaplockConfiguration"} + "SnaplockConfiguration":{"shape":"UpdateSnaplockConfiguration"}, + "SizeInBytes":{"shape":"VolumeCapacityBytes"} } }, "UpdateOpenZFSVolumeConfiguration":{ @@ -3856,6 +4007,34 @@ "ReadOnly":{"shape":"ReadOnly"} } }, + "UpdateOpenZFSVolumeOption":{ + "type":"string", + "enum":[ + "DELETE_INTERMEDIATE_SNAPSHOTS", + "DELETE_CLONED_VOLUMES", + "DELETE_INTERMEDIATE_DATA" + ] + }, + "UpdateOpenZFSVolumeOptions":{ + "type":"list", + "member":{"shape":"UpdateOpenZFSVolumeOption"} + }, + "UpdateSharedVpcConfigurationRequest":{ + "type":"structure", + "members":{ + "EnableFsxRouteTableUpdatesFromParticipantAccounts":{"shape":"VerboseFlag"}, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "UpdateSharedVpcConfigurationResponse":{ + "type":"structure", + "members":{ + "EnableFsxRouteTableUpdatesFromParticipantAccounts":{"shape":"VerboseFlag"} + } + }, "UpdateSnaplockConfiguration":{ "type":"structure", "members":{ @@ -3937,6 +4116,12 @@ "type":"long", "min":0 }, + "VerboseFlag":{ + "type":"string", + "max":5, + "min":4, + "pattern":"^(?i)(true|false)$" + }, "Volume":{ "type":"structure", "members":{ @@ -3956,7 +4141,12 @@ }, "VolumeCapacity":{ "type":"integer", - "max":314572800, + "max":2147483647, + "min":0 + }, + "VolumeCapacityBytes":{ + "type":"long", + "max":22517998000000000, "min":0 }, "VolumeFilter":{ @@ -4031,6 +4221,13 @@ "min":1, "pattern":"^[A-za-z0-9\\_\\.\\:\\-\\/]*$" }, + "VolumeStyle":{ + "type":"string", + "enum":[ + "FLEXVOL", + "FLEXGROUP" + ] + }, "VolumeType":{ "type":"string", "enum":[ diff --git a/models/apis/fsx/2018-03-01/docs-2.json b/models/apis/fsx/2018-03-01/docs-2.json index c98a1ea9762..7de31768747 100644 --- a/models/apis/fsx/2018-03-01/docs-2.json +++ b/models/apis/fsx/2018-03-01/docs-2.json @@ -5,6 +5,7 @@ "AssociateFileSystemAliases": "

Use this action to associate one or more Domain Name Server (DNS) aliases with an existing Amazon FSx for Windows File Server file system. A file system can have a maximum of 50 DNS aliases associated with it at any one time. If you try to associate a DNS alias that is already associated with the file system, FSx takes no action on that alias in the request. For more information, see Working with DNS Aliases and Walkthrough 5: Using DNS aliases to access your file system, including additional steps you must take to be able to access your file system using a DNS alias.

The system response shows the DNS aliases that Amazon FSx is attempting to associate with the file system. Use the API operation to monitor the status of the aliases Amazon FSx is associating with the file system.

", "CancelDataRepositoryTask": "

Cancels an existing Amazon FSx for Lustre data repository task if that task is in either the PENDING or EXECUTING state. When you cancel am export task, Amazon FSx does the following.

For a release task, Amazon FSx will stop releasing files upon cancellation. Any files that have already been released will remain in the released state.

", "CopyBackup": "

Copies an existing backup within the same Amazon Web Services account to another Amazon Web Services Region (cross-Region copy) or within the same Amazon Web Services Region (in-Region copy). You can have up to five backup copy requests in progress to a single destination Region per account.

You can use cross-Region backup copies for cross-Region disaster recovery. You can periodically take backups and copy them to another Region so that in the event of a disaster in the primary Region, you can restore from backup and recover availability quickly in the other Region. You can make cross-Region copies only within your Amazon Web Services partition. A partition is a grouping of Regions. Amazon Web Services currently has three partitions: aws (Standard Regions), aws-cn (China Regions), and aws-us-gov (Amazon Web Services GovCloud [US] Regions).

You can also use backup copies to clone your file dataset to another Region or within the same Region.

You can use the SourceRegion parameter to specify the Amazon Web Services Region from which the backup will be copied. For example, if you make the call from the us-west-1 Region and want to copy a backup from the us-east-2 Region, you specify us-east-2 in the SourceRegion parameter to make a cross-Region copy. If you don't specify a Region, the backup copy is created in the same Region where the request is sent from (in-Region copy).

For more information about creating backup copies, see Copying backups in the Amazon FSx for Windows User Guide, Copying backups in the Amazon FSx for Lustre User Guide, and Copying backups in the Amazon FSx for OpenZFS User Guide.

", + "CopySnapshotAndUpdateVolume": "

Updates an existing volume by using a snapshot from another Amazon FSx for OpenZFS file system. For more information, see on-demand data replication in the Amazon FSx for OpenZFS User Guide.

", "CreateBackup": "

Creates a backup of an existing Amazon FSx for Windows File Server file system, Amazon FSx for Lustre file system, Amazon FSx for NetApp ONTAP volume, or Amazon FSx for OpenZFS file system. We recommend creating regular backups so that you can restore a file system or volume from a backup if an issue arises with the original file system or volume.

For Amazon FSx for Lustre file systems, you can create a backup only for file systems that have the following configuration:

For more information about backups, see the following:

If a backup with the specified client request token exists and the parameters match, this operation returns the description of the existing backup. If a backup with the specified client request token exists and the parameters don't match, this operation returns IncompatibleParameterError. If a backup with the specified client request token doesn't exist, CreateBackup does the following:

By using the idempotent operation, you can retry a CreateBackup operation without the risk of creating an extra backup. This approach can be useful when an initial call fails in a way that makes it unclear whether a backup was created. If you use the same client request token and the initial call created a backup, the operation returns a successful result because all the parameters are the same.

The CreateBackup operation returns while the backup's lifecycle state is still CREATING. You can check the backup creation status by calling the DescribeBackups operation, which returns the backup state along with other information.

", "CreateDataRepositoryAssociation": "

Creates an Amazon FSx for Lustre data repository association (DRA). A data repository association is a link between a directory on the file system and an Amazon S3 bucket or prefix. You can have a maximum of 8 data repository associations on a file system. Data repository associations are supported on all FSx for Lustre 2.12 and 2.15 file systems, excluding scratch_1 deployment type.

Each data repository association must have a unique Amazon FSx file system directory and a unique S3 bucket or prefix associated with it. You can configure a data repository association for automatic import only, for automatic export only, or for both. To learn more about linking a data repository to your file system, see Linking your file system to an S3 bucket.

CreateDataRepositoryAssociation isn't supported on Amazon File Cache resources. To create a DRA on Amazon File Cache, use the CreateFileCache operation.

", "CreateDataRepositoryTask": "

Creates an Amazon FSx for Lustre data repository task. A CreateDataRepositoryTask operation will fail if a data repository is not linked to the FSx file system.

You use import and export data repository tasks to perform bulk operations between your FSx for Lustre file system and its linked data repositories. An example of a data repository task is exporting any data and metadata changes, including POSIX metadata, to files, directories, and symbolic links (symlinks) from your FSx file system to a linked data repository.

You use release data repository tasks to release data from your file system for files that are exported to S3. The metadata of released files remains on the file system so users or applications can still access released files by reading the files again, which will restore data from Amazon S3 to the FSx for Lustre file system.

To learn more about data repository tasks, see Data Repository Tasks. To learn more about linking a data repository to your file system, see Linking your file system to an S3 bucket.

", @@ -28,10 +29,11 @@ "DescribeFileCaches": "

Returns the description of a specific Amazon File Cache resource, if a FileCacheIds value is provided for that cache. Otherwise, it returns descriptions of all caches owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all cache descriptions, you can optionally specify the MaxResults parameter to limit the number of descriptions in a response. If more cache descriptions remain, the operation returns a NextToken value in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

This operation is used in an iterative process to retrieve a list of your cache descriptions. DescribeFileCaches is called first without a NextTokenvalue. Then the operation continues to be called with the NextToken parameter set to the value of the last NextToken value until a response has no NextToken.

When using this operation, keep the following in mind:

", "DescribeFileSystemAliases": "

Returns the DNS aliases that are associated with the specified Amazon FSx for Windows File Server file system. A history of all DNS aliases that have been associated with and disassociated from the file system is available in the list of AdministrativeAction provided in the DescribeFileSystems operation response.

", "DescribeFileSystems": "

Returns the description of specific Amazon FSx file systems, if a FileSystemIds value is provided for that file system. Otherwise, it returns descriptions of all file systems owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all file system descriptions, you can optionally specify the MaxResults parameter to limit the number of descriptions in a response. If more file system descriptions remain, Amazon FSx returns a NextToken value in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

This operation is used in an iterative process to retrieve a list of your file system descriptions. DescribeFileSystems is called first without a NextTokenvalue. Then the operation continues to be called with the NextToken parameter set to the value of the last NextToken value until a response has no NextToken.

When using this operation, keep the following in mind:

", + "DescribeSharedVpcConfiguration": "

Indicates whether participant accounts in your organization can create Amazon FSx for NetApp ONTAP Multi-AZ file systems in subnets that are shared by a virtual private cloud (VPC) owner. For more information, see the Amazon FSx for NetApp ONTAP User Guide.

", "DescribeSnapshots": "

Returns the description of specific Amazon FSx for OpenZFS snapshots, if a SnapshotIds value is provided. Otherwise, this operation returns all snapshots owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all snapshots, you can optionally specify the MaxResults parameter to limit the number of snapshots in a response. If more backups remain, Amazon FSx returns a NextToken value in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

Use this operation in an iterative process to retrieve a list of your snapshots. DescribeSnapshots is called first without a NextToken value. Then the operation continues to be called with the NextToken parameter set to the value of the last NextToken value until a response has no NextToken value.

When using this operation, keep the following in mind:

", "DescribeStorageVirtualMachines": "

Describes one or more Amazon FSx for NetApp ONTAP storage virtual machines (SVMs).

", "DescribeVolumes": "

Describes one or more Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volumes.

", - "DisassociateFileSystemAliases": "

Use this action to disassociate, or remove, one or more Domain Name Service (DNS) aliases from an Amazon FSx for Windows File Server file system. If you attempt to disassociate a DNS alias that is not associated with the file system, Amazon FSx responds with a 400 Bad Request. For more information, see Working with DNS Aliases.

The system generated response showing the DNS aliases that Amazon FSx is attempting to disassociate from the file system. Use the API operation to monitor the status of the aliases Amazon FSx is disassociating with the file system.

", + "DisassociateFileSystemAliases": "

Use this action to disassociate, or remove, one or more Domain Name Service (DNS) aliases from an Amazon FSx for Windows File Server file system. If you attempt to disassociate a DNS alias that is not associated with the file system, Amazon FSx responds with an HTTP status code 400 (Bad Request). For more information, see Working with DNS Aliases.

The system generated response showing the DNS aliases that Amazon FSx is attempting to disassociate from the file system. Use the API operation to monitor the status of the aliases Amazon FSx is disassociating with the file system.

", "ListTagsForResource": "

Lists tags for Amazon FSx resources.

When retrieving all tags, you can optionally specify the MaxResults parameter to limit the number of tags in a response. If more tags remain, Amazon FSx returns a NextToken value in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

This action is used in an iterative process to retrieve a list of your tags. ListTagsForResource is called first without a NextTokenvalue. Then the action continues to be called with the NextToken parameter set to the value of the last NextToken value until a response has no NextToken.

When using this action, keep the following in mind:

", "ReleaseFileSystemNfsV3Locks": "

Releases the file system lock from an Amazon FSx for OpenZFS file system.

", "RestoreVolumeFromSnapshot": "

Returns an Amazon FSx for OpenZFS volume to the state saved by the specified snapshot.

", @@ -40,7 +42,8 @@ "UntagResource": "

This action removes a tag from an Amazon FSx resource.

", "UpdateDataRepositoryAssociation": "

Updates the configuration of an existing data repository association on an Amazon FSx for Lustre file system. Data repository associations are supported on all FSx for Lustre 2.12 and 2.15 file systems, excluding scratch_1 deployment type.

", "UpdateFileCache": "

Updates the configuration of an existing Amazon File Cache resource. You can update multiple properties in a single request.

", - "UpdateFileSystem": "

Use this operation to update the configuration of an existing Amazon FSx file system. You can update multiple properties in a single request.

For FSx for Windows File Server file systems, you can update the following properties:

For FSx for Lustre file systems, you can update the following properties:

For FSx for ONTAP file systems, you can update the following properties:

For FSx for OpenZFS file systems, you can update the following properties:

", + "UpdateFileSystem": "

Use this operation to update the configuration of an existing Amazon FSx file system. You can update multiple properties in a single request.

For FSx for Windows File Server file systems, you can update the following properties:

For FSx for Lustre file systems, you can update the following properties:

For FSx for ONTAP file systems, you can update the following properties:

For FSx for OpenZFS file systems, you can update the following properties:

", + "UpdateSharedVpcConfiguration": "

Configures whether participant accounts in your organization can create Amazon FSx for NetApp ONTAP Multi-AZ file systems in subnets that are shared by a virtual private cloud (VPC) owner. For more information, see the Amazon FSx for NetApp ONTAP User Guide.

We strongly recommend that participant-created Multi-AZ file systems in the shared VPC are deleted before you disable this feature. Once the feature is disabled, these file systems will enter a MISCONFIGURED state and behave like Single-AZ file systems. For more information, see Important considerations before disabling shared VPC support for Multi-AZ file systems.

", "UpdateSnapshot": "

Updates the name of an Amazon FSx for OpenZFS snapshot.

", "UpdateStorageVirtualMachine": "

Updates an FSx for ONTAP storage virtual machine (SVM).

", "UpdateVolume": "

Updates the configuration of an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volume.

" @@ -92,7 +95,7 @@ } }, "AdministrativeAction": { - "base": "

Describes a specific Amazon FSx administrative action for the current Windows, Lustre, or OpenZFS file system.

", + "base": "

Describes a specific Amazon FSx administrative action for the current Windows, Lustre, OpenZFS, or ONTAP file system or volume.

", "refs": { "AdministrativeActions$member": null } @@ -104,7 +107,7 @@ } }, "AdministrativeActionType": { - "base": "

Describes the type of administrative action, as follows:

", + "base": "

Describes the type of administrative action, as follows:

", "refs": { "AdministrativeAction$AdministrativeActionType": null } @@ -112,12 +115,38 @@ "AdministrativeActions": { "base": null, "refs": { + "CopySnapshotAndUpdateVolumeResponse$AdministrativeActions": "

A list of administrative actions for the file system that are in process or waiting to be processed. Administrative actions describe changes to the Amazon FSx system.

", "FileSystem$AdministrativeActions": "

A list of administrative actions for the file system that are in process or waiting to be processed. Administrative actions describe changes to the Amazon FSx system that you have initiated using the UpdateFileSystem operation.

", "RestoreVolumeFromSnapshotResponse$AdministrativeActions": "

A list of administrative actions for the file system that are in process or waiting to be processed. Administrative actions describe changes to the Amazon FSx system.

", "Snapshot$AdministrativeActions": "

A list of administrative actions for the file system that are in process or waiting to be processed. Administrative actions describe changes to the Amazon FSx system.

", "Volume$AdministrativeActions": "

A list of administrative actions for the volume that are in process or waiting to be processed. Administrative actions describe changes to the volume that you have initiated using the UpdateVolume action.

" } }, + "Aggregate": { + "base": null, + "refs": { + "Aggregates$member": null + } + }, + "AggregateConfiguration": { + "base": "

Used to specify configuration options for a volume’s storage aggregate or aggregates.

", + "refs": { + "OntapVolumeConfiguration$AggregateConfiguration": "

This structure specifies configuration options for a volume’s storage aggregate or aggregates.

" + } + }, + "AggregateListMultiplier": { + "base": null, + "refs": { + "CreateAggregateConfiguration$ConstituentsPerAggregate": "

Used to explicitly set the number of constituents within the FlexGroup per storage aggregate. This field is optional when creating a FlexGroup volume. If unspecified, the default value will be 8. This field cannot be provided when creating a FlexVol volume.

" + } + }, + "Aggregates": { + "base": null, + "refs": { + "AggregateConfiguration$Aggregates": "

The list of aggregates that this volume resides on. Aggregates are storage pools which make up your primary storage tier. Each high-availability (HA) pair has one aggregate. The names of the aggregates map to the names of the aggregates in the ONTAP CLI and REST API. For FlexVols, there will always be a single entry.

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

", + "CreateAggregateConfiguration$Aggregates": "

Used to specify the names of aggregates on which the volume will be created.

" + } + }, "Alias": { "base": "

A DNS alias that is associated with the file system. You can use a DNS alias to access a file system using user-defined DNS names, in addition to the default DNS name that Amazon FSx assigns to the file system. For more information, see DNS aliases in the FSx for Windows File Server User Guide.

", "refs": { @@ -346,6 +375,7 @@ "refs": { "AssociateFileSystemAliasesRequest$ClientRequestToken": null, "CopyBackupRequest$ClientRequestToken": null, + "CopySnapshotAndUpdateVolumeRequest$ClientRequestToken": null, "CreateBackupRequest$ClientRequestToken": "

(Optional) A string of up to 63 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", "CreateDataRepositoryAssociationRequest$ClientRequestToken": null, "CreateDataRepositoryTaskRequest$ClientRequestToken": null, @@ -371,6 +401,7 @@ "UpdateDataRepositoryAssociationRequest$ClientRequestToken": null, "UpdateFileCacheRequest$ClientRequestToken": null, "UpdateFileSystemRequest$ClientRequestToken": "

A string of up to 63 ASCII characters that Amazon FSx uses to ensure idempotent updates. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", + "UpdateSharedVpcConfigurationRequest$ClientRequestToken": null, "UpdateSnapshotRequest$ClientRequestToken": null, "UpdateStorageVirtualMachineRequest$ClientRequestToken": null, "UpdateVolumeRequest$ClientRequestToken": null @@ -399,6 +430,16 @@ "refs": { } }, + "CopySnapshotAndUpdateVolumeRequest": { + "base": null, + "refs": { + } + }, + "CopySnapshotAndUpdateVolumeResponse": { + "base": null, + "refs": { + } + }, "CopyTagsToDataRepositoryAssociations": { "base": null, "refs": { @@ -406,6 +447,12 @@ "FileCacheCreating$CopyTagsToDataRepositoryAssociations": "

A boolean flag indicating whether tags for the cache should be copied to data repository associations.

" } }, + "CreateAggregateConfiguration": { + "base": "

Used to specify the configuration options for a volume's storage aggregate or aggregates.

", + "refs": { + "CreateOntapVolumeConfiguration$AggregateConfiguration": "

Use to specify configuration options for a volume’s storage aggregate or aggregates.

" + } + }, "CreateBackupRequest": { "base": "

The request object for the CreateBackup operation.

", "refs": { @@ -513,7 +560,7 @@ } }, "CreateOpenZFSOriginSnapshotConfiguration": { - "base": "

The snapshot configuration to use when creating an OpenZFS volume from a snapshot.

", + "base": "

The snapshot configuration to use when creating an Amazon FSx for OpenZFS volume from a snapshot.

", "refs": { "CreateOpenZFSVolumeConfiguration$OriginSnapshot": "

The configuration object that specifies the snapshot to use as the origin of the data for the volume.

" } @@ -996,6 +1043,16 @@ "refs": { } }, + "DescribeSharedVpcConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DescribeSharedVpcConfigurationResponse": { + "base": null, + "refs": { + } + }, "DescribeSnapshotsRequest": { "base": null, "refs": { @@ -1275,7 +1332,7 @@ "FileSystem": { "base": "

A description of a specific Amazon FSx file system.

", "refs": { - "AdministrativeAction$TargetFileSystemValues": "

Describes the target value for the administration action, provided in the UpdateFileSystem operation. Returned for FILE_SYSTEM_UPDATE administrative actions.

", + "AdministrativeAction$TargetFileSystemValues": "

The target value for the administration action, provided in the UpdateFileSystem operation. Returned for FILE_SYSTEM_UPDATE administrative actions.

", "Backup$FileSystem": "

The metadata of the file system associated with the backup. This metadata is persisted even if the file system is deleted.

", "CreateFileSystemFromBackupResponse$FileSystem": "

A description of the file system.

", "CreateFileSystemResponse$FileSystem": "

The configuration of the file system that was created.

", @@ -1450,6 +1507,7 @@ "OpenZFSVolumeConfiguration$CopyTagsToSnapshots": "

A Boolean value indicating whether tags for the volume should be copied to snapshots. This value defaults to false. If it's set to true, all tags for the volume are copied to snapshots where the user doesn't specify tags. If this value is true and you specify one or more tags, only the specified tags are copied to snapshots. If you specify one or more tags when creating the snapshot, no tags are copied from the volume, regardless of this value.

", "OpenZFSVolumeConfiguration$DeleteIntermediateSnaphots": "

A Boolean value indicating whether snapshots between the current state and the specified snapshot should be deleted when a volume is restored from snapshot.

", "OpenZFSVolumeConfiguration$DeleteClonedVolumes": "

A Boolean value indicating whether dependent clone volumes created from intermediate snapshots should be deleted when a volume is restored from snapshot.

", + "OpenZFSVolumeConfiguration$DeleteIntermediateData": "

A Boolean value indicating whether snapshot data that differs between the current state and the specified snapshot should be overwritten when a volume is restored from a snapshot.

", "SnaplockConfiguration$AuditLogVolume": "

Enables or disables the audit log volume for an FSx for ONTAP SnapLock volume. The default value is false. If you set AuditLogVolume to true, the SnapLock volume is created as an audit log volume. The minimum retention period for an audit log volume is six months.

For more information, see SnapLock audit log volumes.

", "SnaplockConfiguration$VolumeAppendModeEnabled": "

Enables or disables volume-append mode on an FSx for ONTAP SnapLock volume. Volume-append mode allows you to create WORM-appendable files and write data to them incrementally. The default value is false.

For more information, see Volume-append mode.

", "UpdateFileSystemOpenZFSConfiguration$CopyTagsToBackups": "

A Boolean value indicating whether tags for the file system should be copied to backups. This value defaults to false. If it's set to true, all tags for the file system are copied to all automatic and user-initiated backups where the user doesn't specify tags. If this value is true and you specify one or more tags, only the specified tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are copied from the file system, regardless of this value.

", @@ -1476,6 +1534,13 @@ "WindowsAuditLogCreateConfiguration$AuditLogDestination": "

The Amazon Resource Name (ARN) that specifies the destination of the audit logs.

The destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis Data Firehose delivery stream ARN, with the following requirements:

" } }, + "HAPairs": { + "base": null, + "refs": { + "CreateFileSystemOntapConfiguration$HAPairs": "

Specifies how many high-availability (HA) pairs the file system will have. The default value is 1. The value of this property affects the values of StorageCapacity, Iops, and ThroughputCapacity. For more information, see High-availability (HA) pairs in the FSx for ONTAP user guide.

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

", + "OntapFileSystemConfiguration$HAPairs": "

Specifies how many high-availability (HA) file server pairs the file system will have. The default value is 1. The value of this property affects the values of StorageCapacity, Iops, and ThroughputCapacity. For more information, see High-availability (HA) pairs in the FSx for ONTAP user guide.

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

" + } + }, "IncompatibleParameterError": { "base": "

The error returned when a second request is received with the same client request token but different parameters settings. A client request token should always uniquely identify a single request.

", "refs": { @@ -1567,7 +1632,7 @@ "Iops": { "base": null, "refs": { - "DiskIopsConfiguration$Iops": "

The total number of SSD IOPS provisioned for the file system.

" + "DiskIopsConfiguration$Iops": "

The total number of SSD IOPS provisioned for the file system.

The minimum and maximum values for this property depend on the value of HAPairs and StorageCapacity. The minimum value is calculated as StorageCapacity * 3 * HAPairs (3 IOPS per GB of StorageCapacity). The maximum value is calculated as 200,000 * HAPairs.

Amazon FSx responds with an HTTP status code 400 (Bad Request) if the value of Iops is outside of the minimum or maximum values.

" } }, "IpAddress": { @@ -1734,12 +1799,12 @@ "MegabytesPerSecond": { "base": "

The sustained throughput of an Amazon FSx file system in Megabytes per second (MBps).

", "refs": { - "CreateFileSystemOntapConfiguration$ThroughputCapacity": "

Sets the throughput capacity for the file system that you're creating. Valid values are 128, 256, 512, 1024, 2048, and 4096 MBps.

", + "CreateFileSystemOntapConfiguration$ThroughputCapacity": "

Sets the throughput capacity for the file system that you're creating in megabytes per second (MBps). For more information, see Managing throughput capacity in the FSx for ONTAP User Guide.

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

", "CreateFileSystemOpenZFSConfiguration$ThroughputCapacity": "

Specifies the throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second (MBps). Valid values depend on the DeploymentType you choose, as follows:

You pay for additional throughput capacity that you provision.

", "CreateFileSystemWindowsConfiguration$ThroughputCapacity": "

Sets the throughput capacity of an Amazon FSx file system, measured in megabytes per second (MB/s), in 2 to the nth increments, between 2^3 (8) and 2^11 (2048).

", "OntapFileSystemConfiguration$ThroughputCapacity": null, "OpenZFSFileSystemConfiguration$ThroughputCapacity": "

The throughput of an Amazon FSx file system, measured in megabytes per second (MBps).

", - "UpdateFileSystemOntapConfiguration$ThroughputCapacity": "

Enter a new value to change the amount of throughput capacity for the file system. Throughput capacity is measured in megabytes per second (MBps). Valid values are 128, 256, 512, 1024, 2048, and 4096 MBps. For more information, see Managing throughput capacity in the FSx for ONTAP User Guide.

", + "UpdateFileSystemOntapConfiguration$ThroughputCapacity": "

Enter a new value to change the amount of throughput capacity for the file system in megabytes per second (MBps). For more information, see Managing throughput capacity in the FSx for ONTAP User Guide.

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

", "UpdateFileSystemOpenZFSConfiguration$ThroughputCapacity": "

The throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second
 (MB/s). Valid values depend on the DeploymentType you choose, as follows:

", "UpdateFileSystemWindowsConfiguration$ThroughputCapacity": "

Sets the target value for a file system's throughput capacity, in MB/s, that you are updating the file system to. Valid values are 8, 16, 32, 64, 128, 256, 512, 1024, 2048. You cannot make a throughput capacity update request if there is an existing throughput capacity update request in progress. For more information, see Managing Throughput Capacity.

", "WindowsFileSystemConfiguration$ThroughputCapacity": "

The throughput of the Amazon FSx file system, measured in megabytes per second.

" @@ -1844,8 +1909,8 @@ "OntapDeploymentType": { "base": null, "refs": { - "CreateFileSystemOntapConfiguration$DeploymentType": "

Specifies the FSx for ONTAP file system deployment type to use in creating the file system.

For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing a file system deployment type.

", - "OntapFileSystemConfiguration$DeploymentType": "

Specifies the FSx for ONTAP file system deployment type in use in the file system.

For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing Multi-AZ or Single-AZ file system deployment.

" + "CreateFileSystemOntapConfiguration$DeploymentType": "

Specifies the FSx for ONTAP file system deployment type to use in creating the file system.

For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing a file system deployment type.

", + "OntapFileSystemConfiguration$DeploymentType": "

Specifies the FSx for ONTAP file system deployment type in use in the file system.

For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing Multi-AZ or Single-AZ file system deployment.

" } }, "OntapEndpointIpAddresses": { @@ -1894,8 +1959,9 @@ "OpenZFSCopyStrategy": { "base": null, "refs": { - "CreateOpenZFSOriginSnapshotConfiguration$CopyStrategy": "

The strategy used when copying data from the snapshot to the new volume.

", - "OpenZFSOriginSnapshotConfiguration$CopyStrategy": "

The strategy used when copying data from the snapshot to the new volume.

" + "CopySnapshotAndUpdateVolumeRequest$CopyStrategy": "

Specifies the strategy to use when copying data from a snapshot to the volume.

CLONE isn't a valid copy strategy option for the CopySnapshotAndUpdateVolume operation.

", + "CreateOpenZFSOriginSnapshotConfiguration$CopyStrategy": "

Specifies the strategy used when copying data from the snapshot to the new volume.

The INCREMENTAL_COPY option is only for updating an existing volume by using a snapshot from another FSx for OpenZFS file system. For more information, see CopySnapshotAndUpdateVolume.

", + "OpenZFSOriginSnapshotConfiguration$CopyStrategy": "

The strategy used when copying data from the snapshot to the new volume.

The INCREMENTAL_COPY option is only for updating an existing volume by using a snapshot from another FSx for OpenZFS file system. For more information, see CopySnapshotAndUpdateVolume.

" } }, "OpenZFSCreateRootVolumeConfiguration": { @@ -1954,7 +2020,7 @@ } }, "OpenZFSOriginSnapshotConfiguration": { - "base": "

The snapshot configuration to use when creating an OpenZFS volume from a snapshot.

", + "base": "

The snapshot configuration used when creating an Amazon FSx for OpenZFS volume from a snapshot.

", "refs": { "OpenZFSVolumeConfiguration$OriginSnapshot": "

The configuration object that specifies the snapshot to use as the origin of the data for the volume.

" } @@ -2064,6 +2130,12 @@ "DataRepositoryTaskStatus$ReleasedCapacity": "

The total amount of data, in GiB, released by an Amazon File Cache AUTO_RELEASE_DATA task that automatically releases files from the cache.

" } }, + "RemainingTransferBytes": { + "base": null, + "refs": { + "AdministrativeAction$RemainingTransferBytes": "

The remaining bytes to transfer for the FSx for OpenZFS snapshot that you're copying.

" + } + }, "ReportFormat": { "base": null, "refs": { @@ -2094,6 +2166,7 @@ "refs": { "ActiveDirectoryBackupAttributes$ResourceARN": null, "Backup$ResourceARN": "

The Amazon Resource Name (ARN) for the backup resource.

", + "CopySnapshotAndUpdateVolumeRequest$SourceSnapshotARN": null, "CreateOpenZFSOriginSnapshotConfiguration$SnapshotARN": null, "DataRepositoryAssociation$ResourceARN": null, "DataRepositoryTask$ResourceARN": null, @@ -2103,6 +2176,7 @@ "ListTagsForResourceRequest$ResourceARN": "

The ARN of the Amazon FSx resource that will have its tags listed.

", "NotServiceResourceError$ResourceARN": "

The Amazon Resource Name (ARN) of the non-Amazon FSx resource.

", "OpenZFSOriginSnapshotConfiguration$SnapshotARN": null, + "OpenZFSVolumeConfiguration$SourceSnapshotARN": null, "ResourceDoesNotSupportTagging$ResourceARN": "

The Amazon Resource Name (ARN) of the resource that doesn't support tagging.

", "ResourceNotFound$ResourceARN": "

The resource ARN of the resource that can't be found.

", "Snapshot$ResourceARN": null, @@ -2319,6 +2393,7 @@ "DeleteSnapshotRequest$SnapshotId": "

The ID of the snapshot that you want to delete.

", "DeleteSnapshotResponse$SnapshotId": "

The ID of the deleted snapshot.

", "OpenZFSVolumeConfiguration$RestoreToSnapshot": "

Specifies the ID of the snapshot to which the volume was restored.

", + "OpenZFSVolumeConfiguration$DestinationSnapshot": "

The ID of the snapshot that's being copied or was most recently copied to the destination volume.

", "RestoreVolumeFromSnapshotRequest$SnapshotId": "

The ID of the source snapshot. Specifies the snapshot that you are restoring from.

", "Snapshot$SnapshotId": "

The ID of the snapshot.

", "SnapshotIds$member": null, @@ -2355,7 +2430,7 @@ "base": null, "refs": { "CreateOntapVolumeConfiguration$SnapshotPolicy": "

Specifies the snapshot policy for the volume. There are three built-in snapshot policies:

You can also provide the name of a custom policy that you created with the ONTAP CLI or REST API.

For more information, see Snapshot policies in the Amazon FSx for NetApp ONTAP User Guide.

", - "OntapVolumeConfiguration$SnapshotPolicy": "

Specifies the snapshot policy for the volume. There are three built-in snapshot policies:

You can also provide the name of a custom policy that you created with the ONTAP CLI or REST API.

For more information, see Snapshot policies in the Amazon FSx for NetApp ONTAP User Guide.

", + "OntapVolumeConfiguration$SnapshotPolicy": "

Specifies the snapshot policy for the volume. There are three built-in snapshot policies:

You can also provide the name of a custom policy that you created with the ONTAP CLI or REST API.

For more information, see Snapshot policies in the Amazon FSx for NetApp ONTAP User Guide.

", "UpdateOntapVolumeConfiguration$SnapshotPolicy": "

Specifies the snapshot policy for the volume. There are three built-in snapshot policies:

You can also provide the name of a custom policy that you created with the ONTAP CLI or REST API.

For more information, see Snapshot policies in the Amazon FSx for NetApp ONTAP User Guide.

" } }, @@ -2395,18 +2470,18 @@ "Status": { "base": null, "refs": { - "AdministrativeAction$Status": "

Describes the status of the administrative action, as follows:

" + "AdministrativeAction$Status": "

The status of the administrative action, as follows:

" } }, "StorageCapacity": { "base": "

Specifies the file system's storage capacity, in gibibytes (GiB).

", "refs": { "CreateFileCacheRequest$StorageCapacity": "

The storage capacity of the cache in gibibytes (GiB). Valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.

", - "CreateFileSystemFromBackupRequest$StorageCapacity": "

Sets the storage capacity of the OpenZFS file system that you're creating from a backup, in gibibytes (GiB). Valid values are from 64 GiB up to 524,288 GiB (512 TiB). However, the value that you specify must be equal to or greater than the backup's storage capacity value. If you don't use the StorageCapacity parameter, the default is the backup's StorageCapacity value.

If used to create a file system other than OpenZFS, you must provide a value that matches the backup's StorageCapacity value. If you provide any other value, Amazon FSx responds with a 400 Bad Request.

", - "CreateFileSystemRequest$StorageCapacity": "

Sets the storage capacity of the file system that you're creating, in gibibytes (GiB).

FSx for Lustre file systems - The amount of storage capacity that you can configure depends on the value that you set for StorageType and the Lustre DeploymentType, as follows:

FSx for ONTAP file systems - The amount of storage capacity that you can configure is from 1024 GiB up to 196,608 GiB (192 TiB).

FSx for OpenZFS file systems - The amount of storage capacity that you can configure is from 64 GiB up to 524,288 GiB (512 TiB).

FSx for Windows File Server file systems - The amount of storage capacity that you can configure depends on the value that you set for StorageType as follows:

", + "CreateFileSystemFromBackupRequest$StorageCapacity": "

Sets the storage capacity of the OpenZFS file system that you're creating from a backup, in gibibytes (GiB). Valid values are from 64 GiB up to 524,288 GiB (512 TiB). However, the value that you specify must be equal to or greater than the backup's storage capacity value. If you don't use the StorageCapacity parameter, the default is the backup's StorageCapacity value.

If used to create a file system other than OpenZFS, you must provide a value that matches the backup's StorageCapacity value. If you provide any other value, Amazon FSx responds with with an HTTP status code 400 Bad Request.

", + "CreateFileSystemRequest$StorageCapacity": "

Sets the storage capacity of the file system that you're creating, in gibibytes (GiB).

FSx for Lustre file systems - The amount of storage capacity that you can configure depends on the value that you set for StorageType and the Lustre DeploymentType, as follows:

FSx for ONTAP file systems - The amount of storage capacity that you can configure depends on the value of the HAPairs property. The minimum value is calculated as 1,024 * HAPairs and the maxium is calculated as 524,288 * HAPairs..

FSx for OpenZFS file systems - The amount of storage capacity that you can configure is from 64 GiB up to 524,288 GiB (512 TiB).

FSx for Windows File Server file systems - The amount of storage capacity that you can configure depends on the value that you set for StorageType as follows:

", "FileCache$StorageCapacity": "

The storage capacity of the cache in gibibytes (GiB).

", "FileCacheCreating$StorageCapacity": "

The storage capacity of the cache in gibibytes (GiB).

", - "FileSystem$StorageCapacity": "

The storage capacity of the file system in gibibytes (GiB).

", + "FileSystem$StorageCapacity": "

The storage capacity of the file system in gibibytes (GiB).

Amazon FSx responds with an HTTP status code 400 (Bad Request) if the value of StorageCapacity is outside of the minimum or maximum values.

", "UpdateFileSystemRequest$StorageCapacity": "

Use this parameter to increase the storage capacity of an FSx for Windows File Server, FSx for Lustre, FSx for OpenZFS, or FSx for ONTAP file system. Specifies the storage capacity target value, in GiB, to increase the storage capacity for the file system that you're updating.

You can't make a storage capacity increase request if there is an existing storage capacity increase request in progress.

For Lustre file systems, the storage capacity target value can be the following:

For more information, see Managing storage and throughput capacity in the FSx for Lustre User Guide.

For FSx for OpenZFS file systems, the storage capacity target value must be at least 10 percent greater than the current storage capacity value. For more information, see Managing storage capacity in the FSx for OpenZFS User Guide.

For Windows file systems, the storage capacity target value must be at least 10 percent greater than the current storage capacity value. To increase storage capacity, the file system must have at least 16 MBps of throughput capacity. For more information, see Managing storage capacity in the Amazon FSxfor Windows File Server User Guide.

For ONTAP file systems, the storage capacity target value must be at least 10 percent greater than the current storage capacity value. For more information, see Managing storage capacity and provisioned IOPS in the Amazon FSx for NetApp ONTAP User Guide.

" } }, @@ -2655,6 +2730,14 @@ "DescribeDataRepositoryTasksRequest$TaskIds": "

(Optional) IDs of the tasks whose descriptions you want to retrieve (String).

" } }, + "ThroughputCapacityPerHAPair": { + "base": null, + "refs": { + "CreateFileSystemOntapConfiguration$ThroughputCapacityPerHAPair": "

Use to choose the throughput capacity per HA pair, rather than the total throughput for the file system.

This field and ThroughputCapacity cannot be defined in the same API call, but one is required.

This field and ThroughputCapacity are the same for file systems with one HA pair.

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

", + "OntapFileSystemConfiguration$ThroughputCapacityPerHAPair": "

Use to choose the throughput capacity per HA pair. When the value of HAPairs is equal to 1, the value of ThroughputCapacityPerHAPair is the total throughput for the file system.

This field and ThroughputCapacity cannot be defined in the same API call, but one is required.

This field and ThroughputCapacity are the same for file systems with one HA pair.

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

", + "UpdateFileSystemOntapConfiguration$ThroughputCapacityPerHAPair": "

Use to choose the throughput capacity per HA pair, rather than the total throughput for the file system.

This field and ThroughputCapacity cannot be defined in the same API call, but one is required.

This field and ThroughputCapacity are the same for file systems with one HA pair.

Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following conditions:

The value of ThroughputCapacity and ThroughputCapacityPerHAPair are not the same value.

The value of ThroughputCapacityPerHAPair is not a valid value.

" + } + }, "TieringPolicy": { "base": "

Describes the data tiering policy for an ONTAP volume. When enabled, Amazon FSx for ONTAP's intelligent tiering automatically transitions a volume's data between the file system's primary storage and capacity pool storage based on your access patterns.

Valid tiering policies are the following:

", "refs": { @@ -2669,12 +2752,24 @@ "TieringPolicy$Name": "

Specifies the tiering policy used to transition data. Default value is SNAPSHOT_ONLY.

" } }, + "TotalConstituents": { + "base": null, + "refs": { + "AggregateConfiguration$TotalConstituents": "

The total number of constituents this FlexGroup volume has. Not applicable for FlexVols.

" + } + }, "TotalCount": { "base": null, "refs": { "DataRepositoryTaskStatus$TotalCount": "

The total number of files that the task will process. While a task is executing, the sum of SucceededCount plus FailedCount may not equal TotalCount. When the task is complete, TotalCount equals the sum of SucceededCount plus FailedCount.

" } }, + "TotalTransferBytes": { + "base": null, + "refs": { + "AdministrativeAction$TotalTransferBytes": "

The number of bytes that have transferred for the FSx for OpenZFS snapshot that you're copying.

" + } + }, "UUID": { "base": null, "refs": { @@ -2775,6 +2870,28 @@ "UpdateVolumeRequest$OpenZFSConfiguration": "

The configuration of the OpenZFS volume that you are updating.

" } }, + "UpdateOpenZFSVolumeOption": { + "base": null, + "refs": { + "UpdateOpenZFSVolumeOptions$member": null + } + }, + "UpdateOpenZFSVolumeOptions": { + "base": null, + "refs": { + "CopySnapshotAndUpdateVolumeRequest$Options": "

Confirms that you want to delete data on the destination volume that wasn’t there during the previous snapshot replication.

Your replication will fail if you don’t include an option for a specific type of data and that data is on your destination. For example, if you don’t include DELETE_INTERMEDIATE_SNAPSHOTS and there are intermediate snapshots on the destination, you can’t copy the snapshot.

" + } + }, + "UpdateSharedVpcConfigurationRequest": { + "base": null, + "refs": { + } + }, + "UpdateSharedVpcConfigurationResponse": { + "base": null, + "refs": { + } + }, "UpdateSnaplockConfiguration": { "base": "

Updates the SnapLock configuration for an existing FSx for ONTAP volume.

", "refs": { @@ -2823,8 +2940,16 @@ "DurationSinceLastAccess$Value": "

An integer that represents the minimum amount of time (in days) since a file was last accessed in the file system. Only exported files with a MAX(atime, ctime, mtime) timestamp that is more than this amount of time in the past (relative to the task create time) will be released. The default of Value is 0. This is a required parameter.

If an exported file meets the last accessed time criteria, its file or directory path must also be specified in the Paths parameter of the operation in order for the file to be released.

" } }, + "VerboseFlag": { + "base": null, + "refs": { + "DescribeSharedVpcConfigurationResponse$EnableFsxRouteTableUpdatesFromParticipantAccounts": "

Indicates whether participant accounts can create FSx for ONTAP Multi-AZ file systems in shared subnets.

", + "UpdateSharedVpcConfigurationRequest$EnableFsxRouteTableUpdatesFromParticipantAccounts": "

Specifies whether participant accounts can create FSx for ONTAP Multi-AZ file systems in shared subnets. Set to true to enable or false to disable.

", + "UpdateSharedVpcConfigurationResponse$EnableFsxRouteTableUpdatesFromParticipantAccounts": "

Indicates whether participant accounts can create FSx for ONTAP Multi-AZ file systems in shared subnets.

" + } + }, "Volume": { - "base": "

Describes an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volume.

", + "base": "

Describes an Amazon FSx volume.

", "refs": { "AdministrativeAction$TargetVolumeValues": null, "Backup$Volume": null, @@ -2842,6 +2967,14 @@ "UpdateOntapVolumeConfiguration$SizeInMegabytes": "

Specifies the size of the volume in megabytes.

" } }, + "VolumeCapacityBytes": { + "base": null, + "refs": { + "CreateOntapVolumeConfiguration$SizeInBytes": "

The configured size of the volume, in bytes.

", + "OntapVolumeConfiguration$SizeInBytes": "

The configured size of the volume, in bytes.

", + "UpdateOntapVolumeConfiguration$SizeInBytes": "

The configured size of the volume, in bytes.

" + } + }, "VolumeFilter": { "base": "

A filter used to restrict the results of describe calls for Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volumes. You can use multiple filters to return results that meet all applied filter requirements.

", "refs": { @@ -2875,6 +3008,8 @@ "VolumeId": { "base": null, "refs": { + "CopySnapshotAndUpdateVolumeRequest$VolumeId": "

Specifies the ID of the volume that you are copying the snapshot to.

", + "CopySnapshotAndUpdateVolumeResponse$VolumeId": "

The ID of the volume that you copied the snapshot to.

", "CreateBackupRequest$VolumeId": "

(Optional) The ID of the FSx for ONTAP volume to back up.

", "CreateOpenZFSVolumeConfiguration$ParentVolumeId": "

The ID of the volume to use as the parent volume of the volume that you are creating.

", "CreateSnapshotRequest$VolumeId": "

The ID of the volume that you are taking a snapshot of.

", @@ -2899,6 +3034,7 @@ "VolumeLifecycle": { "base": null, "refs": { + "CopySnapshotAndUpdateVolumeResponse$Lifecycle": "

The lifecycle state of the destination volume.

", "DeleteVolumeResponse$Lifecycle": "

The lifecycle state of the volume being deleted. If the DeleteVolume operation is successful, this value is DELETING.

", "RestoreVolumeFromSnapshotResponse$Lifecycle": "

The lifecycle state of the volume being restored.

", "Volume$Lifecycle": "

The lifecycle status of the volume.

" @@ -2924,6 +3060,13 @@ "OpenZFSVolumeConfiguration$VolumePath": "

The path to the volume from the root volume. For example, fsx/parentVolume/volume1.

" } }, + "VolumeStyle": { + "base": null, + "refs": { + "CreateOntapVolumeConfiguration$VolumeStyle": "

Use to specify the style of an ONTAP volume. For more information about FlexVols and FlexGroups, see Volume types in Amazon FSx for NetApp ONTAP User Guide.

", + "OntapVolumeConfiguration$VolumeStyle": "

Use to specify the style of an ONTAP volume. For more information about FlexVols and FlexGroups, see Volume types in Amazon FSx for NetApp ONTAP User Guide.

" + } + }, "VolumeType": { "base": null, "refs": { diff --git a/models/apis/guardduty/2017-11-28/api-2.json b/models/apis/guardduty/2017-11-28/api-2.json index 1234f2beee5..d270a8e1730 100644 --- a/models/apis/guardduty/2017-11-28/api-2.json +++ b/models/apis/guardduty/2017-11-28/api-2.json @@ -1263,6 +1263,15 @@ "key":{"shape":"String"}, "value":{"shape":"String"} }, + "AgentDetails":{ + "type":"structure", + "members":{ + "Version":{ + "shape":"String", + "locationName":"version" + } + } + }, "Anomaly":{ "type":"structure", "members":{ @@ -1596,6 +1605,19 @@ } } }, + "ContainerInstanceDetails":{ + "type":"structure", + "members":{ + "CoveredContainerInstances":{ + "shape":"Long", + "locationName":"coveredContainerInstances" + }, + "CompatibleContainerInstances":{ + "shape":"Long", + "locationName":"compatibleContainerInstances" + } + } + }, "Containers":{ "type":"list", "member":{"shape":"Container"} @@ -1628,6 +1650,48 @@ } } }, + "CoverageEc2InstanceDetails":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"String", + "locationName":"instanceId" + }, + "InstanceType":{ + "shape":"String", + "locationName":"instanceType" + }, + "ClusterArn":{ + "shape":"String", + "locationName":"clusterArn" + }, + "AgentDetails":{ + "shape":"AgentDetails", + "locationName":"agentDetails" + }, + "ManagementType":{ + "shape":"ManagementType", + "locationName":"managementType" + } + } + }, + "CoverageEcsClusterDetails":{ + "type":"structure", + "members":{ + "ClusterName":{ + "shape":"String", + "locationName":"clusterName" + }, + "FargateDetails":{ + "shape":"FargateDetails", + "locationName":"fargateDetails" + }, + "ContainerInstanceDetails":{ + "shape":"ContainerInstanceDetails", + "locationName":"containerInstanceDetails" + } + } + }, "CoverageEksClusterDetails":{ "type":"structure", "members":{ @@ -1697,7 +1761,11 @@ "COVERAGE_STATUS", "ADDON_VERSION", "MANAGEMENT_TYPE", - "EKS_CLUSTER_NAME" + "EKS_CLUSTER_NAME", + "ECS_CLUSTER_NAME", + "AGENT_VERSION", + "INSTANCE_ID", + "CLUSTER_ARN" ] }, "CoverageFilterCriterionList":{ @@ -1749,6 +1817,14 @@ "ResourceType":{ "shape":"ResourceType", "locationName":"resourceType" + }, + "EcsClusterDetails":{ + "shape":"CoverageEcsClusterDetails", + "locationName":"ecsClusterDetails" + }, + "Ec2InstanceDetails":{ + "shape":"CoverageEc2InstanceDetails", + "locationName":"ec2InstanceDetails" } } }, @@ -1778,7 +1854,9 @@ "ISSUE", "ADDON_VERSION", "UPDATED_AT", - "EKS_CLUSTER_NAME" + "EKS_CLUSTER_NAME", + "ECS_CLUSTER_NAME", + "INSTANCE_ID" ] }, "CoverageStatistics":{ @@ -2683,7 +2761,8 @@ "EBS_MALWARE_PROTECTION", "RDS_LOGIN_EVENTS", "EKS_RUNTIME_MONITORING", - "LAMBDA_NETWORK_LOGS" + "LAMBDA_NETWORK_LOGS", + "RUNTIME_MONITORING" ] }, "DetectorFeatureConfiguration":{ @@ -2743,7 +2822,8 @@ "EBS_MALWARE_PROTECTION", "RDS_LOGIN_EVENTS", "EKS_RUNTIME_MONITORING", - "LAMBDA_NETWORK_LOGS" + "LAMBDA_NETWORK_LOGS", + "RUNTIME_MONITORING" ] }, "DetectorId":{ @@ -3090,9 +3170,25 @@ } } }, + "FargateDetails":{ + "type":"structure", + "members":{ + "Issues":{ + "shape":"Issues", + "locationName":"issues" + }, + "ManagementType":{ + "shape":"ManagementType", + "locationName":"managementType" + } + } + }, "FeatureAdditionalConfiguration":{ "type":"string", - "enum":["EKS_ADDON_MANAGEMENT"] + "enum":[ + "EKS_ADDON_MANAGEMENT", + "ECS_FARGATE_AGENT_MANAGEMENT" + ] }, "FeatureStatus":{ "type":"string", @@ -3370,7 +3466,9 @@ "EBS_MALWARE_PROTECTION", "RDS_LOGIN_EVENTS", "EKS_RUNTIME_MONITORING", - "LAMBDA_NETWORK_LOGS" + "LAMBDA_NETWORK_LOGS", + "FARGATE_RUNTIME_MONITORING", + "EC2_RUNTIME_MONITORING" ] }, "GeoLocation":{ @@ -4160,6 +4258,12 @@ "type":"list", "member":{"shape":"String"} }, + "Issues":{ + "type":"list", + "member":{"shape":"String"}, + "max":50, + "min":0 + }, "KubernetesApiCallAction":{ "type":"structure", "members":{ @@ -4945,7 +5049,8 @@ "type":"string", "enum":[ "AUTO_MANAGED", - "MANUAL" + "MANUAL", + "DISABLED" ] }, "MapEquals":{ @@ -5270,12 +5375,16 @@ "EBS_MALWARE_PROTECTION", "RDS_LOGIN_EVENTS", "EKS_RUNTIME_MONITORING", - "LAMBDA_NETWORK_LOGS" + "LAMBDA_NETWORK_LOGS", + "RUNTIME_MONITORING" ] }, "OrgFeatureAdditionalConfiguration":{ "type":"string", - "enum":["EKS_ADDON_MANAGEMENT"] + "enum":[ + "EKS_ADDON_MANAGEMENT", + "ECS_FARGATE_AGENT_MANAGEMENT" + ] }, "OrgFeatureStatus":{ "type":"string", @@ -5906,7 +6015,11 @@ }, "ResourceType":{ "type":"string", - "enum":["EKS"] + "enum":[ + "EKS", + "ECS", + "EC2" + ] }, "RuntimeContext":{ "type":"structure", @@ -7159,7 +7272,9 @@ "EBS_MALWARE_PROTECTION", "RDS_LOGIN_EVENTS", "LAMBDA_NETWORK_LOGS", - "EKS_RUNTIME_MONITORING" + "EKS_RUNTIME_MONITORING", + "FARGATE_RUNTIME_MONITORING", + "EC2_RUNTIME_MONITORING" ] }, "UsageFeatureList":{ diff --git a/models/apis/guardduty/2017-11-28/docs-2.json b/models/apis/guardduty/2017-11-28/docs-2.json index c37c7cab8e2..e1a9f8cf4f0 100644 --- a/models/apis/guardduty/2017-11-28/docs-2.json +++ b/models/apis/guardduty/2017-11-28/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "

Amazon GuardDuty is a continuous security monitoring service that analyzes and processes the following data sources: VPC flow logs, Amazon Web Services CloudTrail management event logs, CloudTrail S3 data event logs, EKS audit logs, DNS logs, and Amazon EBS volume data. It uses threat intelligence feeds, such as lists of malicious IPs and domains, and machine learning to identify unexpected, potentially unauthorized, and malicious activity within your Amazon Web Services environment. This can include issues like escalations of privileges, uses of exposed credentials, or communication with malicious IPs, domains, or presence of malware on your Amazon EC2 instances and container workloads. For example, GuardDuty can detect compromised EC2 instances and container workloads serving malware, or mining bitcoin.

GuardDuty also monitors Amazon Web Services account access behavior for signs of compromise, such as unauthorized infrastructure deployments like EC2 instances deployed in a Region that has never been used, or unusual API calls like a password policy change to reduce password strength.

GuardDuty informs you about the status of your Amazon Web Services environment by producing security findings that you can view in the GuardDuty console or through Amazon EventBridge. For more information, see the Amazon GuardDuty User Guide .

", + "service": "

Amazon GuardDuty is a continuous security monitoring service that analyzes and processes the following foundational data sources - VPC flow logs, Amazon Web Services CloudTrail management event logs, CloudTrail S3 data event logs, EKS audit logs, DNS logs, Amazon EBS volume data, runtime activity belonging to container workloads, such as Amazon EKS, Amazon ECS (including Amazon Web Services Fargate), and Amazon EC2 instances. It uses threat intelligence feeds, such as lists of malicious IPs and domains, and machine learning to identify unexpected, potentially unauthorized, and malicious activity within your Amazon Web Services environment. This can include issues like escalations of privileges, uses of exposed credentials, or communication with malicious IPs, domains, or presence of malware on your Amazon EC2 instances and container workloads. For example, GuardDuty can detect compromised EC2 instances and container workloads serving malware, or mining bitcoin.

GuardDuty also monitors Amazon Web Services account access behavior for signs of compromise, such as unauthorized infrastructure deployments like EC2 instances deployed in a Region that has never been used, or unusual API calls like a password policy change to reduce password strength.

GuardDuty informs you about the status of your Amazon Web Services environment by producing security findings that you can view in the GuardDuty console or through Amazon EventBridge. For more information, see the Amazon GuardDuty User Guide .

", "operations": { "AcceptAdministratorInvitation": "

Accepts the invitation to be a member account and get monitored by a GuardDuty administrator account that sent the invitation.

", "AcceptInvitation": "

Accepts the invitation to be monitored by a GuardDuty administrator account.

", @@ -214,6 +214,12 @@ "AwsApiCallAction$AffectedResources": "

The details of the Amazon Web Services account that made the API call. This field identifies the resources that were affected by this API call.

" } }, + "AgentDetails": { + "base": "

Information about the installed GuardDuty security agent.

", + "refs": { + "CoverageEc2InstanceDetails$AgentDetails": "

Information about the installed security agent.

" + } + }, "Anomaly": { "base": "

Contains information about the anomalies.

", "refs": { @@ -394,6 +400,12 @@ "Resource$ContainerDetails": null } }, + "ContainerInstanceDetails": { + "base": "

Contains information about the Amazon EC2 instance that is running the Amazon ECS container.

", + "refs": { + "CoverageEcsClusterDetails$ContainerInstanceDetails": "

Information about the Amazon ECS container running on Amazon EC2 instance.

" + } + }, "Containers": { "base": null, "refs": { @@ -425,6 +437,18 @@ "RemoteIpDetails$Country": "

The country code of the remote IP address.

" } }, + "CoverageEc2InstanceDetails": { + "base": "

This API is also used when you use GuardDuty Runtime Monitoring for your Amazon EC2 instances (currently in preview release) and is subject to change.

Contains information about the Amazon EC2 instance runtime coverage details.

", + "refs": { + "CoverageResourceDetails$Ec2InstanceDetails": "

This API is also used when you use GuardDuty Runtime Monitoring for your Amazon EC2 instances (currently in preview release) and is subject to change.

Information about the Amazon EC2 instance assessed for runtime coverage.

" + } + }, + "CoverageEcsClusterDetails": { + "base": "

Contains information about Amazon ECS cluster runtime coverage details.

", + "refs": { + "CoverageResourceDetails$EcsClusterDetails": "

Information about the Amazon ECS cluster that is assessed for runtime coverage.

" + } + }, "CoverageEksClusterDetails": { "base": "

Information about the EKS cluster that has a coverage status.

", "refs": { @@ -1091,6 +1115,12 @@ "Service$Evidence": "

An evidence object associated with the service.

" } }, + "FargateDetails": { + "base": "

Contains information about AWS Fargate details associated with an Amazon ECS cluster.

", + "refs": { + "CoverageEcsClusterDetails$FargateDetails": "

Information about the Fargate details associated with the Amazon ECS cluster.

" + } + }, "FeatureAdditionalConfiguration": { "base": null, "refs": { @@ -1599,6 +1629,12 @@ "NetworkInterface$Ipv6Addresses": "

A list of IPv6 addresses for the EC2 instance.

" } }, + "Issues": { + "base": null, + "refs": { + "FargateDetails$Issues": "

Runtime coverage issues identified for the resource running on AWS Fargate.

" + } + }, "KubernetesApiCallAction": { "base": "

Information about the Kubernetes API call action described in this finding.

", "refs": { @@ -1843,6 +1879,8 @@ "Condition$GreaterThanOrEqual": "

Represents a greater than or equal condition to be applied to a single field when querying for findings.

", "Condition$LessThan": "

Represents a less than condition to be applied to a single field when querying for findings.

", "Condition$LessThanOrEqual": "

Represents a less than or equal condition to be applied to a single field when querying for findings.

", + "ContainerInstanceDetails$CoveredContainerInstances": "

Represents the nodes in the Amazon ECS cluster that has a HEALTHY coverage status.

", + "ContainerInstanceDetails$CompatibleContainerInstances": "

Represents total number of nodes in the Amazon ECS cluster.

", "CountByCoverageStatus$value": null, "CountByResourceType$value": null, "CoverageEksClusterDetails$CoveredNodes": "

Represents the nodes within the EKS cluster that have a HEALTHY coverage status.

", @@ -1879,7 +1917,9 @@ "ManagementType": { "base": null, "refs": { - "CoverageEksClusterDetails$ManagementType": "

Indicates how the Amazon EKS add-on GuardDuty agent is managed for this EKS cluster.

AUTO_MANAGED indicates GuardDuty deploys and manages updates for this resource.

MANUAL indicates that you are responsible to deploy, update, and manage the Amazon EKS add-on GuardDuty agent for this resource.

" + "CoverageEc2InstanceDetails$ManagementType": "

Indicates how the GuardDuty security agent is managed for this resource.

The DISABLED status doesn't apply to Amazon EC2 instances and Amazon EKS clusters that run on Amazon EC2 instances.

", + "CoverageEksClusterDetails$ManagementType": "

Indicates how the Amazon EKS add-on GuardDuty agent is managed for this EKS cluster.

AUTO_MANAGED indicates GuardDuty deploys and manages updates for this resource.

MANUAL indicates that you are responsible to deploy, update, and manage the Amazon EKS add-on GuardDuty agent for this resource.

", + "FargateDetails$ManagementType": "

Indicates how the GuardDuty security agent is managed for this resource.

" } }, "MapEquals": { @@ -2649,6 +2689,7 @@ "Administrator$InvitedAt": "

The timestamp when the invitation was sent.

", "AffectedResources$key": null, "AffectedResources$value": null, + "AgentDetails$Version": "

Version of the installed GuardDuty security agent.

", "AnomalyProfileFeatures$key": null, "AnomalyProfiles$key": null, "AnomalyUnusualBehaviorFeature$key": null, @@ -2671,6 +2712,10 @@ "CountBySeverity$key": null, "Country$CountryCode": "

The country code of the remote IP address.

", "Country$CountryName": "

The country name of the remote IP address.

", + "CoverageEc2InstanceDetails$InstanceId": "

The Amazon EC2 instance ID.

", + "CoverageEc2InstanceDetails$InstanceType": "

The instance type of the Amazon EC2 instance.

", + "CoverageEc2InstanceDetails$ClusterArn": "

The cluster ARN of the Amazon ECS cluster running on the Amazon EC2 instance.

", + "CoverageEcsClusterDetails$ClusterName": "

The name of the Amazon ECS cluster.

", "CoverageEksClusterDetails$ClusterName": "

Name of the EKS cluster.

", "CoverageResource$ResourceId": "

The unique ID of the resource.

", "CoverageResource$Issue": "

Represents the reason why a coverage status was UNHEALTHY for the EKS cluster.

", @@ -2760,6 +2805,7 @@ "InviteMembersRequest$Message": "

The invitation message that you want to send to the accounts that you're inviting to GuardDuty as members.

", "IpSetIds$member": null, "Ipv6Addresses$member": null, + "Issues$member": null, "KubernetesApiCallAction$RequestUri": "

The Kubernetes API request URI.

", "KubernetesApiCallAction$Verb": "

The Kubernetes API request HTTP verb.

", "KubernetesApiCallAction$UserAgent": "

The user agent of the caller of the Kubernetes API.

", diff --git a/models/apis/iotfleetwise/2021-06-17/api-2.json b/models/apis/iotfleetwise/2021-06-17/api-2.json index 790c4b6328c..a355ccc9df7 100644 --- a/models/apis/iotfleetwise/2021-06-17/api-2.json +++ b/models/apis/iotfleetwise/2021-06-17/api-2.json @@ -24,6 +24,7 @@ "errors":[ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, {"shape":"ThrottlingException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} @@ -922,7 +923,8 @@ "deprecatedMessage":"assignedValue is no longer in use" }, "deprecationMessage":{"shape":"message"}, - "comment":{"shape":"message"} + "comment":{"shape":"message"}, + "structFullyQualifiedName":{"shape":"NodePath"} } }, "AmazonResourceName":{ @@ -1073,8 +1075,8 @@ ], "members":{ "messageId":{"shape":"nonNegativeInteger"}, - "isBigEndian":{"shape":"boolean"}, - "isSigned":{"shape":"boolean"}, + "isBigEndian":{"shape":"PrimitiveBoolean"}, + "isSigned":{"shape":"PrimitiveBoolean"}, "startBit":{"shape":"nonNegativeInteger"}, "offset":{"shape":"double"}, "factor":{"shape":"double"}, @@ -1327,6 +1329,32 @@ "thingArn":{"shape":"arn"} } }, + "CustomProperty":{ + "type":"structure", + "required":[ + "fullyQualifiedName", + "dataType" + ], + "members":{ + "fullyQualifiedName":{"shape":"string"}, + "dataType":{"shape":"NodeDataType"}, + "dataEncoding":{"shape":"NodeDataEncoding"}, + "description":{"shape":"description"}, + "deprecationMessage":{"shape":"message"}, + "comment":{"shape":"message"}, + "structFullyQualifiedName":{"shape":"NodePath"} + } + }, + "CustomStruct":{ + "type":"structure", + "required":["fullyQualifiedName"], + "members":{ + "fullyQualifiedName":{"shape":"string"}, + "description":{"shape":"description"}, + "deprecationMessage":{"shape":"message"}, + "comment":{"shape":"message"} + } + }, "DataDestinationConfig":{ "type":"structure", "members":{ @@ -1367,7 +1395,8 @@ "description":{"shape":"description"}, "status":{"shape":"ManifestStatus"}, "creationTime":{"shape":"timestamp"}, - "lastModificationTime":{"shape":"timestamp"} + "lastModificationTime":{"shape":"timestamp"}, + "message":{"shape":"message"} } }, "DecoderManifestValidationException":{ @@ -1605,7 +1634,8 @@ "modelManifestArn":{"shape":"arn"}, "status":{"shape":"ManifestStatus"}, "creationTime":{"shape":"timestamp"}, - "lastModificationTime":{"shape":"timestamp"} + "lastModificationTime":{"shape":"timestamp"}, + "message":{"shape":"message"} } }, "GetEncryptionConfigurationRequest":{ @@ -1892,7 +1922,8 @@ "type":"structure", "members":{ "name":{"shape":"FullyQualifiedName"}, - "reason":{"shape":"SignalDecoderFailureReason"} + "reason":{"shape":"SignalDecoderFailureReason"}, + "hint":{"shape":"message"} } }, "InvalidSignalDecoders":{ @@ -2133,9 +2164,22 @@ "type":"string", "enum":[ "ACTIVE", - "DRAFT" + "DRAFT", + "INVALID", + "VALIDATING" ] }, + "MessageSignal":{ + "type":"structure", + "required":[ + "topicName", + "structuredMessage" + ], + "members":{ + "topicName":{"shape":"TopicName"}, + "structuredMessage":{"shape":"StructuredMessage"} + } + }, "ModelManifestSummary":{ "type":"structure", "required":[ @@ -2157,7 +2201,11 @@ "key":{"shape":"string"}, "value":{"shape":"string"} }, - "NetworkFileBlob":{"type":"blob"}, + "NetworkFileBlob":{ + "type":"blob", + "max":200000000, + "min":0 + }, "NetworkFileDefinition":{ "type":"structure", "members":{ @@ -2185,7 +2233,8 @@ "interfaceId":{"shape":"InterfaceId"}, "type":{"shape":"NetworkInterfaceType"}, "canInterface":{"shape":"CanInterface"}, - "obdInterface":{"shape":"ObdInterface"} + "obdInterface":{"shape":"ObdInterface"}, + "vehicleMiddleware":{"shape":"VehicleMiddleware"} } }, "NetworkInterfaceFailureReason":{ @@ -2196,14 +2245,18 @@ "NETWORK_INTERFACE_TO_ADD_ALREADY_EXISTS", "CAN_NETWORK_INTERFACE_INFO_IS_NULL", "OBD_NETWORK_INTERFACE_INFO_IS_NULL", - "NETWORK_INTERFACE_TO_REMOVE_ASSOCIATED_WITH_SIGNALS" + "NETWORK_INTERFACE_TO_REMOVE_ASSOCIATED_WITH_SIGNALS", + "VEHICLE_MIDDLEWARE_NETWORK_INTERFACE_INFO_IS_NULL", + "CUSTOMER_DECODED_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL" ] }, "NetworkInterfaceType":{ "type":"string", "enum":[ "CAN_INTERFACE", - "OBD_INTERFACE" + "OBD_INTERFACE", + "VEHICLE_MIDDLEWARE", + "CUSTOMER_DECODED_INTERFACE" ] }, "NetworkInterfaces":{ @@ -2218,7 +2271,9 @@ "branch":{"shape":"Branch"}, "sensor":{"shape":"Sensor"}, "actuator":{"shape":"Actuator"}, - "attribute":{"shape":"Attribute"} + "attribute":{"shape":"Attribute"}, + "struct":{"shape":"CustomStruct"}, + "property":{"shape":"CustomProperty"} }, "union":true }, @@ -2229,9 +2284,18 @@ "totalBranches":{"shape":"number"}, "totalSensors":{"shape":"number"}, "totalAttributes":{"shape":"number"}, - "totalActuators":{"shape":"number"} + "totalActuators":{"shape":"number"}, + "totalStructs":{"shape":"number"}, + "totalProperties":{"shape":"number"} } }, + "NodeDataEncoding":{ + "type":"string", + "enum":[ + "BINARY", + "TYPED" + ] + }, "NodeDataType":{ "type":"string", "enum":[ @@ -2261,7 +2325,9 @@ "DOUBLE_ARRAY", "STRING_ARRAY", "UNIX_TIMESTAMP_ARRAY", - "UNKNOWN" + "UNKNOWN", + "STRUCT", + "STRUCT_ARRAY" ] }, "NodePath":{ @@ -2306,8 +2372,8 @@ "obdStandard":{"shape":"ObdStandard"}, "pidRequestIntervalSeconds":{"shape":"nonNegativeInteger"}, "dtcRequestIntervalSeconds":{"shape":"nonNegativeInteger"}, - "useExtendedIds":{"shape":"boolean"}, - "hasTransmissionEcu":{"shape":"boolean"} + "useExtendedIds":{"shape":"PrimitiveBoolean"}, + "hasTransmissionEcu":{"shape":"PrimitiveBoolean"} } }, "ObdInterfaceName":{ @@ -2349,6 +2415,14 @@ "min":1, "pattern":"[a-zA-Z0-9-_:./!*'()]+" }, + "PrimitiveBoolean":{"type":"boolean"}, + "PrimitiveMessageDefinition":{ + "type":"structure", + "members":{ + "ros2PrimitiveMessageDefinition":{"shape":"ROS2PrimitiveMessageDefinition"} + }, + "union":true + }, "ProtocolName":{ "type":"string", "max":50, @@ -2363,10 +2437,15 @@ "type":"structure", "required":["encryptionType"], "members":{ - "kmsKeyId":{"shape":"String"}, + "kmsKeyId":{"shape":"PutEncryptionConfigurationRequestKmsKeyIdString"}, "encryptionType":{"shape":"EncryptionType"} } }, + "PutEncryptionConfigurationRequestKmsKeyIdString":{ + "type":"string", + "max":2048, + "min":0 + }, "PutEncryptionConfigurationResponse":{ "type":"structure", "required":[ @@ -2391,6 +2470,42 @@ "members":{ } }, + "ROS2PrimitiveMessageDefinition":{ + "type":"structure", + "required":["primitiveType"], + "members":{ + "primitiveType":{"shape":"ROS2PrimitiveType"}, + "offset":{"shape":"double"}, + "scaling":{"shape":"double"}, + "upperBound":{"shape":"ROS2PrimitiveMessageDefinitionUpperBoundLong"} + } + }, + "ROS2PrimitiveMessageDefinitionUpperBoundLong":{ + "type":"long", + "box":true, + "max":2048, + "min":0 + }, + "ROS2PrimitiveType":{ + "type":"string", + "enum":[ + "BOOL", + "BYTE", + "CHAR", + "FLOAT32", + "FLOAT64", + "INT8", + "UINT8", + "INT16", + "UINT16", + "INT32", + "UINT32", + "INT64", + "UINT64", + "STRING", + "WSTRING" + ] + }, "RegisterAccountRequest":{ "type":"structure", "members":{ @@ -2476,7 +2591,8 @@ "min":{"shape":"double"}, "max":{"shape":"double"}, "deprecationMessage":{"shape":"message"}, - "comment":{"shape":"message"} + "comment":{"shape":"message"}, + "structFullyQualifiedName":{"shape":"NodePath"} } }, "SignalCatalogSummary":{ @@ -2500,7 +2616,8 @@ "type":{"shape":"SignalDecoderType"}, "interfaceId":{"shape":"InterfaceId"}, "canSignal":{"shape":"CanSignal"}, - "obdSignal":{"shape":"ObdSignal"} + "obdSignal":{"shape":"ObdSignal"}, + "messageSignal":{"shape":"MessageSignal"} } }, "SignalDecoderFailureReason":{ @@ -2514,14 +2631,23 @@ "SIGNAL_NOT_IN_MODEL", "CAN_SIGNAL_INFO_IS_NULL", "OBD_SIGNAL_INFO_IS_NULL", - "NO_DECODER_INFO_FOR_SIGNAL_IN_MODEL" + "NO_DECODER_INFO_FOR_SIGNAL_IN_MODEL", + "MESSAGE_SIGNAL_INFO_IS_NULL", + "SIGNAL_DECODER_TYPE_INCOMPATIBLE_WITH_MESSAGE_SIGNAL_TYPE", + "STRUCT_SIZE_MISMATCH", + "NO_SIGNAL_IN_CATALOG_FOR_DECODER_SIGNAL", + "SIGNAL_DECODER_INCOMPATIBLE_WITH_SIGNAL_CATALOG", + "EMPTY_MESSAGE_SIGNAL", + "CUSTOMER_DECODED_SIGNAL_INFO_IS_NULL" ] }, "SignalDecoderType":{ "type":"string", "enum":[ "CAN_SIGNAL", - "OBD_SIGNAL" + "OBD_SIGNAL", + "MESSAGE_SIGNAL", + "CUSTOMER_DECODED_SIGNAL" ] }, "SignalDecoders":{ @@ -2560,6 +2686,59 @@ ] }, "String":{"type":"string"}, + "StructureMessageName":{ + "type":"string", + "max":150, + "min":1 + }, + "StructuredMessage":{ + "type":"structure", + "members":{ + "primitiveMessageDefinition":{"shape":"PrimitiveMessageDefinition"}, + "structuredMessageListDefinition":{"shape":"StructuredMessageListDefinition"}, + "structuredMessageDefinition":{"shape":"StructuredMessageDefinition"} + }, + "union":true + }, + "StructuredMessageDefinition":{ + "type":"list", + "member":{"shape":"StructuredMessageFieldNameAndDataTypePair"}, + "max":500, + "min":1 + }, + "StructuredMessageFieldNameAndDataTypePair":{ + "type":"structure", + "required":[ + "fieldName", + "dataType" + ], + "members":{ + "fieldName":{"shape":"StructureMessageName"}, + "dataType":{"shape":"StructuredMessage"} + } + }, + "StructuredMessageListDefinition":{ + "type":"structure", + "required":[ + "name", + "memberType", + "listType" + ], + "members":{ + "name":{"shape":"StructureMessageName"}, + "memberType":{"shape":"StructuredMessage"}, + "listType":{"shape":"StructuredMessageListType"}, + "capacity":{"shape":"nonNegativeInteger"} + } + }, + "StructuredMessageListType":{ + "type":"string", + "enum":[ + "FIXED_CAPACITY", + "DYNAMIC_UNBOUNDED_CAPACITY", + "DYNAMIC_BOUNDED_CAPACITY" + ] + }, "Tag":{ "type":"structure", "required":[ @@ -2683,6 +2862,12 @@ "min":3, "pattern":"[a-zA-Z0-9_.-]+" }, + "TopicName":{ + "type":"string", + "max":150, + "min":1, + "pattern":"[a-zA-Z0-9_\\-#:./]+" + }, "TriggerMode":{ "type":"string", "enum":[ @@ -2913,6 +3098,26 @@ "ValidateIotThingExists" ] }, + "VehicleMiddleware":{ + "type":"structure", + "required":[ + "name", + "protocolName" + ], + "members":{ + "name":{"shape":"VehicleMiddlewareName"}, + "protocolName":{"shape":"VehicleMiddlewareProtocol"} + } + }, + "VehicleMiddlewareName":{ + "type":"string", + "max":100, + "min":1 + }, + "VehicleMiddlewareProtocol":{ + "type":"string", + "enum":["ROS_2"] + }, "VehicleState":{ "type":"string", "enum":[ @@ -2967,7 +3172,6 @@ "key":{"shape":"attributeName"}, "value":{"shape":"attributeValue"} }, - "boolean":{"type":"boolean"}, "campaignName":{ "type":"string", "max":100, @@ -3081,6 +3285,7 @@ "number":{"type":"integer"}, "positiveInteger":{ "type":"integer", + "box":true, "min":1 }, "priority":{ diff --git a/models/apis/iotfleetwise/2021-06-17/docs-2.json b/models/apis/iotfleetwise/2021-06-17/docs-2.json index 4bf230d2bdc..21e7c230ef9 100644 --- a/models/apis/iotfleetwise/2021-06-17/docs-2.json +++ b/models/apis/iotfleetwise/2021-06-17/docs-2.json @@ -45,7 +45,7 @@ "ListVehiclesInFleet": "

Retrieves a list of summaries of all vehicles associated with a fleet.

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

", "PutEncryptionConfiguration": "

Creates or updates the encryption configuration. Amazon Web Services IoT FleetWise can encrypt your data and resources using an Amazon Web Services managed key. Or, you can use a KMS key that you own and manage. For more information, see Data encryption in the Amazon Web Services IoT FleetWise Developer Guide.

", "PutLoggingOptions": "

Creates or updates the logging option.

", - "RegisterAccount": "

This API operation contains deprecated parameters. Register your account again without the Timestream resources parameter so that Amazon Web Services IoT FleetWise can remove the Timestream metadata stored. You should then pass the data destination into the CreateCampaign API operation.

You must delete any existing campaigns that include an empty data destination before you register your account again. For more information, see the DeleteCampaign API operation.

If you want to delete the Timestream inline policy from the service-linked role, such as to mitigate an overly permissive policy, you must first delete any existing campaigns. Then delete the service-linked role and register your account again to enable CloudWatch metrics. For more information, see DeleteServiceLinkedRole in the Identity and Access Management API Reference.

 <p>Registers your Amazon Web Services account, IAM, and Amazon Timestream resources so Amazon Web Services IoT FleetWise can transfer your vehicle data to the Amazon Web Services Cloud. For more information, including step-by-step procedures, see <a href="https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/setting-up.html">Setting up Amazon Web Services IoT FleetWise</a>. </p> <note> <p>An Amazon Web Services account is <b>not</b> the same thing as a "user." An <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html#intro-identity-users">Amazon Web Services user</a> is an identity that you create using Identity and Access Management (IAM) and takes the form of either an <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html">IAM user</a> or an <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM role, both with credentials</a>. A single Amazon Web Services account can, and typically does, contain many users and roles.</p> </note> 
", + "RegisterAccount": "

This API operation contains deprecated parameters. Register your account again without the Timestream resources parameter so that Amazon Web Services IoT FleetWise can remove the Timestream metadata stored. You should then pass the data destination into the CreateCampaign API operation.

You must delete any existing campaigns that include an empty data destination before you register your account again. For more information, see the DeleteCampaign API operation.

If you want to delete the Timestream inline policy from the service-linked role, such as to mitigate an overly permissive policy, you must first delete any existing campaigns. Then delete the service-linked role and register your account again to enable CloudWatch metrics. For more information, see DeleteServiceLinkedRole in the Identity and Access Management API Reference.

Registers your Amazon Web Services account, IAM, and Amazon Timestream resources so Amazon Web Services IoT FleetWise can transfer your vehicle data to the Amazon Web Services Cloud. For more information, including step-by-step procedures, see Setting up Amazon Web Services IoT FleetWise.

An Amazon Web Services account is not the same thing as a \"user.\" An Amazon Web Services user is an identity that you create using Identity and Access Management (IAM) and takes the form of either an IAM user or an IAM role, both with credentials. A single Amazon Web Services account can, and typically does, contain many users and roles.

", "TagResource": "

Adds to or modifies the tags of the given resource. Tags are metadata which can be used to manage a resource.

", "UntagResource": "

Removes the given tags (metadata) from the resource.

", "UpdateCampaign": "

Updates a campaign.

", @@ -277,6 +277,18 @@ "createVehicleResponses$member": null } }, + "CustomProperty": { + "base": "

Represents a member of the complex data structure. The data type of the property can be either primitive or another struct.

", + "refs": { + "Node$property": "

Represents a member of the complex data structure. The datatype of the property can be either primitive or another struct.

" + } + }, + "CustomStruct": { + "base": "

The custom structure represents a complex or higher-order data structure.

", + "refs": { + "Node$struct": "

Represents a complex or higher-order data structure.

" + } + }, "DataDestinationConfig": { "base": "

The destination where the Amazon Web Services IoT FleetWise campaign sends data. You can send data to be stored in Amazon S3 or Amazon Timestream.

", "refs": { @@ -402,7 +414,7 @@ "EncryptionType": { "base": null, "refs": { - "GetEncryptionConfigurationResponse$encryptionType": "

The type of encryption. Set to KMS_BASED_ENCRYPTION to use an KMS key that you own and manage. Set to FLEETWISE_DEFAULT_ENCRYPTION to use an Amazon Web Services managed key that is owned by the Amazon Web Services IoT FleetWise service account.

", + "GetEncryptionConfigurationResponse$encryptionType": "

The type of encryption. Set to KMS_BASED_ENCRYPTION to use a KMS key that you own and manage. Set to FLEETWISE_DEFAULT_ENCRYPTION to use an Amazon Web Services managed key that is owned by the Amazon Web Services IoT FleetWise service account.

", "PutEncryptionConfigurationRequest$encryptionType": "

The type of encryption. Choose KMS_BASED_ENCRYPTION to use a KMS key or FLEETWISE_DEFAULT_ENCRYPTION to use an Amazon Web Services managed key.

", "PutEncryptionConfigurationResponse$encryptionType": "

The type of encryption. Set to KMS_BASED_ENCRYPTION to use an KMS key that you own and manage. Set to FLEETWISE_DEFAULT_ENCRYPTION to use an Amazon Web Services managed key that is owned by the Amazon Web Services IoT FleetWise service account.

" } @@ -793,6 +805,12 @@ "UpdateModelManifestRequest$status": "

The state of the vehicle model. If the status is ACTIVE, the vehicle model can't be edited. If the status is DRAFT, you can edit the vehicle model.

" } }, + "MessageSignal": { + "base": "

The decoding information for a specific message which support higher order data types.

", + "refs": { + "SignalDecoder$messageSignal": "

The decoding information for a specific message which supports higher order data types.

" + } + }, "ModelManifestSummary": { "base": "

Information about a vehicle model (model manifest). You can use the API operation to return this information about multiple vehicle models.

", "refs": { @@ -826,7 +844,7 @@ "NetworkFilesList": { "base": null, "refs": { - "CanDbcDefinition$canDbcFiles": "

A list of DBC files. You can upload only one DBC file for each network interface and specify up to five (inclusive) files in the list.

" + "CanDbcDefinition$canDbcFiles": "

A list of DBC files. You can upload only one DBC file for each network interface and specify up to five (inclusive) files in the list. The DBC file can be a maximum size of 200 MB.

" } }, "NetworkInterface": { @@ -868,19 +886,29 @@ "GetSignalCatalogResponse$nodeCounts": "

The total number of network nodes specified in a signal catalog.

" } }, + "NodeDataEncoding": { + "base": null, + "refs": { + "CustomProperty$dataEncoding": "

Indicates whether the property is binary data.

" + } + }, "NodeDataType": { "base": null, "refs": { "Actuator$dataType": "

The specified data type of the actuator.

", "Attribute$dataType": "

The specified data type of the attribute.

", + "CustomProperty$dataType": "

The data type for the custom property.

", "Sensor$dataType": "

The specified data type of the sensor.

" } }, "NodePath": { "base": null, "refs": { + "Actuator$structFullyQualifiedName": "

The fully qualified name of the struct node for the actuator if the data type of the actuator is Struct or StructArray. For example, the struct fully qualified name of an actuator might be Vehicle.Door.LockStruct.

", + "CustomProperty$structFullyQualifiedName": "

The fully qualified name of the struct node for the custom property if the data type of the custom property is Struct or StructArray.

", "DataExtraDimensionNodePathList$member": null, - "NodePaths$member": null + "NodePaths$member": null, + "Sensor$structFullyQualifiedName": "

The fully qualified name of the struct node for a sensor if the data type of the actuator is Struct or StructArray. For example, the struct fully qualified name of a sensor might be Vehicle.ADAS.CameraStruct.

" } }, "NodePaths": { @@ -944,6 +972,21 @@ "S3Config$prefix": "

(Optional) Enter an S3 bucket prefix. The prefix is the string of characters after the bucket name and before the object name. You can use the prefix to organize data stored in Amazon S3 buckets. For more information, see Organizing objects using prefixes in the Amazon Simple Storage Service User Guide.

By default, Amazon Web Services IoT FleetWise sets the prefix processed-data/year=YY/month=MM/date=DD/hour=HH/ (in UTC) to data it delivers to Amazon S3. You can enter a prefix to append it to this default prefix. For example, if you enter the prefix vehicles, the prefix will be vehicles/processed-data/year=YY/month=MM/date=DD/hour=HH/.

" } }, + "PrimitiveBoolean": { + "base": null, + "refs": { + "CanSignal$isBigEndian": "

Whether the byte ordering of a CAN message is big-endian.

", + "CanSignal$isSigned": "

Whether the message data is specified as a signed value.

", + "ObdInterface$useExtendedIds": "

Whether to use extended IDs in the message.

", + "ObdInterface$hasTransmissionEcu": "

Whether the vehicle has a transmission control module (TCM).

" + } + }, + "PrimitiveMessageDefinition": { + "base": "

Represents a primitive type node of the complex data structure.

", + "refs": { + "StructuredMessage$primitiveMessageDefinition": "

Represents a primitive type node of the complex data structure.

" + } + }, "ProtocolName": { "base": null, "refs": { @@ -961,6 +1004,12 @@ "refs": { } }, + "PutEncryptionConfigurationRequestKmsKeyIdString": { + "base": null, + "refs": { + "PutEncryptionConfigurationRequest$kmsKeyId": "

The ID of the KMS key that is used for encryption.

" + } + }, "PutEncryptionConfigurationResponse": { "base": null, "refs": { @@ -976,6 +1025,24 @@ "refs": { } }, + "ROS2PrimitiveMessageDefinition": { + "base": "

Represents a ROS 2 compliant primitive type message of the complex data structure.

", + "refs": { + "PrimitiveMessageDefinition$ros2PrimitiveMessageDefinition": "

Information about a PrimitiveMessage using a ROS 2 compliant primitive type message of the complex data structure.

" + } + }, + "ROS2PrimitiveMessageDefinitionUpperBoundLong": { + "base": null, + "refs": { + "ROS2PrimitiveMessageDefinition$upperBound": "

An optional attribute specifying the upper bound for STRING and WSTRING.

" + } + }, + "ROS2PrimitiveType": { + "base": null, + "refs": { + "ROS2PrimitiveMessageDefinition$primitiveType": "

The primitive type (integer, floating point, boolean, etc.) for the ROS 2 primitive message definition.

" + } + }, "RegisterAccountRequest": { "base": null, "refs": { @@ -1089,12 +1156,50 @@ "refs": { "FormattedVss$vssJson": "

Provides the VSS in JSON format.

", "GetEncryptionConfigurationResponse$kmsKeyId": "

The ID of the KMS key that is used for encryption.

", - "PutEncryptionConfigurationRequest$kmsKeyId": "

The ID of the KMS key that is used for encryption.

", "PutEncryptionConfigurationResponse$kmsKeyId": "

The ID of the KMS key that is used for encryption.

", "ValidationExceptionField$name": "

The name of the parameter field with the validation error.

", "ValidationExceptionField$message": "

A message about the validation error.

" } }, + "StructureMessageName": { + "base": null, + "refs": { + "StructuredMessageFieldNameAndDataTypePair$fieldName": "

The field name of the structured message. It determines how a data value is referenced in the target language.

", + "StructuredMessageListDefinition$name": "

The name of the structured message list definition.

" + } + }, + "StructuredMessage": { + "base": "

The structured message for the message signal. It can be defined with either a primitiveMessageDefinition, structuredMessageListDefinition, or structuredMessageDefinition recursively.

", + "refs": { + "MessageSignal$structuredMessage": "

The structured message for the message signal. It can be defined with either a primitiveMessageDefinition, structuredMessageListDefinition, or structuredMessageDefinition recursively.

", + "StructuredMessageFieldNameAndDataTypePair$dataType": "

The data type.

", + "StructuredMessageListDefinition$memberType": "

The member type of the structured message list definition.

" + } + }, + "StructuredMessageDefinition": { + "base": null, + "refs": { + "StructuredMessage$structuredMessageDefinition": "

Represents a struct type node of the complex data structure.

" + } + }, + "StructuredMessageFieldNameAndDataTypePair": { + "base": "

Represents a StructureMessageName to DataType map element.

", + "refs": { + "StructuredMessageDefinition$member": null + } + }, + "StructuredMessageListDefinition": { + "base": "

Represents a list type node of the complex data structure.

", + "refs": { + "StructuredMessage$structuredMessageListDefinition": "

Represents a list type node of the complex data structure.

" + } + }, + "StructuredMessageListType": { + "base": null, + "refs": { + "StructuredMessageListDefinition$listType": "

The type of list of the structured message list definition.

" + } + }, "Tag": { "base": "

A set of key/value pairs that are used to manage the resource.

", "refs": { @@ -1195,6 +1300,12 @@ "TimestreamResources$timestreamTableName": "

The name of the registered Amazon Timestream database table.

" } }, + "TopicName": { + "base": null, + "refs": { + "MessageSignal$topicName": "

The topic name for the message signal. It corresponds to topics in ROS 2.

" + } + }, "TriggerMode": { "base": null, "refs": { @@ -1332,6 +1443,24 @@ "CreateVehicleRequestItem$associationBehavior": "

An option to create a new Amazon Web Services IoT thing when creating a vehicle, or to validate an existing thing as a vehicle.

" } }, + "VehicleMiddleware": { + "base": "

The vehicle middleware defined as a type of network interface. Examples of vehicle middleware include ROS2 and SOME/IP.

", + "refs": { + "NetworkInterface$vehicleMiddleware": "

The vehicle middleware defined as a type of network interface. Examples of vehicle middleware include ROS2 and SOME/IP.

" + } + }, + "VehicleMiddlewareName": { + "base": null, + "refs": { + "VehicleMiddleware$name": "

The name of the vehicle middleware.

" + } + }, + "VehicleMiddlewareProtocol": { + "base": null, + "refs": { + "VehicleMiddleware$protocolName": "

The protocol name of the vehicle middleware.

" + } + }, "VehicleState": { "base": null, "refs": { @@ -1452,15 +1581,6 @@ "UpdateVehicleRequestItem$attributes": "

Static information about a vehicle in a key-value pair. For example:

\"engineType\" : \"1.3 L R2\"

" } }, - "boolean": { - "base": null, - "refs": { - "CanSignal$isBigEndian": "

Whether the byte ordering of a CAN message is big-endian.

", - "CanSignal$isSigned": "

Whether the message data is specified as a signed value.

", - "ObdInterface$useExtendedIds": "

Whether to use extended IDs in the message.

", - "ObdInterface$hasTransmissionEcu": "

Whether the vehicle has a transmission control module (TCM).

" - } - }, "campaignName": { "base": null, "refs": { @@ -1529,6 +1649,8 @@ "CreateFleetRequest$description": "

A brief description of the fleet to create.

", "CreateModelManifestRequest$description": "

A brief description of the vehicle model.

", "CreateSignalCatalogRequest$description": "

A brief description of the signal catalog.

", + "CustomProperty$description": "

A brief description of the custom property.

", + "CustomStruct$description": "

A brief description of the custom structure.

", "DecoderManifestSummary$description": "

A brief description of the decoder manifest.

", "FleetSummary$description": "

A brief description of the fleet.

", "GetCampaignResponse$description": "

The description of the campaign.

", @@ -1557,6 +1679,8 @@ "CanSignal$factor": "

A multiplier used to decode the CAN message.

", "ObdSignal$scaling": "

A multiplier used to decode the message.

", "ObdSignal$offset": "

The offset used to calculate the signal value. Combined with scaling, the calculation is value = raw_value * scaling + offset.

", + "ROS2PrimitiveMessageDefinition$offset": "

The offset used to calculate the signal value. Combined with scaling, the calculation is value = raw_value * scaling + offset.

", + "ROS2PrimitiveMessageDefinition$scaling": "

A multiplier used to decode the message.

", "Sensor$min": "

The specified possible minimum value of the sensor.

", "Sensor$max": "

The specified possible maximum value of the sensor.

" } @@ -1658,6 +1782,13 @@ "Attribute$comment": "

A comment in addition to the description.

", "Branch$deprecationMessage": "

The deprecation message for the node or the branch that was moved or deleted.

", "Branch$comment": "

A comment in addition to the description.

", + "CustomProperty$deprecationMessage": "

The deprecation message for the node or the branch that was moved or deleted.

", + "CustomProperty$comment": "

A comment in addition to the description.

", + "CustomStruct$deprecationMessage": "

The deprecation message for the node or the branch that was moved or deleted.

", + "CustomStruct$comment": "

A comment in addition to the description.

", + "DecoderManifestSummary$message": "

The detailed message for the decoder manifest. When a decoder manifest is in an INVALID status, the message contains detailed reason and help information.

", + "GetDecoderManifestResponse$message": "

The detailed message for the decoder manifest. When a decoder manifest is in an INVALID status, the message contains detailed reason and help information.

", + "InvalidSignalDecoder$hint": "

The possible cause for the invalid signal decoder.

", "Sensor$deprecationMessage": "

The deprecation message for the node or the branch that was moved or deleted.

", "Sensor$comment": "

A comment in addition to the description.

" } @@ -1711,7 +1842,8 @@ "ObdSignal$serviceMode": "

The mode of operation (diagnostic service) in a message.

", "ObdSignal$pid": "

The diagnostic code used to request data from a vehicle for this signal.

", "ObdSignal$startByte": "

Indicates the beginning of the message.

", - "ObdSignal$bitRightShift": "

The number of positions to shift bits in the message.

" + "ObdSignal$bitRightShift": "

The number of positions to shift bits in the message.

", + "StructuredMessageListDefinition$capacity": "

The capacity of the structured message list definition when the list type is FIXED_CAPACITY or DYNAMIC_BOUNDED_CAPACITY.

" } }, "number": { @@ -1722,6 +1854,8 @@ "NodeCounts$totalSensors": "

The total number of nodes in a vehicle network that represent sensors.

", "NodeCounts$totalAttributes": "

The total number of nodes in a vehicle network that represent attributes.

", "NodeCounts$totalActuators": "

The total number of nodes in a vehicle network that represent actuators.

", + "NodeCounts$totalStructs": "

The total structure for the node.

", + "NodeCounts$totalProperties": "

The total properties for the node.

", "UpdateVehicleError$code": "

The relevant HTTP error code (400+).

" } }, @@ -1803,6 +1937,8 @@ "ConflictException$resourceType": "

The type of resource on which there are conflicting operations..

", "CreateVehicleError$code": "

An HTTP error code.

", "CreateVehicleError$message": "

A description of the HTTP error.

", + "CustomProperty$fullyQualifiedName": "

The fully qualified name of the custom property. For example, the fully qualified name of a custom property might be ComplexDataTypes.VehicleDataTypes.SVMCamera.FPS.

", + "CustomStruct$fullyQualifiedName": "

The fully qualified name of the custom structure. For example, the fully qualified name of a custom structure might be ComplexDataTypes.VehicleDataTypes.SVMCamera.

", "DecoderManifestSummary$name": "

The name of the decoder manifest.

", "DecoderManifestValidationException$message": null, "GetDecoderManifestResponse$name": "

The name of the decoder manifest.

", diff --git a/models/apis/iotfleetwise/2021-06-17/endpoint-rule-set-1.json b/models/apis/iotfleetwise/2021-06-17/endpoint-rule-set-1.json index 0daee2ea366..c3642aa0445 100644 --- a/models/apis/iotfleetwise/2021-06-17/endpoint-rule-set-1.json +++ b/models/apis/iotfleetwise/2021-06-17/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/lakeformation/2017-03-31/api-2.json b/models/apis/lakeformation/2017-03-31/api-2.json index 63c122a62c3..d0727bd0d30 100644 --- a/models/apis/lakeformation/2017-03-31/api-2.json +++ b/models/apis/lakeformation/2017-03-31/api-2.json @@ -141,6 +141,23 @@ {"shape":"AccessDeniedException"} ] }, + "CreateLakeFormationIdentityCenterConfiguration":{ + "name":"CreateLakeFormationIdentityCenterConfiguration", + "http":{ + "method":"POST", + "requestUri":"/CreateLakeFormationIdentityCenterConfiguration" + }, + "input":{"shape":"CreateLakeFormationIdentityCenterConfigurationRequest"}, + "output":{"shape":"CreateLakeFormationIdentityCenterConfigurationResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "CreateLakeFormationOptIn":{ "name":"CreateLakeFormationOptIn", "http":{ @@ -190,6 +207,23 @@ {"shape":"AccessDeniedException"} ] }, + "DeleteLakeFormationIdentityCenterConfiguration":{ + "name":"DeleteLakeFormationIdentityCenterConfiguration", + "http":{ + "method":"POST", + "requestUri":"/DeleteLakeFormationIdentityCenterConfiguration" + }, + "input":{"shape":"DeleteLakeFormationIdentityCenterConfigurationRequest"}, + "output":{"shape":"DeleteLakeFormationIdentityCenterConfigurationResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "DeleteLakeFormationOptIn":{ "name":"DeleteLakeFormationOptIn", "http":{ @@ -241,6 +275,22 @@ {"shape":"EntityNotFoundException"} ] }, + "DescribeLakeFormationIdentityCenterConfiguration":{ + "name":"DescribeLakeFormationIdentityCenterConfiguration", + "http":{ + "method":"POST", + "requestUri":"/DescribeLakeFormationIdentityCenterConfiguration" + }, + "input":{"shape":"DescribeLakeFormationIdentityCenterConfigurationRequest"}, + "output":{"shape":"DescribeLakeFormationIdentityCenterConfigurationResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"AccessDeniedException"} + ] + }, "DescribeResource":{ "name":"DescribeResource", "http":{ @@ -768,6 +818,23 @@ {"shape":"AccessDeniedException"} ] }, + "UpdateLakeFormationIdentityCenterConfiguration":{ + "name":"UpdateLakeFormationIdentityCenterConfiguration", + "http":{ + "method":"POST", + "requestUri":"/UpdateLakeFormationIdentityCenterConfiguration" + }, + "input":{"shape":"UpdateLakeFormationIdentityCenterConfigurationRequest"}, + "output":{"shape":"UpdateLakeFormationIdentityCenterConfigurationResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConcurrentModificationException"} + ] + }, "UpdateResource":{ "name":"UpdateResource", "http":{ @@ -876,6 +943,14 @@ }, "exception":true }, + "ApplicationArn":{"type":"string"}, + "ApplicationStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "AssumeDecoratedRoleWithSAMLRequest":{ "type":"structure", "required":[ @@ -1079,6 +1154,20 @@ "members":{ } }, + "CreateLakeFormationIdentityCenterConfigurationRequest":{ + "type":"structure", + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "InstanceArn":{"shape":"IdentityCenterInstanceArn"}, + "ExternalFiltering":{"shape":"ExternalFilteringConfiguration"} + } + }, + "CreateLakeFormationIdentityCenterConfigurationResponse":{ + "type":"structure", + "members":{ + "ApplicationArn":{"shape":"ApplicationArn"} + } + }, "CreateLakeFormationOptInRequest":{ "type":"structure", "required":[ @@ -1229,6 +1318,17 @@ "members":{ } }, + "DeleteLakeFormationIdentityCenterConfigurationRequest":{ + "type":"structure", + "members":{ + "CatalogId":{"shape":"CatalogIdString"} + } + }, + "DeleteLakeFormationIdentityCenterConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteLakeFormationOptInRequest":{ "type":"structure", "required":[ @@ -1287,6 +1387,21 @@ "members":{ } }, + "DescribeLakeFormationIdentityCenterConfigurationRequest":{ + "type":"structure", + "members":{ + "CatalogId":{"shape":"CatalogIdString"} + } + }, + "DescribeLakeFormationIdentityCenterConfigurationResponse":{ + "type":"structure", + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "InstanceArn":{"shape":"IdentityCenterInstanceArn"}, + "ApplicationArn":{"shape":"ApplicationArn"}, + "ExternalFiltering":{"shape":"ExternalFilteringConfiguration"} + } + }, "DescribeResourceRequest":{ "type":"structure", "required":["ResourceArn"], @@ -1331,6 +1446,13 @@ "min":1, "pattern":"[\\p{L}\\p{N}\\p{P}]*" }, + "EnableStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "EntityNotFoundException":{ "type":"structure", "members":{ @@ -1381,6 +1503,17 @@ "members":{ } }, + "ExternalFilteringConfiguration":{ + "type":"structure", + "required":[ + "Status", + "AuthorizedTargets" + ], + "members":{ + "Status":{"shape":"EnableStatus"}, + "AuthorizedTargets":{"shape":"ScopeTargets"} + } + }, "FieldNameString":{ "type":"string", "enum":[ @@ -1689,6 +1822,7 @@ "max":255, "min":1 }, + "IdentityCenterInstanceArn":{"type":"string"}, "Integer":{ "type":"integer", "box":true @@ -2265,6 +2399,11 @@ "max":100000, "min":4 }, + "ScopeTarget":{"type":"string"}, + "ScopeTargets":{ + "type":"list", + "member":{"shape":"ScopeTarget"} + }, "SearchDatabasesByLFTagsRequest":{ "type":"structure", "required":["Expression"], @@ -2587,6 +2726,19 @@ "members":{ } }, + "UpdateLakeFormationIdentityCenterConfigurationRequest":{ + "type":"structure", + "members":{ + "CatalogId":{"shape":"CatalogIdString"}, + "ApplicationStatus":{"shape":"ApplicationStatus"}, + "ExternalFiltering":{"shape":"ExternalFilteringConfiguration"} + } + }, + "UpdateLakeFormationIdentityCenterConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateResourceRequest":{ "type":"structure", "required":[ diff --git a/models/apis/lakeformation/2017-03-31/docs-2.json b/models/apis/lakeformation/2017-03-31/docs-2.json index 7b4629a244b..f2ae734fa2a 100644 --- a/models/apis/lakeformation/2017-03-31/docs-2.json +++ b/models/apis/lakeformation/2017-03-31/docs-2.json @@ -10,12 +10,15 @@ "CommitTransaction": "

Attempts to commit the specified transaction. Returns an exception if the transaction was previously aborted. This API action is idempotent if called multiple times for the same transaction.

", "CreateDataCellsFilter": "

Creates a data cell filter to allow one to grant access to certain columns on certain rows.

", "CreateLFTag": "

Creates an LF-tag with the specified name and values.

", + "CreateLakeFormationIdentityCenterConfiguration": "

Creates an IAM Identity Center connection with Lake Formation to allow IAM Identity Center users and groups to access Data Catalog resources.

", "CreateLakeFormationOptIn": "

Enforce Lake Formation permissions for the given databases, tables, and principals.

", "DeleteDataCellsFilter": "

Deletes a data cell filter.

", "DeleteLFTag": "

Deletes the specified LF-tag given a key name. If the input parameter tag key was not found, then the operation will throw an exception. When you delete an LF-tag, the LFTagPolicy attached to the LF-tag becomes invalid. If the deleted LF-tag was still assigned to any resource, the tag policy attach to the deleted LF-tag will no longer be applied to the resource.

", + "DeleteLakeFormationIdentityCenterConfiguration": "

Deletes an IAM Identity Center connection with Lake Formation.

", "DeleteLakeFormationOptIn": "

Remove the Lake Formation permissions enforcement of the given databases, tables, and principals.

", "DeleteObjectsOnCancel": "

For a specific governed table, provides a list of Amazon S3 objects that will be written during the current transaction and that can be automatically deleted if the transaction is canceled. Without this call, no Amazon S3 objects are automatically deleted when a transaction cancels.

The Glue ETL library function write_dynamic_frame.from_catalog() includes an option to automatically call DeleteObjectsOnCancel before writes. For more information, see Rolling Back Amazon S3 Writes.

", "DeregisterResource": "

Deregisters the resource as managed by the Data Catalog.

When you deregister a path, Lake Formation removes the path from the inline policy attached to your service-linked role.

", + "DescribeLakeFormationIdentityCenterConfiguration": "

Retrieves the instance ARN and application ARN for the connection.

", "DescribeResource": "

Retrieves the current data access role for the given resource registered in Lake Formation.

", "DescribeTransaction": "

Returns the details of a single transaction.

", "ExtendTransaction": "

Indicates to the service that the specified transaction is still active and should not be treated as idle and aborted.

Write transactions that remain idle for a long period are automatically aborted unless explicitly extended.

", @@ -49,6 +52,7 @@ "StartTransaction": "

Starts a new transaction and returns its transaction ID. Transaction IDs are opaque objects that you can use to identify a transaction.

", "UpdateDataCellsFilter": "

Updates a data cell filter.

", "UpdateLFTag": "

Updates the list of possible values for the specified LF-tag key. If the LF-tag does not exist, the operation throws an EntityNotFoundException. The values in the delete key values will be deleted from list of possible values. If any value in the delete key values is attached to a resource, then API errors out with a 400 Exception - \"Update not allowed\". Untag the attribute before deleting the LF-tag key's value.

", + "UpdateLakeFormationIdentityCenterConfiguration": "

Updates the IAM Identity Center connection parameters.

", "UpdateResource": "

Updates the data access role used for vending access to the given (registered) resource in Lake Formation.

", "UpdateTableObjects": "

Updates the manifest of Amazon S3 objects that make up the specified governed table.

", "UpdateTableStorageOptimizer": "

Updates the configuration of the storage optimizers for a table.

" @@ -94,6 +98,19 @@ "refs": { } }, + "ApplicationArn": { + "base": null, + "refs": { + "CreateLakeFormationIdentityCenterConfigurationResponse$ApplicationArn": "

The Amazon Resource Name (ARN) of the integrated application.

", + "DescribeLakeFormationIdentityCenterConfigurationResponse$ApplicationArn": "

The Amazon Resource Name (ARN) of the integrated application.

" + } + }, + "ApplicationStatus": { + "base": null, + "refs": { + "UpdateLakeFormationIdentityCenterConfigurationRequest$ApplicationStatus": "

Allows to enable or disable the IAM Identity Center connection.

" + } + }, "AssumeDecoratedRoleWithSAMLRequest": { "base": null, "refs": { @@ -193,13 +210,17 @@ "BatchGrantPermissionsRequest$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.

", "BatchRevokePermissionsRequest$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.

", "CreateLFTagRequest$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.

", + "CreateLakeFormationIdentityCenterConfigurationRequest$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, view definitions, and other control information to manage your Lake Formation environment.

", "DataCellsFilter$TableCatalogId": "

The ID of the catalog to which the table belongs.

", "DataCellsFilterResource$TableCatalogId": "

The ID of the catalog to which the table belongs.

", "DataLocationResource$CatalogId": "

The identifier for the Data Catalog where the location is registered with Lake Formation. By default, it is the account ID of the caller.

", "DatabaseResource$CatalogId": "

The identifier for the Data Catalog. By default, it is the account ID of the caller.

", "DeleteDataCellsFilterRequest$TableCatalogId": "

The ID of the catalog to which the table belongs.

", "DeleteLFTagRequest$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.

", + "DeleteLakeFormationIdentityCenterConfigurationRequest$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, view definition, and other control information to manage your Lake Formation environment.

", "DeleteObjectsOnCancelRequest$CatalogId": "

The Glue data catalog that contains the governed table. Defaults to the current account ID.

", + "DescribeLakeFormationIdentityCenterConfigurationRequest$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.

", + "DescribeLakeFormationIdentityCenterConfigurationResponse$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.

", "GetDataCellsFilterRequest$TableCatalogId": "

The ID of the catalog to which the table belongs.

", "GetDataLakeSettingsRequest$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.

", "GetEffectivePermissionsForPathRequest$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.

", @@ -225,6 +246,7 @@ "TableWithColumnsResource$CatalogId": "

The identifier for the Data Catalog. By default, it is the account ID of the caller.

", "TrustedResourceOwners$member": null, "UpdateLFTagRequest$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.

", + "UpdateLakeFormationIdentityCenterConfigurationRequest$CatalogId": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, view definitions, and other control information to manage your Lake Formation environment.

", "UpdateTableObjectsRequest$CatalogId": "

The catalog containing the governed table to update. Defaults to the caller’s account ID.

", "UpdateTableStorageOptimizerRequest$CatalogId": "

The Catalog ID of the table.

" } @@ -304,6 +326,16 @@ "refs": { } }, + "CreateLakeFormationIdentityCenterConfigurationRequest": { + "base": null, + "refs": { + } + }, + "CreateLakeFormationIdentityCenterConfigurationResponse": { + "base": null, + "refs": { + } + }, "CreateLakeFormationOptInRequest": { "base": null, "refs": { @@ -431,6 +463,16 @@ "refs": { } }, + "DeleteLakeFormationIdentityCenterConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DeleteLakeFormationIdentityCenterConfigurationResponse": { + "base": null, + "refs": { + } + }, "DeleteLakeFormationOptInRequest": { "base": null, "refs": { @@ -467,6 +509,16 @@ "refs": { } }, + "DescribeLakeFormationIdentityCenterConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DescribeLakeFormationIdentityCenterConfigurationResponse": { + "base": null, + "refs": { + } + }, "DescribeResourceRequest": { "base": null, "refs": { @@ -508,6 +560,12 @@ "VirtualObject$ETag": "

The ETag of the Amazon S3 object.

" } }, + "EnableStatus": { + "base": null, + "refs": { + "ExternalFilteringConfiguration$Status": "

Allows to enable or disable the third-party applications that are allowed to access data managed by Lake Formation.

" + } + }, "EntityNotFoundException": { "base": "

A specified entity does not exist.

", "refs": { @@ -563,6 +621,14 @@ "refs": { } }, + "ExternalFilteringConfiguration": { + "base": "

Configuration for enabling external data filtering for third-party applications to access data managed by Lake Formation .

", + "refs": { + "CreateLakeFormationIdentityCenterConfigurationRequest$ExternalFiltering": "

A list of the account IDs of Amazon Web Services accounts of third-party applications that are allowed to to access data managed by Lake Formation.

", + "DescribeLakeFormationIdentityCenterConfigurationResponse$ExternalFiltering": "

Indicates if external filtering is enabled.

", + "UpdateLakeFormationIdentityCenterConfigurationRequest$ExternalFiltering": "

A list of the account IDs of Amazon Web Services accounts of third-party applications that are allowed to access data managed by Lake Formation.

" + } + }, "FieldNameString": { "base": null, "refs": { @@ -767,6 +833,13 @@ "BatchPermissionsRequestEntry$Id": "

A unique identifier for the batch permissions request entry.

" } }, + "IdentityCenterInstanceArn": { + "base": null, + "refs": { + "CreateLakeFormationIdentityCenterConfigurationRequest$InstanceArn": "

The ARN of the IAM Identity Center instance for which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

", + "DescribeLakeFormationIdentityCenterConfigurationResponse$InstanceArn": "

The Amazon Resource Name (ARN) of the connection.

" + } + }, "Integer": { "base": null, "refs": { @@ -1087,7 +1160,7 @@ "ParametersMap": { "base": null, "refs": { - "DataLakeSettings$Parameters": "

A key-value map that provides an additional configuration on your data lake. CrossAccountVersion is the key you can configure in the Parameters field. Accepted values for the CrossAccountVersion key are 1, 2, and 3.

" + "DataLakeSettings$Parameters": "

A key-value map that provides an additional configuration on your data lake. CROSS_ACCOUNT_VERSION is the key you can configure in the Parameters field. Accepted values for the CrossAccountVersion key are 1, 2, 3, and 4.

" } }, "ParametersMapValue": { @@ -1380,6 +1453,18 @@ "AssumeDecoratedRoleWithSAMLRequest$SAMLAssertion": "

A SAML assertion consisting of an assertion statement for the user who needs temporary credentials. This must match the SAML assertion that was issued to IAM. This must be Base64 encoded.

" } }, + "ScopeTarget": { + "base": null, + "refs": { + "ScopeTargets$member": null + } + }, + "ScopeTargets": { + "base": null, + "refs": { + "ExternalFilteringConfiguration$AuthorizedTargets": "

List of third-party application ARNs integrated with Lake Formation.

" + } + }, "SearchDatabasesByLFTagsRequest": { "base": null, "refs": { @@ -1614,7 +1699,7 @@ "SearchDatabasesByLFTagsRequest$NextToken": "

A continuation token, if this is not the first call to retrieve this list.

", "SearchDatabasesByLFTagsResponse$NextToken": "

A continuation token, present if the current list segment is not the last.

", "SearchTablesByLFTagsRequest$NextToken": "

A continuation token, if this is not the first call to retrieve this list.

", - "SearchTablesByLFTagsResponse$NextToken": "

A continuation token, present if the current list segment is not the last.

" + "SearchTablesByLFTagsResponse$NextToken": "

A continuation token, present if the current list segment is not the last. On the first run, if you include a not null (a value) token you can get empty pages.

" } }, "TokenString": { @@ -1729,6 +1814,16 @@ "refs": { } }, + "UpdateLakeFormationIdentityCenterConfigurationRequest": { + "base": null, + "refs": { + } + }, + "UpdateLakeFormationIdentityCenterConfigurationResponse": { + "base": null, + "refs": { + } + }, "UpdateResourceRequest": { "base": null, "refs": { diff --git a/models/apis/lakeformation/2017-03-31/endpoint-rule-set-1.json b/models/apis/lakeformation/2017-03-31/endpoint-rule-set-1.json index 363a3917c99..ecbdf12a7a4 100644 --- a/models/apis/lakeformation/2017-03-31/endpoint-rule-set-1.json +++ b/models/apis/lakeformation/2017-03-31/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/logs/2014-03-28/api-2.json b/models/apis/logs/2014-03-28/api-2.json index efb057f957e..9429c4d7256 100644 --- a/models/apis/logs/2014-03-28/api-2.json +++ b/models/apis/logs/2014-03-28/api-2.json @@ -75,6 +75,22 @@ {"shape":"ResourceAlreadyExistsException"} ] }, + "CreateLogAnomalyDetector":{ + "name":"CreateLogAnomalyDetector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLogAnomalyDetectorRequest"}, + "output":{"shape":"CreateLogAnomalyDetectorResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationAbortedException"}, + {"shape":"LimitExceededException"} + ] + }, "CreateLogGroup":{ "name":"CreateLogGroup", "http":{ @@ -208,6 +224,20 @@ {"shape":"ServiceUnavailableException"} ] }, + "DeleteLogAnomalyDetector":{ + "name":"DeleteLogAnomalyDetector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLogAnomalyDetectorRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationAbortedException"} + ] + }, "DeleteLogGroup":{ "name":"DeleteLogGroup", "http":{ @@ -591,6 +621,21 @@ {"shape":"ThrottlingException"} ] }, + "GetLogAnomalyDetector":{ + "name":"GetLogAnomalyDetector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLogAnomalyDetectorRequest"}, + "output":{"shape":"GetLogAnomalyDetectorResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationAbortedException"} + ] + }, "GetLogEvents":{ "name":"GetLogEvents", "http":{ @@ -649,6 +694,36 @@ {"shape":"ServiceUnavailableException"} ] }, + "ListAnomalies":{ + "name":"ListAnomalies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAnomaliesRequest"}, + "output":{"shape":"ListAnomaliesResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationAbortedException"} + ] + }, + "ListLogAnomalyDetectors":{ + "name":"ListLogAnomalyDetectors", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListLogAnomalyDetectorsRequest"}, + "output":{"shape":"ListLogAnomalyDetectorsResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationAbortedException"} + ] + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -971,6 +1046,34 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ] + }, + "UpdateAnomaly":{ + "name":"UpdateAnomaly", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAnomalyRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationAbortedException"} + ] + }, + "UpdateLogAnomalyDetector":{ + "name":"UpdateLogAnomalyDetector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateLogAnomalyDetectorRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"OperationAbortedException"} + ] } }, "shapes":{ @@ -1018,6 +1121,94 @@ "min":1, "pattern":"[\\w+=/:,.@-]*" }, + "Anomalies":{ + "type":"list", + "member":{"shape":"Anomaly"} + }, + "Anomaly":{ + "type":"structure", + "required":[ + "anomalyId", + "patternId", + "anomalyDetectorArn", + "patternString", + "firstSeen", + "lastSeen", + "description", + "active", + "state", + "histogram", + "logSamples", + "patternTokens", + "logGroupArnList" + ], + "members":{ + "anomalyId":{"shape":"AnomalyId"}, + "patternId":{"shape":"PatternId"}, + "anomalyDetectorArn":{"shape":"AnomalyDetectorArn"}, + "patternString":{"shape":"PatternString"}, + "patternRegex":{"shape":"PatternRegex"}, + "priority":{"shape":"Priority"}, + "firstSeen":{"shape":"EpochMillis"}, + "lastSeen":{"shape":"EpochMillis"}, + "description":{"shape":"Description"}, + "active":{"shape":"Boolean"}, + "state":{"shape":"State"}, + "histogram":{"shape":"Histogram"}, + "logSamples":{"shape":"LogSamples"}, + "patternTokens":{"shape":"PatternTokens"}, + "logGroupArnList":{"shape":"LogGroupArnList"}, + "suppressed":{"shape":"Boolean"}, + "suppressedDate":{"shape":"EpochMillis"}, + "suppressedUntil":{"shape":"EpochMillis"}, + "isPatternLevelSuppression":{"shape":"Boolean"} + } + }, + "AnomalyDetector":{ + "type":"structure", + "members":{ + "anomalyDetectorArn":{"shape":"AnomalyDetectorArn"}, + "detectorName":{"shape":"DetectorName"}, + "logGroupArnList":{"shape":"LogGroupArnList"}, + "evaluationFrequency":{"shape":"EvaluationFrequency"}, + "filterPattern":{"shape":"FilterPattern"}, + "anomalyDetectorStatus":{"shape":"AnomalyDetectorStatus"}, + "kmsKeyId":{"shape":"KmsKeyId"}, + "creationTimeStamp":{"shape":"EpochMillis"}, + "lastModifiedTimeStamp":{"shape":"EpochMillis"}, + "anomalyVisibilityTime":{"shape":"AnomalyVisibilityTime"} + } + }, + "AnomalyDetectorArn":{ + "type":"string", + "min":1, + "pattern":"[\\w#+=/:,.@-]*" + }, + "AnomalyDetectorStatus":{ + "type":"string", + "enum":[ + "INITIALIZING", + "TRAINING", + "ANALYZING", + "FAILED", + "DELETED", + "PAUSED" + ] + }, + "AnomalyDetectors":{ + "type":"list", + "member":{"shape":"AnomalyDetector"} + }, + "AnomalyId":{ + "type":"string", + "max":36, + "min":36 + }, + "AnomalyVisibilityTime":{ + "type":"long", + "max":90, + "min":7 + }, "Arn":{"type":"string"}, "AssociateKmsKeyRequest":{ "type":"structure", @@ -1028,6 +1219,7 @@ "resourceIdentifier":{"shape":"ResourceIdentifier"} } }, + "Boolean":{"type":"boolean"}, "CancelExportTaskRequest":{ "type":"structure", "required":["taskId"], @@ -1047,6 +1239,7 @@ }, "exception":true }, + "Count":{"type":"long"}, "CreateDeliveryRequest":{ "type":"structure", "required":[ @@ -1089,13 +1282,33 @@ "taskId":{"shape":"ExportTaskId"} } }, + "CreateLogAnomalyDetectorRequest":{ + "type":"structure", + "required":["logGroupArnList"], + "members":{ + "logGroupArnList":{"shape":"LogGroupArnList"}, + "detectorName":{"shape":"DetectorName"}, + "evaluationFrequency":{"shape":"EvaluationFrequency"}, + "filterPattern":{"shape":"FilterPattern"}, + "kmsKeyId":{"shape":"KmsKeyId"}, + "anomalyVisibilityTime":{"shape":"AnomalyVisibilityTime"}, + "tags":{"shape":"Tags"} + } + }, + "CreateLogAnomalyDetectorResponse":{ + "type":"structure", + "members":{ + "anomalyDetectorArn":{"shape":"AnomalyDetectorArn"} + } + }, "CreateLogGroupRequest":{ "type":"structure", "required":["logGroupName"], "members":{ "logGroupName":{"shape":"LogGroupName"}, "kmsKeyId":{"shape":"KmsKeyId"}, - "tags":{"shape":"Tags"} + "tags":{"shape":"Tags"}, + "logGroupClass":{"shape":"LogGroupClass"} } }, "CreateLogStreamRequest":{ @@ -1181,6 +1394,13 @@ "destinationName":{"shape":"DestinationName"} } }, + "DeleteLogAnomalyDetectorRequest":{ + "type":"structure", + "required":["anomalyDetectorArn"], + "members":{ + "anomalyDetectorArn":{"shape":"AnomalyDetectorArn"} + } + }, "DeleteLogGroupRequest":{ "type":"structure", "required":["logGroupName"], @@ -1432,7 +1652,8 @@ "logGroupNamePattern":{"shape":"LogGroupNamePattern"}, "nextToken":{"shape":"NextToken"}, "limit":{"shape":"DescribeLimit"}, - "includeLinkedAccounts":{"shape":"IncludeLinkedAccounts"} + "includeLinkedAccounts":{"shape":"IncludeLinkedAccounts"}, + "logGroupClass":{"shape":"LogGroupClass"} } }, "DescribeLogGroupsResponse":{ @@ -1546,6 +1767,10 @@ "nextToken":{"shape":"NextToken"} } }, + "Description":{ + "type":"string", + "min":1 + }, "Destination":{ "type":"structure", "members":{ @@ -1571,6 +1796,10 @@ "type":"list", "member":{"shape":"Destination"} }, + "DetectorName":{ + "type":"string", + "min":1 + }, "Dimensions":{ "type":"map", "key":{"shape":"DimensionsKey"}, @@ -1598,10 +1827,31 @@ "ByLogStream" ] }, + "DynamicTokenPosition":{"type":"integer"}, "EncryptionKey":{ "type":"string", "max":256 }, + "Enumerations":{ + "type":"map", + "key":{"shape":"TokenString"}, + "value":{"shape":"TokenValue"} + }, + "EpochMillis":{ + "type":"long", + "min":0 + }, + "EvaluationFrequency":{ + "type":"string", + "enum":[ + "ONE_MIN", + "FIVE_MIN", + "TEN_MIN", + "FIFTEEN_MIN", + "THIRTY_MIN", + "ONE_HOUR" + ] + }, "EventId":{"type":"string"}, "EventMessage":{ "type":"string", @@ -1801,6 +2051,27 @@ "deliverySource":{"shape":"DeliverySource"} } }, + "GetLogAnomalyDetectorRequest":{ + "type":"structure", + "required":["anomalyDetectorArn"], + "members":{ + "anomalyDetectorArn":{"shape":"AnomalyDetectorArn"} + } + }, + "GetLogAnomalyDetectorResponse":{ + "type":"structure", + "members":{ + "detectorName":{"shape":"DetectorName"}, + "logGroupArnList":{"shape":"LogGroupArnList"}, + "evaluationFrequency":{"shape":"EvaluationFrequency"}, + "filterPattern":{"shape":"FilterPattern"}, + "anomalyDetectorStatus":{"shape":"AnomalyDetectorStatus"}, + "kmsKeyId":{"shape":"KmsKeyId"}, + "creationTimeStamp":{"shape":"EpochMillis"}, + "lastModifiedTimeStamp":{"shape":"EpochMillis"}, + "anomalyVisibilityTime":{"shape":"AnomalyVisibilityTime"} + } + }, "GetLogEventsRequest":{ "type":"structure", "required":["logStreamName"], @@ -1868,6 +2139,11 @@ "encryptionKey":{"shape":"EncryptionKey"} } }, + "Histogram":{ + "type":"map", + "key":{"shape":"Time"}, + "value":{"shape":"Count"} + }, "IncludeLinkedAccounts":{"type":"boolean"}, "InheritedProperties":{ "type":"list", @@ -1900,6 +2176,7 @@ "max":100, "min":1 }, + "Integer":{"type":"integer"}, "Interleaved":{"type":"boolean"}, "InvalidOperationException":{ "type":"structure", @@ -1930,6 +2207,47 @@ }, "exception":true }, + "ListAnomaliesLimit":{ + "type":"integer", + "max":50, + "min":1 + }, + "ListAnomaliesRequest":{ + "type":"structure", + "members":{ + "anomalyDetectorArn":{"shape":"AnomalyDetectorArn"}, + "suppressionState":{"shape":"SuppressionState"}, + "limit":{"shape":"ListAnomaliesLimit"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListAnomaliesResponse":{ + "type":"structure", + "members":{ + "anomalies":{"shape":"Anomalies"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListLogAnomalyDetectorsLimit":{ + "type":"integer", + "max":50, + "min":1 + }, + "ListLogAnomalyDetectorsRequest":{ + "type":"structure", + "members":{ + "filterLogGroupArn":{"shape":"LogGroupArn"}, + "limit":{"shape":"ListLogAnomalyDetectorsLimit"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListLogAnomalyDetectorsResponse":{ + "type":"structure", + "members":{ + "anomalyDetectors":{"shape":"AnomalyDetectors"}, + "nextToken":{"shape":"NextToken"} + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["resourceArn"], @@ -1960,6 +2278,10 @@ "deprecated":true, "deprecatedMessage":"Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse" }, + "LogEvent":{ + "type":"string", + "min":1 + }, "LogEventIndex":{"type":"integer"}, "LogGroup":{ "type":"structure", @@ -1972,9 +2294,27 @@ "storedBytes":{"shape":"StoredBytes"}, "kmsKeyId":{"shape":"KmsKeyId"}, "dataProtectionStatus":{"shape":"DataProtectionStatus"}, - "inheritedProperties":{"shape":"InheritedProperties"} + "inheritedProperties":{"shape":"InheritedProperties"}, + "logGroupClass":{"shape":"LogGroupClass"} } }, + "LogGroupArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"[\\w#+=/:,.@-]*" + }, + "LogGroupArnList":{ + "type":"list", + "member":{"shape":"LogGroupArn"} + }, + "LogGroupClass":{ + "type":"string", + "enum":[ + "STANDARD", + "INFREQUENT_ACCESS" + ] + }, "LogGroupField":{ "type":"structure", "members":{ @@ -2022,6 +2362,10 @@ "value":{"shape":"Value"} }, "LogRecordPointer":{"type":"string"}, + "LogSamples":{ + "type":"list", + "member":{"shape":"LogEvent"} + }, "LogStream":{ "type":"structure", "members":{ @@ -2165,6 +2509,32 @@ "type":"list", "member":{"shape":"OutputLogEvent"} }, + "PatternId":{ + "type":"string", + "max":32, + "min":32 + }, + "PatternRegex":{ + "type":"string", + "min":1 + }, + "PatternString":{ + "type":"string", + "min":1 + }, + "PatternToken":{ + "type":"structure", + "members":{ + "dynamicTokenPosition":{"shape":"DynamicTokenPosition"}, + "isDynamic":{"shape":"Boolean"}, + "tokenString":{"shape":"TokenString"}, + "enumerations":{"shape":"Enumerations"} + } + }, + "PatternTokens":{ + "type":"list", + "member":{"shape":"PatternToken"} + }, "Percentage":{ "type":"integer", "max":100, @@ -2186,6 +2556,10 @@ "type":"string", "enum":["DATA_PROTECTION_POLICY"] }, + "Priority":{ + "type":"string", + "min":1 + }, "PutAccountPolicyRequest":{ "type":"structure", "required":[ @@ -2656,6 +3030,14 @@ "queryId":{"shape":"QueryId"} } }, + "State":{ + "type":"string", + "enum":[ + "Active", + "Suppressed", + "Baseline" + ] + }, "StatsValue":{"type":"double"}, "StopQueryRequest":{ "type":"structure", @@ -2691,6 +3073,35 @@ "member":{"shape":"SubscriptionFilter"} }, "Success":{"type":"boolean"}, + "SuppressionPeriod":{ + "type":"structure", + "members":{ + "value":{"shape":"Integer"}, + "suppressionUnit":{"shape":"SuppressionUnit"} + } + }, + "SuppressionState":{ + "type":"string", + "enum":[ + "SUPPRESSED", + "UNSUPPRESSED" + ] + }, + "SuppressionType":{ + "type":"string", + "enum":[ + "LIMITED", + "INFINITE" + ] + }, + "SuppressionUnit":{ + "type":"string", + "enum":[ + "SECONDS", + "MINUTES", + "HOURS" + ] + }, "TagKey":{ "type":"string", "max":128, @@ -2777,11 +3188,20 @@ }, "exception":true }, + "Time":{ + "type":"string", + "min":1 + }, "Timestamp":{ "type":"long", "min":0 }, "Token":{"type":"string"}, + "TokenString":{ + "type":"string", + "min":1 + }, + "TokenValue":{"type":"long"}, "TooManyTagsException":{ "type":"structure", "members":{ @@ -2821,6 +3241,31 @@ "tagKeys":{"shape":"TagKeyList"} } }, + "UpdateAnomalyRequest":{ + "type":"structure", + "required":["anomalyDetectorArn"], + "members":{ + "anomalyId":{"shape":"AnomalyId"}, + "patternId":{"shape":"PatternId"}, + "anomalyDetectorArn":{"shape":"AnomalyDetectorArn"}, + "suppressionType":{"shape":"SuppressionType"}, + "suppressionPeriod":{"shape":"SuppressionPeriod"} + } + }, + "UpdateLogAnomalyDetectorRequest":{ + "type":"structure", + "required":[ + "anomalyDetectorArn", + "enabled" + ], + "members":{ + "anomalyDetectorArn":{"shape":"AnomalyDetectorArn"}, + "evaluationFrequency":{"shape":"EvaluationFrequency"}, + "filterPattern":{"shape":"FilterPattern"}, + "anomalyVisibilityTime":{"shape":"AnomalyVisibilityTime"}, + "enabled":{"shape":"Boolean"} + } + }, "ValidationException":{ "type":"structure", "members":{ diff --git a/models/apis/logs/2014-03-28/docs-2.json b/models/apis/logs/2014-03-28/docs-2.json index 8943c983a36..226e97dd5c5 100644 --- a/models/apis/logs/2014-03-28/docs-2.json +++ b/models/apis/logs/2014-03-28/docs-2.json @@ -4,8 +4,9 @@ "operations": { "AssociateKmsKey": "

Associates the specified KMS key with either one log group in the account, or with all stored CloudWatch Logs query insights results in the account.

When you use AssociateKmsKey, you specify either the logGroupName parameter or the resourceIdentifier parameter. You can't specify both of those parameters in the same operation.

If you delete the key that is used to encrypt log events or log group query results, then all the associated stored log events or query results that were encrypted with that key will be unencryptable and unusable.

CloudWatch Logs supports only symmetric KMS keys. Do not use an associate an asymmetric KMS key with your log group or query results. For more information, see Using Symmetric and Asymmetric Keys.

It can take up to 5 minutes for this operation to take effect.

If you attempt to associate a KMS key with a log group but the KMS key does not exist or the KMS key is disabled, you receive an InvalidParameterException error.

", "CancelExportTask": "

Cancels the specified export task.

The task must be in the PENDING or RUNNING state.

", - "CreateDelivery": "

Creates a delivery. A delivery is a connection between a logical delivery source and a logical delivery destination that you have already created.

Only some Amazon Web Services services support being configured as a delivery source using this operation. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

A delivery destination can represent a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Kinesis Data Firehose.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

You can't update an existing delivery. You can only create and delete deliveries.

", + "CreateDelivery": "

Creates a delivery. A delivery is a connection between a logical delivery source and a logical delivery destination that you have already created.

Only some Amazon Web Services services support being configured as a delivery source using this operation. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

A delivery destination can represent a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Kinesis Data Firehose.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

You can't update an existing delivery. You can only create and delete deliveries.

", "CreateExportTask": "

Creates an export task so that you can efficiently export data from a log group to an Amazon S3 bucket. When you perform a CreateExportTask operation, you must use credentials that have permission to write to the S3 bucket that you specify as the destination.

Exporting log data to S3 buckets that are encrypted by KMS is supported. Exporting log data to Amazon S3 buckets that have S3 Object Lock enabled with a retention period is also supported.

Exporting to S3 buckets that are encrypted with AES-256 is supported.

This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask.

You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate log data for each export task, specify a prefix to be used as the Amazon S3 key prefix for all exported objects.

Time-based sorting on chunks of log data inside an exported file is not guaranteed. You can sort the exported log field data by using Linux utilities.

", + "CreateLogAnomalyDetector": "

Creates an anomaly detector that regularly scans one or more log groups and look for patterns and anomalies in the logs.

An anomaly detector can help surface issues by automatically discovering anomalies in your log event traffic. An anomaly detector uses machine learning algorithms to scan log events and find patterns. A pattern is a shared text structure that recurs among your log fields. Patterns provide a useful tool for analyzing large sets of logs because a large number of log events can often be compressed into a few patterns.

The anomaly detector uses pattern recognition to find anomalies, which are unusual log events. It uses the evaluationFrequency to compare current log events and patterns with trained baselines.

Fields within a pattern are called tokens. Fields that vary within a pattern, such as a request ID or timestamp, are referred to as dynamic tokens and represented by <*>.

The following is an example of a pattern:

[INFO] Request time: <*> ms

This pattern represents log events like [INFO] Request time: 327 ms and other similar log events that differ only by the number, in this csse 327. When the pattern is displayed, the different numbers are replaced by <*>

Any parts of log events that are masked as sensitive data are not scanned for anomalies. For more information about masking sensitive data, see Help protect sensitive log data with masking.

", "CreateLogGroup": "

Creates a log group with the specified name. You can create up to 1,000,000 log groups per Region per account.

You must use the following guidelines when naming a log group:

When you create a log group, by default the log events in the log group do not expire. To set a retention policy so that events expire and are deleted after a specified time, use PutRetentionPolicy.

If you associate an KMS key with the log group, ingested data is encrypted using the KMS key. This association is stored as long as the data encrypted with the KMS key is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested.

If you attempt to associate a KMS key with the log group but the KMS key does not exist or the KMS key is disabled, you receive an InvalidParameterException error.

CloudWatch Logs supports only symmetric KMS keys. Do not associate an asymmetric KMS key with your log group. For more information, see Using Symmetric and Asymmetric Keys.

", "CreateLogStream": "

Creates a log stream for the specified log group. A log stream is a sequence of log events that originate from a single source, such as an application instance or a resource that is being monitored.

There is no limit on the number of log streams that you can create for a log group. There is a limit of 50 TPS on CreateLogStream operations, after which transactions are throttled.

You must use the following guidelines when naming a log stream:

", "DeleteAccountPolicy": "

Deletes a CloudWatch Logs account policy.

To use this operation, you must be signed on with the logs:DeleteDataProtectionPolicy and logs:DeleteAccountPolicy permissions.

", @@ -15,6 +16,7 @@ "DeleteDeliveryDestinationPolicy": "

Deletes a delivery destination policy. For more information about these policies, see PutDeliveryDestinationPolicy.

", "DeleteDeliverySource": "

Deletes a delivery source. A delivery is a connection between a logical delivery source and a logical delivery destination.

You can't delete a delivery source if any current deliveries are associated with it. To find whether any deliveries are associated with this delivery source, use the DescribeDeliveries operation and check the deliverySourceName field in the results.

", "DeleteDestination": "

Deletes the specified destination, and eventually disables all the subscription filters that publish to it. This operation does not delete the physical resource encapsulated by the destination.

", + "DeleteLogAnomalyDetector": "

Deletes the specified CloudWatch Logs anomaly detector.

", "DeleteLogGroup": "

Deletes the specified log group and permanently deletes all the archived log events associated with the log group.

", "DeleteLogStream": "

Deletes the specified log stream and permanently deletes all the archived log events associated with the log stream.

", "DeleteMetricFilter": "

Deletes the specified metric filter.

", @@ -42,17 +44,20 @@ "GetDeliveryDestination": "

Retrieves complete information about one delivery destination.

", "GetDeliveryDestinationPolicy": "

Retrieves the delivery destination policy assigned to the delivery destination that you specify. For more information about delivery destinations and their policies, see PutDeliveryDestinationPolicy.

", "GetDeliverySource": "

Retrieves complete information about one delivery source.

", + "GetLogAnomalyDetector": "

Retrieves information about the log anomaly detector that you specify.

", "GetLogEvents": "

Lists log events from the specified log stream. You can list all of the log events or filter using a time range.

By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. This operation can return empty results while there are more log events available through the token.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see CloudWatch cross-account observability.

You can specify the log group to search by using either logGroupIdentifier or logGroupName. You must include one of these two parameters, but you can't include both.

", "GetLogGroupFields": "

Returns a list of the fields that are included in log events in the specified log group. Includes the percentage of log events that contain each field. The search is limited to a time period that you specify.

You can specify the log group to search by using either logGroupIdentifier or logGroupName. You must specify one of these parameters, but you can't specify both.

In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, @timestamp is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see Supported Logs and Discovered Fields.

The response results are sorted by the frequency percentage, starting with the highest percentage.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see CloudWatch cross-account observability.

", "GetLogRecord": "

Retrieves all of the fields and values of a single log event. All fields are retrieved, even if the original query that produced the logRecordPointer retrieved only a subset of fields. Fields are returned as field name/field value pairs.

The full unparsed log event is returned within @message.

", "GetQueryResults": "

Returns the results from the specified query.

Only the fields requested in the query are returned, along with a @ptr field, which is the identifier for the log record. You can use the value of @ptr in a GetLogRecord operation to get the full log record.

GetQueryResults does not start running a query. To run a query, use StartQuery. For more information about how long results of previous queries are available, see CloudWatch Logs quotas.

If the value of the Status field in the output is Running, this operation returns only partial results. If you see a value of Scheduled or Running for the status, you can retry the operation later to see the final results.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start queries in linked source accounts. For more information, see CloudWatch cross-account observability.

", + "ListAnomalies": "

Returns a list of anomalies that log anomaly detectors have found. For details about the structure format of each anomaly object that is returned, see the example in this section.

", + "ListLogAnomalyDetectors": "

Retrieves a list of the log anomaly detectors in the account.

", "ListTagsForResource": "

Displays the tags associated with a CloudWatch Logs resource. Currently, log groups and destinations support tagging.

", "ListTagsLogGroup": "

The ListTagsLogGroup operation is on the path to deprecation. We recommend that you use ListTagsForResource instead.

Lists the tags for the specified log group.

", "PutAccountPolicy": "

Creates an account-level data protection policy that applies to all log groups in the account. A data protection policy can help safeguard sensitive data that's ingested by your log groups by auditing and masking the sensitive log data. Each account can have only one account-level policy.

Sensitive data is detected and masked when it is ingested into a log group. When you set a data protection policy, log events ingested into the log groups before that time are not masked.

If you use PutAccountPolicy to create a data protection policy for your whole account, it applies to both existing log groups and all log groups that are created later in this account. The account policy is applied to existing log groups with eventual consistency. It might take up to 5 minutes before sensitive data in existing log groups begins to be masked.

By default, when a user views a log event that includes masked data, the sensitive data is replaced by asterisks. A user who has the logs:Unmask permission can use a GetLogEvents or FilterLogEvents operation with the unmask parameter set to true to view the unmasked log events. Users with the logs:Unmask can also view unmasked data in the CloudWatch Logs console by running a CloudWatch Logs Insights query with the unmask query command.

For more information, including a list of types of data that can be audited and masked, see Protect sensitive log data with masking.

To use the PutAccountPolicy operation, you must be signed on with the logs:PutDataProtectionPolicy and logs:PutAccountPolicy permissions.

The PutAccountPolicy operation applies to all log groups in the account. You can also use PutDataProtectionPolicy to create a data protection policy that applies to just one log group. If a log group has its own data protection policy and the account also has an account-level data protection policy, then the two policies are cumulative. Any sensitive term specified in either policy is masked.

", "PutDataProtectionPolicy": "

Creates a data protection policy for the specified log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data.

Sensitive data is detected and masked when it is ingested into the log group. When you set a data protection policy, log events ingested into the log group before that time are not masked.

By default, when a user views a log event that includes masked data, the sensitive data is replaced by asterisks. A user who has the logs:Unmask permission can use a GetLogEvents or FilterLogEvents operation with the unmask parameter set to true to view the unmasked log events. Users with the logs:Unmask can also view unmasked data in the CloudWatch Logs console by running a CloudWatch Logs Insights query with the unmask query command.

For more information, including a list of types of data that can be audited and masked, see Protect sensitive log data with masking.

The PutDataProtectionPolicy operation applies to only the specified log group. You can also use PutAccountPolicy to create an account-level data protection policy that applies to all log groups in the account, including both existing log groups and log groups that are created level. If a log group has its own data protection policy and the account also has an account-level data protection policy, then the two policies are cumulative. Any sensitive term specified in either policy is masked.

", - "PutDeliveryDestination": "

Creates or updates a logical delivery destination. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, and Kinesis Data Firehose are supported as logs delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery destination, all the current delivery destination parameters are overwritten with the new parameter values that you specify.

", - "PutDeliveryDestinationPolicy": "

Creates and assigns an IAM policy that grants permissions to CloudWatch Logs to deliver logs cross-account to a specified destination in this account. To configure the delivery of logs from an Amazon Web Services service in another account to a logs delivery destination in the current account, you must do the following:

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

The contents of the policy must include two statements. One statement enables general logs delivery, and the other allows delivery to the chosen destination. See the examples for the needed policies.

", - "PutDeliverySource": "

Creates or updates a logical delivery source. A delivery source represents an Amazon Web Services resource that sends logs to an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

To configure logs delivery between a delivery destination and an Amazon Web Services service that is supported as a delivery source, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery source, all the current delivery source parameters are overwritten with the new parameter values that you specify.

", + "PutDeliveryDestination": "

Creates or updates a logical delivery destination. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, and Kinesis Data Firehose are supported as logs delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery destination, all the current delivery destination parameters are overwritten with the new parameter values that you specify.

", + "PutDeliveryDestinationPolicy": "

Creates and assigns an IAM policy that grants permissions to CloudWatch Logs to deliver logs cross-account to a specified destination in this account. To configure the delivery of logs from an Amazon Web Services service in another account to a logs delivery destination in the current account, you must do the following:

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

The contents of the policy must include two statements. One statement enables general logs delivery, and the other allows delivery to the chosen destination. See the examples for the needed policies.

", + "PutDeliverySource": "

Creates or updates a logical delivery source. A delivery source represents an Amazon Web Services resource that sends logs to an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

To configure logs delivery between a delivery destination and an Amazon Web Services service that is supported as a delivery source, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

If you use this operation to update an existing delivery source, all the current delivery source parameters are overwritten with the new parameter values that you specify.

", "PutDestination": "

Creates or updates a destination. This operation is used only to create destinations for cross-account subscriptions.

A destination encapsulates a physical resource (such as an Amazon Kinesis stream). With a destination, you can subscribe to a real-time stream of log events for a different account, ingested using PutLogEvents.

Through an access policy, a destination controls what is written to it. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call PutSubscriptionFilter against this destination. To enable this, the destination owner must call PutDestinationPolicy after PutDestination.

To perform a PutDestination operation, you must also have the iam:PassRole permission.

", "PutDestinationPolicy": "

Creates or updates an access policy associated with an existing destination. An access policy is an IAM policy document that is used to authorize claims to register a subscription filter against a given destination.

", "PutLogEvents": "

Uploads a batch of log events to the specified log stream.

The sequence token is now ignored in PutLogEvents actions. PutLogEvents actions are always accepted and never return InvalidSequenceTokenException or DataAlreadyAcceptedException even if the sequence token is not valid. You can use parallel PutLogEvents actions on the same log stream.

The batch of events must satisfy the following constraints:

If a call to PutLogEvents returns \"UnrecognizedClientException\" the most likely cause is a non-valid Amazon Web Services access key ID or secret key.

", @@ -67,7 +72,9 @@ "TagResource": "

Assigns one or more tags (key-value pairs) to the specified CloudWatch Logs resource. Currently, the only CloudWatch Logs resources that can be tagged are log groups and destinations.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

You can use the TagResource action with a resource that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a CloudWatch Logs resource.

", "TestMetricFilter": "

Tests the filter pattern of a metric filter against a sample of log event messages. You can use this operation to validate the correctness of a metric filter pattern.

", "UntagLogGroup": "

The UntagLogGroup operation is on the path to deprecation. We recommend that you use UntagResource instead.

Removes the specified tags from the specified log group.

To list the tags for a log group, use ListTagsForResource. To add tags, use TagResource.

CloudWatch Logs doesn’t support IAM policies that prevent users from assigning specified tags to log groups using the aws:Resource/key-name or aws:TagKeys condition keys.

", - "UntagResource": "

Removes one or more tags from the specified resource.

" + "UntagResource": "

Removes one or more tags from the specified resource.

", + "UpdateAnomaly": "

Use this operation to suppress anomaly detection for a specified anomaly or pattern. If you suppress an anomaly, CloudWatch Logs won’t report new occurrences of that anomaly and won't update that anomaly with new data. If you suppress a pattern, CloudWatch Logs won’t report any anomalies related to that pattern.

You must specify either anomalyId or patternId, but you can't specify both parameters in the same operation.

If you have previously used this operation to suppress detection of a pattern or anomaly, you can use it again to cause CloudWatch Logs to end the suppression. To do this, use this operation and specify the anomaly or pattern to stop suppressing, and omit the suppressionType and suppressionPeriod parameters.

", + "UpdateLogAnomalyDetector": "

Updates an existing log anomaly detector.

" }, "shapes": { "AccessDeniedException": { @@ -125,6 +132,66 @@ "UntagResourceRequest$resourceArn": "

The ARN of the CloudWatch Logs resource that you're removing tags from.

The ARN format of a log group is arn:aws:logs:Region:account-id:log-group:log-group-name

The ARN format of a destination is arn:aws:logs:Region:account-id:destination:destination-name

For more information about ARN format, see CloudWatch Logs resources and operations.

" } }, + "Anomalies": { + "base": null, + "refs": { + "ListAnomaliesResponse$anomalies": "

An array of structures, where each structure contains information about one anomaly that a log anomaly detector has found.

" + } + }, + "Anomaly": { + "base": "

This structure represents one anomaly that has been found by a logs anomaly detector.

For more information about patterns and anomalies, see CreateLogAnomalyDetector.

", + "refs": { + "Anomalies$member": null + } + }, + "AnomalyDetector": { + "base": "

Contains information about one anomaly detector in the account.

", + "refs": { + "AnomalyDetectors$member": null + } + }, + "AnomalyDetectorArn": { + "base": null, + "refs": { + "Anomaly$anomalyDetectorArn": "

The ARN of the anomaly detector that identified this anomaly.

", + "AnomalyDetector$anomalyDetectorArn": "

The ARN of the anomaly detector.

", + "CreateLogAnomalyDetectorResponse$anomalyDetectorArn": "

The ARN of the log anomaly detector that you just created.

", + "DeleteLogAnomalyDetectorRequest$anomalyDetectorArn": "

The ARN of the anomaly detector to delete. You can find the ARNs of log anomaly detectors in your account by using the ListLogAnomalyDetectors operation.

", + "GetLogAnomalyDetectorRequest$anomalyDetectorArn": "

The ARN of the anomaly detector to retrieve information about. You can find the ARNs of log anomaly detectors in your account by using the ListLogAnomalyDetectors operation.

", + "ListAnomaliesRequest$anomalyDetectorArn": "

Use this to optionally limit the results to only the anomalies found by a certain anomaly detector.

", + "UpdateAnomalyRequest$anomalyDetectorArn": "

The ARN of the anomaly detector that this operation is to act on.

", + "UpdateLogAnomalyDetectorRequest$anomalyDetectorArn": "

The ARN of the anomaly detector that you want to update.

" + } + }, + "AnomalyDetectorStatus": { + "base": null, + "refs": { + "AnomalyDetector$anomalyDetectorStatus": "

Specifies the current status of the anomaly detector. To pause an anomaly detector, use the enabled parameter in the UpdateLogAnomalyDetector operation.

", + "GetLogAnomalyDetectorResponse$anomalyDetectorStatus": "

Specifies whether the anomaly detector is currently active. To change its status, use the enabled parameter in the UpdateLogAnomalyDetector operation.

" + } + }, + "AnomalyDetectors": { + "base": null, + "refs": { + "ListLogAnomalyDetectorsResponse$anomalyDetectors": "

An array of structures, where each structure in the array contains information about one anomaly detector.

" + } + }, + "AnomalyId": { + "base": null, + "refs": { + "Anomaly$anomalyId": "

The unique ID that CloudWatch Logs assigned to this anomaly.

", + "UpdateAnomalyRequest$anomalyId": "

If you are suppressing or unsuppressing an anomaly, specify its unique ID here. You can find anomaly IDs by using the ListAnomalies operation.

" + } + }, + "AnomalyVisibilityTime": { + "base": null, + "refs": { + "AnomalyDetector$anomalyVisibilityTime": "

The number of days used as the life cycle of anomalies. After this time, anomalies are automatically baselined and the anomaly detector model will treat new occurrences of similar event as normal.

", + "CreateLogAnomalyDetectorRequest$anomalyVisibilityTime": "

The number of days to have visibility on an anomaly. After this time period has elapsed for an anomaly, it will be automatically baselined and the anomaly detector will treat new occurrences of a similar anomaly as normal. Therefore, if you do not correct the cause of an anomaly during the time period specified in anomalyVisibilityTime, it will be considered normal going forward and will not be detected as an anomaly.

", + "GetLogAnomalyDetectorResponse$anomalyVisibilityTime": "

The number of days used as the life cycle of anomalies. After this time, anomalies are automatically baselined and the anomaly detector model will treat new occurrences of similar event as normal.

", + "UpdateLogAnomalyDetectorRequest$anomalyVisibilityTime": "

The number of days to use as the life cycle of anomalies. After this time, anomalies are automatically baselined and the anomaly detector model will treat new occurrences of similar event as normal. Therefore, if you do not correct the cause of an anomaly during this time, it will be considered normal going forward and will not be detected.

" + } + }, "Arn": { "base": null, "refs": { @@ -146,6 +213,16 @@ "refs": { } }, + "Boolean": { + "base": null, + "refs": { + "Anomaly$active": "

Specifies whether this anomaly is still ongoing.

", + "Anomaly$suppressed": "

Indicates whether this anomaly is currently suppressed. To suppress an anomaly, use UpdateAnomaly.

", + "Anomaly$isPatternLevelSuppression": "

If this anomaly is suppressed, this field is true if the suppression is because the pattern is suppressed. If false, then only this particular anomaly is suppressed.

", + "PatternToken$isDynamic": "

Specifies whether this is a dynamic token.

", + "UpdateLogAnomalyDetectorRequest$enabled": "

Use this parameter to pause or restart the anomaly detector.

" + } + }, "CancelExportTaskRequest": { "base": null, "refs": { @@ -162,6 +239,12 @@ "refs": { } }, + "Count": { + "base": null, + "refs": { + "Histogram$value": null + } + }, "CreateDeliveryRequest": { "base": null, "refs": { @@ -182,6 +265,16 @@ "refs": { } }, + "CreateLogAnomalyDetectorRequest": { + "base": null, + "refs": { + } + }, + "CreateLogAnomalyDetectorResponse": { + "base": null, + "refs": { + } + }, "CreateLogGroupRequest": { "base": null, "refs": { @@ -259,6 +352,11 @@ "refs": { } }, + "DeleteLogAnomalyDetectorRequest": { + "base": null, + "refs": { + } + }, "DeleteLogGroupRequest": { "base": null, "refs": { @@ -314,7 +412,7 @@ } }, "DeliveryDestination": { - "base": "

This structure contains information about one delivery destination in your account. A delivery destination is an Amazon Web Services resource that represents an shared id=\"AWS\"/> service that logs can be sent to. CloudWatch Logs, Amazon S3, are supported as Kinesis Data Firehose delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

", + "base": "

This structure contains information about one delivery destination in your account. A delivery destination is an Amazon Web Services resource that represents an Amazon Web Services service that logs can be sent to. CloudWatch Logs, Amazon S3, are supported as Kinesis Data Firehose delivery destinations.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

", "refs": { "DeliveryDestinations$member": null, "GetDeliveryDestinationResponse$deliveryDestination": "

A structure containing information about the delivery destination.

", @@ -369,7 +467,7 @@ } }, "DeliverySource": { - "base": "

This structure contains information about one delivery source in your account. A delivery source is an Amazon Web Services resource that sends logs to an Amazon Web Services destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

", + "base": "

This structure contains information about one delivery source in your account. A delivery source is an Amazon Web Services resource that sends logs to an Amazon Web Services destination. The destination can be CloudWatch Logs, Amazon S3, or Kinesis Data Firehose.

Only some Amazon Web Services services support being configured as a delivery source. These services are listed as Supported [V2 Permissions] in the table at Enabling logging from Amazon Web Services services.

To configure logs delivery between a supported Amazon Web Services service and a destination, you must do the following:

You can configure a single delivery source to send logs to multiple destinations by creating multiple deliveries. You can also create multiple deliveries to configure multiple delivery sources to send logs to the same delivery destination.

", "refs": { "DeliverySources$member": null, "GetDeliverySourceResponse$deliverySource": "

A structure containing information about the delivery source.

", @@ -550,6 +648,12 @@ "refs": { } }, + "Description": { + "base": null, + "refs": { + "Anomaly$description": "

A human-readable description of the anomaly. This description is generated by CloudWatch Logs.

" + } + }, "Destination": { "base": "

Represents a cross-account destination that receives subscription log events.

", "refs": { @@ -580,6 +684,14 @@ "DescribeDestinationsResponse$destinations": "

The destinations.

" } }, + "DetectorName": { + "base": null, + "refs": { + "AnomalyDetector$detectorName": "

The name of the anomaly detector.

", + "CreateLogAnomalyDetectorRequest$detectorName": "

A name for this anomaly detector.

", + "GetLogAnomalyDetectorResponse$detectorName": "

The name of the log anomaly detector

" + } + }, "Dimensions": { "base": null, "refs": { @@ -610,12 +722,46 @@ "SubscriptionFilter$distribution": null } }, + "DynamicTokenPosition": { + "base": null, + "refs": { + "PatternToken$dynamicTokenPosition": "

For a dynamic token, this indicates where in the pattern that this token appears, related to other dynamic tokens. The dynamic token that appears first has a value of 1, the one that appears second is 2, and so on.

" + } + }, "EncryptionKey": { "base": null, "refs": { "GetQueryResultsResponse$encryptionKey": "

If you associated an KMS key with the CloudWatch Logs Insights query results in this account, this field displays the ARN of the key that's used to encrypt the query results when StartQuery stores them.

" } }, + "Enumerations": { + "base": null, + "refs": { + "PatternToken$enumerations": "

Contains the values found for a dynamic token, and the number of times each value was found.

" + } + }, + "EpochMillis": { + "base": null, + "refs": { + "Anomaly$firstSeen": "

The date and time when the anomaly detector first saw this anomaly. It is specified as epoch time, which is the number of seconds since January 1, 1970, 00:00:00 UTC.

", + "Anomaly$lastSeen": "

The date and time when the anomaly detector most recently saw this anomaly. It is specified as epoch time, which is the number of seconds since January 1, 1970, 00:00:00 UTC.

", + "Anomaly$suppressedDate": "

If the anomaly is suppressed, this indicates when it was suppressed.

", + "Anomaly$suppressedUntil": "

If the anomaly is suppressed, this indicates when the suppression will end. If this value is 0, the anomaly was suppressed with no expiration, with the INFINITE value.

", + "AnomalyDetector$creationTimeStamp": "

The date and time when this anomaly detector was created.

", + "AnomalyDetector$lastModifiedTimeStamp": "

The date and time when this anomaly detector was most recently modified.

", + "GetLogAnomalyDetectorResponse$creationTimeStamp": "

The date and time when this anomaly detector was created.

", + "GetLogAnomalyDetectorResponse$lastModifiedTimeStamp": "

The date and time when this anomaly detector was most recently modified.

" + } + }, + "EvaluationFrequency": { + "base": null, + "refs": { + "AnomalyDetector$evaluationFrequency": "

Specifies how often the anomaly detector runs and look for anomalies.

", + "CreateLogAnomalyDetectorRequest$evaluationFrequency": "

Specifies how often the anomaly detector is to run and look for anomalies. Set this value according to the frequency that the log group receives new logs. For example, if the log group receives new log events every 10 minutes, then 15 minutes might be a good setting for evaluationFrequency .

", + "GetLogAnomalyDetectorResponse$evaluationFrequency": "

Specifies how often the anomaly detector runs and look for anomalies. Set this value according to the frequency that the log group receives new logs. For example, if the log group receives new log events every 10 minutes, then setting evaluationFrequency to FIFTEEN_MIN might be appropriate.

", + "UpdateLogAnomalyDetectorRequest$evaluationFrequency": "

Specifies how often the anomaly detector runs and look for anomalies. Set this value according to the frequency that the log group receives new logs. For example, if the log group receives new log events every 10 minutes, then setting evaluationFrequency to FIFTEEN_MIN might be appropriate.

" + } + }, "EventId": { "base": null, "refs": { @@ -759,12 +905,16 @@ "FilterPattern": { "base": "

A symbolic description of how CloudWatch Logs should interpret the data in each log event. For example, a log event can contain timestamps, IP addresses, strings, and so on. You use the filter pattern to specify what to look for in the log event message.

", "refs": { + "AnomalyDetector$filterPattern": null, + "CreateLogAnomalyDetectorRequest$filterPattern": "

You can use this parameter to limit the anomaly detection model to examine only log events that match the pattern you specify here. For more information, see Filter and Pattern Syntax.

", "FilterLogEventsRequest$filterPattern": "

The filter pattern to use. For more information, see Filter and Pattern Syntax.

If not provided, all the events are matched.

", + "GetLogAnomalyDetectorResponse$filterPattern": null, "MetricFilter$filterPattern": null, "PutMetricFilterRequest$filterPattern": "

A filter pattern for extracting metric data out of ingested log events.

", "PutSubscriptionFilterRequest$filterPattern": "

A filter pattern for subscribing to a filtered stream of log events.

", "SubscriptionFilter$filterPattern": null, - "TestMetricFilterRequest$filterPattern": null + "TestMetricFilterRequest$filterPattern": null, + "UpdateLogAnomalyDetectorRequest$filterPattern": null } }, "FilteredLogEvent": { @@ -835,6 +985,16 @@ "refs": { } }, + "GetLogAnomalyDetectorRequest": { + "base": null, + "refs": { + } + }, + "GetLogAnomalyDetectorResponse": { + "base": null, + "refs": { + } + }, "GetLogEventsRequest": { "base": null, "refs": { @@ -875,6 +1035,12 @@ "refs": { } }, + "Histogram": { + "base": null, + "refs": { + "Anomaly$histogram": "

A map showing times when the anomaly detector ran, and the number of occurrences of this anomaly that were detected at each of those runs. The times are specified in epoch time, which is the number of seconds since January 1, 1970, 00:00:00 UTC.

" + } + }, "IncludeLinkedAccounts": { "base": null, "refs": { @@ -911,6 +1077,12 @@ "FilterLogEventsRequest$logStreamNames": "

Filters the results to only logs from the log streams in this list.

If you specify a value for both logStreamNamePrefix and logStreamNames, the action returns an InvalidParameterException error.

" } }, + "Integer": { + "base": null, + "refs": { + "SuppressionPeriod$value": "

Specifies the number of seconds, minutes or hours to suppress this anomaly. There is no maximum.

" + } + }, "Interleaved": { "base": null, "refs": { @@ -935,8 +1107,11 @@ "KmsKeyId": { "base": null, "refs": { + "AnomalyDetector$kmsKeyId": "

The ID of the KMS key assigned to this anomaly detector, if any.

", "AssociateKmsKeyRequest$kmsKeyId": "

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. This must be a symmetric KMS key. For more information, see Amazon Resource Names and Using Symmetric and Asymmetric Keys.

", + "CreateLogAnomalyDetectorRequest$kmsKeyId": "

Optionally assigns a KMS key to secure this anomaly detector and its findings. If a key is assigned, the anomalies found and the model used by this detector are encrypted at rest with the key. If a key is assigned to an anomaly detector, a user must have permissions for both this key and for the anomaly detector to retrieve information about the anomalies that it finds.

For more information about using a KMS key and to see the required IAM policy, see Use a KMS key with an anomaly detector.

", "CreateLogGroupRequest$kmsKeyId": "

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. For more information, see Amazon Resource Names.

", + "GetLogAnomalyDetectorResponse$kmsKeyId": "

The ID of the KMS key assigned to this anomaly detector, if any.

", "LogGroup$kmsKeyId": "

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data.

" } }, @@ -945,6 +1120,38 @@ "refs": { } }, + "ListAnomaliesLimit": { + "base": null, + "refs": { + "ListAnomaliesRequest$limit": "

The maximum number of items to return. If you don't specify a value, the default maximum value of 50 items is used.

" + } + }, + "ListAnomaliesRequest": { + "base": null, + "refs": { + } + }, + "ListAnomaliesResponse": { + "base": null, + "refs": { + } + }, + "ListLogAnomalyDetectorsLimit": { + "base": null, + "refs": { + "ListLogAnomalyDetectorsRequest$limit": "

The maximum number of items to return. If you don't specify a value, the default maximum value of 50 items is used.

" + } + }, + "ListLogAnomalyDetectorsRequest": { + "base": null, + "refs": { + } + }, + "ListLogAnomalyDetectorsResponse": { + "base": null, + "refs": { + } + }, "ListTagsForResourceRequest": { "base": null, "refs": { @@ -965,6 +1172,12 @@ "refs": { } }, + "LogEvent": { + "base": null, + "refs": { + "LogSamples$member": null + } + }, "LogEventIndex": { "base": null, "refs": { @@ -979,6 +1192,30 @@ "LogGroups$member": null } }, + "LogGroupArn": { + "base": null, + "refs": { + "ListLogAnomalyDetectorsRequest$filterLogGroupArn": "

Use this to optionally filter the results to only include anomaly detectors that are associated with the specified log group.

", + "LogGroupArnList$member": null + } + }, + "LogGroupArnList": { + "base": null, + "refs": { + "Anomaly$logGroupArnList": "

An array of ARNS of the log groups that contained log events considered to be part of this anomaly.

", + "AnomalyDetector$logGroupArnList": "

A list of the ARNs of the log groups that this anomaly detector watches.

", + "CreateLogAnomalyDetectorRequest$logGroupArnList": "

An array containing the ARNs of the log groups that this anomaly detector will watch. You must specify at least one ARN.

", + "GetLogAnomalyDetectorResponse$logGroupArnList": "

An array of structures, where each structure contains the ARN of a log group associated with this anomaly detector.

" + } + }, + "LogGroupClass": { + "base": null, + "refs": { + "CreateLogGroupRequest$logGroupClass": "

Use this parameter to specify the log group class for this log group. There are two classes:

If you omit this parameter, the default of STANDARD is used.

For details about the features supported by each class, see Log classes

", + "DescribeLogGroupsRequest$logGroupClass": "

Specifies the log group class for this log group. There are two classes:

For details about the features supported by each class, see Log classes

", + "LogGroup$logGroupClass": "

This specifies the log group class for this log group. There are two classes:

For details about the features supported by each class, see Log classes

" + } + }, "LogGroupField": { "base": "

The fields contained in log events found by a GetLogGroupFields operation, along with the percentage of queried log events in which each field appears.

", "refs": { @@ -1017,7 +1254,7 @@ "refs": { "AssociateKmsKeyRequest$logGroupName": "

The name of the log group.

In your AssociateKmsKey operation, you must specify either the resourceIdentifier parameter or the logGroup parameter, but you can't specify both.

", "CreateExportTaskRequest$logGroupName": "

The name of the log group.

", - "CreateLogGroupRequest$logGroupName": "

The name of the log group.

", + "CreateLogGroupRequest$logGroupName": "

A name for the log group.

", "CreateLogStreamRequest$logGroupName": "

The name of the log group.

", "DeleteLogGroupRequest$logGroupName": "

The name of the log group.

", "DeleteLogStreamRequest$logGroupName": "

The name of the log group.

", @@ -1081,6 +1318,12 @@ "GetLogRecordRequest$logRecordPointer": "

The pointer corresponding to the log event record you want to retrieve. You get this from the response of a GetQueryResults operation. In that response, the value of the @ptr field for a log event is the value to use as logRecordPointer to retrieve that complete log event record.

" } }, + "LogSamples": { + "base": null, + "refs": { + "Anomaly$logSamples": "

An array of sample log event messages that are considered to be part of this anomaly.

" + } + }, "LogStream": { "base": "

Represents a log stream, which is a sequence of log events from a single emitter of logs.

", "refs": { @@ -1222,7 +1465,11 @@ "FilterLogEventsResponse$nextToken": "

The token to use when requesting the next set of items. The token expires after 24 hours.

", "GetLogEventsRequest$nextToken": "

The token for the next set of items to return. (You received this token from a previous call.)

", "GetLogEventsResponse$nextForwardToken": "

The token for the next set of items in the forward direction. The token expires after 24 hours. If you have reached the end of the stream, it returns the same token you passed in.

", - "GetLogEventsResponse$nextBackwardToken": "

The token for the next set of items in the backward direction. The token expires after 24 hours. This token is not null. If you have reached the end of the stream, it returns the same token you passed in.

" + "GetLogEventsResponse$nextBackwardToken": "

The token for the next set of items in the backward direction. The token expires after 24 hours. This token is not null. If you have reached the end of the stream, it returns the same token you passed in.

", + "ListAnomaliesRequest$nextToken": null, + "ListAnomaliesResponse$nextToken": null, + "ListLogAnomalyDetectorsRequest$nextToken": null, + "ListLogAnomalyDetectorsResponse$nextToken": null } }, "OperationAbortedException": { @@ -1255,6 +1502,37 @@ "GetLogEventsResponse$events": "

The events.

" } }, + "PatternId": { + "base": null, + "refs": { + "Anomaly$patternId": "

The ID of the pattern used to help identify this anomaly.

", + "UpdateAnomalyRequest$patternId": "

If you are suppressing or unsuppressing an pattern, specify its unique ID here. You can find pattern IDs by using the ListAnomalies operation.

" + } + }, + "PatternRegex": { + "base": null, + "refs": { + "Anomaly$patternRegex": "

The pattern used to help identify this anomaly, in regular expression format.

" + } + }, + "PatternString": { + "base": null, + "refs": { + "Anomaly$patternString": "

The pattern used to help identify this anomaly, in string format.

" + } + }, + "PatternToken": { + "base": "

A tructures that contains information about one pattern token related to an anomaly.

For more information about patterns and tokens, see CreateLogAnomalyDetector.

", + "refs": { + "PatternTokens$member": null + } + }, + "PatternTokens": { + "base": null, + "refs": { + "Anomaly$patternTokens": "

An array of structures where each structure contains information about one token that makes up the pattern.

" + } + }, "Percentage": { "base": null, "refs": { @@ -1296,6 +1574,12 @@ "PutAccountPolicyRequest$policyType": "

Currently the only valid value for this parameter is DATA_PROTECTION_POLICY.

" } }, + "Priority": { + "base": null, + "refs": { + "Anomaly$priority": "

The priority level of this anomaly, as determined by CloudWatch Logs. Priority is computed based on log severity labels such as FATAL and ERROR and the amount of deviation from the baseline. Possible values are HIGH, MEDIUM, and LOW.

" + } + }, "PutAccountPolicyRequest": { "base": null, "refs": { @@ -1640,6 +1924,12 @@ "refs": { } }, + "State": { + "base": null, + "refs": { + "Anomaly$state": "

Indicates the current state of this anomaly. If it is still being treated as an anomaly, the value is Active. If you have suppressed this anomaly by using the UpdateAnomaly operation, the value is Suppressed. If this behavior is now considered to be normal, the value is Baseline.

" + } + }, "StatsValue": { "base": null, "refs": { @@ -1684,6 +1974,30 @@ "StopQueryResponse$success": "

This is true if the query was stopped by the StopQuery operation.

" } }, + "SuppressionPeriod": { + "base": "

If you are suppressing an anomaly temporariliy, this structure defines how long the suppression period is to be.

", + "refs": { + "UpdateAnomalyRequest$suppressionPeriod": "

If you are temporarily suppressing an anomaly or pattern, use this structure to specify how long the suppression is to last.

" + } + }, + "SuppressionState": { + "base": null, + "refs": { + "ListAnomaliesRequest$suppressionState": "

You can specify this parameter if you want to the operation to return only anomalies that are currently either suppressed or unsuppressed.

" + } + }, + "SuppressionType": { + "base": null, + "refs": { + "UpdateAnomalyRequest$suppressionType": "

Use this to specify whether the suppression to be temporary or infinite. If you specify LIMITED, you must also specify a suppressionPeriod. If you specify INFINITE, any value for suppressionPeriod is ignored.

" + } + }, + "SuppressionUnit": { + "base": null, + "refs": { + "SuppressionPeriod$suppressionUnit": "

Specifies whether the value of value is in seconds, minutes, or hours.

" + } + }, "TagKey": { "base": null, "refs": { @@ -1724,6 +2038,7 @@ "base": null, "refs": { "CreateDeliveryRequest$tags": "

An optional list of key-value pairs to associate with the resource.

For more information about tagging, see Tagging Amazon Web Services resources

", + "CreateLogAnomalyDetectorRequest$tags": "

An optional list of key-value pairs to associate with the resource.

For more information about tagging, see Tagging Amazon Web Services resources

", "CreateLogGroupRequest$tags": "

The key-value pairs to use for the tags.

You can grant users access to certain log groups while preventing them from accessing other log groups. To do so, tag your groups and use IAM policies that refer to those tags. To assign tags when you create a log group, you must have either the logs:TagResource or logs:TagLogGroup permission. For more information about tagging, see Tagging Amazon Web Services resources. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

", "Delivery$tags": "

The tags that have been assigned to this delivery.

", "DeliveryDestination$tags": "

The tags that have been assigned to this delivery destination.

", @@ -1765,6 +2080,12 @@ "refs": { } }, + "Time": { + "base": null, + "refs": { + "Histogram$key": null + } + }, "Timestamp": { "base": null, "refs": { @@ -1808,6 +2129,19 @@ "ExtractedValues$key": null } }, + "TokenString": { + "base": null, + "refs": { + "Enumerations$key": null, + "PatternToken$tokenString": "

The string represented by this token. If this is a dynamic token, the value will be <*>

" + } + }, + "TokenValue": { + "base": null, + "refs": { + "Enumerations$value": null + } + }, "TooManyTagsException": { "base": "

A resource can have no more than 50 tags.

", "refs": { @@ -1836,6 +2170,16 @@ "refs": { } }, + "UpdateAnomalyRequest": { + "base": null, + "refs": { + } + }, + "UpdateLogAnomalyDetectorRequest": { + "base": null, + "refs": { + } + }, "ValidationException": { "base": "

One of the parameters for the request is not valid.

", "refs": { diff --git a/models/apis/logs/2014-03-28/paginators-1.json b/models/apis/logs/2014-03-28/paginators-1.json index 523ced1c604..392595c6ccb 100644 --- a/models/apis/logs/2014-03-28/paginators-1.json +++ b/models/apis/logs/2014-03-28/paginators-1.json @@ -62,6 +62,18 @@ "limit_key": "limit", "output_token": "nextForwardToken", "result_key": "events" + }, + "ListAnomalies": { + "input_token": "nextToken", + "limit_key": "limit", + "output_token": "nextToken", + "result_key": "anomalies" + }, + "ListLogAnomalyDetectors": { + "input_token": "nextToken", + "limit_key": "limit", + "output_token": "nextToken", + "result_key": "anomalyDetectors" } } } \ No newline at end of file diff --git a/models/apis/managedblockchain/2018-09-24/api-2.json b/models/apis/managedblockchain/2018-09-24/api-2.json index a6d2ba0e71d..9737c3fa9d7 100644 --- a/models/apis/managedblockchain/2018-09-24/api-2.json +++ b/models/apis/managedblockchain/2018-09-24/api-2.json @@ -476,7 +476,8 @@ "Status":{"shape":"AccessorStatus"}, "CreationDate":{"shape":"Timestamp"}, "Arn":{"shape":"ArnString"}, - "Tags":{"shape":"OutputTagMap"} + "Tags":{"shape":"OutputTagMap"}, + "NetworkType":{"shape":"AccessorNetworkType"} } }, "AccessorBillingTokenString":{ @@ -490,6 +491,16 @@ "max":50, "min":1 }, + "AccessorNetworkType":{ + "type":"string", + "enum":[ + "ETHEREUM_GOERLI", + "ETHEREUM_MAINNET", + "ETHEREUM_MAINNET_AND_GOERLI", + "POLYGON_MAINNET", + "POLYGON_MUMBAI" + ] + }, "AccessorStatus":{ "type":"string", "enum":[ @@ -505,7 +516,8 @@ "Type":{"shape":"AccessorType"}, "Status":{"shape":"AccessorStatus"}, "CreationDate":{"shape":"Timestamp"}, - "Arn":{"shape":"ArnString"} + "Arn":{"shape":"ArnString"}, + "NetworkType":{"shape":"AccessorNetworkType"} } }, "AccessorSummaryList":{ @@ -548,14 +560,16 @@ "idempotencyToken":true }, "AccessorType":{"shape":"AccessorType"}, - "Tags":{"shape":"InputTagMap"} + "Tags":{"shape":"InputTagMap"}, + "NetworkType":{"shape":"AccessorNetworkType"} } }, "CreateAccessorOutput":{ "type":"structure", "members":{ "AccessorId":{"shape":"ResourceIdString"}, - "BillingToken":{"shape":"AccessorBillingTokenString"} + "BillingToken":{"shape":"AccessorBillingTokenString"}, + "NetworkType":{"shape":"AccessorNetworkType"} } }, "CreateMemberInput":{ @@ -970,6 +984,11 @@ "shape":"PaginationToken", "location":"querystring", "locationName":"nextToken" + }, + "NetworkType":{ + "shape":"AccessorNetworkType", + "location":"querystring", + "locationName":"networkType" } } }, diff --git a/models/apis/managedblockchain/2018-09-24/docs-2.json b/models/apis/managedblockchain/2018-09-24/docs-2.json index 95d600748cb..0c32707fd5a 100644 --- a/models/apis/managedblockchain/2018-09-24/docs-2.json +++ b/models/apis/managedblockchain/2018-09-24/docs-2.json @@ -2,7 +2,7 @@ "version": "2.0", "service": "

Amazon Managed Blockchain is a fully managed service for creating and managing blockchain networks using open-source frameworks. Blockchain allows you to build applications where multiple parties can securely and transparently run transactions and share data without the need for a trusted, central authority.

Managed Blockchain supports the Hyperledger Fabric and Ethereum open-source frameworks. Because of fundamental differences between the frameworks, some API actions or data types may only apply in the context of one framework and not the other. For example, actions related to Hyperledger Fabric network members such as CreateMember and DeleteMember don't apply to Ethereum.

The description for each action indicates the framework or frameworks to which it applies. Data types and properties that apply only in the context of a particular framework are similarly indicated.

", "operations": { - "CreateAccessor": "

Creates a new accessor for use with Managed Blockchain Ethereum nodes. An accessor contains information required for token based access to your Ethereum nodes.

", + "CreateAccessor": "

Creates a new accessor for use with Amazon Managed Blockchain service that supports token based access. The accessor contains information required for token based access.

", "CreateMember": "

Creates a member within a Managed Blockchain network.

Applies only to Hyperledger Fabric.

", "CreateNetwork": "

Creates a new blockchain network using Amazon Managed Blockchain.

Applies only to Hyperledger Fabric.

", "CreateNode": "

Creates a node on the specified blockchain network.

Applies to Hyperledger Fabric and Ethereum.

", @@ -45,8 +45,8 @@ "AccessorBillingTokenString": { "base": null, "refs": { - "Accessor$BillingToken": "

The billing token is a property of the accessor. Use this token to make Ethereum API calls to your Ethereum node. The billing token is used to track your accessor object for billing Ethereum API requests made to your Ethereum nodes.

", - "CreateAccessorOutput$BillingToken": "

The billing token is a property of the Accessor. Use this token to make Ethereum API calls to your Ethereum node. The billing token is used to track your accessor object for billing Ethereum API requests made to your Ethereum nodes.

" + "Accessor$BillingToken": "

The billing token is a property of the Accessor. Use this token to when making calls to the blockchain network. The billing token is used to track your accessor token for billing requests.

", + "CreateAccessorOutput$BillingToken": "

The billing token is a property of the Accessor. Use this token to when making calls to the blockchain network. The billing token is used to track your accessor token for billing requests.

" } }, "AccessorListMaxResults": { @@ -55,6 +55,16 @@ "ListAccessorsInput$MaxResults": "

The maximum number of accessors to list.

" } }, + "AccessorNetworkType": { + "base": null, + "refs": { + "Accessor$NetworkType": "

The blockchain network that the Accessor token is created for.

", + "AccessorSummary$NetworkType": "

The blockchain network that the Accessor token is created for.

", + "CreateAccessorInput$NetworkType": "

The blockchain network that the Accessor token is created for.

We recommend using the appropriate networkType value for the blockchain network that you are creating the Accessor token for. You cannnot use the value ETHEREUM_MAINNET_AND_GOERLI to specify a networkType for your Accessor token.

The default value of ETHEREUM_MAINNET_AND_GOERLI is only applied:

", + "CreateAccessorOutput$NetworkType": "

The blockchain network that the accessor token is created for.

", + "ListAccessorsInput$NetworkType": "

The blockchain network that the Accessor token is created for.

Use the value ETHEREUM_MAINNET_AND_GOERLI for all existing Accessors tokens that were created before the networkType property was introduced.

" + } + }, "AccessorStatus": { "base": null, "refs": { @@ -969,7 +979,7 @@ "ThresholdComparator": { "base": null, "refs": { - "ApprovalThresholdPolicy$ThresholdComparator": "

Determines whether the vote percentage must be greater than the ThresholdPercentage or must be greater than or equal to the ThreholdPercentage to be approved.

" + "ApprovalThresholdPolicy$ThresholdComparator": "

Determines whether the vote percentage must be greater than the ThresholdPercentage or must be greater than or equal to the ThresholdPercentage to be approved.

" } }, "ThresholdPercentageInt": { diff --git a/models/apis/managedblockchain/2018-09-24/endpoint-rule-set-1.json b/models/apis/managedblockchain/2018-09-24/endpoint-rule-set-1.json index 0859f591678..5fccadcf17d 100644 --- a/models/apis/managedblockchain/2018-09-24/endpoint-rule-set-1.json +++ b/models/apis/managedblockchain/2018-09-24/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/models.lex.v2/2020-08-07/api-2.json b/models/apis/models.lex.v2/2020-08-07/api-2.json index 0565bba8cb7..26eef62b894 100644 --- a/models/apis/models.lex.v2/2020-08-07/api-2.json +++ b/models/apis/models.lex.v2/2020-08-07/api-2.json @@ -605,6 +605,22 @@ {"shape":"InternalServerException"} ] }, + "DescribeBotResourceGeneration":{ + "name":"DescribeBotResourceGeneration", + "http":{ + "method":"GET", + "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/generations/{generationId}", + "responseCode":200 + }, + "input":{"shape":"DescribeBotResourceGenerationRequest"}, + "output":{"shape":"DescribeBotResourceGenerationResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ] + }, "DescribeBotVersion":{ "name":"DescribeBotVersion", "http":{ @@ -805,6 +821,26 @@ {"shape":"InternalServerException"} ] }, + "GenerateBotElement":{ + "name":"GenerateBotElement", + "http":{ + "method":"POST", + "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/generate", + "responseCode":202 + }, + "input":{"shape":"GenerateBotElementRequest"}, + "output":{"shape":"GenerateBotElementResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"PreconditionFailedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ] + }, "GetTestExecutionArtifactsUrl":{ "name":"GetTestExecutionArtifactsUrl", "http":{ @@ -886,6 +922,22 @@ {"shape":"ResourceNotFoundException"} ] }, + "ListBotResourceGenerations":{ + "name":"ListBotResourceGenerations", + "http":{ + "method":"POST", + "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/generations", + "responseCode":200 + }, + "input":{"shape":"ListBotResourceGenerationsRequest"}, + "output":{"shape":"ListBotResourceGenerationsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "ListBotVersions":{ "name":"ListBotVersions", "http":{ @@ -1300,6 +1352,25 @@ {"shape":"InternalServerException"} ] }, + "StartBotResourceGeneration":{ + "name":"StartBotResourceGeneration", + "http":{ + "method":"PUT", + "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/startgeneration", + "responseCode":202 + }, + "input":{"shape":"StartBotResourceGenerationRequest"}, + "output":{"shape":"StartBotResourceGenerationResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"PreconditionFailedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, "StartImport":{ "name":"StartImport", "http":{ @@ -2592,6 +2663,17 @@ "resources":{"shape":"CustomVocabularyItems"} } }, + "BedrockModelArn":{ + "type":"string", + "pattern":"^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model\\/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}$" + }, + "BedrockModelSpecification":{ + "type":"structure", + "required":["modelArn"], + "members":{ + "modelArn":{"shape":"BedrockModelArn"} + } + }, "Boolean":{"type":"boolean"}, "BotAliasHistoryEvent":{ "type":"structure", @@ -3055,6 +3137,13 @@ "lastBuildSubmittedDateTime":{"shape":"Timestamp"} } }, + "BuildtimeSettings":{ + "type":"structure", + "members":{ + "descriptiveBotBuilder":{"shape":"DescriptiveBotBuilderSpecification"}, + "sampleUtteranceGeneration":{"shape":"SampleUtteranceGenerationSpecification"} + } + }, "BuiltInIntentSortAttribute":{ "type":"string", "enum":["IntentSignature"] @@ -3461,7 +3550,8 @@ "localeId":{"shape":"LocaleId"}, "description":{"shape":"Description"}, "nluIntentConfidenceThreshold":{"shape":"ConfidenceThreshold"}, - "voiceSettings":{"shape":"VoiceSettings"} + "voiceSettings":{"shape":"VoiceSettings"}, + "generativeAISettings":{"shape":"GenerativeAISettings"} } }, "CreateBotLocaleResponse":{ @@ -3475,7 +3565,8 @@ "nluIntentConfidenceThreshold":{"shape":"ConfidenceThreshold"}, "voiceSettings":{"shape":"VoiceSettings"}, "botLocaleStatus":{"shape":"BotLocaleStatus"}, - "creationDateTime":{"shape":"Timestamp"} + "creationDateTime":{"shape":"Timestamp"}, + "generativeAISettings":{"shape":"GenerativeAISettings"} } }, "CreateBotRequest":{ @@ -4418,7 +4509,8 @@ "lastUpdatedDateTime":{"shape":"Timestamp"}, "lastBuildSubmittedDateTime":{"shape":"Timestamp"}, "botLocaleHistoryEvents":{"shape":"BotLocaleHistoryEventsList"}, - "recommendedActions":{"shape":"RecommendedActions"} + "recommendedActions":{"shape":"RecommendedActions"}, + "generativeAISettings":{"shape":"GenerativeAISettings"} } }, "DescribeBotRecommendationRequest":{ @@ -4479,6 +4571,53 @@ } } }, + "DescribeBotResourceGenerationRequest":{ + "type":"structure", + "required":[ + "botId", + "botVersion", + "localeId", + "generationId" + ], + "members":{ + "botId":{ + "shape":"Id", + "location":"uri", + "locationName":"botId" + }, + "botVersion":{ + "shape":"BotVersion", + "location":"uri", + "locationName":"botVersion" + }, + "localeId":{ + "shape":"LocaleId", + "location":"uri", + "locationName":"localeId" + }, + "generationId":{ + "shape":"Id", + "location":"uri", + "locationName":"generationId" + } + } + }, + "DescribeBotResourceGenerationResponse":{ + "type":"structure", + "members":{ + "botId":{"shape":"Id"}, + "botVersion":{"shape":"BotVersion"}, + "localeId":{"shape":"LocaleId"}, + "generationId":{"shape":"Id"}, + "failureReasons":{"shape":"FailureReasons"}, + "generationStatus":{"shape":"GenerationStatus"}, + "generationInputPrompt":{"shape":"GenerationInput"}, + "generatedBotLocaleUrl":{"shape":"PresignedS3Url"}, + "creationDateTime":{"shape":"Timestamp"}, + "modelArn":{"shape":"BedrockModelArn"}, + "lastUpdatedDateTime":{"shape":"Timestamp"} + } + }, "DescribeBotResponse":{ "type":"structure", "members":{ @@ -4906,6 +5045,14 @@ "max":200, "min":0 }, + "DescriptiveBotBuilderSpecification":{ + "type":"structure", + "required":["enabled"], + "members":{ + "enabled":{"shape":"Boolean"}, + "bedrockModelSpecification":{"shape":"BedrockModelSpecification"} + } + }, "DialogAction":{ "type":"structure", "required":["type"], @@ -4979,6 +5126,7 @@ "invocationLabel":{"shape":"Name"} } }, + "Enabled":{"type":"boolean"}, "EncryptionSetting":{ "type":"structure", "members":{ @@ -5187,6 +5335,94 @@ "timeoutInSeconds":{"shape":"FulfillmentTimeout"} } }, + "GenerateBotElementRequest":{ + "type":"structure", + "required":[ + "intentId", + "botId", + "botVersion", + "localeId" + ], + "members":{ + "intentId":{"shape":"Id"}, + "botId":{ + "shape":"Id", + "location":"uri", + "locationName":"botId" + }, + "botVersion":{ + "shape":"BotVersion", + "location":"uri", + "locationName":"botVersion" + }, + "localeId":{ + "shape":"LocaleId", + "location":"uri", + "locationName":"localeId" + } + } + }, + "GenerateBotElementResponse":{ + "type":"structure", + "members":{ + "botId":{"shape":"Id"}, + "botVersion":{"shape":"DraftBotVersion"}, + "localeId":{"shape":"LocaleId"}, + "intentId":{"shape":"Id"}, + "sampleUtterances":{"shape":"SampleUtterancesList"} + } + }, + "GenerationInput":{ + "type":"string", + "max":2000, + "min":100 + }, + "GenerationSortBy":{ + "type":"structure", + "required":[ + "attribute", + "order" + ], + "members":{ + "attribute":{"shape":"GenerationSortByAttribute"}, + "order":{"shape":"SortOrder"} + } + }, + "GenerationSortByAttribute":{ + "type":"string", + "enum":[ + "creationStartTime", + "lastUpdatedTime" + ] + }, + "GenerationStatus":{ + "type":"string", + "enum":[ + "Failed", + "Complete", + "InProgress" + ] + }, + "GenerationSummary":{ + "type":"structure", + "members":{ + "generationId":{"shape":"Id"}, + "generationStatus":{"shape":"GenerationStatus"}, + "creationDateTime":{"shape":"Timestamp"}, + "lastUpdatedDateTime":{"shape":"Timestamp"} + } + }, + "GenerationSummaryList":{ + "type":"list", + "member":{"shape":"GenerationSummary"} + }, + "GenerativeAISettings":{ + "type":"structure", + "members":{ + "runtimeSettings":{"shape":"RuntimeSettings"}, + "buildtimeSettings":{"shape":"BuildtimeSettings"} + } + }, "GetTestExecutionArtifactsUrlRequest":{ "type":"structure", "required":["testExecutionId"], @@ -5752,6 +5988,44 @@ "nextToken":{"shape":"NextToken"} } }, + "ListBotResourceGenerationsRequest":{ + "type":"structure", + "required":[ + "botId", + "botVersion", + "localeId" + ], + "members":{ + "botId":{ + "shape":"Id", + "location":"uri", + "locationName":"botId" + }, + "botVersion":{ + "shape":"BotVersion", + "location":"uri", + "locationName":"botVersion" + }, + "localeId":{ + "shape":"LocaleId", + "location":"uri", + "locationName":"localeId" + }, + "sortBy":{"shape":"GenerationSortBy"}, + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListBotResourceGenerationsResponse":{ + "type":"structure", + "members":{ + "botId":{"shape":"Id"}, + "botVersion":{"shape":"BotVersion"}, + "localeId":{"shape":"LocaleId"}, + "generationSummaries":{"shape":"GenerationSummaryList"}, + "nextToken":{"shape":"NextToken"} + } + }, "ListBotVersionsRequest":{ "type":"structure", "required":["botId"], @@ -6822,6 +7096,12 @@ "slotHints":{"shape":"SlotHintsIntentMap"} } }, + "RuntimeSettings":{ + "type":"structure", + "members":{ + "slotResolutionImprovement":{"shape":"SlotResolutionImprovementSpecification"} + } + }, "S3BucketArn":{ "type":"string", "max":2048, @@ -6885,6 +7165,14 @@ "utterance":{"shape":"Utterance"} } }, + "SampleUtteranceGenerationSpecification":{ + "type":"structure", + "required":["enabled"], + "members":{ + "enabled":{"shape":"Boolean"}, + "bedrockModelSpecification":{"shape":"BedrockModelSpecification"} + } + }, "SampleUtterancesCount":{"type":"integer"}, "SampleUtterancesList":{ "type":"list", @@ -7118,6 +7406,28 @@ "slotId":{"shape":"Id"} } }, + "SlotResolutionImprovementSpecification":{ + "type":"structure", + "required":["enabled"], + "members":{ + "enabled":{"shape":"Enabled"}, + "bedrockModelSpecification":{"shape":"BedrockModelSpecification"} + } + }, + "SlotResolutionSetting":{ + "type":"structure", + "required":["slotResolutionStrategy"], + "members":{ + "slotResolutionStrategy":{"shape":"SlotResolutionStrategy"} + } + }, + "SlotResolutionStrategy":{ + "type":"string", + "enum":[ + "EnhancedFallback", + "Default" + ] + }, "SlotResolutionTestResultItem":{ "type":"structure", "required":[ @@ -7296,7 +7606,8 @@ "promptSpecification":{"shape":"PromptSpecification"}, "sampleUtterances":{"shape":"SampleUtterancesList"}, "waitAndContinueSpecification":{"shape":"WaitAndContinueSpecification"}, - "slotCaptureSetting":{"shape":"SlotCaptureSetting"} + "slotCaptureSetting":{"shape":"SlotCaptureSetting"}, + "slotResolutionSetting":{"shape":"SlotResolutionSetting"} } }, "SlotValueOverride":{ @@ -7399,6 +7710,45 @@ "encryptionSetting":{"shape":"EncryptionSetting"} } }, + "StartBotResourceGenerationRequest":{ + "type":"structure", + "required":[ + "generationInputPrompt", + "botId", + "botVersion", + "localeId" + ], + "members":{ + "generationInputPrompt":{"shape":"GenerationInput"}, + "botId":{ + "shape":"Id", + "location":"uri", + "locationName":"botId" + }, + "botVersion":{ + "shape":"BotVersion", + "location":"uri", + "locationName":"botVersion" + }, + "localeId":{ + "shape":"LocaleId", + "location":"uri", + "locationName":"localeId" + } + } + }, + "StartBotResourceGenerationResponse":{ + "type":"structure", + "members":{ + "generationInputPrompt":{"shape":"GenerationInput"}, + "generationId":{"shape":"Id"}, + "botId":{"shape":"Id"}, + "botVersion":{"shape":"BotVersion"}, + "localeId":{"shape":"LocaleId"}, + "generationStatus":{"shape":"GenerationStatus"}, + "creationDateTime":{"shape":"Timestamp"} + } + }, "StartImportRequest":{ "type":"structure", "required":[ @@ -8182,7 +8532,8 @@ }, "description":{"shape":"Description"}, "nluIntentConfidenceThreshold":{"shape":"ConfidenceThreshold"}, - "voiceSettings":{"shape":"VoiceSettings"} + "voiceSettings":{"shape":"VoiceSettings"}, + "generativeAISettings":{"shape":"GenerativeAISettings"} } }, "UpdateBotLocaleResponse":{ @@ -8199,7 +8550,8 @@ "failureReasons":{"shape":"FailureReasons"}, "creationDateTime":{"shape":"Timestamp"}, "lastUpdatedDateTime":{"shape":"Timestamp"}, - "recommendedActions":{"shape":"RecommendedActions"} + "recommendedActions":{"shape":"RecommendedActions"}, + "generativeAISettings":{"shape":"GenerativeAISettings"} } }, "UpdateBotRecommendationRequest":{ diff --git a/models/apis/models.lex.v2/2020-08-07/docs-2.json b/models/apis/models.lex.v2/2020-08-07/docs-2.json index 685169959a0..94feee5baa3 100644 --- a/models/apis/models.lex.v2/2020-08-07/docs-2.json +++ b/models/apis/models.lex.v2/2020-08-07/docs-2.json @@ -9,7 +9,7 @@ "CreateBot": "

Creates an Amazon Lex conversational bot.

", "CreateBotAlias": "

Creates an alias for the specified version of a bot. Use an alias to enable you to change the version of a bot without updating applications that use the bot.

For example, you can create an alias called \"PROD\" that your applications use to call the Amazon Lex bot.

", "CreateBotLocale": "

Creates a locale in the bot. The locale contains the intents and slot types that the bot uses in conversations with users in the specified language and locale. You must add a locale to a bot before you can add intents and slot types to the bot.

", - "CreateBotVersion": "

Creates a new version of the bot based on the DRAFT version. If the DRAFT version of this resource hasn't changed since you created the last version, Amazon Lex doesn't create a new version, it returns the last created version.

When you create the first version of a bot, Amazon Lex sets the version to 1. Subsequent versions increment by 1.

", + "CreateBotVersion": "

Creates an immutable version of the bot. When you create the first version of a bot, Amazon Lex sets the version number to 1. Subsequent bot versions increase in an increment of 1. The version number will always represent the total number of versions created of the bot, not the current number of versions. If a bot version is deleted, that bot version number will not be reused.

", "CreateExport": "

Creates a zip archive containing the contents of a bot or a bot locale. The archive contains a directory structure that contains JSON files that define the bot.

You can create an archive that contains the complete definition of a bot, or you can specify that the archive contain only the definition of a single bot locale.

For more information about exporting bots, and about the structure of the export archive, see Importing and exporting bots

", "CreateIntent": "

Creates an intent.

To define the interaction between the user and your bot, you define one or more intents. For example, for a pizza ordering bot you would create an OrderPizza intent.

When you create an intent, you must provide a name. You can optionally provide the following:

", "CreateResourcePolicy": "

Creates a new resource policy with the specified policy statements.

", @@ -36,6 +36,7 @@ "DescribeBotAlias": "

Get information about a specific bot alias.

", "DescribeBotLocale": "

Describes the settings that a bot has for a specific locale.

", "DescribeBotRecommendation": "

Provides metadata information about a bot recommendation. This information will enable you to get a description on the request inputs, to download associated transcripts after processing is complete, and to download intents and slot-types generated by the bot recommendation.

", + "DescribeBotResourceGeneration": "

Returns information about a request to generate a bot through natural language description, made through the StartBotResource API. Use the generatedBotLocaleUrl to retrieve the Amazon S3 object containing the bot locale configuration. You can then modify and import this configuration.

", "DescribeBotVersion": "

Provides metadata about a version of a bot.

", "DescribeCustomVocabularyMetadata": "

Provides metadata information about a custom vocabulary.

", "DescribeExport": "

Gets information about a specific export.

", @@ -48,11 +49,13 @@ "DescribeTestSet": "

Gets metadata information about the test set.

", "DescribeTestSetDiscrepancyReport": "

Gets metadata information about the test set discrepancy report.

", "DescribeTestSetGeneration": "

Gets metadata information about the test set generation.

", + "GenerateBotElement": "

Generates sample utterances for an intent.

", "GetTestExecutionArtifactsUrl": "

The pre-signed Amazon S3 URL to download the test execution result artifacts.

", "ListAggregatedUtterances": "

Provides a list of utterances that users have sent to the bot.

Utterances are aggregated by the text of the utterance. For example, all instances where customers used the phrase \"I want to order pizza\" are aggregated into the same line in the response.

You can see both detected utterances and missed utterances. A detected utterance is where the bot properly recognized the utterance and activated the associated intent. A missed utterance was not recognized by the bot and didn't activate an intent.

Utterances can be aggregated for a bot alias or for a bot version, but not both at the same time.

Utterances statistics are not generated under the following conditions:

", "ListBotAliases": "

Gets a list of aliases for the specified bot.

", "ListBotLocales": "

Gets a list of locales for the specified bot.

", "ListBotRecommendations": "

Get a list of bot recommendations that meet the specified criteria.

", + "ListBotResourceGenerations": "

Lists the generation requests made for a bot locale.

", "ListBotVersions": "

Gets information about all of the versions of a bot.

The ListBotVersions operation returns a summary of each version of a bot. For example, if a bot has three numbered versions, the ListBotVersions operation returns for summaries, one for each numbered version and one for the DRAFT version.

The ListBotVersions operation always returns at least one version, the DRAFT version.

", "ListBots": "

Gets a list of available bots.

", "ListBuiltInIntents": "

Gets a list of built-in intents provided by Amazon Lex that you can use in your bot.

To use a built-in intent as a the base for your own intent, include the built-in intent signature in the parentIntentSignature parameter when you call the CreateIntent operation. For more information, see CreateIntent.

", @@ -78,6 +81,7 @@ "ListUtteranceMetrics": "

To use this API operation, your IAM role must have permissions to perform the ListAggregatedUtterances operation, which provides access to utterance-related analytics. See Viewing utterance statistics for the IAM policy to apply to the IAM role.

Retrieves summary metrics for the utterances in your bot. The following fields are required:

Of the optional fields, you can organize the results in the following ways:

Note that an order field exists in both binBy and metrics. Currently, you can specify it in either field, but not in both.

", "SearchAssociatedTranscripts": "

Search for associated transcripts that meet the specified criteria.

", "StartBotRecommendation": "

Use this to provide your transcript data, and to start the bot recommendation process.

", + "StartBotResourceGeneration": "

Starts a request for the descriptive bot builder to generate a bot locale configuration based on the prompt you provide it. After you make this call, use the DescribeBotResourceGeneration operation to check on the status of the generation and for the generatedBotLocaleUrl when the generation is complete. Use that value to retrieve the Amazon S3 object containing the bot locale configuration. You can then modify and import this configuration.

", "StartImport": "

Starts importing a bot, bot locale, or custom vocabulary from a zip archive that you uploaded to an S3 bucket.

", "StartTestExecution": "

The action to start test set execution.

", "StartTestSetGeneration": "

The action to start the generation of test set.

", @@ -942,11 +946,27 @@ "refs": { } }, + "BedrockModelArn": { + "base": null, + "refs": { + "BedrockModelSpecification$modelArn": "

The ARN of the foundation model used in descriptive bot building.

", + "DescribeBotResourceGenerationResponse$modelArn": "

The ARN of the model used to generate the bot resources.

" + } + }, + "BedrockModelSpecification": { + "base": "

Contains information about the Amazon Bedrock model used to interpret the prompt used in descriptive bot building.

", + "refs": { + "DescriptiveBotBuilderSpecification$bedrockModelSpecification": "

An object containing information about the Amazon Bedrock model used to interpret the prompt used in descriptive bot building.

", + "SampleUtteranceGenerationSpecification$bedrockModelSpecification": null, + "SlotResolutionImprovementSpecification$bedrockModelSpecification": "

An object containing information about the Amazon Bedrock model used to assist slot resolution.

" + } + }, "Boolean": { "base": null, "refs": { "AudioLogSetting$enabled": "

Determines whether audio logging in enabled for the bot.

", "BotAliasLocaleSettings$enabled": "

Determines whether the locale is enabled for the bot. If the value is false, the locale isn't available for use.

", + "DescriptiveBotBuilderSpecification$enabled": "

Specifies whether the descriptive bot building feature is activated or not.

", "DialogCodeHookSettings$enabled": "

Enables the dialog code hook so that it processes user requests.

", "FulfillmentCodeHookSettings$enabled": "

Indicates whether a Lambda function should be invoked to fulfill a specific intent.

", "IntentClassificationTestResultItem$multiTurnConversation": "

Indicates whether the conversation involves multiple turns or not.

", @@ -954,6 +974,7 @@ "KendraConfiguration$queryFilterStringEnabled": "

Determines whether the AMAZON.KendraSearchIntent intent uses a custom query string to query the Amazon Kendra index.

", "MultipleValuesSetting$allowMultipleValues": "

Indicates whether a slot can return multiple values. When true, the slot may return more than one value in a response. When false, the slot returns only a single value.

Multi-value slots are only available in the en-US locale. If you set this value to true in any other locale, Amazon Lex throws a ValidationException.

If the allowMutlipleValues is not set, the default value is false.

", "OverallTestResultItem$multiTurnConversation": "

Indicates whether the conversation contains multiple turns or not.

", + "SampleUtteranceGenerationSpecification$enabled": "

Specifies whether to enable sample utterance generation or not.

", "SentimentAnalysisSettings$detectSentiment": "

Sets whether Amazon Lex uses Amazon Comprehend to detect the sentiment of user utterances.

", "TextLogSetting$enabled": "

Determines whether conversation logs should be stored for an alias.

" } @@ -1287,6 +1308,8 @@ "DescribeBotAliasResponse$botVersion": "

The version of the bot associated with the bot alias.

", "DescribeBotLocaleRequest$botVersion": "

The version of the bot associated with the locale.

", "DescribeBotLocaleResponse$botVersion": "

The version of the bot associated with the locale.

", + "DescribeBotResourceGenerationRequest$botVersion": "

The version of the bot for which to return the generation details.

", + "DescribeBotResourceGenerationResponse$botVersion": "

The version of the bot for which the generation request was made.

", "DescribeCustomVocabularyMetadataRequest$botVersion": "

The bot version of the bot to return metadata for.

", "DescribeCustomVocabularyMetadataResponse$botVersion": "

The version of the bot that contains the custom vocabulary to describe.

", "DescribeIntentRequest$botVersion": "

The version of the bot associated with the intent.

", @@ -1294,10 +1317,13 @@ "DescribeSlotResponse$botVersion": "

The version of the bot associated with the slot.

", "DescribeSlotTypeRequest$botVersion": "

The version of the bot associated with the slot type.

", "DescribeSlotTypeResponse$botVersion": "

The version of the bot associated with the slot type.

", + "GenerateBotElementRequest$botVersion": "

The bot version for the bot request to generate utterances.

", "ListAggregatedUtterancesRequest$botVersion": "

The identifier of the bot version associated with this request. If you specify the bot version, you can't specify the bot alias.

", "ListAggregatedUtterancesResponse$botVersion": "

The identifier of the bot version that contains the utterances. If you specified the bot alias, the bot version isn't returned.

", "ListBotLocalesRequest$botVersion": "

The version of the bot to list locales for.

", "ListBotLocalesResponse$botVersion": "

The version of the bot.

", + "ListBotResourceGenerationsRequest$botVersion": "

The version of the bot whose generation requests you want to view.

", + "ListBotResourceGenerationsResponse$botVersion": "

The version of the bot for which the generation requests were made.

", "ListCustomVocabularyItemsRequest$botVersion": "

The bot version of the bot to the list custom vocabulary request.

", "ListCustomVocabularyItemsResponse$botVersion": "

The identifier of the version of the bot associated with this custom vocabulary.

", "ListExportsRequest$botVersion": "

The version of the bot to list exports for.

", @@ -1311,6 +1337,8 @@ "ParentBotNetwork$botVersion": "

The version of the network of bots.

", "SearchAssociatedTranscriptsRequest$botVersion": "

The version of the bot containing the transcripts that you are searching.

", "SearchAssociatedTranscriptsResponse$botVersion": "

The version of the bot containing the transcripts that you are searching.

", + "StartBotResourceGenerationRequest$botVersion": "

The version of the bot for which to generate intents and slot types.

", + "StartBotResourceGenerationResponse$botVersion": "

The version of the bot for which the generation request was made.

", "UpdateBotAliasRequest$botVersion": "

The new bot version to assign to the bot alias.

", "UpdateBotAliasResponse$botVersion": "

The updated version of the bot that the alias points to.

" } @@ -1388,6 +1416,12 @@ "refs": { } }, + "BuildtimeSettings": { + "base": "

Contains specifications about the Amazon Lex build time generative AI capabilities from Amazon Bedrock that you can turn on for your bot.

", + "refs": { + "GenerativeAISettings$buildtimeSettings": null + } + }, "BuiltInIntentSortAttribute": { "base": null, "refs": { @@ -2099,6 +2133,16 @@ "refs": { } }, + "DescribeBotResourceGenerationRequest": { + "base": null, + "refs": { + } + }, + "DescribeBotResourceGenerationResponse": { + "base": null, + "refs": { + } + }, "DescribeBotResponse": { "base": null, "refs": { @@ -2279,6 +2323,12 @@ "UpdateTestSetResponse$description": "

The test set description for the updated test set.

" } }, + "DescriptiveBotBuilderSpecification": { + "base": "

Contains specifications for the descriptive bot building feature.

", + "refs": { + "BuildtimeSettings$descriptiveBotBuilder": "

An object containing specifications for the descriptive bot building feature.

" + } + }, "DialogAction": { "base": "

Defines the action that the bot executes at runtime when the conversation reaches this step.

", "refs": { @@ -2354,6 +2404,7 @@ "DescribeBotRecommendationRequest$botVersion": "

The version of the bot associated with the bot recommendation.

", "DescribeBotRecommendationResponse$botVersion": "

The version of the bot associated with the bot recommendation.

", "DescribeIntentResponse$botVersion": "

The version of the bot associated with the intent.

", + "GenerateBotElementResponse$botVersion": "

The unique bot version for the bot which received the response.

", "ListBotRecommendationsRequest$botVersion": "

The version of the bot that contains the bot recommendation list.

", "ListBotRecommendationsResponse$botVersion": "

The version of the bot that contains the bot recommendation list.

", "ListImportsRequest$botVersion": "

The version of the bot to list imports for.

", @@ -2389,6 +2440,12 @@ "SlotCaptureSetting$elicitationCodeHook": "

Code hook called when Amazon Lex doesn't capture a slot value.

" } }, + "Enabled": { + "base": null, + "refs": { + "SlotResolutionImprovementSpecification$enabled": "

Specifies whether assisted slot resolution is turned on or off.

" + } + }, "EncryptionSetting": { "base": "

The object representing the passwords that were used to encrypt the data related to the bot recommendation, as well as the KMS key ARN used to encrypt the associated metadata.

", "refs": { @@ -2533,6 +2590,7 @@ "refs": { "DescribeBotLocaleResponse$failureReasons": "

if botLocaleStatus is Failed, Amazon Lex explains why it failed to build the bot.

", "DescribeBotRecommendationResponse$failureReasons": "

If botRecommendationStatus is Failed, Amazon Lex explains why.

", + "DescribeBotResourceGenerationResponse$failureReasons": "

A list of reasons why the generation of bot resources through natural language description failed.

", "DescribeBotResponse$failureReasons": "

If the botStatus is Failed, this contains a list of reasons that the bot couldn't be built.

", "DescribeBotVersionResponse$failureReasons": "

If the botStatus is Failed, this contains a list of reasons that the version couldn't be built.

", "DescribeExportResponse$failureReasons": "

If the exportStatus is failed, contains one or more reasons why the export could not be completed.

", @@ -2616,6 +2674,66 @@ "FulfillmentCodeHookSettings$fulfillmentUpdatesSpecification": "

Provides settings for update messages sent to the user for long-running Lambda fulfillment functions. Fulfillment updates can be used only with streaming conversations.

" } }, + "GenerateBotElementRequest": { + "base": null, + "refs": { + } + }, + "GenerateBotElementResponse": { + "base": null, + "refs": { + } + }, + "GenerationInput": { + "base": null, + "refs": { + "DescribeBotResourceGenerationResponse$generationInputPrompt": "

The prompt used in the generation request.

", + "StartBotResourceGenerationRequest$generationInputPrompt": "

The prompt to generate intents and slot types for the bot locale. Your description should be both detailed and precise to help generate appropriate and sufficient intents for your bot. Include a list of actions to improve the intent creation process.

", + "StartBotResourceGenerationResponse$generationInputPrompt": "

The prompt that was used generate intents and slot types for the bot locale.

" + } + }, + "GenerationSortBy": { + "base": "

Specifies the attribute and method by which to sort the generation request information.

", + "refs": { + "ListBotResourceGenerationsRequest$sortBy": "

An object containing information about the attribute and the method by which to sort the results

" + } + }, + "GenerationSortByAttribute": { + "base": null, + "refs": { + "GenerationSortBy$attribute": "

The attribute by which to sort the generation request information. You can sort by the following attributes.

" + } + }, + "GenerationStatus": { + "base": null, + "refs": { + "DescribeBotResourceGenerationResponse$generationStatus": "

The status of the generation request.

", + "GenerationSummary$generationStatus": "

The status of the generation request.

", + "StartBotResourceGenerationResponse$generationStatus": "

The status of the generation request.

" + } + }, + "GenerationSummary": { + "base": "

Contains information about a generation request made for the bot locale.

", + "refs": { + "GenerationSummaryList$member": null + } + }, + "GenerationSummaryList": { + "base": null, + "refs": { + "ListBotResourceGenerationsResponse$generationSummaries": "

A list of objects, each containing information about a generation request for the bot locale.

" + } + }, + "GenerativeAISettings": { + "base": "

Contains specifications about the generative AI capabilities from Amazon Bedrock that you can turn on for your bot.

", + "refs": { + "CreateBotLocaleRequest$generativeAISettings": null, + "CreateBotLocaleResponse$generativeAISettings": null, + "DescribeBotLocaleResponse$generativeAISettings": "

Contains settings for Amazon Bedrock's generative AI features for your bot locale.

", + "UpdateBotLocaleRequest$generativeAISettings": "

Contains settings for generative AI features powered by Amazon Bedrock for your bot locale. Use this object to turn generative AI features on and off. Pricing may differ if you turn a feature on. For more information, see LINK.

", + "UpdateBotLocaleResponse$generativeAISettings": "

Contains settings for generative AI features powered by Amazon Bedrock for your bot locale.

" + } + }, "GetTestExecutionArtifactsUrlRequest": { "base": null, "refs": { @@ -2720,6 +2838,10 @@ "DescribeBotRecommendationResponse$botId": "

The identifier of the bot associated with the bot recommendation.

", "DescribeBotRecommendationResponse$botRecommendationId": "

The identifier of the bot recommendation being described.

", "DescribeBotRequest$botId": "

The unique identifier of the bot to describe.

", + "DescribeBotResourceGenerationRequest$botId": "

The unique identifier of the bot for which to return the generation details.

", + "DescribeBotResourceGenerationRequest$generationId": "

The unique identifier of the generation request for which to return the generation details.

", + "DescribeBotResourceGenerationResponse$botId": "

The unique identifier of the bot for which the generation request was made.

", + "DescribeBotResourceGenerationResponse$generationId": "

The generation ID for which to return the generation details.

", "DescribeBotResponse$botId": "

The unique identifier of the bot.

", "DescribeBotVersionRequest$botId": "

The identifier of the bot containing the version to return metadata for.

", "DescribeBotVersionResponse$botId": "

The identifier of the bot that contains the version.

", @@ -2755,6 +2877,11 @@ "DescribeTestSetRequest$testSetId": "

The test set Id for the test set request.

", "DescribeTestSetResponse$testSetId": "

The test set Id for the test set response.

", "ExportSummary$exportId": "

The unique identifier that Amazon Lex assigned to the export.

", + "GenerateBotElementRequest$intentId": "

The intent unique Id for the bot request to generate utterances.

", + "GenerateBotElementRequest$botId": "

The bot unique Id for the bot request to generate utterances.

", + "GenerateBotElementResponse$botId": "

The unique bot Id for the bot which received the response.

", + "GenerateBotElementResponse$intentId": "

The unique intent Id for the bot which received the response.

", + "GenerationSummary$generationId": "

The unique identifier of the generation request.

", "GetTestExecutionArtifactsUrlRequest$testExecutionId": "

The unique identifier of the completed test execution.

", "GetTestExecutionArtifactsUrlResponse$testExecutionId": "

The unique identifier of the completed test execution.

", "ImportSummary$importId": "

The unique identifier that Amazon Lex assigned to the import.

", @@ -2767,6 +2894,8 @@ "ListBotLocalesResponse$botId": "

The identifier of the bot to list locales for.

", "ListBotRecommendationsRequest$botId": "

The unique identifier of the bot that contains the bot recommendation list.

", "ListBotRecommendationsResponse$botId": "

The unique identifier of the bot that contains the bot recommendation list.

", + "ListBotResourceGenerationsRequest$botId": "

The unique identifier of the bot whose generation requests you want to view.

", + "ListBotResourceGenerationsResponse$botId": "

The unique identifier of the bot for which the generation requests were made.

", "ListBotVersionsRequest$botId": "

The identifier of the bot to list versions for.

", "ListBotVersionsResponse$botId": "

The identifier of the bot to list versions for.

", "ListCustomVocabularyItemsRequest$botId": "

The identifier of the version of the bot associated with this custom vocabulary.

", @@ -2814,6 +2943,9 @@ "StartBotRecommendationRequest$botId": "

The unique identifier of the bot containing the bot recommendation.

", "StartBotRecommendationResponse$botId": "

The unique identifier of the bot containing the bot recommendation.

", "StartBotRecommendationResponse$botRecommendationId": "

The identifier of the bot recommendation that you have created.

", + "StartBotResourceGenerationRequest$botId": "

The unique identifier of the bot for which to generate intents and slot types.

", + "StartBotResourceGenerationResponse$generationId": "

The unique identifier of the generation request.

", + "StartBotResourceGenerationResponse$botId": "

The unique identifier of the bot for which the generation request was made.

", "StartImportRequest$importId": "

The unique identifier for the import. It is included in the response from the CreateUploadUrl operation.

", "StartImportResponse$importId": "

A unique identifier for the import.

", "StartTestExecutionRequest$testSetId": "

The test set Id for the test set execution.

", @@ -3245,6 +3377,16 @@ "refs": { } }, + "ListBotResourceGenerationsRequest": { + "base": null, + "refs": { + } + }, + "ListBotResourceGenerationsResponse": { + "base": null, + "refs": { + } + }, "ListBotVersionsRequest": { "base": null, "refs": { @@ -3515,6 +3657,8 @@ "DescribeBotLocaleResponse$localeId": "

The unique identifier of the described locale.

", "DescribeBotRecommendationRequest$localeId": "

The identifier of the language and locale of the bot recommendation to describe. The string must match one of the supported locales. For more information, see Supported languages.

", "DescribeBotRecommendationResponse$localeId": "

The identifier of the language and locale of the bot recommendation to describe.

", + "DescribeBotResourceGenerationRequest$localeId": "

The locale of the bot for which to return the generation details.

", + "DescribeBotResourceGenerationResponse$localeId": "

The locale of the bot for which the generation request was made.

", "DescribeCustomVocabularyMetadataRequest$localeId": "

The locale to return the custom vocabulary information for. The locale must be en_GB.

", "DescribeCustomVocabularyMetadataResponse$localeId": "

The locale that contains the custom vocabulary to describe.

", "DescribeIntentRequest$localeId": "

The identifier of the language and locale of the intent to describe. The string must match one of the supported locales. For more information, see Supported languages.

", @@ -3523,10 +3667,14 @@ "DescribeSlotResponse$localeId": "

The language and locale specified for the slot.

", "DescribeSlotTypeRequest$localeId": "

The identifier of the language and locale of the slot type to describe. The string must match one of the supported locales. For more information, see Supported languages.

", "DescribeSlotTypeResponse$localeId": "

The language and locale specified for the slot type.

", + "GenerateBotElementRequest$localeId": "

The unique locale Id for the bot request to generate utterances.

", + "GenerateBotElementResponse$localeId": "

The unique locale Id for the bot which received the response.

", "ListAggregatedUtterancesRequest$localeId": "

The identifier of the language and locale where the utterances were collected. For more information, see Supported languages.

", "ListAggregatedUtterancesResponse$localeId": "

The identifier of the language and locale that the utterances are in.

", "ListBotRecommendationsRequest$localeId": "

The identifier of the language and locale of the bot recommendation list.

", "ListBotRecommendationsResponse$localeId": "

The identifier of the language and locale of the bot recommendation list.

", + "ListBotResourceGenerationsRequest$localeId": "

The locale of the bot whose generation requests you want to view.

", + "ListBotResourceGenerationsResponse$localeId": "

The locale of the bot for which the generation requests were made.

", "ListBuiltInIntentsRequest$localeId": "

The identifier of the language and locale of the intents to list. The string must match one of the supported locales. For more information, see Supported languages.

", "ListBuiltInIntentsResponse$localeId": "

The language and locale of the intents in the list.

", "ListBuiltInSlotTypesRequest$localeId": "

The identifier of the language and locale of the slot types to list. The string must match one of the supported locales. For more information, see Supported languages.

", @@ -3550,6 +3698,8 @@ "SessionSpecification$localeId": "

The locale of the bot that the session was held with.

", "StartBotRecommendationRequest$localeId": "

The identifier of the language and locale of the bot recommendation to start. The string must match one of the supported locales. For more information, see Supported languages

", "StartBotRecommendationResponse$localeId": "

The identifier of the language and locale of the bot recommendation to start. The string must match one of the supported locales. For more information, see Supported languages

", + "StartBotResourceGenerationRequest$localeId": "

The locale of the bot for which to generate intents and slot types.

", + "StartBotResourceGenerationResponse$localeId": "

The locale of the bot for which the generation request was made.

", "StopBotRecommendationRequest$localeId": "

The identifier of the language and locale of the bot recommendation to stop. The string must match one of the supported locales. For more information, see Supported languages

", "StopBotRecommendationResponse$localeId": "

The identifier of the language and locale of the bot response to stop. The string must match one of the supported locales. For more information, see Supported languages

", "TestSetDiscrepancyReportBotAliasTarget$localeId": "

The unique identifier of the locale associated with the bot alias.

", @@ -3589,6 +3739,7 @@ "ListBotAliasesRequest$maxResults": "

The maximum number of aliases to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.

", "ListBotLocalesRequest$maxResults": "

The maximum number of aliases to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.

", "ListBotRecommendationsRequest$maxResults": "

The maximum number of bot recommendations to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.

", + "ListBotResourceGenerationsRequest$maxResults": "

The maximum number of results to return in the response.

", "ListBotVersionsRequest$maxResults": "

The maximum number of versions to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.

", "ListBotsRequest$maxResults": "

The maximum number of bots to return in each page of results. If there are fewer results than the maximum page size, only the actual number of results are returned.

", "ListCustomVocabularyItemsRequest$maxResults": "

The maximum number of items returned by the list operation.

", @@ -3783,6 +3934,8 @@ "ListBotLocalesResponse$nextToken": "

A token that indicates whether there are more results to return in a response to the ListBotLocales operation. If the nextToken field is present, you send the contents as the nextToken parameter of a ListBotLocales operation request to get the next page of results.

", "ListBotRecommendationsRequest$nextToken": "

If the response from the ListBotRecommendation operation contains more results than specified in the maxResults parameter, a token is returned in the response. Use that token in the nextToken parameter to return the next page of results.

", "ListBotRecommendationsResponse$nextToken": "

A token that indicates whether there are more results to return in a response to the ListBotRecommendations operation. If the nextToken field is present, you send the contents as the nextToken parameter of a ListBotRecommendations operation request to get the next page of results.

", + "ListBotResourceGenerationsRequest$nextToken": "

If the total number of results is greater than the number specified in the maxResults, the response returns a token in the nextToken field. Use this token when making a request to return the next batch of results.

", + "ListBotResourceGenerationsResponse$nextToken": "

If the total number of results is greater than the number specified in the maxResults, the response returns a token in the nextToken field. Use this token when making a request to return the next batch of results.

", "ListBotVersionsRequest$nextToken": "

If the response to the ListBotVersion operation contains more results than specified in the maxResults parameter, a token is returned in the response. Use that token in the nextToken parameter to return the next page of results.

", "ListBotVersionsResponse$nextToken": "

A token that indicates whether there are more results to return in a response to the ListBotVersions operation. If the nextToken field is present, you send the contents as the nextToken parameter of a ListBotAliases operation request to get the next page of results.

", "ListBotsRequest$nextToken": "

If the response from the ListBots operation contains more results than specified in the maxResults parameter, a token is returned in the response.

Use the returned token in the nextToken parameter of a ListBots request to return the next page of results. For a complete set of results, call the ListBots operation until the nextToken returned in the response is null.

", @@ -3998,6 +4151,7 @@ "BotRecommendationResults$botLocaleExportUrl": "

The presigned URL link of the recommended bot definition.

", "BotRecommendationResults$associatedTranscriptsUrl": "

The presigned url link of the associated transcript.

", "CreateUploadUrlResponse$uploadUrl": "

A pre-signed S3 write URL. Upload the zip archive file that contains the definition of your bot or bot locale.

", + "DescribeBotResourceGenerationResponse$generatedBotLocaleUrl": "

The Amazon S3 location of the generated bot locale configuration.

", "DescribeExportResponse$downloadUrl": "

A pre-signed S3 URL that points to the bot or bot locale archive. The URL is only available for 5 minutes after calling the DescribeExport operation.

", "DescribeTestSetDiscrepancyReportResponse$testSetDiscrepancyRawOutputUrl": "

Pre-signed Amazon S3 URL to download the test set discrepancy report.

", "GetTestExecutionArtifactsUrlResponse$downloadArtifactsUrl": "

The pre-signed Amazon S3 URL to download completed test execution.

" @@ -4214,6 +4368,12 @@ "InputSessionStateSpecification$runtimeHints": "

Runtime hints for the session state.

" } }, + "RuntimeSettings": { + "base": "

Contains specifications about the Amazon Lex runtime generative AI capabilities from Amazon Bedrock that you can turn on for your bot.

", + "refs": { + "GenerativeAISettings$runtimeSettings": null + } + }, "S3BucketArn": { "base": null, "refs": { @@ -4267,6 +4427,12 @@ "SampleUtterancesList$member": null } }, + "SampleUtteranceGenerationSpecification": { + "base": "

Contains specifications for the sample utterance generation feature.

", + "refs": { + "BuildtimeSettings$sampleUtteranceGeneration": null + } + }, "SampleUtterancesCount": { "base": null, "refs": { @@ -4279,6 +4445,7 @@ "CreateIntentRequest$sampleUtterances": "

An array of strings that a user might say to signal the intent. For example, \"I want a pizza\", or \"I want a {PizzaSize} pizza\".

In an utterance, slot names are enclosed in curly braces (\"{\", \"}\") to indicate where they should be displayed in the utterance shown to the user..

", "CreateIntentResponse$sampleUtterances": "

The sample utterances specified for the intent.

", "DescribeIntentResponse$sampleUtterances": "

User utterances that trigger this intent.

", + "GenerateBotElementResponse$sampleUtterances": "

The sample utterances for the bot which received the response.

", "SlotValueElicitationSetting$sampleUtterances": "

If you know a specific pattern that users might respond to an Amazon Lex request for a slot value, you can provide those utterances to improve accuracy. This is optional. In most cases, Amazon Lex is capable of understanding user utterances.

", "SubSlotValueElicitationSetting$sampleUtterances": "

If you know a specific pattern that users might respond to an Amazon Lex request for a sub slot value, you can provide those utterances to improve accuracy. This is optional. In most cases Amazon Lex is capable of understanding user utterances. This is similar to SampleUtterances for slots.

", "UpdateIntentRequest$sampleUtterances": "

New utterances used to invoke the intent.

", @@ -4463,6 +4630,24 @@ "SlotPrioritiesList$member": null } }, + "SlotResolutionImprovementSpecification": { + "base": "

Contains specifications for the assisted slot resolution feature.

", + "refs": { + "RuntimeSettings$slotResolutionImprovement": "

An object containing specifications for the assisted slot resolution feature.

" + } + }, + "SlotResolutionSetting": { + "base": "

Contains information about whether assisted slot resolution is turned on for the slot or not.

", + "refs": { + "SlotValueElicitationSetting$slotResolutionSetting": "

An object containing information about whether assisted slot resolution is turned on for the slot or not.

" + } + }, + "SlotResolutionStrategy": { + "base": null, + "refs": { + "SlotResolutionSetting$slotResolutionStrategy": "

Specifies whether assisted slot resolution is turned on for the slot or not. If the value is EnhancedFallback, assisted slot resolution is activated when Amazon Lex defaults to the AMAZON.FallbackIntent. If the value is Default, assisted slot resolution is turned off.

" + } + }, "SlotResolutionTestResultItem": { "base": "

Information about the success and failure rate of slot resolution in the results of a test execution.

", "refs": { @@ -4666,6 +4851,7 @@ "BuiltInIntentSortBy$order": "

The order to sort the list. You can specify ascending or descending order.

", "BuiltInSlotTypeSortBy$order": "

The order to sort the list. You can choose ascending or descending.

", "ExportSortBy$order": "

The order to sort the list.

", + "GenerationSortBy$order": "

The order by which to sort the generation request information.

", "ImportSortBy$order": "

The order to sort the list.

", "IntentSortBy$order": "

The order to sort the list. You can choose ascending or descending.

", "SlotSortBy$order": "

The order to sort the list. You can choose ascending or descending.

", @@ -4690,6 +4876,16 @@ "refs": { } }, + "StartBotResourceGenerationRequest": { + "base": null, + "refs": { + } + }, + "StartBotResourceGenerationResponse": { + "base": null, + "refs": { + } + }, "StartImportRequest": { "base": null, "refs": { @@ -5241,6 +5437,8 @@ "DescribeBotLocaleResponse$lastBuildSubmittedDateTime": "

The date and time that the locale was last submitted for building.

", "DescribeBotRecommendationResponse$creationDateTime": "

The date and time that the bot recommendation was created.

", "DescribeBotRecommendationResponse$lastUpdatedDateTime": "

The date and time that the bot recommendation was last updated.

", + "DescribeBotResourceGenerationResponse$creationDateTime": "

The date and time at which the item was generated.

", + "DescribeBotResourceGenerationResponse$lastUpdatedDateTime": "

The date and time at which the generated item was updated.

", "DescribeBotResponse$creationDateTime": "

A timestamp of the date and time that the bot was created.

", "DescribeBotResponse$lastUpdatedDateTime": "

A timestamp of the date and time that the bot was last updated.

", "DescribeBotVersionResponse$creationDateTime": "

A timestamp of the date and time that the bot version was created.

", @@ -5266,6 +5464,8 @@ "DescribeTestSetResponse$lastUpdatedDateTime": "

The date and time for the last update of the test set data.

", "ExportSummary$creationDateTime": "

The date and time that the export was created.

", "ExportSummary$lastUpdatedDateTime": "

The date and time that the export was last updated.

", + "GenerationSummary$creationDateTime": "

The date and time at which the generation request was made.

", + "GenerationSummary$lastUpdatedDateTime": "

The date and time at which the generation request was last updated.

", "ImportSummary$creationDateTime": "

The date and time that the import was created.

", "ImportSummary$lastUpdatedDateTime": "

The date and time that the import was last updated.

", "IntentSummary$lastUpdatedDateTime": "

The timestamp of the date and time that the intent was last updated.

", @@ -5291,6 +5491,7 @@ "SlotSummary$lastUpdatedDateTime": "

The timestamp of the last date and time that the slot was updated.

", "SlotTypeSummary$lastUpdatedDateTime": "

A timestamp of the date and time that the slot type was last updated.

", "StartBotRecommendationResponse$creationDateTime": "

A timestamp of the date and time that the bot recommendation was created.

", + "StartBotResourceGenerationResponse$creationDateTime": "

The date and time at which the generation request was made.

", "StartImportResponse$creationDateTime": "

The date and time that the import request was created.

", "StartTestExecutionResponse$creationDateTime": "

The creation date and time for the test set execution.

", "StartTestSetGenerationResponse$creationDateTime": "

The creation date and time for the test set generation.

", diff --git a/models/apis/models.lex.v2/2020-08-07/paginators-1.json b/models/apis/models.lex.v2/2020-08-07/paginators-1.json index 086ef701af8..3ccc0d6b5e2 100644 --- a/models/apis/models.lex.v2/2020-08-07/paginators-1.json +++ b/models/apis/models.lex.v2/2020-08-07/paginators-1.json @@ -20,6 +20,11 @@ "output_token": "nextToken", "limit_key": "maxResults" }, + "ListBotResourceGenerations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, "ListBotVersions": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/models/apis/personalize-events/2018-03-22/api-2.json b/models/apis/personalize-events/2018-03-22/api-2.json index 883471e056f..7af7c0a16db 100644 --- a/models/apis/personalize-events/2018-03-22/api-2.json +++ b/models/apis/personalize-events/2018-03-22/api-2.json @@ -12,6 +12,32 @@ "uid":"personalize-events-2018-03-22" }, "operations":{ + "PutActionInteractions":{ + "name":"PutActionInteractions", + "http":{ + "method":"POST", + "requestUri":"/action-interactions" + }, + "input":{"shape":"PutActionInteractionsRequest"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"} + ] + }, + "PutActions":{ + "name":"PutActions", + "http":{ + "method":"POST", + "requestUri":"/actions" + }, + "input":{"shape":"PutActionsRequest"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"} + ] + }, "PutEvents":{ "name":"PutEvents", "http":{ @@ -51,6 +77,76 @@ } }, "shapes":{ + "Action":{ + "type":"structure", + "required":["actionId"], + "members":{ + "actionId":{"shape":"StringType"}, + "properties":{ + "shape":"ActionProperties", + "jsonvalue":true + } + } + }, + "ActionId":{ + "type":"string", + "max":256, + "min":1, + "sensitive":true + }, + "ActionImpression":{ + "type":"list", + "member":{"shape":"ActionId"}, + "max":25, + "min":1 + }, + "ActionInteraction":{ + "type":"structure", + "required":[ + "actionId", + "sessionId", + "timestamp", + "eventType" + ], + "members":{ + "actionId":{"shape":"ActionId"}, + "userId":{"shape":"UserId"}, + "sessionId":{"shape":"StringType"}, + "timestamp":{"shape":"Date"}, + "eventType":{"shape":"StringType"}, + "eventId":{"shape":"StringType"}, + "recommendationId":{"shape":"RecommendationId"}, + "impression":{"shape":"ActionImpression"}, + "properties":{ + "shape":"ActionInteractionProperties", + "jsonvalue":true + } + } + }, + "ActionInteractionProperties":{ + "type":"string", + "max":1024, + "min":1, + "sensitive":true + }, + "ActionInteractionsList":{ + "type":"list", + "member":{"shape":"ActionInteraction"}, + "max":10, + "min":1 + }, + "ActionList":{ + "type":"list", + "member":{"shape":"Action"}, + "max":10, + "min":1 + }, + "ActionProperties":{ + "type":"string", + "max":32000, + "min":1, + "sensitive":true + }, "Arn":{ "type":"string", "max":256, @@ -137,7 +233,7 @@ }, "ItemProperties":{ "type":"string", - "max":24262, + "max":32000, "min":1, "sensitive":true }, @@ -148,6 +244,28 @@ "eventAttributionSource":{"shape":"EventAttributionSource"} } }, + "PutActionInteractionsRequest":{ + "type":"structure", + "required":[ + "trackingId", + "actionInteractions" + ], + "members":{ + "trackingId":{"shape":"StringType"}, + "actionInteractions":{"shape":"ActionInteractionsList"} + } + }, + "PutActionsRequest":{ + "type":"structure", + "required":[ + "datasetArn", + "actions" + ], + "members":{ + "datasetArn":{"shape":"Arn"}, + "actions":{"shape":"ActionList"} + } + }, "PutEventsRequest":{ "type":"structure", "required":[ @@ -235,7 +353,7 @@ }, "UserProperties":{ "type":"string", - "max":4096, + "max":24000, "min":1, "sensitive":true } diff --git a/models/apis/personalize-events/2018-03-22/docs-2.json b/models/apis/personalize-events/2018-03-22/docs-2.json index e48336a5058..ec6d16a60f6 100644 --- a/models/apis/personalize-events/2018-03-22/docs-2.json +++ b/models/apis/personalize-events/2018-03-22/docs-2.json @@ -1,15 +1,67 @@ { "version": "2.0", - "service": "

Amazon Personalize can consume real-time user event data, such as stream or click data, and use it for model training either alone or combined with historical data. For more information see Recording Events.

", + "service": "

Amazon Personalize can consume real-time user event data, such as stream or click data, and use it for model training either alone or combined with historical data. For more information see Recording item interaction events.

", "operations": { - "PutEvents": "

Records user interaction event data. For more information see Recording Events.

", - "PutItems": "

Adds one or more items to an Items dataset. For more information see Importing Items Incrementally.

", - "PutUsers": "

Adds one or more users to a Users dataset. For more information see Importing Users Incrementally.

" + "PutActionInteractions": "

Records action interaction event data. An action interaction event is an interaction between a user and an action. For example, a user taking an action, such a enrolling in a membership program or downloading your app.

For more information about recording action interactions, see Recording action interaction events. For more information about actions in an Actions dataset, see Actions dataset.

", + "PutActions": "

Adds one or more actions to an Actions dataset. For more information see Importing actions individually.

", + "PutEvents": "

Records item interaction event data. For more information see Recording item interaction events.

", + "PutItems": "

Adds one or more items to an Items dataset. For more information see Importing items individually.

", + "PutUsers": "

Adds one or more users to a Users dataset. For more information see Importing users individually.

" }, "shapes": { + "Action": { + "base": "

Represents action metadata added to an Action dataset using the PutActions API. For more information see Importing actions individually.

", + "refs": { + "ActionList$member": null + } + }, + "ActionId": { + "base": null, + "refs": { + "ActionImpression$member": null, + "ActionInteraction$actionId": "

The ID of the action the user interacted with. This corresponds to the ACTION_ID field of the Action interaction schema.

" + } + }, + "ActionImpression": { + "base": null, + "refs": { + "ActionInteraction$impression": "

A list of action IDs that represents the sequence of actions you have shown the user. For example, [\"actionId1\", \"actionId2\", \"actionId3\"]. Amazon Personalize doesn't use impressions data from action interaction events. Instead, record multiple events for each action and use the Viewed event type.

" + } + }, + "ActionInteraction": { + "base": "

Represents an action interaction event sent using the PutActionInteractions API.

", + "refs": { + "ActionInteractionsList$member": null + } + }, + "ActionInteractionProperties": { + "base": null, + "refs": { + "ActionInteraction$properties": "

A string map of event-specific data that you might choose to record. For example, if a user takes an action, other than the action ID, you might also send the number of actions taken by the user.

Each item in the map consists of a key-value pair. For example,

{\"numberOfActions\": \"12\"}

The keys use camel case names that match the fields in the Action interactions schema. In the above example, the numberOfActions would match the 'NUMBER_OF_ACTIONS' field defined in the Action interactions schema.

The following can't be included as a keyword for properties (case insensitive).

" + } + }, + "ActionInteractionsList": { + "base": null, + "refs": { + "PutActionInteractionsRequest$actionInteractions": "

A list of action interaction events from the session.

" + } + }, + "ActionList": { + "base": null, + "refs": { + "PutActionsRequest$actions": "

A list of action data.

" + } + }, + "ActionProperties": { + "base": null, + "refs": { + "Action$properties": "

A string map of action-specific metadata. Each element in the map consists of a key-value pair. For example, {\"value\": \"100\"}.

The keys use camel case names that match the fields in the schema for the Actions dataset. In the previous example, the value matches the 'VALUE' field defined in the Actions schema. For categorical string data, to include multiple categories for a single action, separate each category with a pipe separator (|). For example, \\\"Deluxe|Premium\\\".

" + } + }, "Arn": { "base": null, "refs": { + "PutActionsRequest$datasetArn": "

The Amazon Resource Name (ARN) of the Actions dataset you are adding the action or actions to.

", "PutItemsRequest$datasetArn": "

The Amazon Resource Name (ARN) of the Items dataset you are adding the item or items to.

", "PutUsersRequest$datasetArn": "

The Amazon Resource Name (ARN) of the Users dataset you are adding the user or users to.

" } @@ -17,6 +69,7 @@ "Date": { "base": null, "refs": { + "ActionInteraction$timestamp": "

The timestamp for when the action interaction event occurred. Timestamps must be in Unix epoch time format, in seconds.

", "Event$sentAt": "

The timestamp (in Unix time) on the client side when the event occurred.

" } }, @@ -29,7 +82,7 @@ } }, "Event": { - "base": "

Represents user interaction event information sent using the PutEvents API.

", + "base": "

Represents item interaction event information sent using the PutEvents API.

", "refs": { "EventList$member": null } @@ -49,13 +102,13 @@ "EventPropertiesJSON": { "base": null, "refs": { - "Event$properties": "

A string map of event-specific data that you might choose to record. For example, if a user rates a movie on your site, other than movie ID (itemId) and rating (eventValue) , you might also send the number of movie ratings made by the user.

Each item in the map consists of a key-value pair. For example,

{\"numberOfRatings\": \"12\"}

The keys use camel case names that match the fields in the Interactions schema. In the above example, the numberOfRatings would match the 'NUMBER_OF_RATINGS' field defined in the Interactions schema.

" + "Event$properties": "

A string map of event-specific data that you might choose to record. For example, if a user rates a movie on your site, other than movie ID (itemId) and rating (eventValue) , you might also send the number of movie ratings made by the user.

Each item in the map consists of a key-value pair. For example,

{\"numberOfRatings\": \"12\"}

The keys use camel case names that match the fields in the Item interactions dataset's schema. In the above example, the numberOfRatings would match the 'NUMBER_OF_RATINGS' field defined in the Item interactions dataset's schema.

The following can't be included as a keyword for properties (case insensitive).

" } }, "FloatType": { "base": null, "refs": { - "Event$eventValue": "

The event value that corresponds to the EVENT_VALUE field of the Interactions schema.

" + "Event$eventValue": "

The event value that corresponds to the EVENT_VALUE field of the Item interactions schema.

" } }, "Impression": { @@ -70,7 +123,7 @@ } }, "Item": { - "base": "

Represents item metadata added to an Items dataset using the PutItems API. For more information see Importing Items Incrementally.

", + "base": "

Represents item metadata added to an Items dataset using the PutItems API. For more information see Importing items individually.

", "refs": { "ItemList$member": null } @@ -78,7 +131,7 @@ "ItemId": { "base": null, "refs": { - "Event$itemId": "

The item ID key that corresponds to the ITEM_ID field of the Interactions schema.

", + "Event$itemId": "

The item ID key that corresponds to the ITEM_ID field of the Item interactions dataset's schema.

", "Impression$member": null } }, @@ -100,6 +153,16 @@ "Event$metricAttribution": "

Contains information about the metric attribution associated with an event. For more information about metric attributions, see Measuring impact of recommendations.

" } }, + "PutActionInteractionsRequest": { + "base": null, + "refs": { + } + }, + "PutActionsRequest": { + "base": null, + "refs": { + } + }, "PutEventsRequest": { "base": null, "refs": { @@ -118,6 +181,7 @@ "RecommendationId": { "base": null, "refs": { + "ActionInteraction$recommendationId": "

The ID of the list of recommendations that contains the action the user interacted with.

", "Event$recommendationId": "

The ID of the list of recommendations that contains the item the user interacted with. Provide a recommendationId to have Amazon Personalize implicitly record the recommendations you show your user as impressions data. Or provide a recommendationId if you use a metric attribution to measure the impact of recommendations.

For more information on recording impressions data, see Recording impressions data. For more information on creating a metric attribution see Measuring impact of recommendations.

" } }, @@ -134,16 +198,21 @@ "StringType": { "base": null, "refs": { - "Event$eventId": "

An ID associated with the event. If an event ID is not provided, Amazon Personalize generates a unique ID for the event. An event ID is not used as an input to the model. Amazon Personalize uses the event ID to distinquish unique events. Any subsequent events after the first with the same event ID are not used in model training.

", - "Event$eventType": "

The type of event, such as click or download. This property corresponds to the EVENT_TYPE field of your Interactions schema and depends on the types of events you are tracking.

", + "Action$actionId": "

The ID associated with the action.

", + "ActionInteraction$sessionId": "

The ID associated with the user's visit. Your application generates a unique sessionId when a user first visits your website or uses your application.

", + "ActionInteraction$eventType": "

The type of action interaction event. You can specify Viewed, Taken, and Not Taken event types. For more information about action interaction event type data, see Event type data.

", + "ActionInteraction$eventId": "

An ID associated with the event. If an event ID is not provided, Amazon Personalize generates a unique ID for the event. An event ID is not used as an input to the model. Amazon Personalize uses the event ID to distinguish unique events. Any subsequent events after the first with the same event ID are not used in model training.

", + "Event$eventId": "

An ID associated with the event. If an event ID is not provided, Amazon Personalize generates a unique ID for the event. An event ID is not used as an input to the model. Amazon Personalize uses the event ID to distinguish unique events. Any subsequent events after the first with the same event ID are not used in model training.

", + "Event$eventType": "

The type of event, such as click or download. This property corresponds to the EVENT_TYPE field of your Item interactions dataset's schema and depends on the types of events you are tracking.

", "Item$itemId": "

The ID associated with the item.

", + "PutActionInteractionsRequest$trackingId": "

The ID of your action interaction event tracker. When you create an Action interactions dataset, Amazon Personalize creates an action interaction event tracker for you. For more information, see Action interaction event tracker ID.

", "PutEventsRequest$trackingId": "

The tracking ID for the event. The ID is generated by a call to the CreateEventTracker API.

", - "PutEventsRequest$sessionId": "

The session ID associated with the user's visit. Your application generates the sessionId when a user first visits your website or uses your application. Amazon Personalize uses the sessionId to associate events with the user before they log in. For more information, see Recording Events.

", + "PutEventsRequest$sessionId": "

The session ID associated with the user's visit. Your application generates the sessionId when a user first visits your website or uses your application. Amazon Personalize uses the sessionId to associate events with the user before they log in. For more information, see Recording item interaction events.

", "User$userId": "

The ID associated with the user.

" } }, "User": { - "base": "

Represents user metadata added to a Users dataset using the PutUsers API. For more information see Importing Users Incrementally.

", + "base": "

Represents user metadata added to a Users dataset using the PutUsers API. For more information see Importing users individually.

", "refs": { "UserList$member": null } @@ -151,6 +220,7 @@ "UserId": { "base": null, "refs": { + "ActionInteraction$userId": "

The ID of the user who interacted with the action. This corresponds to the USER_ID field of the Action interaction schema.

", "PutEventsRequest$userId": "

The user associated with the event.

" } }, diff --git a/models/apis/personalize-events/2018-03-22/endpoint-rule-set-1.json b/models/apis/personalize-events/2018-03-22/endpoint-rule-set-1.json index 636e12c2b2e..c96082c6d7d 100644 --- a/models/apis/personalize-events/2018-03-22/endpoint-rule-set-1.json +++ b/models/apis/personalize-events/2018-03-22/endpoint-rule-set-1.json @@ -32,38 +32,83 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], - "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ { - "fn": "parseURL", + "fn": "aws.partition", "argv": [ { - "ref": "Endpoint" + "ref": "Region" } ], - "assign": "url" + "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -75,235 +120,195 @@ }, true ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-events-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" }, { "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } - ] - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] + ], + "type": "tree" }, - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } + "ref": "UseFIPS" + }, + true ] - }, + } + ], + "rules": [ { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ { - "ref": "PartitionResult" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] }, - "supportsDualStack" + true ] } - ] - } - ], - "type": "tree", - "rules": [ + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-events-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, { "conditions": [], - "endpoint": { - "url": "https://personalize-events-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } - ] + ], + "type": "tree" }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } + "ref": "UseDualStack" + }, + true ] } ], - "type": "tree", "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://personalize-events-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, + "conditions": [ { - "fn": "getAttr", + "fn": "booleanEquals", "argv": [ + true, { - "ref": "PartitionResult" - }, - "supportsDualStack" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } ] } - ] - } - ], - "type": "tree", - "rules": [ + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-events.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, { "conditions": [], - "endpoint": { - "url": "https://personalize-events.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" + "endpoint": { + "url": "https://personalize-events.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://personalize-events.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ], + "type": "tree" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/personalize-events/2018-03-22/endpoint-tests-1.json b/models/apis/personalize-events/2018-03-22/endpoint-tests-1.json index 0a11fb3a1c0..434664e3bd3 100644 --- a/models/apis/personalize-events/2018-03-22/endpoint-tests-1.json +++ b/models/apis/personalize-events/2018-03-22/endpoint-tests-1.json @@ -1,16 +1,281 @@ { "testCases": [ { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-events-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-events-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-events.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-events.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-events-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-events-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-events.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-events.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-events-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-events-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-events.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-events.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-events-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-events.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-events-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-events.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" } }, "params": { + "Region": "us-east-1", + "UseFIPS": false, "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { "UseFIPS": false, - "Region": "us-east-1", + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -20,9 +285,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -32,11 +297,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/models/apis/personalize-runtime/2018-05-22/api-2.json b/models/apis/personalize-runtime/2018-05-22/api-2.json index 4e0c1962316..bbf06e017c3 100644 --- a/models/apis/personalize-runtime/2018-05-22/api-2.json +++ b/models/apis/personalize-runtime/2018-05-22/api-2.json @@ -12,6 +12,20 @@ "uid":"personalize-runtime-2018-05-22" }, "operations":{ + "GetActionRecommendations":{ + "name":"GetActionRecommendations", + "http":{ + "method":"POST", + "requestUri":"/action-recommendations" + }, + "input":{"shape":"GetActionRecommendationsRequest"}, + "output":{"shape":"GetActionRecommendationsResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, "GetPersonalizedRanking":{ "name":"GetPersonalizedRanking", "http":{ @@ -42,6 +56,14 @@ } }, "shapes":{ + "ActionID":{ + "type":"string", + "max":256 + }, + "ActionList":{ + "type":"list", + "member":{"shape":"PredictedAction"} + }, "Arn":{ "type":"string", "max":256, @@ -57,12 +79,29 @@ "max":1000, "sensitive":true }, + "ColumnName":{ + "type":"string", + "max":150 + }, + "ColumnNamesList":{ + "type":"list", + "member":{"shape":"ColumnName"}, + "max":99 + }, + "ColumnValue":{ + "type":"string", + "max":20000 + }, "Context":{ "type":"map", "key":{"shape":"AttributeName"}, "value":{"shape":"AttributeValue"}, "max":150 }, + "DatasetType":{ + "type":"string", + "max":256 + }, "ErrorMessage":{"type":"string"}, "FilterAttributeName":{ "type":"string", @@ -80,6 +119,23 @@ "value":{"shape":"FilterAttributeValue"}, "max":25 }, + "GetActionRecommendationsRequest":{ + "type":"structure", + "members":{ + "campaignArn":{"shape":"Arn"}, + "userId":{"shape":"UserID"}, + "numResults":{"shape":"NumResults"}, + "filterArn":{"shape":"Arn"}, + "filterValues":{"shape":"FilterValues"} + } + }, + "GetActionRecommendationsResponse":{ + "type":"structure", + "members":{ + "actionList":{"shape":"ActionList"}, + "recommendationId":{"shape":"RecommendationID"} + } + }, "GetPersonalizedRankingRequest":{ "type":"structure", "required":[ @@ -93,7 +149,8 @@ "userId":{"shape":"UserID"}, "context":{"shape":"Context"}, "filterArn":{"shape":"Arn"}, - "filterValues":{"shape":"FilterValues"} + "filterValues":{"shape":"FilterValues"}, + "metadataColumns":{"shape":"MetadataColumns"} } }, "GetPersonalizedRankingResponse":{ @@ -114,7 +171,8 @@ "filterArn":{"shape":"Arn"}, "filterValues":{"shape":"FilterValues"}, "recommenderArn":{"shape":"Arn"}, - "promotions":{"shape":"PromotionList"} + "promotions":{"shape":"PromotionList"}, + "metadataColumns":{"shape":"MetadataColumns"} } }, "GetRecommendationsResponse":{ @@ -144,6 +202,17 @@ "type":"list", "member":{"shape":"PredictedItem"} }, + "Metadata":{ + "type":"map", + "key":{"shape":"ColumnName"}, + "value":{"shape":"ColumnValue"} + }, + "MetadataColumns":{ + "type":"map", + "key":{"shape":"DatasetType"}, + "value":{"shape":"ColumnNamesList"}, + "max":1 + }, "Name":{ "type":"string", "max":63, @@ -159,12 +228,20 @@ "max":100, "min":1 }, + "PredictedAction":{ + "type":"structure", + "members":{ + "actionId":{"shape":"ActionID"}, + "score":{"shape":"Score"} + } + }, "PredictedItem":{ "type":"structure", "members":{ "itemId":{"shape":"ItemID"}, "score":{"shape":"Score"}, - "promotionName":{"shape":"Name"} + "promotionName":{"shape":"Name"}, + "metadata":{"shape":"Metadata"} } }, "Promotion":{ diff --git a/models/apis/personalize-runtime/2018-05-22/docs-2.json b/models/apis/personalize-runtime/2018-05-22/docs-2.json index 7013754dbfd..3e2ee50730a 100644 --- a/models/apis/personalize-runtime/2018-05-22/docs-2.json +++ b/models/apis/personalize-runtime/2018-05-22/docs-2.json @@ -2,13 +2,28 @@ "version": "2.0", "service": "

", "operations": { + "GetActionRecommendations": "

Returns a list of recommended actions in sorted in descending order by prediction score. Use the GetActionRecommendations API if you have a custom campaign that deploys a solution version trained with a PERSONALIZED_ACTIONS recipe.

For more information about PERSONALIZED_ACTIONS recipes, see PERSONALIZED_ACTIONS recipes. For more information about getting action recommendations, see Getting action recommendations.

", "GetPersonalizedRanking": "

Re-ranks a list of recommended items for the given user. The first item in the list is deemed the most likely item to be of interest to the user.

The solution backing the campaign must have been created using a recipe of type PERSONALIZED_RANKING.

", "GetRecommendations": "

Returns a list of recommended items. For campaigns, the campaign's Amazon Resource Name (ARN) is required and the required user and item input depends on the recipe type used to create the solution backing the campaign as follows:

Campaigns that are backed by a solution created using a recipe of type PERSONALIZED_RANKING use the API.

For recommenders, the recommender's ARN is required and the required item and user input depends on the use case (domain-based recipe) backing the recommender. For information on use case requirements see Choosing recommender use cases.

" }, "shapes": { + "ActionID": { + "base": null, + "refs": { + "PredictedAction$actionId": "

The ID of the recommended action.

" + } + }, + "ActionList": { + "base": null, + "refs": { + "GetActionRecommendationsResponse$actionList": "

A list of action recommendations sorted in descending order by prediction score. There can be a maximum of 100 actions in the list. For information about action scores, see How action recommendation scoring works.

" + } + }, "Arn": { "base": null, "refs": { + "GetActionRecommendationsRequest$campaignArn": "

The Amazon Resource Name (ARN) of the campaign to use for getting action recommendations. This campaign must deploy a solution version trained with a PERSONALIZED_ACTIONS recipe.

", + "GetActionRecommendationsRequest$filterArn": "

The ARN of the filter to apply to the returned recommendations. For more information, see Filtering Recommendations.

When using this parameter, be sure the filter resource is ACTIVE.

", "GetPersonalizedRankingRequest$campaignArn": "

The Amazon Resource Name (ARN) of the campaign to use for generating the personalized ranking.

", "GetPersonalizedRankingRequest$filterArn": "

The Amazon Resource Name (ARN) of a filter you created to include items or exclude items from recommendations for a given user. For more information, see Filtering Recommendations.

", "GetRecommendationsRequest$campaignArn": "

The Amazon Resource Name (ARN) of the campaign to use for getting recommendations.

", @@ -29,6 +44,25 @@ "Context$value": null } }, + "ColumnName": { + "base": null, + "refs": { + "ColumnNamesList$member": null, + "Metadata$key": null + } + }, + "ColumnNamesList": { + "base": null, + "refs": { + "MetadataColumns$value": null + } + }, + "ColumnValue": { + "base": null, + "refs": { + "Metadata$value": null + } + }, "Context": { "base": null, "refs": { @@ -36,6 +70,12 @@ "GetRecommendationsRequest$context": "

The contextual metadata to use when getting recommendations. Contextual metadata includes any interaction information that might be relevant when getting a user's recommendations, such as the user's current location or device type.

" } }, + "DatasetType": { + "base": null, + "refs": { + "MetadataColumns$key": null + } + }, "ErrorMessage": { "base": null, "refs": { @@ -58,11 +98,22 @@ "FilterValues": { "base": null, "refs": { + "GetActionRecommendationsRequest$filterValues": "

The values to use when filtering recommendations. For each placeholder parameter in your filter expression, provide the parameter name (in matching case) as a key and the filter value(s) as the corresponding value. Separate multiple values for one parameter with a comma.

For filter expressions that use an INCLUDE element to include actions, you must provide values for all parameters that are defined in the expression. For filters with expressions that use an EXCLUDE element to exclude actions, you can omit the filter-values. In this case, Amazon Personalize doesn't use that portion of the expression to filter recommendations.

For more information, see Filtering recommendations and user segments.

", "GetPersonalizedRankingRequest$filterValues": "

The values to use when filtering recommendations. For each placeholder parameter in your filter expression, provide the parameter name (in matching case) as a key and the filter value(s) as the corresponding value. Separate multiple values for one parameter with a comma.

For filter expressions that use an INCLUDE element to include items, you must provide values for all parameters that are defined in the expression. For filters with expressions that use an EXCLUDE element to exclude items, you can omit the filter-values.In this case, Amazon Personalize doesn't use that portion of the expression to filter recommendations.

For more information, see Filtering Recommendations.

", "GetRecommendationsRequest$filterValues": "

The values to use when filtering recommendations. For each placeholder parameter in your filter expression, provide the parameter name (in matching case) as a key and the filter value(s) as the corresponding value. Separate multiple values for one parameter with a comma.

For filter expressions that use an INCLUDE element to include items, you must provide values for all parameters that are defined in the expression. For filters with expressions that use an EXCLUDE element to exclude items, you can omit the filter-values.In this case, Amazon Personalize doesn't use that portion of the expression to filter recommendations.

For more information, see Filtering recommendations and user segments.

", "Promotion$filterValues": "

The values to use when promoting items. For each placeholder parameter in your promotion's filter expression, provide the parameter name (in matching case) as a key and the filter value(s) as the corresponding value. Separate multiple values for one parameter with a comma.

For filter expressions that use an INCLUDE element to include items, you must provide values for all parameters that are defined in the expression. For filters with expressions that use an EXCLUDE element to exclude items, you can omit the filter-values. In this case, Amazon Personalize doesn't use that portion of the expression to filter recommendations.

For more information on creating filters, see Filtering recommendations and user segments.

" } }, + "GetActionRecommendationsRequest": { + "base": null, + "refs": { + } + }, + "GetActionRecommendationsResponse": { + "base": null, + "refs": { + } + }, "GetPersonalizedRankingRequest": { "base": null, "refs": { @@ -86,7 +137,7 @@ "InputList": { "base": null, "refs": { - "GetPersonalizedRankingRequest$inputList": "

A list of items (by itemId) to rank. If an item was not included in the training dataset, the item is appended to the end of the reranked list. The maximum is 500.

" + "GetPersonalizedRankingRequest$inputList": "

A list of items (by itemId) to rank. If an item was not included in the training dataset, the item is appended to the end of the reranked list. If you are including metadata in recommendations, the maximum is 50. Otherwise, the maximum is 500.

" } }, "InvalidInputException": { @@ -109,6 +160,19 @@ "GetRecommendationsResponse$itemList": "

A list of recommendations sorted in descending order by prediction score. There can be a maximum of 500 items in the list.

" } }, + "Metadata": { + "base": null, + "refs": { + "PredictedItem$metadata": "

Metadata about the item from your Items dataset.

" + } + }, + "MetadataColumns": { + "base": null, + "refs": { + "GetPersonalizedRankingRequest$metadataColumns": "

If you enabled metadata in recommendations when you created or updated the campaign, specify metadata columns from your Items dataset to include in the personalized ranking. The map key is ITEMS and the value is a list of column names from your Items dataset. The maximum number of columns you can provide is 10.

For information about enabling metadata for a campaign, see Enabling metadata in recommendations for a campaign.

", + "GetRecommendationsRequest$metadataColumns": "

If you enabled metadata in recommendations when you created or updated the campaign or recommender, specify the metadata columns from your Items dataset to include in item recommendations. The map key is ITEMS and the value is a list of column names from your Items dataset. The maximum number of columns you can provide is 10.

For information about enabling metadata for a campaign, see Enabling metadata in recommendations for a campaign. For information about enabling metadata for a recommender, see Enabling metadata in recommendations for a recommender.

" + } + }, "Name": { "base": null, "refs": { @@ -119,7 +183,8 @@ "NumResults": { "base": null, "refs": { - "GetRecommendationsRequest$numResults": "

The number of results to return. The default is 25. The maximum is 500.

" + "GetActionRecommendationsRequest$numResults": "

The number of results to return. The default is 5. The maximum is 100.

", + "GetRecommendationsRequest$numResults": "

The number of results to return. The default is 25. If you are including metadata in recommendations, the maximum is 50. Otherwise, the maximum is 500.

" } }, "PercentPromotedItems": { @@ -128,6 +193,12 @@ "Promotion$percentPromotedItems": "

The percentage of recommended items to apply the promotion to.

" } }, + "PredictedAction": { + "base": "

An object that identifies an action.

The API returns a list of PredictedActions.

", + "refs": { + "ActionList$member": null + } + }, "PredictedItem": { "base": "

An object that identifies an item.

The and APIs return a list of PredictedItems.

", "refs": { @@ -149,6 +220,7 @@ "RecommendationID": { "base": null, "refs": { + "GetActionRecommendationsResponse$recommendationId": "

The ID of the recommendation.

", "GetPersonalizedRankingResponse$recommendationId": "

The ID of the recommendation.

", "GetRecommendationsResponse$recommendationId": "

The ID of the recommendation.

" } @@ -161,12 +233,14 @@ "Score": { "base": null, "refs": { + "PredictedAction$score": "

The score of the recommended action. For information about action scores, see How action recommendation scoring works.

", "PredictedItem$score": "

A numeric representation of the model's certainty that the item will be the next user selection. For more information on scoring logic, see how-scores-work.

" } }, "UserID": { "base": null, "refs": { + "GetActionRecommendationsRequest$userId": "

The user ID of the user to provide action recommendations for.

", "GetPersonalizedRankingRequest$userId": "

The user for which you want the campaign to provide a personalized ranking.

", "GetRecommendationsRequest$userId": "

The user ID to provide recommendations for.

Required for USER_PERSONALIZATION recipe type.

" } diff --git a/models/apis/personalize-runtime/2018-05-22/endpoint-rule-set-1.json b/models/apis/personalize-runtime/2018-05-22/endpoint-rule-set-1.json new file mode 100644 index 00000000000..e95366eff80 --- /dev/null +++ b/models/apis/personalize-runtime/2018-05-22/endpoint-rule-set-1.json @@ -0,0 +1,314 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-runtime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-runtime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-runtime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://personalize-runtime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/personalize-runtime/2018-05-22/endpoint-tests-1.json b/models/apis/personalize-runtime/2018-05-22/endpoint-tests-1.json new file mode 100644 index 00000000000..06165e2d934 --- /dev/null +++ b/models/apis/personalize-runtime/2018-05-22/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-runtime.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/personalize/2018-05-22/api-2.json b/models/apis/personalize/2018-05-22/api-2.json index 0a1d7476e4f..d4eff98be89 100644 --- a/models/apis/personalize/2018-05-22/api-2.json +++ b/models/apis/personalize/2018-05-22/api-2.json @@ -1052,7 +1052,7 @@ }, "AvroSchema":{ "type":"string", - "max":10000 + "max":20000 }, "BatchInferenceJob":{ "type":"structure", @@ -1067,6 +1067,8 @@ "jobOutput":{"shape":"BatchInferenceJobOutput"}, "batchInferenceJobConfig":{"shape":"BatchInferenceJobConfig"}, "roleArn":{"shape":"RoleArn"}, + "batchInferenceJobMode":{"shape":"BatchInferenceJobMode"}, + "themeGenerationConfig":{"shape":"ThemeGenerationConfig"}, "status":{"shape":"Status"}, "creationDateTime":{"shape":"Date"}, "lastUpdatedDateTime":{"shape":"Date"} @@ -1085,6 +1087,13 @@ "s3DataSource":{"shape":"S3DataConfig"} } }, + "BatchInferenceJobMode":{ + "type":"string", + "enum":[ + "BATCH_INFERENCE", + "THEME_GENERATION" + ] + }, "BatchInferenceJobOutput":{ "type":"structure", "required":["s3DataDestination"], @@ -1101,7 +1110,8 @@ "creationDateTime":{"shape":"Date"}, "lastUpdatedDateTime":{"shape":"Date"}, "failureReason":{"shape":"FailureReason"}, - "solutionVersionArn":{"shape":"Arn"} + "solutionVersionArn":{"shape":"Arn"}, + "batchInferenceJobMode":{"shape":"BatchInferenceJobMode"} } }, "BatchInferenceJobs":{ @@ -1176,7 +1186,8 @@ "CampaignConfig":{ "type":"structure", "members":{ - "itemExplorationConfig":{"shape":"HyperParameters"} + "itemExplorationConfig":{"shape":"HyperParameters"}, + "enableMetadataWithRecommendations":{"shape":"Boolean"} } }, "CampaignSummary":{ @@ -1276,7 +1287,9 @@ "jobOutput":{"shape":"BatchInferenceJobOutput"}, "roleArn":{"shape":"RoleArn"}, "batchInferenceJobConfig":{"shape":"BatchInferenceJobConfig"}, - "tags":{"shape":"Tags"} + "tags":{"shape":"Tags"}, + "batchInferenceJobMode":{"shape":"BatchInferenceJobMode"}, + "themeGenerationConfig":{"shape":"ThemeGenerationConfig"} } }, "CreateBatchInferenceJobResponse":{ @@ -1573,7 +1586,8 @@ "status":{"shape":"Status"}, "creationDateTime":{"shape":"Date"}, "lastUpdatedDateTime":{"shape":"Date"}, - "latestDatasetUpdate":{"shape":"DatasetUpdateSummary"} + "latestDatasetUpdate":{"shape":"DatasetUpdateSummary"}, + "trackingId":{"shape":"TrackingId"} } }, "DatasetExportJob":{ @@ -2142,6 +2156,13 @@ "value":{"shape":"ParameterValue"}, "max":100 }, + "FieldsForThemeGeneration":{ + "type":"structure", + "required":["itemName"], + "members":{ + "itemName":{"shape":"ColumnName"} + } + }, "Filter":{ "type":"structure", "members":{ @@ -2736,7 +2757,8 @@ "members":{ "itemExplorationConfig":{"shape":"HyperParameters"}, "minRecommendationRequestsPerSecond":{"shape":"TransactionsPerSecond"}, - "trainingDataConfig":{"shape":"TrainingDataConfig"} + "trainingDataConfig":{"shape":"TrainingDataConfig"}, + "enableMetadataWithRecommendations":{"shape":"Boolean"} } }, "RecommenderSummary":{ @@ -2987,6 +3009,13 @@ "max":200, "min":0 }, + "ThemeGenerationConfig":{ + "type":"structure", + "required":["fieldsForThemeGeneration"], + "members":{ + "fieldsForThemeGeneration":{"shape":"FieldsForThemeGeneration"} + } + }, "TooManyTagKeysException":{ "type":"structure", "members":{ diff --git a/models/apis/personalize/2018-05-22/docs-2.json b/models/apis/personalize/2018-05-22/docs-2.json index f301d1c5c00..7c192e333fc 100644 --- a/models/apis/personalize/2018-05-22/docs-2.json +++ b/models/apis/personalize/2018-05-22/docs-2.json @@ -2,14 +2,14 @@ "version": "2.0", "service": "

Amazon Personalize is a machine learning service that makes it easy to add individualized recommendations to customers.

", "operations": { - "CreateBatchInferenceJob": "

Creates a batch inference job. The operation can handle up to 50 million records and the input file must be in JSON format. For more information, see Creating a batch inference job.

", + "CreateBatchInferenceJob": "

Generates batch recommendations based on a list of items or users stored in Amazon S3 and exports the recommendations to an Amazon S3 bucket.

To generate batch recommendations, specify the ARN of a solution version and an Amazon S3 URI for the input and output data. For user personalization, popular items, and personalized ranking solutions, the batch inference job generates a list of recommended items for each user ID in the input file. For related items solutions, the job generates a list of recommended items for each item ID in the input file.

For more information, see Creating a batch inference job .

If you use the Similar-Items recipe, Amazon Personalize can add descriptive themes to batch recommendations. To generate themes, set the job's mode to THEME_GENERATION and specify the name of the field that contains item names in the input data.

For more information about generating themes, see Batch recommendations with themes from Content Generator .

You can't get batch recommendations with the Trending-Now or Next-Best-Action recipes.

", "CreateBatchSegmentJob": "

Creates a batch segment job. The operation can handle up to 50 million records and the input file must be in JSON format. For more information, see Getting batch recommendations and user segments.

", "CreateCampaign": "

Creates a campaign that deploys a solution version. When a client calls the GetRecommendations and GetPersonalizedRanking APIs, a campaign is specified in the request.

Minimum Provisioned TPS and Auto-Scaling

A high minProvisionedTPS will increase your bill. We recommend starting with 1 for minProvisionedTPS (the default). Track your usage using Amazon CloudWatch metrics, and increase the minProvisionedTPS as necessary.

A transaction is a single GetRecommendations or GetPersonalizedRanking call. Transactions per second (TPS) is the throughput and unit of billing for Amazon Personalize. The minimum provisioned TPS (minProvisionedTPS) specifies the baseline throughput provisioned by Amazon Personalize, and thus, the minimum billing charge.

If your TPS increases beyond minProvisionedTPS, Amazon Personalize auto-scales the provisioned capacity up and down, but never below minProvisionedTPS. There's a short time delay while the capacity is increased that might cause loss of transactions.

The actual TPS used is calculated as the average requests/second within a 5-minute window. You pay for maximum of either the minimum provisioned TPS or the actual TPS. We recommend starting with a low minProvisionedTPS, track your usage using Amazon CloudWatch metrics, and then increase the minProvisionedTPS as necessary.

Status

A campaign can be in one of the following states:

To get the campaign status, call DescribeCampaign.

Wait until the status of the campaign is ACTIVE before asking the campaign for recommendations.

Related APIs

", - "CreateDataset": "

Creates an empty dataset and adds it to the specified dataset group. Use CreateDatasetImportJob to import your training data to a dataset.

There are three types of datasets:

Each dataset type has an associated schema with required field types. Only the Interactions dataset is required in order to train a model (also referred to as creating a solution).

A dataset can be in one of the following states:

To get the status of the dataset, call DescribeDataset.

Related APIs

", + "CreateDataset": "

Creates an empty dataset and adds it to the specified dataset group. Use CreateDatasetImportJob to import your training data to a dataset.

There are 5 types of datasets:

Each dataset type has an associated schema with required field types. Only the Item interactions dataset is required in order to train a model (also referred to as creating a solution).

A dataset can be in one of the following states:

To get the status of the dataset, call DescribeDataset.

Related APIs

", "CreateDatasetExportJob": "

Creates a job that exports data from your dataset to an Amazon S3 bucket. To allow Amazon Personalize to export the training data, you must specify an service-linked IAM role that gives Amazon Personalize PutObject permissions for your Amazon S3 bucket. For information, see Exporting a dataset in the Amazon Personalize developer guide.

Status

A dataset export job can be in one of the following states:

To get the status of the export job, call DescribeDatasetExportJob, and specify the Amazon Resource Name (ARN) of the dataset export job. The dataset export is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed.

", - "CreateDatasetGroup": "

Creates an empty dataset group. A dataset group is a container for Amazon Personalize resources. A dataset group can contain at most three datasets, one for each type of dataset:

A dataset group can be a Domain dataset group, where you specify a domain and use pre-configured resources like recommenders, or a Custom dataset group, where you use custom resources, such as a solution with a solution version, that you deploy with a campaign. If you start with a Domain dataset group, you can still add custom resources such as solutions and solution versions trained with recipes for custom use cases and deployed with campaigns.

A dataset group can be in one of the following states:

To get the status of the dataset group, call DescribeDatasetGroup. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the creation failed.

You must wait until the status of the dataset group is ACTIVE before adding a dataset to the group.

You can specify an Key Management Service (KMS) key to encrypt the datasets in the group. If you specify a KMS key, you must also include an Identity and Access Management (IAM) role that has permission to access the key.

APIs that require a dataset group ARN in the request

Related APIs

", - "CreateDatasetImportJob": "

Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon Personalize to import the training data, you must specify an IAM service role that has permission to read from the data source, as Amazon Personalize makes a copy of your data and processes it internally. For information on granting access to your Amazon S3 bucket, see Giving Amazon Personalize Access to Amazon S3 Resources.

By default, a dataset import job replaces any existing data in the dataset that you imported in bulk. To add new records without replacing existing data, specify INCREMENTAL for the import mode in the CreateDatasetImportJob operation.

Status

A dataset import job can be in one of the following states:

To get the status of the import job, call DescribeDatasetImportJob, providing the Amazon Resource Name (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed.

Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset.

Related APIs

", - "CreateEventTracker": "

Creates an event tracker that you use when adding event data to a specified dataset group using the PutEvents API.

Only one event tracker can be associated with a dataset group. You will get an error if you call CreateEventTracker using the same dataset group as an existing event tracker.

When you create an event tracker, the response includes a tracking ID, which you pass as a parameter when you use the PutEvents operation. Amazon Personalize then appends the event data to the Interactions dataset of the dataset group you specify in your event tracker.

The event tracker can be in one of the following states:

To get the status of the event tracker, call DescribeEventTracker.

The event tracker must be in the ACTIVE state before using the tracking ID.

Related APIs

", + "CreateDatasetGroup": "

Creates an empty dataset group. A dataset group is a container for Amazon Personalize resources. A dataset group can contain at most three datasets, one for each type of dataset:

A dataset group can be a Domain dataset group, where you specify a domain and use pre-configured resources like recommenders, or a Custom dataset group, where you use custom resources, such as a solution with a solution version, that you deploy with a campaign. If you start with a Domain dataset group, you can still add custom resources such as solutions and solution versions trained with recipes for custom use cases and deployed with campaigns.

A dataset group can be in one of the following states:

To get the status of the dataset group, call DescribeDatasetGroup. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the creation failed.

You must wait until the status of the dataset group is ACTIVE before adding a dataset to the group.

You can specify an Key Management Service (KMS) key to encrypt the datasets in the group. If you specify a KMS key, you must also include an Identity and Access Management (IAM) role that has permission to access the key.

APIs that require a dataset group ARN in the request

Related APIs

", + "CreateDatasetImportJob": "

Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon Personalize to import the training data, you must specify an IAM service role that has permission to read from the data source, as Amazon Personalize makes a copy of your data and processes it internally. For information on granting access to your Amazon S3 bucket, see Giving Amazon Personalize Access to Amazon S3 Resources.

If you already created a recommender or deployed a custom solution version with a campaign, how new bulk records influence recommendations depends on the domain use case or recipe that you use. For more information, see How new data influences real-time recommendations.

By default, a dataset import job replaces any existing data in the dataset that you imported in bulk. To add new records without replacing existing data, specify INCREMENTAL for the import mode in the CreateDatasetImportJob operation.

Status

A dataset import job can be in one of the following states:

To get the status of the import job, call DescribeDatasetImportJob, providing the Amazon Resource Name (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed.

Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset.

Related APIs

", + "CreateEventTracker": "

Creates an event tracker that you use when adding event data to a specified dataset group using the PutEvents API.

Only one event tracker can be associated with a dataset group. You will get an error if you call CreateEventTracker using the same dataset group as an existing event tracker.

When you create an event tracker, the response includes a tracking ID, which you pass as a parameter when you use the PutEvents operation. Amazon Personalize then appends the event data to the Item interactions dataset of the dataset group you specify in your event tracker.

The event tracker can be in one of the following states:

To get the status of the event tracker, call DescribeEventTracker.

The event tracker must be in the ACTIVE state before using the tracking ID.

Related APIs

", "CreateFilter": "

Creates a recommendation filter. For more information, see Filtering recommendations and user segments.

", "CreateMetricAttribution": "

Creates a metric attribution. A metric attribution creates reports on the data that you import into Amazon Personalize. Depending on how you imported the data, you can view reports in Amazon CloudWatch or Amazon S3. For more information, see Measuring impact of recommendations.

", "CreateRecommender": "

Creates a recommender with the recipe (a Domain dataset group use case) you specify. You create recommenders for a Domain dataset group and specify the recommender's Amazon Resource Name (ARN) when you make a GetRecommendations request.

Minimum recommendation requests per second

A high minRecommendationRequestsPerSecond will increase your bill. We recommend starting with 1 for minRecommendationRequestsPerSecond (the default). Track your usage using Amazon CloudWatch metrics, and increase the minRecommendationRequestsPerSecond as necessary.

When you create a recommender, you can configure the recommender's minimum recommendation requests per second. The minimum recommendation requests per second (minRecommendationRequestsPerSecond) specifies the baseline recommendation request throughput provisioned by Amazon Personalize. The default minRecommendationRequestsPerSecond is 1. A recommendation request is a single GetRecommendations operation. Request throughput is measured in requests per second and Amazon Personalize uses your requests per second to derive your requests per hour and the price of your recommender usage.

If your requests per second increases beyond minRecommendationRequestsPerSecond, Amazon Personalize auto-scales the provisioned capacity up and down, but never below minRecommendationRequestsPerSecond. There's a short time delay while the capacity is increased that might cause loss of requests.

Your bill is the greater of either the minimum requests per hour (based on minRecommendationRequestsPerSecond) or the actual number of requests. The actual request throughput used is calculated as the average requests/second within a one-hour window. We recommend starting with the default minRecommendationRequestsPerSecond, track your usage using Amazon CloudWatch metrics, and then increase the minRecommendationRequestsPerSecond as necessary.

Status

A recommender can be in one of the following states:

To get the recommender status, call DescribeRecommender.

Wait until the status of the recommender is ACTIVE before asking the recommender for recommendations.

Related APIs

", @@ -19,7 +19,7 @@ "DeleteCampaign": "

Removes a campaign by deleting the solution deployment. The solution that the campaign is based on is not deleted and can be redeployed when needed. A deleted campaign can no longer be specified in a GetRecommendations request. For information on creating campaigns, see CreateCampaign.

", "DeleteDataset": "

Deletes a dataset. You can't delete a dataset if an associated DatasetImportJob or SolutionVersion is in the CREATE PENDING or IN PROGRESS state. For more information on datasets, see CreateDataset.

", "DeleteDatasetGroup": "

Deletes a dataset group. Before you delete a dataset group, you must delete the following:

", - "DeleteEventTracker": "

Deletes the event tracker. Does not delete the event-interactions dataset from the associated dataset group. For more information on event trackers, see CreateEventTracker.

", + "DeleteEventTracker": "

Deletes the event tracker. Does not delete the dataset from the dataset group. For more information on event trackers, see CreateEventTracker.

", "DeleteFilter": "

Deletes a filter.

", "DeleteMetricAttribution": "

Deletes a metric attribution.

", "DeleteRecommender": "

Deactivates and removes a recommender. A deleted recommender can no longer be specified in a GetRecommendations request.

", @@ -65,7 +65,7 @@ "StopSolutionVersionCreation": "

Stops creating a solution version that is in a state of CREATE_PENDING or CREATE IN_PROGRESS.

Depending on the current state of the solution version, the solution version state changes as follows:

You are billed for all of the training completed up until you stop the solution version creation. You cannot resume creating a solution version once it has been stopped.

", "TagResource": "

Add a list of tags to a resource.

", "UntagResource": "

Remove tags that are attached to a resource.

", - "UpdateCampaign": "

Updates a campaign by either deploying a new solution or changing the value of the campaign's minProvisionedTPS parameter.

To update a campaign, the campaign status must be ACTIVE or CREATE FAILED. Check the campaign status using the DescribeCampaign operation.

You can still get recommendations from a campaign while an update is in progress. The campaign will use the previous solution version and campaign configuration to generate recommendations until the latest campaign update status is Active.

For more information on campaigns, see CreateCampaign.

", + "UpdateCampaign": "

Updates a campaign to deploy a retrained solution version with an existing campaign, change your campaign's minProvisionedTPS, or modify your campaign's configuration, such as the exploration configuration.

To update a campaign, the campaign status must be ACTIVE or CREATE FAILED. Check the campaign status using the DescribeCampaign operation.

You can still get recommendations from a campaign while an update is in progress. The campaign will use the previous solution version and campaign configuration to generate recommendations until the latest campaign update status is Active.

For more information about updating a campaign, including code samples, see Updating a campaign. For more information about campaigns, see Creating a campaign.

", "UpdateDataset": "

Update a dataset to replace its schema with a new or existing one. For more information, see Replacing a dataset's schema.

", "UpdateMetricAttribution": "

Updates a metric attribution.

", "UpdateRecommender": "

Updates the recommender to modify the recommender configuration. If you update the recommender to modify the columns used in training, Amazon Personalize automatically starts a full retraining of the models backing your recommender. While the update completes, you can still get recommendations from the recommender. The recommender uses the previous configuration until the update completes. To track the status of this update, use the latestRecommenderUpdate returned in the DescribeRecommender operation.

" @@ -295,6 +295,14 @@ "CreateBatchInferenceJobRequest$jobInput": "

The Amazon S3 path that leads to the input file to base your recommendations on. The input material must be in JSON format.

" } }, + "BatchInferenceJobMode": { + "base": null, + "refs": { + "BatchInferenceJob$batchInferenceJobMode": "

The job's mode.

", + "BatchInferenceJobSummary$batchInferenceJobMode": "

The job's mode.

", + "CreateBatchInferenceJobRequest$batchInferenceJobMode": "

The mode of the batch inference job. To generate descriptive themes for groups of similar items, set the job mode to THEME_GENERATION. If you don't want to generate themes, use the default BATCH_INFERENCE.

When you get batch recommendations with themes, you will incur additional costs. For more information, see Amazon Personalize pricing.

" + } + }, "BatchInferenceJobOutput": { "base": "

The output configuration parameters of a batch inference job.

", "refs": { @@ -349,9 +357,11 @@ "Boolean": { "base": null, "refs": { + "CampaignConfig$enableMetadataWithRecommendations": "

Whether metadata with recommendations is enabled for the campaign. If enabled, you can specify the columns from your Items dataset in your request for recommendations. Amazon Personalize returns this data for each item in the recommendation response.

If you enable metadata in recommendations, you will incur additional costs. For more information, see Amazon Personalize pricing.

", "CreateDatasetImportJobRequest$publishAttributionMetricsToS3": "

If you created a metric attribution, specify whether to publish metrics for this import job to Amazon S3

", "CreateSolutionRequest$performHPO": "

Whether to perform hyperparameter optimization (HPO) on the specified or selected recipe. The default is false.

When performing AutoML, this parameter is always true and you should not set it to false.

", - "DatasetImportJob$publishAttributionMetricsToS3": "

Whether the job publishes metrics to Amazon S3 for a metric attribution.

" + "DatasetImportJob$publishAttributionMetricsToS3": "

Whether the job publishes metrics to Amazon S3 for a metric attribution.

", + "RecommenderConfig$enableMetadataWithRecommendations": "

Whether metadata with recommendations is enabled for the recommender. If enabled, you can specify the columns from your Items dataset in your request for recommendations. Amazon Personalize returns this data for each item in the recommendation response.

If you enable metadata in recommendations, you will incur additional costs. For more information, see Amazon Personalize pricing.

" } }, "Campaign": { @@ -415,7 +425,8 @@ "ColumnName": { "base": null, "refs": { - "ColumnNamesList$member": null + "ColumnNamesList$member": null, + "FieldsForThemeGeneration$itemName": "

The name of the Items dataset column that stores the name of each item in the dataset.

" } }, "ColumnNamesList": { @@ -629,7 +640,7 @@ } }, "DatasetGroup": { - "base": "

A dataset group is a collection of related datasets (Interactions, User, and Item). You create a dataset group by calling CreateDatasetGroup. You then create a dataset and add it to a dataset group by calling CreateDataset. The dataset group is used to create and train a solution by calling CreateSolution. A dataset group can contain only one of each type of dataset.

You can specify an Key Management Service (KMS) key to encrypt the datasets in the group.

", + "base": "

A dataset group is a collection of related datasets (Item interactions, Users, Items, Actions, Action interactions). You create a dataset group by calling CreateDatasetGroup. You then create a dataset and add it to a dataset group by calling CreateDataset. The dataset group is used to create and train a solution by calling CreateSolution. A dataset group can contain only one of each type of dataset.

You can specify an Key Management Service (KMS) key to encrypt the datasets in the group.

", "refs": { "DescribeDatasetGroupResponse$datasetGroup": "

A listing of the dataset group's properties.

" } @@ -685,8 +696,8 @@ "DatasetType": { "base": null, "refs": { - "CreateDatasetRequest$datasetType": "

The type of dataset.

One of the following (case insensitive) values:

", - "Dataset$datasetType": "

One of the following values:

", + "CreateDatasetRequest$datasetType": "

The type of dataset.

One of the following (case insensitive) values:

", + "Dataset$datasetType": "

One of the following values:

", "DatasetSummary$datasetType": "

The dataset type. One of the following values:

", "ExcludedDatasetColumns$key": null } @@ -1158,6 +1169,12 @@ "FeatureTransformation$defaultParameters": "

Provides the default parameters for feature transformation.

" } }, + "FieldsForThemeGeneration": { + "base": "

A string to string map of the configuration details for theme generation.

", + "refs": { + "ThemeGenerationConfig$fieldsForThemeGeneration": "

Fields used to generate descriptive themes for a batch inference job.

" + } + }, "Filter": { "base": "

Contains information on a recommendation filter, including its ARN, status, and filter expression.

", "refs": { @@ -1237,7 +1254,7 @@ "BatchInferenceJobConfig$itemExplorationConfig": "

A string to string map specifying the exploration configuration hyperparameters, including explorationWeight and explorationItemAgeCutOff, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. See User-Personalization.

", "CampaignConfig$itemExplorationConfig": "

Specifies the exploration configuration hyperparameters, including explorationWeight and explorationItemAgeCutOff, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. Provide itemExplorationConfig data only if your solution uses the User-Personalization recipe.

", "RecommenderConfig$itemExplorationConfig": "

Specifies the exploration configuration hyperparameters, including explorationWeight and explorationItemAgeCutOff, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. Provide itemExplorationConfig data only if your recommenders generate personalized recommendations for a user (not popular items or similar items).

", - "SolutionConfig$algorithmHyperParameters": "

Lists the hyperparameter names and ranges.

", + "SolutionConfig$algorithmHyperParameters": "

Lists the algorithm hyperparameters and their values.

", "TunedHPOParams$algorithmHyperParameters": "

A list of the hyperparameter values of the best performing model.

" } }, @@ -1649,7 +1666,7 @@ "ListDatasetGroupsResponse$nextToken": "

A token for getting the next set of dataset groups (if they exist).

", "ListDatasetImportJobsRequest$nextToken": "

A token returned from the previous call to ListDatasetImportJobs for getting the next set of dataset import jobs (if they exist).

", "ListDatasetImportJobsResponse$nextToken": "

A token for getting the next set of dataset import jobs (if they exist).

", - "ListDatasetsRequest$nextToken": "

A token returned from the previous call to ListDatasetImportJobs for getting the next set of dataset import jobs (if they exist).

", + "ListDatasetsRequest$nextToken": "

A token returned from the previous call to ListDatasets for getting the next set of dataset import jobs (if they exist).

", "ListDatasetsResponse$nextToken": "

A token for getting the next set of datasets (if they exist).

", "ListEventTrackersRequest$nextToken": "

A token returned from the previous call to ListEventTrackers for getting the next set of event trackers (if they exist).

", "ListEventTrackersResponse$nextToken": "

A token for getting the next set of event trackers (if they exist).

", @@ -1826,7 +1843,7 @@ "CreateDatasetExportJobRequest$roleArn": "

The Amazon Resource Name (ARN) of the IAM service role that has permissions to add data to your output Amazon S3 bucket.

", "CreateDatasetGroupRequest$roleArn": "

The ARN of the Identity and Access Management (IAM) role that has permissions to access the Key Management Service (KMS) key. Supplying an IAM role is only valid when also specifying a KMS key.

", "CreateDatasetImportJobRequest$roleArn": "

The ARN of the IAM role that has permissions to read from the Amazon S3 data source.

", - "DatasetGroup$roleArn": "

The ARN of the IAM role that has permissions to create the dataset group.

", + "DatasetGroup$roleArn": "

The ARN of the Identity and Access Management (IAM) role that has permissions to access the Key Management Service (KMS) key. Supplying an IAM role is only valid when also specifying a KMS key.

", "MetricAttributionOutput$roleArn": "

The Amazon Resource Name (ARN) of the IAM service role that has permissions to add data to your output Amazon S3 bucket and add metrics to Amazon CloudWatch. For more information, see Measuring impact of recommendations.

" } }, @@ -2015,6 +2032,13 @@ "TagResourceRequest$tags": "

Tags to apply to the resource. For more information see Tagging Amazon Personalize recources.

" } }, + "ThemeGenerationConfig": { + "base": "

The configuration details for generating themes with a batch inference job.

", + "refs": { + "BatchInferenceJob$themeGenerationConfig": "

The job's theme generation settings.

", + "CreateBatchInferenceJobRequest$themeGenerationConfig": "

For theme generation jobs, specify the name of the column in your Items dataset that contains each item's name.

" + } + }, "TooManyTagKeysException": { "base": "

The request contains more tag keys than can be associated with a resource (50 tag keys per resource).

", "refs": { @@ -2029,6 +2053,7 @@ "base": null, "refs": { "CreateEventTrackerResponse$trackingId": "

The ID of the event tracker. Include this ID in requests to the PutEvents API.

", + "Dataset$trackingId": "

The ID of the event tracker for an Action interactions dataset. You specify the tracker's ID in the PutActionInteractions API operation. Amazon Personalize uses it to direct new data to the Action interactions dataset in your dataset group.

", "EventTracker$trackingId": "

The ID of the event tracker. Include this ID in requests to the PutEvents API.

" } }, @@ -2054,7 +2079,7 @@ "TrainingMode": { "base": null, "refs": { - "CreateSolutionVersionRequest$trainingMode": "

The scope of training to be performed when creating the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the data that has changed in comparison to the input solution. Choose UPDATE when you want to incrementally update your solution version instead of creating an entirely new one.

The UPDATE option can only be used when you already have an active solution version created from the input solution using the FULL option and the input solution was trained with the User-Personalization recipe or the HRNN-Coldstart recipe.

", + "CreateSolutionVersionRequest$trainingMode": "

The scope of training to be performed when creating the solution version. The default is FULL. This creates a completely new model based on the entirety of the training data from the datasets in your dataset group.

If you use User-Personalization, you can specify a training mode of UPDATE. This updates the model to consider new items for recommendations. It is not a full retraining. You should still complete a full retraining weekly. If you specify UPDATE, Amazon Personalize will stop automatic updates for the solution version. To resume updates, create a new solution with training mode set to FULL and deploy it in a campaign. For more information about automatic updates, see Automatic updates.

The UPDATE option can only be used when you already have an active solution version created from the input solution using the FULL option and the input solution was trained with the User-Personalization recipe or the legacy HRNN-Coldstart recipe.

", "SolutionVersion$trainingMode": "

The scope of training to be performed when creating the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the data that has changed in comparison to the input solution. Choose UPDATE when you want to incrementally update your solution version instead of creating an entirely new one.

The UPDATE option can only be used when you already have an active solution version created from the input solution using the FULL option and the input solution was trained with the User-Personalization recipe or the HRNN-Coldstart recipe.

" } }, diff --git a/models/apis/personalize/2018-05-22/endpoint-rule-set-1.json b/models/apis/personalize/2018-05-22/endpoint-rule-set-1.json index 0f0b99c1ae4..dbe0c958c0d 100644 --- a/models/apis/personalize/2018-05-22/endpoint-rule-set-1.json +++ b/models/apis/personalize/2018-05-22/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -58,293 +57,258 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, { - "conditions": [], - "type": "tree", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://personalize-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://personalize-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] }, true ] } ], - "type": "tree", "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://personalize-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } - ] - } - ] - }, { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://personalize-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] + ], + "type": "tree" }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://personalize.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], - "type": "tree", + ], "rules": [ { "conditions": [], "endpoint": { - "url": "https://personalize.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://personalize.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://personalize.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" + ], + "type": "tree" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/quicksight/2018-04-01/api-2.json b/models/apis/quicksight/2018-04-01/api-2.json index 560f54c5abd..ae48e3c0722 100644 --- a/models/apis/quicksight/2018-04-01/api-2.json +++ b/models/apis/quicksight/2018-04-01/api-2.json @@ -661,6 +661,22 @@ {"shape":"InternalFailureException"} ] }, + "DeleteIdentityPropagationConfig":{ + "name":"DeleteIdentityPropagationConfig", + "http":{ + "method":"DELETE", + "requestUri":"/accounts/{AwsAccountId}/identity-propagation-config/{Service}" + }, + "input":{"shape":"DeleteIdentityPropagationConfigRequest"}, + "output":{"shape":"DeleteIdentityPropagationConfigResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ] + }, "DeleteNamespace":{ "name":"DeleteNamespace", "http":{ @@ -1907,6 +1923,22 @@ {"shape":"InternalFailureException"} ] }, + "ListIdentityPropagationConfigs":{ + "name":"ListIdentityPropagationConfigs", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/identity-propagation-config" + }, + "input":{"shape":"ListIdentityPropagationConfigsRequest"}, + "output":{"shape":"ListIdentityPropagationConfigsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ] + }, "ListIngestions":{ "name":"ListIngestions", "http":{ @@ -2708,6 +2740,22 @@ {"shape":"InternalFailureException"} ] }, + "UpdateIdentityPropagationConfig":{ + "name":"UpdateIdentityPropagationConfig", + "http":{ + "method":"POST", + "requestUri":"/accounts/{AwsAccountId}/identity-propagation-config/{Service}" + }, + "input":{"shape":"UpdateIdentityPropagationConfigRequest"}, + "output":{"shape":"UpdateIdentityPropagationConfigResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ] + }, "UpdateIpRestriction":{ "name":"UpdateIpRestriction", "http":{ @@ -4189,6 +4237,21 @@ "type":"list", "member":{"shape":"AuthorSpecifiedAggregation"} }, + "AuthorizedTargetsByService":{ + "type":"structure", + "members":{ + "Service":{"shape":"ServiceType"}, + "AuthorizedTargets":{"shape":"AuthorizedTargetsList"} + } + }, + "AuthorizedTargetsByServices":{ + "type":"list", + "member":{"shape":"AuthorizedTargetsByService"} + }, + "AuthorizedTargetsList":{ + "type":"list", + "member":{"shape":"String"} + }, "AwsAccountId":{ "type":"string", "max":12, @@ -7927,6 +7990,35 @@ } } }, + "DeleteIdentityPropagationConfigRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "Service" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "location":"uri", + "locationName":"AwsAccountId" + }, + "Service":{ + "shape":"ServiceType", + "location":"uri", + "locationName":"Service" + } + } + }, + "DeleteIdentityPropagationConfigResponse":{ + "type":"structure", + "members":{ + "RequestId":{"shape":"String"}, + "Status":{ + "shape":"StatusCode", + "location":"statusCode" + } + } + }, "DeleteNamespaceRequest":{ "type":"structure", "required":[ @@ -11727,6 +11819,15 @@ "X" ] }, + "IdentityCenterConfiguration":{ + "type":"structure", + "members":{ + "EnableIdentityPropagation":{ + "shape":"Boolean", + "box":true + } + } + }, "IdentityMap":{ "type":"map", "key":{"shape":"String"}, @@ -13010,6 +13111,45 @@ } } }, + "ListIdentityPropagationConfigsRequest":{ + "type":"structure", + "required":["AwsAccountId"], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "location":"uri", + "locationName":"AwsAccountId" + }, + "MaxResults":{ + "shape":"ListIdentityPropagationMaxResults", + "box":true, + "location":"querystring", + "locationName":"max-results" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "ListIdentityPropagationConfigsResponse":{ + "type":"structure", + "members":{ + "Services":{"shape":"AuthorizedTargetsByServices"}, + "NextToken":{"shape":"String"}, + "Status":{ + "shape":"StatusCode", + "location":"statusCode" + }, + "RequestId":{"shape":"String"} + } + }, + "ListIdentityPropagationMaxResults":{ + "type":"integer", + "max":10, + "min":1 + }, "ListIngestionsRequest":{ "type":"structure", "required":[ @@ -15321,7 +15461,8 @@ "Port":{"shape":"OptionalPort"}, "Database":{"shape":"Database"}, "ClusterId":{"shape":"ClusterId"}, - "IAMParameters":{"shape":"RedshiftIAMParameters"} + "IAMParameters":{"shape":"RedshiftIAMParameters"}, + "IdentityCenterConfiguration":{"shape":"IdentityCenterConfiguration"} } }, "ReferenceLine":{ @@ -16492,6 +16633,10 @@ "SiteBaseUrl":{"shape":"SiteBaseUrl"} } }, + "ServiceType":{ + "type":"string", + "enum":["REDSHIFT"] + }, "SessionLifetimeInMinutes":{ "type":"long", "max":600, @@ -19437,6 +19582,36 @@ } } }, + "UpdateIdentityPropagationConfigRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "Service" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "location":"uri", + "locationName":"AwsAccountId" + }, + "Service":{ + "shape":"ServiceType", + "location":"uri", + "locationName":"Service" + }, + "AuthorizedTargets":{"shape":"AuthorizedTargetsList"} + } + }, + "UpdateIdentityPropagationConfigResponse":{ + "type":"structure", + "members":{ + "RequestId":{"shape":"String"}, + "Status":{ + "shape":"StatusCode", + "location":"statusCode" + } + } + }, "UpdateIpRestrictionRequest":{ "type":"structure", "required":["AwsAccountId"], diff --git a/models/apis/quicksight/2018-04-01/docs-2.json b/models/apis/quicksight/2018-04-01/docs-2.json index 8e323781e87..f3664c0f632 100644 --- a/models/apis/quicksight/2018-04-01/docs-2.json +++ b/models/apis/quicksight/2018-04-01/docs-2.json @@ -37,6 +37,7 @@ "DeleteGroup": "

Removes a user group from Amazon QuickSight.

", "DeleteGroupMembership": "

Removes a user from a group so that the user is no longer a member of the group.

", "DeleteIAMPolicyAssignment": "

Deletes an existing IAM policy assignment.

", + "DeleteIdentityPropagationConfig": "

Deletes all access scopes and authorized targets that are associated with a service from the Amazon QuickSight IAM Identity Center application.

This operation is only supported for Amazon QuickSight accounts that use IAM Identity Center.

", "DeleteNamespace": "

Deletes a namespace and the users and groups that are associated with the namespace. This is an asynchronous process. Assets including dashboards, analyses, datasets and data sources are not deleted. To delete these assets, you use the API operations for the relevant asset.

", "DeleteRefreshSchedule": "

Deletes a refresh schedule from a dataset.

", "DeleteRoleCustomPermission": "

Removes custom permissions from the role.

", @@ -109,6 +110,7 @@ "ListGroups": "

Lists all user groups in Amazon QuickSight.

", "ListIAMPolicyAssignments": "

Lists the IAM policy assignments in the current Amazon QuickSight account.

", "ListIAMPolicyAssignmentsForUser": "

Lists all of the IAM policy assignments, including the Amazon Resource Names (ARNs), for the IAM policies assigned to the specified user and group, or groups that the user belongs to.

", + "ListIdentityPropagationConfigs": "

Lists all services and authorized targets that the Amazon QuickSight IAM Identity Center application can access.

This operation is only supported for Amazon QuickSight accounts that use IAM Identity Center.

", "ListIngestions": "

Lists the history of SPICE ingestions for a dataset.

", "ListNamespaces": "

Lists the namespaces for the specified Amazon Web Services account. This operation doesn't list deleted namespaces.

", "ListRefreshSchedules": "

Lists the refresh schedules of a dataset. Each dataset can have up to 5 schedules.

", @@ -154,6 +156,7 @@ "UpdateFolderPermissions": "

Updates permissions of a folder.

", "UpdateGroup": "

Changes a group description.

", "UpdateIAMPolicyAssignment": "

Updates an existing IAM policy assignment. This operation updates only the optional parameter or parameters that are specified in the request. This overwrites all of the users included in Identities.

", + "UpdateIdentityPropagationConfig": "

Adds or updates services and authorized targets to configure what the Amazon QuickSight IAM Identity Center application can access.

This operation is only supported for Amazon QuickSight accounts using IAM Identity Center

", "UpdateIpRestriction": "

Updates the content and status of IP rules. To use this operation, you must provide the entire map of rules. You can use the DescribeIpRestriction operation to get the current rule map.

", "UpdatePublicSharingSettings": "

Use the UpdatePublicSharingSettings operation to turn on or turn off the public sharing settings of an Amazon QuickSight dashboard.

To use this operation, turn on session capacity pricing for your Amazon QuickSight account.

Before you can turn on public sharing on your account, make sure to give public sharing permissions to an administrative user in the Identity and Access Management (IAM) console. For more information on using IAM with Amazon QuickSight, see Using Amazon QuickSight with IAM in the Amazon QuickSight User Guide.

", "UpdateRefreshSchedule": "

Updates a refresh schedule for a dataset.

", @@ -1348,6 +1351,25 @@ "TopicColumn$NotAllowedAggregations": "

The list of aggregation types that are not allowed for the column. Valid values for this structure are COUNT, DISTINCT_COUNT, MIN, MAX, MEDIAN, SUM, AVERAGE, STDEV, STDEVP, VAR, VARP, and PERCENTILE.

" } }, + "AuthorizedTargetsByService": { + "base": "

The authorized targets that are associated with a service.

", + "refs": { + "AuthorizedTargetsByServices$member": null + } + }, + "AuthorizedTargetsByServices": { + "base": null, + "refs": { + "ListIdentityPropagationConfigsResponse$Services": "

A list of services and their authorized targets that the Amazon QuickSight IAM Identity Center application can access.

" + } + }, + "AuthorizedTargetsList": { + "base": null, + "refs": { + "AuthorizedTargetsByService$AuthorizedTargets": "

Aist of authorized targets that are represented by IAM Identity Center application ARNs.

", + "UpdateIdentityPropagationConfigRequest$AuthorizedTargets": "

Specifies a list of application ARNs that represent the authorized targets for a service.

" + } + }, "AwsAccountId": { "base": null, "refs": { @@ -1387,6 +1409,7 @@ "DeleteGroupMembershipRequest$AwsAccountId": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the Amazon Web Services account that contains your Amazon QuickSight account.

", "DeleteGroupRequest$AwsAccountId": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the Amazon Web Services account that contains your Amazon QuickSight account.

", "DeleteIAMPolicyAssignmentRequest$AwsAccountId": "

The Amazon Web Services account ID where you want to delete the IAM policy assignment.

", + "DeleteIdentityPropagationConfigRequest$AwsAccountId": "

The ID of the Amazon Web Services account that you want to delete an identity propagation configuration from.

", "DeleteNamespaceRequest$AwsAccountId": "

The ID for the Amazon Web Services account that you want to delete the Amazon QuickSight namespace from.

", "DeleteRefreshScheduleRequest$AwsAccountId": "

The Amazon Web Services account ID.

", "DeleteRoleCustomPermissionRequest$AwsAccountId": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the Amazon Web Services account that contains your Amazon QuickSight account.

", @@ -1464,6 +1487,7 @@ "ListGroupsRequest$AwsAccountId": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the Amazon Web Services account that contains your Amazon QuickSight account.

", "ListIAMPolicyAssignmentsForUserRequest$AwsAccountId": "

The ID of the Amazon Web Services account that contains the assignments.

", "ListIAMPolicyAssignmentsRequest$AwsAccountId": "

The ID of the Amazon Web Services account that contains these IAM policy assignments.

", + "ListIdentityPropagationConfigsRequest$AwsAccountId": "

The ID of the Amazon Web Services account that contain the identity propagation configurations of.

", "ListIngestionsRequest$AwsAccountId": "

The Amazon Web Services account ID.

", "ListNamespacesRequest$AwsAccountId": "

The ID for the Amazon Web Services account that contains the Amazon QuickSight namespaces that you want to list.

", "ListRefreshSchedulesRequest$AwsAccountId": "

The Amazon Web Services account ID.

", @@ -1507,6 +1531,7 @@ "UpdateFolderRequest$AwsAccountId": "

The ID for the Amazon Web Services account that contains the folder to update.

", "UpdateGroupRequest$AwsAccountId": "

The ID for the Amazon Web Services account that the group is in. Currently, you use the ID for the Amazon Web Services account that contains your Amazon QuickSight account.

", "UpdateIAMPolicyAssignmentRequest$AwsAccountId": "

The ID of the Amazon Web Services account that contains the IAM policy assignment.

", + "UpdateIdentityPropagationConfigRequest$AwsAccountId": "

The ID of the Amazon Web Services account that contains the identity propagation configuration that you want to update.

", "UpdateIpRestrictionRequest$AwsAccountId": "

The ID of the Amazon Web Services account that contains the IP rules.

", "UpdateIpRestrictionResponse$AwsAccountId": "

The ID of the Amazon Web Services account that contains the IP rules.

", "UpdatePublicSharingSettingsRequest$AwsAccountId": "

The Amazon Web Services account ID associated with your Amazon QuickSight subscription.

", @@ -1770,6 +1795,7 @@ "GetDashboardEmbedUrlRequest$ResetDisabled": "

Remove the reset button on the embedded dashboard. The default is FALSE, which enables the reset button.

", "GetDashboardEmbedUrlRequest$StatePersistenceEnabled": "

Adds persistence of state for the user session in an embedded dashboard. Persistence applies to the sheet and the parameter settings. These are control settings that the dashboard subscriber (Amazon QuickSight reader) chooses while viewing the dashboard. If this is set to TRUE, the settings are the same when the subscriber reopens the same dashboard URL. The state is stored in Amazon QuickSight, not in a browser cookie. If this is set to FALSE, the state of the user session is not persisted. The default is FALSE.

", "GutterStyle$Show": "

This Boolean value controls whether to display a gutter space between sheet tiles.

", + "IdentityCenterConfiguration$EnableIdentityPropagation": "

A Boolean option that controls whether Trusted Identity Propagation should be used.

", "JoinKeyProperties$UniqueKey": "

A value that indicates that a row in a table is uniquely identified by the columns in a join key. This is used by Amazon QuickSight to optimize query performance.

", "MarginStyle$Show": "

This Boolean value controls whether to display sheet margins.

", "NumericRangeFilter$IncludeMinimum": "

Determines whether the minimum value in the filter value range should be included in the filtered results.

", @@ -3956,6 +3982,16 @@ "refs": { } }, + "DeleteIdentityPropagationConfigRequest": { + "base": null, + "refs": { + } + }, + "DeleteIdentityPropagationConfigResponse": { + "base": null, + "refs": { + } + }, "DeleteNamespaceRequest": { "base": null, "refs": { @@ -6083,6 +6119,12 @@ "ConditionalFormattingCustomIconOptions$Icon": "

Determines the type of icon.

" } }, + "IdentityCenterConfiguration": { + "base": "

The parameters for an IAM Identity Center configuration.

", + "refs": { + "RedshiftParameters$IdentityCenterConfiguration": "

An optional parameter that configures IAM Identity Center authentication to grant Amazon QuickSight access to your cluster.

This parameter can only be specified if your Amazon QuickSight account is configured with IAM Identity Center.

" + } + }, "IdentityMap": { "base": null, "refs": { @@ -6865,6 +6907,22 @@ "refs": { } }, + "ListIdentityPropagationConfigsRequest": { + "base": null, + "refs": { + } + }, + "ListIdentityPropagationConfigsResponse": { + "base": null, + "refs": { + } + }, + "ListIdentityPropagationMaxResults": { + "base": null, + "refs": { + "ListIdentityPropagationConfigsRequest$MaxResults": "

The maximum number of results to be returned.

" + } + }, "ListIngestionsRequest": { "base": null, "refs": { @@ -9482,6 +9540,14 @@ "DataSourceParameters$ServiceNowParameters": "

The parameters for ServiceNow.

" } }, + "ServiceType": { + "base": null, + "refs": { + "AuthorizedTargetsByService$Service": "

The name of the Amazon Web Services service.

", + "DeleteIdentityPropagationConfigRequest$Service": "

The name of the Amazon Web Services service that you want to delete the associated access scopes and authorized targets from.

", + "UpdateIdentityPropagationConfigRequest$Service": "

The name of the Amazon Web Services service that contains the authorized targets that you want to add or update.

" + } + }, "SessionLifetimeInMinutes": { "base": null, "refs": { @@ -10362,6 +10428,7 @@ "DeleteGroupMembershipResponse$Status": "

The HTTP status of the request.

", "DeleteGroupResponse$Status": "

The HTTP status of the request.

", "DeleteIAMPolicyAssignmentResponse$Status": "

The HTTP status of the request.

", + "DeleteIdentityPropagationConfigResponse$Status": "

The HTTP status of the request.

", "DeleteNamespaceResponse$Status": "

The HTTP status of the request.

", "DeleteRefreshScheduleResponse$Status": "

The HTTP status of the request.

", "DeleteRoleCustomPermissionResponse$Status": "

The HTTP status of the request.

", @@ -10434,6 +10501,7 @@ "ListGroupsResponse$Status": "

The HTTP status of the request.

", "ListIAMPolicyAssignmentsForUserResponse$Status": "

The HTTP status of the request.

", "ListIAMPolicyAssignmentsResponse$Status": "

The HTTP status of the request.

", + "ListIdentityPropagationConfigsResponse$Status": "

The HTTP status of the request.

", "ListIngestionsResponse$Status": "

The HTTP status of the request.

", "ListNamespacesResponse$Status": "

The HTTP status of the request.

", "ListRefreshSchedulesResponse$Status": "

The HTTP status of the request.

", @@ -10479,6 +10547,7 @@ "UpdateFolderResponse$Status": "

The HTTP status of the request.

", "UpdateGroupResponse$Status": "

The HTTP status of the request.

", "UpdateIAMPolicyAssignmentResponse$Status": "

The HTTP status of the request.

", + "UpdateIdentityPropagationConfigResponse$Status": "

The HTTP status of the request.

", "UpdateIpRestrictionResponse$Status": "

The HTTP status of the request.

", "UpdatePublicSharingSettingsResponse$Status": "

The HTTP status of the request.

", "UpdateRefreshScheduleResponse$Status": "

The HTTP status of the request.

", @@ -10514,6 +10583,7 @@ "AssetBundleImportJobResourceIdOverrideConfiguration$PrefixForAllResources": "

An option to request a CloudFormation variable for a prefix to be prepended to each resource's ID before import. The prefix is only added to the asset IDs and does not change the name of the asset.

", "AssetOptions$Timezone": "

Determines the timezone for the analysis.

", "AttributeAggregationFunction$ValueForMultipleValues": "

Used by the UNIQUE_VALUE aggregation function. If there are multiple values for the field used by the aggregation, the value for this property will be returned instead. Defaults to '*'.

", + "AuthorizedTargetsList$member": null, "AxisLabelOptions$CustomLabel": "

The text for the axis label.

", "CancelIngestionRequest$DataSetId": "

The ID of the dataset used in the ingestion.

", "CancelIngestionResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", @@ -10581,6 +10651,7 @@ "DeleteGroupMembershipResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", "DeleteGroupResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", "DeleteIAMPolicyAssignmentResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", + "DeleteIdentityPropagationConfigResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", "DeleteNamespaceResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", "DeleteRefreshScheduleRequest$ScheduleId": "

The ID of the refresh schedule.

", "DeleteRefreshScheduleResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", @@ -10712,6 +10783,9 @@ "ListIAMPolicyAssignmentsRequest$NextToken": "

The token for the next set of results, or null if there are no more results.

", "ListIAMPolicyAssignmentsResponse$NextToken": "

The token for the next set of results, or null if there are no more results.

", "ListIAMPolicyAssignmentsResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", + "ListIdentityPropagationConfigsRequest$NextToken": "

The token for the next set of results, or null if there are no more results.

", + "ListIdentityPropagationConfigsResponse$NextToken": "

The token for the next set of results, or null if there are no more results.

", + "ListIdentityPropagationConfigsResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", "ListIngestionsRequest$DataSetId": "

The ID of the dataset used in the ingestion.

", "ListIngestionsRequest$NextToken": "

The token for the next set of results, or null if there are no more results.

", "ListIngestionsResponse$NextToken": "

The token for the next set of results, or null if there are no more results.

", @@ -10854,6 +10928,7 @@ "UpdateGroupResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", "UpdateIAMPolicyAssignmentResponse$AssignmentId": "

The ID of the assignment.

", "UpdateIAMPolicyAssignmentResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", + "UpdateIdentityPropagationConfigResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", "UpdateIpRestrictionResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", "UpdatePublicSharingSettingsResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", "UpdateRefreshScheduleResponse$RequestId": "

The Amazon Web Services request ID for this operation.

", @@ -12382,6 +12457,16 @@ "refs": { } }, + "UpdateIdentityPropagationConfigRequest": { + "base": null, + "refs": { + } + }, + "UpdateIdentityPropagationConfigResponse": { + "base": null, + "refs": { + } + }, "UpdateIpRestrictionRequest": { "base": null, "refs": { diff --git a/models/apis/redshift/2012-12-01/api-2.json b/models/apis/redshift/2012-12-01/api-2.json index a07bb904763..8ad963fcb6d 100644 --- a/models/apis/redshift/2012-12-01/api-2.json +++ b/models/apis/redshift/2012-12-01/api-2.json @@ -2413,7 +2413,8 @@ "DataShareArn":{"shape":"String"}, "AssociateEntireAccount":{"shape":"BooleanOptional"}, "ConsumerArn":{"shape":"String"}, - "ConsumerRegion":{"shape":"String"} + "ConsumerRegion":{"shape":"String"}, + "AllowWrites":{"shape":"BooleanOptional"} } }, "AssociatedClusterList":{ @@ -2579,7 +2580,8 @@ ], "members":{ "DataShareArn":{"shape":"String"}, - "ConsumerIdentifier":{"shape":"String"} + "ConsumerIdentifier":{"shape":"String"}, + "AllowWrites":{"shape":"BooleanOptional"} } }, "AuthorizeEndpointAccessMessage":{ @@ -3692,7 +3694,9 @@ "Status":{"shape":"DataShareStatus"}, "ConsumerRegion":{"shape":"String"}, "CreatedDate":{"shape":"TStamp"}, - "StatusChangeDate":{"shape":"TStamp"} + "StatusChangeDate":{"shape":"TStamp"}, + "ProducerAllowedWrites":{"shape":"BooleanOptional"}, + "ConsumerAcceptedWrites":{"shape":"BooleanOptional"} } }, "DataShareAssociationList":{ diff --git a/models/apis/redshift/2012-12-01/docs-2.json b/models/apis/redshift/2012-12-01/docs-2.json index 384335111ac..efb607c3071 100644 --- a/models/apis/redshift/2012-12-01/docs-2.json +++ b/models/apis/redshift/2012-12-01/docs-2.json @@ -448,6 +448,8 @@ "base": null, "refs": { "AssociateDataShareConsumerMessage$AssociateEntireAccount": "

A value that specifies whether the datashare is associated with the entire account.

", + "AssociateDataShareConsumerMessage$AllowWrites": "

If set to true, allows write operations for a datashare.

", + "AuthorizeDataShareMessage$AllowWrites": "

If set to true, allows write operations for a datashare.

", "CreateClusterMessage$AllowVersionUpgrade": "

If true, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster.

When a new major version of the Amazon Redshift engine is released, you can request that the service automatically apply upgrades during the maintenance window to the Amazon Redshift engine that is running on your cluster.

Default: true

", "CreateClusterMessage$PubliclyAccessible": "

If true, the cluster can be accessed from a public network.

", "CreateClusterMessage$Encrypted": "

If true, the data in the cluster is encrypted at rest.

Default: false

", @@ -458,6 +460,8 @@ "CreateEventSubscriptionMessage$Enabled": "

A boolean value; set to true to activate the subscription, and set to false to create the subscription but not activate it.

", "CreateScheduledActionMessage$Enable": "

If true, the schedule is enabled. If false, the scheduled action does not trigger. For more information about state of the scheduled action, see ScheduledAction.

", "CreateSnapshotScheduleMessage$DryRun": "

", + "DataShareAssociation$ProducerAllowedWrites": "

Specifies whether write operations were allowed during data share authorization.

", + "DataShareAssociation$ConsumerAcceptedWrites": "

Specifies whether write operations were allowed during data share association.

", "DescribeClusterSnapshotsMessage$ClusterExists": "

A value that indicates whether to return snapshots only for an existing cluster. You can perform table-level restore only by using a snapshot of an existing cluster, that is, a cluster that has not been deleted. Values for this parameter work as follows:

", "DescribeEndpointAuthorizationMessage$Grantee": "

Indicates whether to check authorization from a grantor or grantee point of view. If true, Amazon Redshift returns endpoint authorizations that you've been granted. If false (default), checks authorization from a grantor point of view.

", "DescribeScheduledActionsMessage$Active": "

If true, retrieve only active scheduled actions. If false, retrieve only disabled scheduled actions.

", diff --git a/models/apis/repostspace/2022-05-13/api-2.json b/models/apis/repostspace/2022-05-13/api-2.json new file mode 100644 index 00000000000..2fb54cc4b08 --- /dev/null +++ b/models/apis/repostspace/2022-05-13/api-2.json @@ -0,0 +1,766 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-05-13", + "endpointPrefix":"repostspace", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS re:Post Private", + "serviceId":"repostspace", + "signatureVersion":"v4", + "signingName":"repostspace", + "uid":"repostspace-2022-05-13" + }, + "operations":{ + "CreateSpace":{ + "name":"CreateSpace", + "http":{ + "method":"POST", + "requestUri":"/spaces", + "responseCode":200 + }, + "input":{"shape":"CreateSpaceInput"}, + "output":{"shape":"CreateSpaceOutput"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, + "DeleteSpace":{ + "name":"DeleteSpace", + "http":{ + "method":"DELETE", + "requestUri":"/spaces/{spaceId}", + "responseCode":200 + }, + "input":{"shape":"DeleteSpaceInput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, + "DeregisterAdmin":{ + "name":"DeregisterAdmin", + "http":{ + "method":"DELETE", + "requestUri":"/spaces/{spaceId}/admins/{adminId}", + "responseCode":200 + }, + "input":{"shape":"DeregisterAdminInput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, + "GetSpace":{ + "name":"GetSpace", + "http":{ + "method":"GET", + "requestUri":"/spaces/{spaceId}", + "responseCode":200 + }, + "input":{"shape":"GetSpaceInput"}, + "output":{"shape":"GetSpaceOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "ListSpaces":{ + "name":"ListSpaces", + "http":{ + "method":"GET", + "requestUri":"/spaces", + "responseCode":200 + }, + "input":{"shape":"ListSpacesInput"}, + "output":{"shape":"ListSpacesOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, + "RegisterAdmin":{ + "name":"RegisterAdmin", + "http":{ + "method":"POST", + "requestUri":"/spaces/{spaceId}/admins/{adminId}", + "responseCode":200 + }, + "input":{"shape":"RegisterAdminInput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, + "SendInvites":{ + "name":"SendInvites", + "http":{ + "method":"POST", + "requestUri":"/spaces/{spaceId}/invite", + "responseCode":200 + }, + "input":{"shape":"SendInvitesInput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + }, + "UpdateSpace":{ + "name":"UpdateSpace", + "http":{ + "method":"PUT", + "requestUri":"/spaces/{spaceId}", + "responseCode":200 + }, + "input":{"shape":"UpdateSpaceInput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AccessorId":{"type":"string"}, + "AccessorIdList":{ + "type":"list", + "member":{"shape":"AccessorId"}, + "max":1000, + "min":0 + }, + "AdminId":{"type":"string"}, + "Arn":{ + "type":"string", + "max":2048, + "min":20 + }, + "ClientId":{"type":"string"}, + "ConfigurationStatus":{ + "type":"string", + "enum":[ + "CONFIGURED", + "UNCONFIGURED" + ] + }, + "ConflictException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "resourceType":{"shape":"String"} + }, + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ContentSize":{ + "type":"long", + "box":true + }, + "CreateSpaceInput":{ + "type":"structure", + "required":[ + "name", + "subdomain", + "tier" + ], + "members":{ + "description":{"shape":"SpaceDescription"}, + "name":{"shape":"SpaceName"}, + "roleArn":{"shape":"Arn"}, + "subdomain":{"shape":"SpaceSubdomain"}, + "tags":{"shape":"Tags"}, + "tier":{"shape":"TierLevel"}, + "userKMSKey":{"shape":"KMSKey"} + } + }, + "CreateSpaceOutput":{ + "type":"structure", + "required":["spaceId"], + "members":{ + "spaceId":{"shape":"SpaceId"} + } + }, + "DeleteSpaceInput":{ + "type":"structure", + "required":["spaceId"], + "members":{ + "spaceId":{ + "shape":"SpaceId", + "location":"uri", + "locationName":"spaceId" + } + } + }, + "DeregisterAdminInput":{ + "type":"structure", + "required":[ + "adminId", + "spaceId" + ], + "members":{ + "adminId":{ + "shape":"AdminId", + "location":"uri", + "locationName":"adminId" + }, + "spaceId":{ + "shape":"SpaceId", + "location":"uri", + "locationName":"spaceId" + } + } + }, + "GetSpaceInput":{ + "type":"structure", + "required":["spaceId"], + "members":{ + "spaceId":{ + "shape":"SpaceId", + "location":"uri", + "locationName":"spaceId" + } + } + }, + "GetSpaceOutput":{ + "type":"structure", + "required":[ + "arn", + "clientId", + "configurationStatus", + "createDateTime", + "name", + "randomDomain", + "spaceId", + "status", + "storageLimit", + "tier", + "vanityDomain", + "vanityDomainStatus" + ], + "members":{ + "arn":{"shape":"Arn"}, + "clientId":{"shape":"ClientId"}, + "configurationStatus":{"shape":"ConfigurationStatus"}, + "contentSize":{"shape":"ContentSize"}, + "createDateTime":{"shape":"SyntheticTimestamp_date_time"}, + "customerRoleArn":{"shape":"Arn"}, + "deleteDateTime":{"shape":"SyntheticTimestamp_date_time"}, + "description":{"shape":"SpaceDescription"}, + "groupAdmins":{"shape":"GroupAdmins"}, + "name":{"shape":"SpaceName"}, + "randomDomain":{"shape":"Url"}, + "spaceId":{"shape":"SpaceId"}, + "status":{"shape":"ProvisioningStatus"}, + "storageLimit":{"shape":"StorageLimit"}, + "tier":{"shape":"TierLevel"}, + "userAdmins":{"shape":"UserAdmins"}, + "userCount":{"shape":"UserCount"}, + "userKMSKey":{"shape":"KMSKey"}, + "vanityDomain":{"shape":"Url"}, + "vanityDomainStatus":{"shape":"VanityDomainStatus"} + } + }, + "GroupAdmins":{ + "type":"list", + "member":{"shape":"AdminId"} + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "location":"header", + "locationName":"Retry-After" + } + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "InviteBody":{ + "type":"string", + "max":600, + "min":1, + "sensitive":true + }, + "InviteTitle":{ + "type":"string", + "max":200, + "min":1, + "sensitive":true + }, + "KMSKey":{"type":"string"}, + "ListSpacesInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListSpacesLimit", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListSpacesLimit":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListSpacesOutput":{ + "type":"structure", + "required":["spaces"], + "members":{ + "nextToken":{"shape":"String"}, + "spaces":{"shape":"SpacesList"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"Tags"} + } + }, + "ProvisioningStatus":{ + "type":"string", + "max":30, + "min":1 + }, + "RegisterAdminInput":{ + "type":"structure", + "required":[ + "adminId", + "spaceId" + ], + "members":{ + "adminId":{ + "shape":"AdminId", + "location":"uri", + "locationName":"adminId" + }, + "spaceId":{ + "shape":"SpaceId", + "location":"uri", + "locationName":"spaceId" + } + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "resourceType":{"shape":"String"} + }, + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SendInvitesInput":{ + "type":"structure", + "required":[ + "accessorIds", + "body", + "spaceId", + "title" + ], + "members":{ + "accessorIds":{"shape":"AccessorIdList"}, + "body":{"shape":"InviteBody"}, + "spaceId":{ + "shape":"SpaceId", + "location":"uri", + "locationName":"spaceId" + }, + "title":{"shape":"InviteTitle"} + } + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "message", + "quotaCode", + "resourceId", + "resourceType", + "serviceCode" + ], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{"shape":"String"}, + "resourceId":{"shape":"String"}, + "resourceType":{"shape":"String"}, + "serviceCode":{"shape":"String"} + }, + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SpaceData":{ + "type":"structure", + "required":[ + "arn", + "configurationStatus", + "createDateTime", + "name", + "randomDomain", + "spaceId", + "status", + "storageLimit", + "tier", + "vanityDomain", + "vanityDomainStatus" + ], + "members":{ + "arn":{"shape":"Arn"}, + "configurationStatus":{"shape":"ConfigurationStatus"}, + "contentSize":{"shape":"ContentSize"}, + "createDateTime":{"shape":"SyntheticTimestamp_date_time"}, + "deleteDateTime":{"shape":"SyntheticTimestamp_date_time"}, + "description":{"shape":"SpaceDescription"}, + "name":{"shape":"SpaceName"}, + "randomDomain":{"shape":"Url"}, + "spaceId":{"shape":"SpaceId"}, + "status":{"shape":"ProvisioningStatus"}, + "storageLimit":{"shape":"StorageLimit"}, + "tier":{"shape":"TierLevel"}, + "userCount":{"shape":"UserCount"}, + "userKMSKey":{"shape":"KMSKey"}, + "vanityDomain":{"shape":"Url"}, + "vanityDomainStatus":{"shape":"VanityDomainStatus"} + } + }, + "SpaceDescription":{ + "type":"string", + "max":255, + "min":1, + "sensitive":true + }, + "SpaceId":{"type":"string"}, + "SpaceName":{ + "type":"string", + "max":30, + "min":1, + "sensitive":true + }, + "SpaceSubdomain":{ + "type":"string", + "max":63, + "min":1 + }, + "SpacesList":{ + "type":"list", + "member":{"shape":"SpaceData"} + }, + "StorageLimit":{ + "type":"long", + "box":true + }, + "String":{"type":"string"}, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^(?!aws:)[a-zA-Z+-=._:/]+$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"Tags"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":1 + }, + "Tags":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "sensitive":true + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "location":"header", + "locationName":"Retry-After" + }, + "serviceCode":{"shape":"String"} + }, + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "TierLevel":{ + "type":"string", + "enum":[ + "BASIC", + "STANDARD" + ] + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateSpaceInput":{ + "type":"structure", + "required":["spaceId"], + "members":{ + "description":{"shape":"SpaceDescription"}, + "roleArn":{"shape":"Arn"}, + "spaceId":{ + "shape":"SpaceId", + "location":"uri", + "locationName":"spaceId" + }, + "tier":{"shape":"TierLevel"} + } + }, + "Url":{"type":"string"}, + "UserAdmins":{ + "type":"list", + "member":{"shape":"AdminId"} + }, + "UserCount":{ + "type":"integer", + "box":true + }, + "ValidationException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "fieldList":{"shape":"ValidationExceptionFieldList"}, + "message":{"shape":"String"}, + "reason":{"shape":"ValidationExceptionReason"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "message", + "name" + ], + "members":{ + "message":{"shape":"String"}, + "name":{"shape":"String"} + } + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other" + ] + }, + "VanityDomainStatus":{ + "type":"string", + "enum":[ + "PENDING", + "APPROVED", + "UNAPPROVED" + ] + } + } +} diff --git a/models/apis/repostspace/2022-05-13/docs-2.json b/models/apis/repostspace/2022-05-13/docs-2.json new file mode 100644 index 00000000000..c5b28c53e46 --- /dev/null +++ b/models/apis/repostspace/2022-05-13/docs-2.json @@ -0,0 +1,413 @@ +{ + "version": "2.0", + "service": "

AWS re:Post Private is a private version of AWS re:Post for enterprises with Enterprise Support or Enterprise On-Ramp Support plans. It provides access to knowledge and experts to accelerate cloud adoption and increase developer productivity. With your organization-specific private re:Post, you can build an organization-specific developer community that drives efficiencies at scale and provides access to valuable knowledge resources. Additionally, re:Post Private centralizes trusted AWS technical content and offers private discussion forums to improve how your teams collaborate internally and with AWS to remove technical obstacles, accelerate innovation, and scale more efficiently in the cloud.

", + "operations": { + "CreateSpace": "

Creates an AWS re:Post Private private re:Post.

", + "DeleteSpace": "

Deletes an AWS re:Post Private private re:Post.

", + "DeregisterAdmin": "

Removes the user or group from the list of administrators of the private re:Post.

", + "GetSpace": "

Displays information about the AWS re:Post Private private re:Post.

", + "ListSpaces": "

Returns a list of AWS re:Post Private private re:Posts in the account with some information about each private re:Post.

", + "ListTagsForResource": "

Returns the tags that are associated with the AWS re:Post Private resource specified by the resourceArn. The only resource that can be tagged is a private re:Post.

", + "RegisterAdmin": "

Adds a user or group to the list of administrators of the private re:Post.

", + "SendInvites": "

Sends an invitation email to selected users and groups.

", + "TagResource": "

Associates tags with an AWS re:Post Private resource. Currently, the only resource that can be tagged is the private re:Post. If you specify a new tag key for the resource, the tag is appended to the list of tags that are associated with the resource. If you specify a tag key that’s already associated with the resource, the new tag value that you specify replaces the previous value for that tag.

", + "UntagResource": "

Removes the association of the tag with the AWS re:Post Private resource.

", + "UpdateSpace": "

Modifies an existing AWS re:Post Private private re:Post.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

User does not have sufficient access to perform this action.

", + "refs": { + } + }, + "AccessorId": { + "base": null, + "refs": { + "AccessorIdList$member": null + } + }, + "AccessorIdList": { + "base": null, + "refs": { + "SendInvitesInput$accessorIds": "

The array of identifiers for the users and groups.

" + } + }, + "AdminId": { + "base": null, + "refs": { + "DeregisterAdminInput$adminId": "

The ID of the admin to remove.

", + "GroupAdmins$member": null, + "RegisterAdminInput$adminId": "

The ID of the administrator.

", + "UserAdmins$member": null + } + }, + "Arn": { + "base": null, + "refs": { + "CreateSpaceInput$roleArn": "

The IAM role that grants permissions to the private re:Post to convert unanswered questions into AWS support tickets.

", + "GetSpaceOutput$arn": "

The ARN of the private re:Post.

", + "GetSpaceOutput$customerRoleArn": "

The IAM role that grants permissions to the private re:Post to convert unanswered questions into AWS support tickets.

", + "ListTagsForResourceRequest$resourceArn": "

The ARN of the resource that the tags are associated with.

", + "SpaceData$arn": "

The ARN of the private re:Post.

", + "TagResourceRequest$resourceArn": "

The ARN of the resource that the tag is associated with.

", + "UntagResourceRequest$resourceArn": "

The ARN of the resource.

", + "UpdateSpaceInput$roleArn": "

The IAM role that grants permissions to the private re:Post to convert unanswered questions into AWS support tickets.

" + } + }, + "ClientId": { + "base": null, + "refs": { + "GetSpaceOutput$clientId": "

The Identity Center identifier for the Application Instance.

" + } + }, + "ConfigurationStatus": { + "base": null, + "refs": { + "GetSpaceOutput$configurationStatus": "

The configuration status of the private re:Post.

", + "SpaceData$configurationStatus": "

The configuration status of the private re:Post.

" + } + }, + "ConflictException": { + "base": "

Updating or deleting a resource can cause an inconsistent state.

", + "refs": { + } + }, + "ContentSize": { + "base": null, + "refs": { + "GetSpaceOutput$contentSize": "

The content size of the private re:Post.

", + "SpaceData$contentSize": "

The content size of the private re:Post.

" + } + }, + "CreateSpaceInput": { + "base": null, + "refs": { + } + }, + "CreateSpaceOutput": { + "base": null, + "refs": { + } + }, + "DeleteSpaceInput": { + "base": null, + "refs": { + } + }, + "DeregisterAdminInput": { + "base": null, + "refs": { + } + }, + "GetSpaceInput": { + "base": null, + "refs": { + } + }, + "GetSpaceOutput": { + "base": null, + "refs": { + } + }, + "GroupAdmins": { + "base": null, + "refs": { + "GetSpaceOutput$groupAdmins": "

The list of groups that are administrators of the private re:Post.

" + } + }, + "Integer": { + "base": null, + "refs": { + "InternalServerException$retryAfterSeconds": "

Advice to clients on when the call can be safely retried.

", + "ThrottlingException$retryAfterSeconds": "

Advice to clients on when the call can be safely retried.

" + } + }, + "InternalServerException": { + "base": "

Unexpected error during processing of request.

", + "refs": { + } + }, + "InviteBody": { + "base": null, + "refs": { + "SendInvitesInput$body": "

The body of the invite.

" + } + }, + "InviteTitle": { + "base": null, + "refs": { + "SendInvitesInput$title": "

The title of the invite.

" + } + }, + "KMSKey": { + "base": null, + "refs": { + "CreateSpaceInput$userKMSKey": "

The AWS KMS key ARN that’s used for the AWS KMS encryption. If you don't provide a key, your data is encrypted by default with a key that AWS owns and manages for you.

", + "GetSpaceOutput$userKMSKey": "

The custom AWS KMS key ARN that’s used for the AWS KMS encryption.

", + "SpaceData$userKMSKey": "

The custom AWS KMS key ARN that’s used for the AWS KMS encryption.

" + } + }, + "ListSpacesInput": { + "base": null, + "refs": { + } + }, + "ListSpacesLimit": { + "base": null, + "refs": { + "ListSpacesInput$maxResults": "

The maximum number of private re:Posts to include in the results.

" + } + }, + "ListSpacesOutput": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "ProvisioningStatus": { + "base": null, + "refs": { + "GetSpaceOutput$status": "

The creation or deletion status of the private re:Post.

", + "SpaceData$status": "

The creation/deletion status of the private re:Post.

" + } + }, + "RegisterAdminInput": { + "base": null, + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

Request references a resource which does not exist.

", + "refs": { + } + }, + "SendInvitesInput": { + "base": null, + "refs": { + } + }, + "ServiceQuotaExceededException": { + "base": "

Request would cause a service quota to be exceeded.

", + "refs": { + } + }, + "SpaceData": { + "base": "

A structure that contains some information about a private re:Post in the account.

", + "refs": { + "SpacesList$member": null + } + }, + "SpaceDescription": { + "base": null, + "refs": { + "CreateSpaceInput$description": "

A description for the private re:Post. This is used only to help you identify this private re:Post.

", + "GetSpaceOutput$description": "

The description of the private re:Post.

", + "SpaceData$description": "

The description for the private re:Post. This is used only to help you identify this private re:Post.

", + "UpdateSpaceInput$description": "

A description for the private re:Post. This is used only to help you identify this private re:Post.

" + } + }, + "SpaceId": { + "base": null, + "refs": { + "CreateSpaceOutput$spaceId": "

The unique ID of the private re:Post.

", + "DeleteSpaceInput$spaceId": "

The unique ID of the private re:Post.

", + "DeregisterAdminInput$spaceId": "

The ID of the private re:Post to remove the admin from.

", + "GetSpaceInput$spaceId": "

The ID of the private re:Post.

", + "GetSpaceOutput$spaceId": "

The unique ID of the private re:Post.

", + "RegisterAdminInput$spaceId": "

The ID of the private re:Post.

", + "SendInvitesInput$spaceId": "

The ID of the private re:Post.

", + "SpaceData$spaceId": "

The unique ID of the private re:Post.

", + "UpdateSpaceInput$spaceId": "

The unique ID of this private re:Post.

" + } + }, + "SpaceName": { + "base": null, + "refs": { + "CreateSpaceInput$name": "

The name for the private re:Post. This must be unique in your account.

", + "GetSpaceOutput$name": "

The name of the private re:Post.

", + "SpaceData$name": "

The name for the private re:Post.

" + } + }, + "SpaceSubdomain": { + "base": null, + "refs": { + "CreateSpaceInput$subdomain": "

The subdomain that you use to access your AWS re:Post Private private re:Post. All custom subdomains must be approved by AWS before use. In addition to your custom subdomain, all private re:Posts are issued an AWS generated subdomain for immediate use.

" + } + }, + "SpacesList": { + "base": null, + "refs": { + "ListSpacesOutput$spaces": "

An array of structures that contain some information about the private re:Posts in the account.

" + } + }, + "StorageLimit": { + "base": null, + "refs": { + "GetSpaceOutput$storageLimit": "

The storage limit of the private re:Post.

", + "SpaceData$storageLimit": "

The storage limit of the private re:Post.

" + } + }, + "String": { + "base": null, + "refs": { + "AccessDeniedException$message": null, + "ConflictException$message": null, + "ConflictException$resourceId": "

The ID of the resource.

", + "ConflictException$resourceType": "

The type of the resource.

", + "InternalServerException$message": null, + "ListSpacesInput$nextToken": "

The token for the next set of private re:Posts to return. You receive this token from a previous ListSpaces operation.

", + "ListSpacesOutput$nextToken": "

The token that you use when you request the next set of private re:Posts.

", + "ResourceNotFoundException$message": null, + "ResourceNotFoundException$resourceId": "

The ID of the resource.

", + "ResourceNotFoundException$resourceType": "

The type of the resource.

", + "ServiceQuotaExceededException$message": null, + "ServiceQuotaExceededException$quotaCode": "

The code to identify the quota.

", + "ServiceQuotaExceededException$resourceId": "

The id of the resource.

", + "ServiceQuotaExceededException$resourceType": "

The type of the resource.

", + "ServiceQuotaExceededException$serviceCode": "

The code to identify the service.

", + "ThrottlingException$message": null, + "ThrottlingException$quotaCode": "

The code to identify the quota.

", + "ThrottlingException$serviceCode": "

The code to identify the service.

", + "ValidationException$message": null, + "ValidationExceptionField$message": "

The name of the field.

", + "ValidationExceptionField$name": "

Message describing why the field failed validation.

" + } + }, + "SyntheticTimestamp_date_time": { + "base": null, + "refs": { + "GetSpaceOutput$createDateTime": "

The date when the private re:Post was created.

", + "GetSpaceOutput$deleteDateTime": "

The date when the private re:Post was deleted.

", + "SpaceData$createDateTime": "

The date when the private re:Post was created.

", + "SpaceData$deleteDateTime": "

The date when the private re:Post was deleted.

" + } + }, + "TagKey": { + "base": null, + "refs": { + "TagKeyList$member": null, + "Tags$key": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

The key values of the tag.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tags$value": null + } + }, + "Tags": { + "base": null, + "refs": { + "CreateSpaceInput$tags": "

The list of tags associated with the private re:Post.

", + "ListTagsForResourceResponse$tags": "

The list of tags that are associated with the resource.

", + "TagResourceRequest$tags": "

The list of tag keys and values that must be associated with the resource. You can associate tag keys only, tags (key and values) only, or a combination of tag keys and tags.

" + } + }, + "ThrottlingException": { + "base": "

Request was denied due to request throttling.

", + "refs": { + } + }, + "TierLevel": { + "base": null, + "refs": { + "CreateSpaceInput$tier": "

The pricing tier for the private re:Post.

", + "GetSpaceOutput$tier": "

The pricing tier of the private re:Post.

", + "SpaceData$tier": "

The pricing tier of the private re:Post.

", + "UpdateSpaceInput$tier": "

The pricing tier of this private re:Post.

" + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateSpaceInput": { + "base": null, + "refs": { + } + }, + "Url": { + "base": null, + "refs": { + "GetSpaceOutput$randomDomain": "

The AWS generated subdomain of the private re:Post

", + "GetSpaceOutput$vanityDomain": "

The custom subdomain that you use to access your private re:Post. All custom subdomains must be approved by AWS before use.

", + "SpaceData$randomDomain": "

The AWS generated subdomain of the private re:Post.

", + "SpaceData$vanityDomain": "

This custom subdomain that you use to access your private re:Post. All custom subdomains must be approved by AWS before use.

" + } + }, + "UserAdmins": { + "base": null, + "refs": { + "GetSpaceOutput$userAdmins": "

The list of users that are administrators of the private re:Post.

" + } + }, + "UserCount": { + "base": null, + "refs": { + "GetSpaceOutput$userCount": "

The number of users that have onboarded to the private re:Post.

", + "SpaceData$userCount": "

The number of onboarded users to the private re:Post.

" + } + }, + "ValidationException": { + "base": "

The input fails to satisfy the constraints specified by an AWS service.

", + "refs": { + } + }, + "ValidationExceptionField": { + "base": "

Stores information about a field that’s passed inside a request that resulted in an exception.

", + "refs": { + "ValidationExceptionFieldList$member": null + } + }, + "ValidationExceptionFieldList": { + "base": null, + "refs": { + "ValidationException$fieldList": "

The field that caused the error, if applicable.

" + } + }, + "ValidationExceptionReason": { + "base": null, + "refs": { + "ValidationException$reason": "

The reason why the request failed validation.

" + } + }, + "VanityDomainStatus": { + "base": null, + "refs": { + "GetSpaceOutput$vanityDomainStatus": "

The approval status of the custom subdomain.

", + "SpaceData$vanityDomainStatus": "

This approval status of the custom subdomain.

" + } + } + } +} diff --git a/models/apis/repostspace/2022-05-13/endpoint-rule-set-1.json b/models/apis/repostspace/2022-05-13/endpoint-rule-set-1.json new file mode 100644 index 00000000000..cd894866eb4 --- /dev/null +++ b/models/apis/repostspace/2022-05-13/endpoint-rule-set-1.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://repostspace-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://repostspace-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://repostspace.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://repostspace.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/models/apis/repostspace/2022-05-13/endpoint-tests-1.json b/models/apis/repostspace/2022-05-13/endpoint-tests-1.json new file mode 100644 index 00000000000..f5945850574 --- /dev/null +++ b/models/apis/repostspace/2022-05-13/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://repostspace-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://repostspace-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://repostspace.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://repostspace.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://repostspace-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://repostspace-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://repostspace.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://repostspace.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://repostspace-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://repostspace-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://repostspace.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://repostspace.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://repostspace-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://repostspace.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://repostspace-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://repostspace.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/repostspace/2022-05-13/examples-1.json b/models/apis/repostspace/2022-05-13/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/repostspace/2022-05-13/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/repostspace/2022-05-13/paginators-1.json b/models/apis/repostspace/2022-05-13/paginators-1.json new file mode 100644 index 00000000000..75eb51bde34 --- /dev/null +++ b/models/apis/repostspace/2022-05-13/paginators-1.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListSpaces": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "spaces" + } + } +} diff --git a/models/apis/runtime.lex.v2/2020-08-07/api-2.json b/models/apis/runtime.lex.v2/2020-08-07/api-2.json index a4810040a7e..6af352b8c7b 100644 --- a/models/apis/runtime.lex.v2/2020-08-07/api-2.json +++ b/models/apis/runtime.lex.v2/2020-08-07/api-2.json @@ -148,7 +148,7 @@ "type":"string", "max":100, "min":1, - "pattern":"^([A-Za-z]_?)+$" + "pattern":"^([A-Za-z0-9]_?)+$" }, "ActiveContextParametersMap":{ "type":"map", @@ -532,9 +532,17 @@ "members":{ "nluConfidence":{"shape":"ConfidenceScore"}, "sentimentResponse":{"shape":"SentimentResponse"}, - "intent":{"shape":"Intent"} + "intent":{"shape":"Intent"}, + "interpretationSource":{"shape":"InterpretationSource"} } }, + "InterpretationSource":{ + "type":"string", + "enum":[ + "Bedrock", + "Lex" + ] + }, "Interpretations":{ "type":"list", "member":{"shape":"Interpretation"}, diff --git a/models/apis/runtime.lex.v2/2020-08-07/docs-2.json b/models/apis/runtime.lex.v2/2020-08-07/docs-2.json index 1aa41eb902e..9f1baafa8b4 100644 --- a/models/apis/runtime.lex.v2/2020-08-07/docs-2.json +++ b/models/apis/runtime.lex.v2/2020-08-07/docs-2.json @@ -174,7 +174,7 @@ "ConfirmationState": { "base": null, "refs": { - "Intent$confirmationState": "

Contains information about whether fulfillment of the intent has been confirmed.

" + "Intent$confirmationState": "

Indicates whether the intent has been Confirmed, Denied, or None if the confirmation stage has not yet been reached.

" } }, "ConflictException": { @@ -226,7 +226,7 @@ "DialogActionType": { "base": null, "refs": { - "DialogAction$type": "

The next action that the bot should take in its interaction with the user. The possible values are:

" + "DialogAction$type": "

The next action that the bot should take in its interaction with the user. The following values are possible:

" } }, "DisconnectionEvent": { @@ -306,7 +306,7 @@ "InputMode": { "base": null, "refs": { - "IntentResultEvent$inputMode": "

Indicates whether the input to the operation was text or speech.

" + "IntentResultEvent$inputMode": "

Indicates whether the input to the operation was text, speech, or from a touch-tone keypad.

" } }, "Intent": { @@ -325,7 +325,7 @@ "IntentState": { "base": null, "refs": { - "Intent$state": "

Contains fulfillment information for the intent.

" + "Intent$state": "

Indicates the fulfillment state for the intent. The meanings of each value are as follows:

" } }, "InternalServerException": { @@ -335,11 +335,17 @@ } }, "Interpretation": { - "base": "

An intent that Amazon Lex V2 determined might satisfy the user's utterance. The intents are ordered by the confidence score.

", + "base": "

An object containing information about an intent that Amazon Lex V2 determined might satisfy the user's utterance. The intents are ordered by the confidence score.

", "refs": { "Interpretations$member": null } }, + "InterpretationSource": { + "base": null, + "refs": { + "Interpretation$interpretationSource": "

Specifies the service that interpreted the input.

" + } + }, "Interpretations": { "base": null, "refs": { @@ -403,11 +409,11 @@ "PutSessionRequest$responseContentType": "

The message that Amazon Lex V2 returns in the response can be either text or speech depending on the value of this parameter.

", "PutSessionResponse$contentType": "

The type of response. Same as the type specified in the responseContentType field in the request.

", "PutSessionResponse$messages": "

A list of messages that were last sent to the user. The messages are ordered based on how you return the messages from you Lambda function or the order that the messages are defined in the bot.

", - "PutSessionResponse$sessionState": "

Represents the current state of the dialog between the user and the bot.

Use this to determine the progress of the conversation and what the next action may be.

", - "PutSessionResponse$requestAttributes": "

Request-specific information passed between the client application and Amazon Lex V2. These are the same as the requestAttribute parameter in the call to the PutSession operation.

", + "PutSessionResponse$sessionState": "

A base-64-encoded gzipped field that represents the current state of the dialog between the user and the bot. Use this to determine the progress of the conversation and what the next action may be.

", + "PutSessionResponse$requestAttributes": "

A base-64-encoded gzipped field that provides request-specific information passed between the client application and Amazon Lex V2. These are the same as the requestAttribute parameter in the call to the PutSession operation.

", "RecognizeUtteranceRequest$requestContentType": "

Indicates the format for audio input or that the content is text. The header must start with one of the following prefixes:

", "RecognizeUtteranceRequest$responseContentType": "

The message that Amazon Lex V2 returns in the response can be either text or speech based on the responseContentType value.

", - "RecognizeUtteranceResponse$inputMode": "

Indicates whether the input mode to the operation was text or speech.

", + "RecognizeUtteranceResponse$inputMode": "

Indicates whether the input mode to the operation was text, speech, or from a touch-tone keypad.

", "RecognizeUtteranceResponse$contentType": "

Content type as specified in the responseContentType in the request.

", "RecognizeUtteranceResponse$messages": "

A list of messages that were last sent to the user. The messages are ordered based on the order that you returned the messages from your Lambda function or the order that the messages are defined in the bot.

The messages field is compressed with gzip and then base64 encoded. Before you can use the contents of the field, you must decode and decompress the contents. See the example for a simple function to decode and decompress the contents.

", "RecognizeUtteranceResponse$interpretations": "

A list of intents that Amazon Lex V2 determined might satisfy the user's utterance.

Each interpretation includes the intent, a score that indicates how confident Amazon Lex V2 is that the interpretation is the correct one, and an optional sentiment response that indicates the sentiment expressed in the utterance.

The interpretations field is compressed with gzip and then base64 encoded. Before you can use the contents of the field, you must decode and decompress the contents. See the example for a simple function to decode and decompress the contents.

", @@ -419,8 +425,8 @@ "Slots$key": null, "StringList$member": null, "StringMap$key": null, - "Value$originalValue": "

The text of the utterance from the user that was entered for the slot.

", - "Value$interpretedValue": "

The value that Amazon Lex V2 determines for the slot. The actual value depends on the setting of the value selection strategy for the bot. You can choose to use the value entered by the user, or you can have Amazon Lex V2 choose the first value in the resolvedValues list.

" + "Value$originalValue": "

The part of the user's response to the slot elicitation that Amazon Lex V2 determines is relevant to the slot value.

", + "Value$interpretedValue": "

The value that Amazon Lex V2 determines for the slot, given the user input. The actual value depends on the setting of the value selection strategy for the bot. You can choose to use the value entered by the user, or you can have Amazon Lex V2 choose the first value in the resolvedValues list.

" } }, "ParameterName": { @@ -645,7 +651,7 @@ "StringList": { "base": null, "refs": { - "Value$resolvedValues": "

A list of additional values that have been recognized for the slot.

" + "Value$resolvedValues": "

A list of values that Amazon Lex V2 determines are possible resolutions for the user input. The first value matches the interpretedValue.

" } }, "StringMap": { @@ -662,7 +668,7 @@ "StyleType": { "base": null, "refs": { - "DialogAction$slotElicitationStyle": "

Configures the slot to use spell-by-letter or spell-by-word style. When you use a style on a slot, users can spell out their input to make it clear to your bot.

For more information, see Using spelling to enter slot values .

" + "DialogAction$slotElicitationStyle": "

Configures the slot to use spell-by-letter or spell-by-word style. When you use a style on a slot, users can spell out their input to make it clear to your bot.

For more information, see Using spelling to enter slot values .

" } }, "Text": { @@ -705,7 +711,7 @@ } }, "Value": { - "base": "

The value of a slot.

", + "base": "

Information about the value provided for a slot and Amazon Lex V2's interpretation.

", "refs": { "Slot$value": "

The current value of the slot.

" } diff --git a/models/apis/runtime.lex.v2/2020-08-07/endpoint-rule-set-1.json b/models/apis/runtime.lex.v2/2020-08-07/endpoint-rule-set-1.json index 514bf923913..97e531fd117 100644 --- a/models/apis/runtime.lex.v2/2020-08-07/endpoint-rule-set-1.json +++ b/models/apis/runtime.lex.v2/2020-08-07/endpoint-rule-set-1.json @@ -3,7 +3,7 @@ "parameters": { "Region": { "builtIn": "AWS::Region", - "required": true, + "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, @@ -32,78 +32,29 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "isSet", "argv": [ { - "ref": "Region" + "ref": "Endpoint" } - ], - "assign": "PartitionResult" + ] } ], - "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "booleanEquals", "argv": [ { - "ref": "Endpoint" - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "error": "Invalid Configuration: FIPS and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" + "ref": "UseFIPS" }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" - }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + true ] } - ] + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" }, { "conditions": [ @@ -111,113 +62,161 @@ "fn": "booleanEquals", "argv": [ { - "ref": "UseFIPS" + "ref": "UseDualStack" }, true ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ { - "fn": "booleanEquals", + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", "argv": [ { - "ref": "UseDualStack" - }, - true - ] + "ref": "Region" + } + ], + "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } + "ref": "UseFIPS" + }, + true ] }, { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } + "ref": "UseDualStack" + }, + true ] } ], - "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime-v2-lex-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, { "conditions": [], - "endpoint": { - "url": "https://runtime-v2-lex-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" } - ] + ], + "type": "tree" }, - { - "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } + "ref": "UseFIPS" + }, + true ] } ], - "type": "tree", "rules": [ { - "conditions": [], - "type": "tree", + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], "rules": [ { "conditions": [], @@ -228,79 +227,88 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" } - ] + ], + "type": "tree" }, - { - "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" - } - ] - }, - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } + "ref": "UseDualStack" + }, + true ] } ], - "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime-v2-lex.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, { "conditions": [], - "endpoint": { - "url": "https://runtime-v2-lex.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" + "endpoint": { + "url": "https://runtime-v2-lex.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } - ] - }, - { - "conditions": [], - "endpoint": { - "url": "https://runtime-v2-lex.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" + ], + "type": "tree" } - ] + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/runtime.lex.v2/2020-08-07/endpoint-tests-1.json b/models/apis/runtime.lex.v2/2020-08-07/endpoint-tests-1.json index eaba38fa9a1..e0b4ced4a33 100644 --- a/models/apis/runtime.lex.v2/2020-08-07/endpoint-tests-1.json +++ b/models/apis/runtime.lex.v2/2020-08-07/endpoint-tests-1.json @@ -1,579 +1,403 @@ { "testCases": [ { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.ca-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.ca-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "ca-central-1" - } - }, - { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.ca-central-1.api.aws" + "url": "https://runtime-v2-lex.af-south-1.amazonaws.com" } }, "params": { + "Region": "af-south-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ca-central-1" + "UseDualStack": false } }, { - "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.ca-central-1.amazonaws.com" + "url": "https://runtime-v2-lex.ap-northeast-1.amazonaws.com" } }, "params": { + "Region": "ap-northeast-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ca-central-1" + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.eu-central-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.eu-central-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-central-1" - } - }, - { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.eu-central-1.api.aws" + "url": "https://runtime-v2-lex.ap-northeast-2.amazonaws.com" } }, "params": { + "Region": "ap-northeast-2", "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-central-1" + "UseDualStack": false } }, { - "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.eu-central-1.amazonaws.com" + "url": "https://runtime-v2-lex.ap-southeast-1.amazonaws.com" } }, "params": { + "Region": "ap-southeast-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-central-1" + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.us-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.us-west-2.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.us-west-2.api.aws" + "url": "https://runtime-v2-lex.ap-southeast-2.amazonaws.com" } }, "params": { + "Region": "ap-southeast-2", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-west-2" + "UseDualStack": false } }, { - "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.us-west-2.amazonaws.com" + "url": "https://runtime-v2-lex.ca-central-1.amazonaws.com" } }, "params": { + "Region": "ca-central-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "us-west-2" - } - }, - { - "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.af-south-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "af-south-1" + "UseDualStack": false } }, { - "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.af-south-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.af-south-1.api.aws" + "url": "https://runtime-v2-lex.eu-central-1.amazonaws.com" } }, "params": { + "Region": "eu-central-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "af-south-1" + "UseDualStack": false } }, { - "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.af-south-1.amazonaws.com" + "url": "https://runtime-v2-lex.eu-west-1.amazonaws.com" } }, "params": { + "Region": "eu-west-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "af-south-1" - } - }, - { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.eu-west-2.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex-fips.eu-west-2.amazonaws.com" + "url": "https://runtime-v2-lex.eu-west-2.amazonaws.com" } }, "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-2" + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.eu-west-2.api.aws" + "url": "https://runtime-v2-lex.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.eu-west-2.amazonaws.com" + "url": "https://runtime-v2-lex.us-west-2.amazonaws.com" } }, "params": { + "Region": "us-west-2", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex-fips.eu-west-1.api.aws" + "url": "https://runtime-v2-lex-fips.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "eu-west-1" + "UseDualStack": true } }, { - "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex-fips.eu-west-1.amazonaws.com" + "url": "https://runtime-v2-lex-fips.us-east-1.amazonaws.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex.eu-west-1.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "eu-west-1" - } - }, - { - "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.eu-west-1.amazonaws.com" + "url": "https://runtime-v2-lex.us-east-1.api.aws" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "eu-west-1" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex-fips.ap-northeast-2.api.aws" + "url": "https://runtime-v2-lex-fips.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex-fips.ap-northeast-2.amazonaws.com" + "url": "https://runtime-v2-lex-fips.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.ap-northeast-2.api.aws" + "url": "https://runtime-v2-lex.cn-north-1.api.amazonwebservices.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.ap-northeast-2.amazonaws.com" + "url": "https://runtime-v2-lex.cn-north-1.amazonaws.com.cn" } }, "params": { + "Region": "cn-north-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex-fips.ap-northeast-1.api.aws" + "url": "https://runtime-v2-lex-fips.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-northeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex-fips.ap-northeast-1.amazonaws.com" + "url": "https://runtime-v2-lex-fips.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.ap-northeast-1.api.aws" + "url": "https://runtime-v2-lex.us-gov-east-1.api.aws" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-northeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.ap-northeast-1.amazonaws.com" + "url": "https://runtime-v2-lex.us-gov-east-1.amazonaws.com" } }, "params": { + "Region": "us-gov-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.ap-southeast-1.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex-fips.ap-southeast-1.amazonaws.com" + "url": "https://runtime-v2-lex-fips.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://runtime-v2-lex.ap-southeast-1.api.aws" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-1" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.ap-southeast-1.amazonaws.com" + "url": "https://runtime-v2-lex.us-iso-east-1.c2s.ic.gov" } }, "params": { + "Region": "us-iso-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.ap-southeast-2.api.aws" - } + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { + "Region": "us-isob-east-1", "UseFIPS": true, - "UseDualStack": true, - "Region": "ap-southeast-2" + "UseDualStack": true } }, { - "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex-fips.ap-southeast-2.amazonaws.com" + "url": "https://runtime-v2-lex-fips.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": true, - "UseDualStack": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex.ap-southeast-2.api.aws" - } - }, - "params": { - "UseFIPS": false, - "UseDualStack": true, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", "expect": { - "endpoint": { - "url": "https://runtime-v2-lex.ap-southeast-2.amazonaws.com" - } + "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { + "Region": "us-isob-east-1", "UseFIPS": false, - "UseDualStack": false, - "Region": "ap-southeast-2" - } - }, - { - "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex-fips.us-east-1.api.aws" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": true } }, { - "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex-fips.us-east-1.amazonaws.com" - } - }, - "params": { - "UseFIPS": true, - "UseDualStack": false, - "Region": "us-east-1" - } - }, - { - "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", - "expect": { - "endpoint": { - "url": "https://runtime-v2-lex.us-east-1.api.aws" + "url": "https://runtime-v2-lex.us-isob-east-1.sc2s.sgov.gov" } }, "params": { + "Region": "us-isob-east-1", "UseFIPS": false, - "UseDualStack": true, - "Region": "us-east-1" + "UseDualStack": false } }, { - "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", "expect": { "endpoint": { - "url": "https://runtime-v2-lex.us-east-1.amazonaws.com" + "url": "https://example.com" } }, "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1" + "Endpoint": "https://example.com" } }, { - "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", "expect": { "endpoint": { "url": "https://example.com" @@ -582,7 +406,6 @@ "params": { "UseFIPS": false, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -592,9 +415,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": true, "UseDualStack": false, - "Region": "us-east-1", "Endpoint": "https://example.com" } }, @@ -604,11 +427,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { + "Region": "us-east-1", "UseFIPS": false, "UseDualStack": true, - "Region": "us-east-1", "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" diff --git a/models/apis/s3/2006-03-01/api-2.json b/models/apis/s3/2006-03-01/api-2.json index a8b9ed36666..80942e790d6 100644 --- a/models/apis/s3/2006-03-01/api-2.json +++ b/models/apis/s3/2006-03-01/api-2.json @@ -1119,6 +1119,7 @@ }, "Key":{ "shape":"ObjectKey", + "contextParam":{"name":"Key"}, "location":"uri", "locationName":"Key" }, @@ -1570,6 +1571,7 @@ }, "Key":{ "shape":"ObjectKey", + "contextParam":{"name":"Key"}, "location":"uri", "locationName":"Key" }, @@ -2204,6 +2206,7 @@ }, "Key":{ "shape":"ObjectKey", + "contextParam":{"name":"Key"}, "location":"uri", "locationName":"Key" }, @@ -2639,6 +2642,7 @@ }, "Key":{ "shape":"ObjectKey", + "contextParam":{"name":"Key"}, "location":"uri", "locationName":"Key" }, @@ -3562,6 +3566,7 @@ }, "Key":{ "shape":"ObjectKey", + "contextParam":{"name":"Key"}, "location":"uri", "locationName":"Key" }, @@ -3981,6 +3986,7 @@ }, "Key":{ "shape":"ObjectKey", + "contextParam":{"name":"Key"}, "location":"uri", "locationName":"Key" }, @@ -4495,6 +4501,7 @@ }, "Key":{ "shape":"ObjectKey", + "contextParam":{"name":"Key"}, "location":"uri", "locationName":"Key" }, @@ -5101,6 +5108,7 @@ }, "Prefix":{ "shape":"Prefix", + "contextParam":{"name":"Prefix"}, "location":"querystring", "locationName":"prefix" }, @@ -5182,6 +5190,7 @@ }, "Prefix":{ "shape":"Prefix", + "contextParam":{"name":"Prefix"}, "location":"querystring", "locationName":"prefix" }, @@ -5259,6 +5268,7 @@ }, "Prefix":{ "shape":"Prefix", + "contextParam":{"name":"Prefix"}, "location":"querystring", "locationName":"prefix" }, @@ -5328,6 +5338,7 @@ }, "Prefix":{ "shape":"Prefix", + "contextParam":{"name":"Prefix"}, "location":"querystring", "locationName":"prefix" }, @@ -5414,6 +5425,7 @@ }, "Key":{ "shape":"ObjectKey", + "contextParam":{"name":"Key"}, "location":"uri", "locationName":"Key" }, @@ -6840,6 +6852,7 @@ }, "Key":{ "shape":"ObjectKey", + "contextParam":{"name":"Key"}, "location":"uri", "locationName":"Key" }, @@ -7159,6 +7172,7 @@ }, "Key":{ "shape":"ObjectKey", + "contextParam":{"name":"Key"}, "location":"uri", "locationName":"Key" }, @@ -8478,6 +8492,7 @@ }, "Key":{ "shape":"ObjectKey", + "contextParam":{"name":"Key"}, "location":"uri", "locationName":"Key" }, diff --git a/models/apis/s3/2006-03-01/docs-2.json b/models/apis/s3/2006-03-01/docs-2.json index 844ceb036ae..a9d75a82b2e 100644 --- a/models/apis/s3/2006-03-01/docs-2.json +++ b/models/apis/s3/2006-03-01/docs-2.json @@ -90,7 +90,7 @@ "PutObject": "

Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object to it.

Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire object to the bucket. You cannot use PutObject to only update a single piece of metadata for an existing object. You must put the entire object with updated metadata if you want to update some values.

Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. To prevent objects from being deleted or overwritten, you can use Amazon S3 Object Lock.

To ensure that data is not corrupted traversing the network, use the Content-MD5 header. When you use this header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.

You have four mutually exclusive options to protect data using server-side encryption in Amazon S3, depending on how you choose to manage the encryption keys. Specifically, the encryption key options are Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and customer-provided keys (SSE-C). Amazon S3 encrypts data with server-side encryption by using Amazon S3 managed keys (SSE-S3) by default. You can optionally tell Amazon S3 to encrypt data at rest by using server-side encryption with other key options. For more information, see Using Server-Side Encryption.

When adding a new object, you can use headers to grant ACL-based permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. By default, all objects are private. Only the owner has full access control. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

If the bucket that you're uploading objects to uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting only accept PUT requests that don't specify an ACL or PUT requests that specify bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format. PUT requests that contain other ACLs (for example, custom grants to certain Amazon Web Services accounts) fail and return a 400 error with the error code AccessControlListNotSupported. For more information, see Controlling ownership of objects and disabling ACLs in the Amazon S3 User Guide.

If your bucket uses the bucket owner enforced setting for Object Ownership, all objects written to the bucket by any account will be owned by the bucket owner.

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 User Guide.

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects. For more information about versioning, see Adding Objects to Versioning-Enabled Buckets. For information about returning the versioning state of a bucket, see GetBucketVersioning.

For more information about related Amazon S3 APIs, see the following:

", "PutObjectAcl": "

Uses the acl subresource to set the access control list (ACL) permissions for a new or existing object in an S3 bucket. You must have WRITE_ACP permission to set the ACL of an object. For more information, see What permissions can I grant? in the Amazon S3 User Guide.

This action is not supported by Amazon S3 on Outposts.

Depending on your application needs, you can choose to set the ACL on an object using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, you can continue to use that approach. For more information, see Access Control List (ACL) Overview in the Amazon S3 User Guide.

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return the AccessControlListNotSupported error code. Requests to read ACLs are still supported. For more information, see Controlling object ownership in the Amazon S3 User Guide.

Permissions

You can set access permissions using one of the following methods:

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

Versioning

The ACL of an object is set at the object version level. By default, PUT sets the ACL of the current version of an object. To set the ACL of a different version, use the versionId subresource.

The following operations are related to PutObjectAcl:

", "PutObjectLegalHold": "

Applies a legal hold configuration to the specified object. For more information, see Locking Objects.

This action is not supported by Amazon S3 on Outposts.

", - "PutObjectLockConfiguration": "

Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see Locking Objects.

", + "PutObjectLockConfiguration": "

Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see Locking Objects.

", "PutObjectRetention": "

Places an Object Retention configuration on an object. For more information, see Locking Objects. Users or accounts require the s3:PutObjectRetention permission in order to place an Object Retention configuration on objects. Bypassing a Governance Retention configuration requires the s3:BypassGovernanceRetention permission.

This action is not supported by Amazon S3 on Outposts.

", "PutObjectTagging": "

Sets the supplied tag-set to an object that already exists in a bucket. A tag is a key-value pair. For more information, see Object Tagging.

You can associate tags with an object by sending a PUT request against the tagging subresource that is associated with the object. You can retrieve tags by sending a GET request. For more information, see GetObjectTagging.

For tagging-related restrictions related to characters and encodings, see Tag Restrictions. Note that Amazon S3 limits the maximum number of tags to 10 tags per object.

To use this operation, you must have permission to perform the s3:PutObjectTagging action. By default, the bucket owner has this permission and can grant this permission to others.

To put tags of any other version, use the versionId query parameter. You also need permission for the s3:PutObjectVersionTagging action.

PutObjectTagging has the following special errors. For more Amazon S3 errors see, Error Responses.

The following operations are related to PutObjectTagging:

", "PutPublicAccessBlock": "

Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

The following operations are related to PutPublicAccessBlock:

", diff --git a/models/apis/s3/2006-03-01/endpoint-rule-set-1.json b/models/apis/s3/2006-03-01/endpoint-rule-set-1.json index a785b873133..0adf21daa1c 100644 --- a/models/apis/s3/2006-03-01/endpoint-rule-set-1.json +++ b/models/apis/s3/2006-03-01/endpoint-rule-set-1.json @@ -58,6 +58,16 @@ "documentation": "Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)", "type": "Boolean" }, + "Key": { + "required": false, + "documentation": "The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key.", + "type": "String" + }, + "Prefix": { + "required": false, + "documentation": "The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix.", + "type": "String" + }, "DisableAccessPoints": { "required": false, "documentation": "Internal parameter to disable Access Point Buckets", diff --git a/models/apis/s3/2006-03-01/endpoint-tests-1.json b/models/apis/s3/2006-03-01/endpoint-tests-1.json index 4b528a224f5..daa904ca39a 100644 --- a/models/apis/s3/2006-03-01/endpoint-tests-1.json +++ b/models/apis/s3/2006-03-01/endpoint-tests-1.json @@ -1754,6 +1754,45 @@ "Accelerate": false } }, + { + "documentation": "virtual addressing, aws-global region with Prefix, and Key uses the global endpoint. Prefix and Key parameters should not be used in endpoint evaluation.", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global" + }, + "operationName": "ListObjects", + "operationParams": { + "Bucket": "bucket-name", + "Prefix": "prefix" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Prefix": "prefix", + "Key": "key" + } + }, { "documentation": "virtual addressing, aws-global region with fips uses the regional fips endpoint", "expect": { diff --git a/models/apis/s3/2006-03-01/examples-1.json b/models/apis/s3/2006-03-01/examples-1.json index 5c73dd44c36..d55c14a9451 100644 --- a/models/apis/s3/2006-03-01/examples-1.json +++ b/models/apis/s3/2006-03-01/examples-1.json @@ -84,10 +84,13 @@ "CreateBucket": [ { "input": { - "Bucket": "examplebucket" + "Bucket": "examplebucket", + "CreateBucketConfiguration": { + "LocationConstraint": "eu-west-1" + } }, "output": { - "Location": "/examplebucket" + "Location": "http://examplebucket..s3.amazonaws.com/" }, "comments": { "input": { @@ -95,19 +98,16 @@ "output": { } }, - "description": "The following example creates a bucket.", - "id": "to-create-a-bucket--1472851826060", - "title": "To create a bucket " + "description": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.", + "id": "to-create-a-bucket-in-a-specific-region-1483399072992", + "title": "To create a bucket in a specific region" }, { "input": { - "Bucket": "examplebucket", - "CreateBucketConfiguration": { - "LocationConstraint": "eu-west-1" - } + "Bucket": "examplebucket" }, "output": { - "Location": "http://examplebucket..s3.amazonaws.com/" + "Location": "/examplebucket" }, "comments": { "input": { @@ -115,9 +115,9 @@ "output": { } }, - "description": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.", - "id": "to-create-a-bucket-in-a-specific-region-1483399072992", - "title": "To create a bucket in a specific region" + "description": "The following example creates a bucket.", + "id": "to-create-a-bucket--1472851826060", + "title": "To create a bucket " } ], "CreateMultipartUpload": [ @@ -292,11 +292,10 @@ { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg", - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "Key": "HappyFace.jpg" }, "output": { - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "VersionId": "null" }, "comments": { "input": { @@ -304,17 +303,18 @@ "output": { } }, - "description": "The following example removes tag set associated with the specified object version. The request specifies both the object key and object version.", - "id": "to-remove-tag-set-from-an-object-version-1483145285913", - "title": "To remove tag set from an object version" + "description": "The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the operation removes tag set from the latest object version.", + "id": "to-remove-tag-set-from-an-object-1483145342862", + "title": "To remove tag set from an object" }, { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "HappyFace.jpg", + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "output": { - "VersionId": "null" + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "comments": { "input": { @@ -322,9 +322,9 @@ "output": { } }, - "description": "The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the operation removes tag set from the latest object version.", - "id": "to-remove-tag-set-from-an-object-1483145342862", - "title": "To remove tag set from an object" + "description": "The following example removes tag set associated with the specified object version. The request specifies both the object key and object version.", + "id": "to-remove-tag-set-from-an-object-version-1483145285913", + "title": "To remove tag set from an object version" } ], "DeleteObjects": [ @@ -334,10 +334,12 @@ "Delete": { "Objects": [ { - "Key": "objectkey1" + "Key": "HappyFace.jpg", + "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" }, { - "Key": "objectkey2" + "Key": "HappyFace.jpg", + "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" } ], "Quiet": false @@ -346,14 +348,12 @@ "output": { "Deleted": [ { - "DeleteMarker": "true", - "DeleteMarkerVersionId": "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F", - "Key": "objectkey1" + "Key": "HappyFace.jpg", + "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" }, { - "DeleteMarker": "true", - "DeleteMarkerVersionId": "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt", - "Key": "objectkey2" + "Key": "HappyFace.jpg", + "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" } ] }, @@ -363,9 +363,9 @@ "output": { } }, - "description": "The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.", - "id": "to-delete-multiple-objects-from-a-versioned-bucket-1483146248805", - "title": "To delete multiple objects from a versioned bucket" + "description": "The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object versions and returns the key and versions of deleted objects in the response.", + "id": "to-delete-multiple-object-versions-from-a-versioned-bucket-1483147087737", + "title": "To delete multiple object versions from a versioned bucket" }, { "input": { @@ -373,12 +373,10 @@ "Delete": { "Objects": [ { - "Key": "HappyFace.jpg", - "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" + "Key": "objectkey1" }, { - "Key": "HappyFace.jpg", - "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" + "Key": "objectkey2" } ], "Quiet": false @@ -387,12 +385,14 @@ "output": { "Deleted": [ { - "Key": "HappyFace.jpg", - "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" + "DeleteMarker": "true", + "DeleteMarkerVersionId": "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F", + "Key": "objectkey1" }, { - "Key": "HappyFace.jpg", - "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" + "DeleteMarker": "true", + "DeleteMarkerVersionId": "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt", + "Key": "objectkey2" } ] }, @@ -402,9 +402,9 @@ "output": { } }, - "description": "The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object versions and returns the key and versions of deleted objects in the response.", - "id": "to-delete-multiple-object-versions-from-a-versioned-bucket-1483147087737", - "title": "To delete multiple object versions from a versioned bucket" + "description": "The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.", + "id": "to-delete-multiple-objects-from-a-versioned-bucket-1483146248805", + "title": "To delete multiple objects from a versioned bucket" } ], "GetBucketCors": [ @@ -728,18 +728,17 @@ { "input": { "Bucket": "examplebucket", - "Key": "SampleFile.txt", - "Range": "bytes=0-9" + "Key": "HappyFace.jpg" }, "output": { "AcceptRanges": "bytes", - "ContentLength": "10", - "ContentRange": "bytes 0-9/43", - "ContentType": "text/plain", - "ETag": "\"0d94420ffd0bc68cd3d152506b97a9cc\"", - "LastModified": "Thu, 09 Oct 2014 22:57:28 GMT", + "ContentLength": "3191", + "ContentType": "image/jpeg", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "LastModified": "Thu, 15 Dec 2016 01:19:41 GMT", "Metadata": { }, + "TagCount": 2, "VersionId": "null" }, "comments": { @@ -748,24 +747,25 @@ "output": { } }, - "description": "The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a specific byte range.", - "id": "to-retrieve-a-byte-range-of-an-object--1481832674603", - "title": "To retrieve a byte range of an object " + "description": "The following example retrieves an object for an S3 bucket.", + "id": "to-retrieve-an-object-1481827837012", + "title": "To retrieve an object" }, { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "SampleFile.txt", + "Range": "bytes=0-9" }, "output": { "AcceptRanges": "bytes", - "ContentLength": "3191", - "ContentType": "image/jpeg", - "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "LastModified": "Thu, 15 Dec 2016 01:19:41 GMT", + "ContentLength": "10", + "ContentRange": "bytes 0-9/43", + "ContentType": "text/plain", + "ETag": "\"0d94420ffd0bc68cd3d152506b97a9cc\"", + "LastModified": "Thu, 09 Oct 2014 22:57:28 GMT", "Metadata": { }, - "TagCount": 2, "VersionId": "null" }, "comments": { @@ -774,9 +774,9 @@ "output": { } }, - "description": "The following example retrieves an object for an S3 bucket.", - "id": "to-retrieve-an-object-1481827837012", - "title": "To retrieve an object" + "description": "The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a specific byte range.", + "id": "to-retrieve-a-byte-range-of-an-object--1481832674603", + "title": "To retrieve a byte range of an object " } ], "GetObjectAcl": [ @@ -840,20 +840,17 @@ { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "exampleobject", + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "output": { "TagSet": [ { - "Key": "Key4", - "Value": "Value4" - }, - { - "Key": "Key3", - "Value": "Value3" + "Key": "Key1", + "Value": "Value1" } ], - "VersionId": "null" + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "comments": { "input": { @@ -861,24 +858,27 @@ "output": { } }, - "description": "The following example retrieves tag set of an object.", - "id": "to-retrieve-tag-set-of-an-object-1481833847896", - "title": "To retrieve tag set of an object" + "description": "The following example retrieves tag set of an object. The request specifies object version.", + "id": "to-retrieve-tag-set-of-a-specific-object-version-1483400283663", + "title": "To retrieve tag set of a specific object version" }, { "input": { "Bucket": "examplebucket", - "Key": "exampleobject", - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "Key": "HappyFace.jpg" }, "output": { "TagSet": [ { - "Key": "Key1", - "Value": "Value1" + "Key": "Key4", + "Value": "Value4" + }, + { + "Key": "Key3", + "Value": "Value3" } ], - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "VersionId": "null" }, "comments": { "input": { @@ -886,9 +886,9 @@ "output": { } }, - "description": "The following example retrieves tag set of an object. The request specifies object version.", - "id": "to-retrieve-tag-set-of-a-specific-object-version-1483400283663", - "title": "To retrieve tag set of a specific object version" + "description": "The following example retrieves tag set of an object.", + "id": "to-retrieve-tag-set-of-an-object-1481833847896", + "title": "To retrieve tag set of an object" } ], "GetObjectTorrent": [ @@ -1567,17 +1567,14 @@ "PutObject": [ { "input": { - "Body": "filetoupload", + "Body": "c:\\HappyFace.jpg", "Bucket": "examplebucket", - "Key": "exampleobject", - "Metadata": { - "metadata1": "value1", - "metadata2": "value2" - } + "Key": "HappyFace.jpg", + "Tagging": "key1=value1&key2=value2" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" + "VersionId": "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a" }, "comments": { "input": { @@ -1585,22 +1582,19 @@ "output": { } }, - "description": "The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-object-and-specify-user-defined-metadata-1483396974757", - "title": "To upload object and specify user-defined metadata" + "description": "The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore S3 returns version ID of the newly created object.", + "id": "to-upload-an-object-and-specify-optional-tags-1481762310955", + "title": "To upload an object and specify optional tags" }, { "input": { - "Body": "HappyFace.jpg", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg", - "ServerSideEncryption": "AES256", - "StorageClass": "STANDARD_IA" + "Key": "objectkey" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "ServerSideEncryption": "AES256", - "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" + "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" }, "comments": { "input": { @@ -1608,20 +1602,23 @@ "output": { } }, - "description": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.", - "id": "to-upload-an-object-(specify-optional-headers)", - "title": "To upload an object (specify optional headers)" + "description": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-create-an-object-1483147613675", + "title": "To create an object." }, { "input": { - "Body": "c:\\HappyFace.jpg", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg", - "Tagging": "key1=value1&key2=value2" + "Key": "exampleobject", + "Metadata": { + "metadata1": "value1", + "metadata2": "value2" + } }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a" + "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" }, "comments": { "input": { @@ -1629,19 +1626,19 @@ "output": { } }, - "description": "The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore S3 returns version ID of the newly created object.", - "id": "to-upload-an-object-and-specify-optional-tags-1481762310955", - "title": "To upload an object and specify optional tags" + "description": "The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-object-and-specify-user-defined-metadata-1483396974757", + "title": "To upload object and specify user-defined metadata" }, { "input": { - "Body": "filetoupload", + "Body": "HappyFace.jpg", "Bucket": "examplebucket", - "Key": "objectkey" + "Key": "HappyFace.jpg" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" + "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" }, "comments": { "input": { @@ -1649,19 +1646,22 @@ "output": { } }, - "description": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-create-an-object-1483147613675", - "title": "To create an object." + "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", + "id": "to-upload-an-object-1481760101010", + "title": "To upload an object" }, { "input": { - "Body": "HappyFace.jpg", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "exampleobject", + "ServerSideEncryption": "AES256", + "Tagging": "key1=value1&key2=value2" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" + "ServerSideEncryption": "AES256", + "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" }, "comments": { "input": { @@ -1669,9 +1669,9 @@ "output": { } }, - "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", - "id": "to-upload-an-object-1481760101010", - "title": "To upload an object" + "description": "The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", + "title": "To upload an object and specify server-side encryption and object tags" }, { "input": { @@ -1696,16 +1696,16 @@ }, { "input": { - "Body": "filetoupload", + "Body": "HappyFace.jpg", "Bucket": "examplebucket", - "Key": "exampleobject", + "Key": "HappyFace.jpg", "ServerSideEncryption": "AES256", - "Tagging": "key1=value1&key2=value2" + "StorageClass": "STANDARD_IA" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", "ServerSideEncryption": "AES256", - "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" + "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" }, "comments": { "input": { @@ -1713,9 +1713,9 @@ "output": { } }, - "description": "The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", - "title": "To upload an object and specify server-side encryption and object tags" + "description": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.", + "id": "to-upload-an-object-(specify-optional-headers)", + "title": "To upload an object (specify optional headers)" } ], "PutObjectAcl": [ @@ -1826,14 +1826,15 @@ "input": { "Bucket": "examplebucket", "CopySource": "/bucketname/sourceobjectkey", + "CopySourceRange": "bytes=1-100000", "Key": "examplelargeobject", - "PartNumber": "1", + "PartNumber": "2", "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" }, "output": { "CopyPartResult": { - "ETag": "\"b0c6f0e7e054ab8fa2536a2677f8734d\"", - "LastModified": "2016-12-29T21:24:43.000Z" + "ETag": "\"65d16d19e65a7508a51f043180edcc36\"", + "LastModified": "2016-12-29T21:44:28.000Z" } }, "comments": { @@ -1842,23 +1843,22 @@ "output": { } }, - "description": "The following example uploads a part of a multipart upload by copying data from an existing object as data source.", - "id": "to-upload-a-part-by-copying-data-from-an-existing-object-as-data-source-1483046746348", - "title": "To upload a part by copying data from an existing object as data source" + "description": "The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as data source.", + "id": "to-upload-a-part-by-copying-byte-range-from-an-existing-object-as-data-source-1483048068594", + "title": "To upload a part by copying byte range from an existing object as data source" }, { "input": { "Bucket": "examplebucket", "CopySource": "/bucketname/sourceobjectkey", - "CopySourceRange": "bytes=1-100000", "Key": "examplelargeobject", - "PartNumber": "2", + "PartNumber": "1", "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" }, "output": { "CopyPartResult": { - "ETag": "\"65d16d19e65a7508a51f043180edcc36\"", - "LastModified": "2016-12-29T21:44:28.000Z" + "ETag": "\"b0c6f0e7e054ab8fa2536a2677f8734d\"", + "LastModified": "2016-12-29T21:24:43.000Z" } }, "comments": { @@ -1867,9 +1867,9 @@ "output": { } }, - "description": "The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as data source.", - "id": "to-upload-a-part-by-copying-byte-range-from-an-existing-object-as-data-source-1483048068594", - "title": "To upload a part by copying byte range from an existing object as data source" + "description": "The following example uploads a part of a multipart upload by copying data from an existing object as data source.", + "id": "to-upload-a-part-by-copying-data-from-an-existing-object-as-data-source-1483046746348", + "title": "To upload a part by copying data from an existing object as data source" } ] } diff --git a/models/apis/s3control/2018-08-20/api-2.json b/models/apis/s3control/2018-08-20/api-2.json index 77d98a599ee..cd3ae9524b5 100644 --- a/models/apis/s3control/2018-08-20/api-2.json +++ b/models/apis/s3control/2018-08-20/api-2.json @@ -11,6 +11,85 @@ "uid":"s3control-2018-08-20" }, "operations":{ + "AssociateAccessGrantsIdentityCenter":{ + "name":"AssociateAccessGrantsIdentityCenter", + "http":{ + "method":"POST", + "requestUri":"/v20180820/accessgrantsinstance/identitycenter" + }, + "input":{ + "shape":"AssociateAccessGrantsIdentityCenterRequest", + "locationName":"AssociateAccessGrantsIdentityCenterRequest", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "CreateAccessGrant":{ + "name":"CreateAccessGrant", + "http":{ + "method":"POST", + "requestUri":"/v20180820/accessgrantsinstance/grant" + }, + "input":{ + "shape":"CreateAccessGrantRequest", + "locationName":"CreateAccessGrantRequest", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "output":{"shape":"CreateAccessGrantResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "CreateAccessGrantsInstance":{ + "name":"CreateAccessGrantsInstance", + "http":{ + "method":"POST", + "requestUri":"/v20180820/accessgrantsinstance" + }, + "input":{ + "shape":"CreateAccessGrantsInstanceRequest", + "locationName":"CreateAccessGrantsInstanceRequest", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "output":{"shape":"CreateAccessGrantsInstanceResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "CreateAccessGrantsLocation":{ + "name":"CreateAccessGrantsLocation", + "http":{ + "method":"POST", + "requestUri":"/v20180820/accessgrantsinstance/location" + }, + "input":{ + "shape":"CreateAccessGrantsLocationRequest", + "locationName":"CreateAccessGrantsLocationRequest", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "output":{"shape":"CreateAccessGrantsLocationResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, "CreateAccessPoint":{ "name":"CreateAccessPoint", "http":{ @@ -127,6 +206,66 @@ "RequiresAccountId":{"value":true} } }, + "DeleteAccessGrant":{ + "name":"DeleteAccessGrant", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/accessgrantsinstance/grant/{id}" + }, + "input":{"shape":"DeleteAccessGrantRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "DeleteAccessGrantsInstance":{ + "name":"DeleteAccessGrantsInstance", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/accessgrantsinstance" + }, + "input":{"shape":"DeleteAccessGrantsInstanceRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "DeleteAccessGrantsInstanceResourcePolicy":{ + "name":"DeleteAccessGrantsInstanceResourcePolicy", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/accessgrantsinstance/resourcepolicy" + }, + "input":{"shape":"DeleteAccessGrantsInstanceResourcePolicyRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "DeleteAccessGrantsLocation":{ + "name":"DeleteAccessGrantsLocation", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/accessgrantsinstance/location/{id}" + }, + "input":{"shape":"DeleteAccessGrantsLocationRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, "DeleteAccessPoint":{ "name":"DeleteAccessPoint", "http":{ @@ -389,6 +528,101 @@ "RequiresAccountId":{"value":true} } }, + "DissociateAccessGrantsIdentityCenter":{ + "name":"DissociateAccessGrantsIdentityCenter", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/accessgrantsinstance/identitycenter" + }, + "input":{"shape":"DissociateAccessGrantsIdentityCenterRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "GetAccessGrant":{ + "name":"GetAccessGrant", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accessgrantsinstance/grant/{id}" + }, + "input":{"shape":"GetAccessGrantRequest"}, + "output":{"shape":"GetAccessGrantResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "GetAccessGrantsInstance":{ + "name":"GetAccessGrantsInstance", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accessgrantsinstance" + }, + "input":{"shape":"GetAccessGrantsInstanceRequest"}, + "output":{"shape":"GetAccessGrantsInstanceResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "GetAccessGrantsInstanceForPrefix":{ + "name":"GetAccessGrantsInstanceForPrefix", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accessgrantsinstance/prefix" + }, + "input":{"shape":"GetAccessGrantsInstanceForPrefixRequest"}, + "output":{"shape":"GetAccessGrantsInstanceForPrefixResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "GetAccessGrantsInstanceResourcePolicy":{ + "name":"GetAccessGrantsInstanceResourcePolicy", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accessgrantsinstance/resourcepolicy" + }, + "input":{"shape":"GetAccessGrantsInstanceResourcePolicyRequest"}, + "output":{"shape":"GetAccessGrantsInstanceResourcePolicyResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "GetAccessGrantsLocation":{ + "name":"GetAccessGrantsLocation", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accessgrantsinstance/location/{id}" + }, + "input":{"shape":"GetAccessGrantsLocationRequest"}, + "output":{"shape":"GetAccessGrantsLocationResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, "GetAccessPoint":{ "name":"GetAccessPoint", "http":{ @@ -584,6 +818,22 @@ "RequiresAccountId":{"value":true} } }, + "GetDataAccess":{ + "name":"GetDataAccess", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accessgrantsinstance/dataaccess" + }, + "input":{"shape":"GetDataAccessRequest"}, + "output":{"shape":"GetDataAccessResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, "GetJobTagging":{ "name":"GetJobTagging", "http":{ @@ -731,6 +981,54 @@ "RequiresAccountId":{"value":true} } }, + "ListAccessGrants":{ + "name":"ListAccessGrants", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accessgrantsinstance/grants" + }, + "input":{"shape":"ListAccessGrantsRequest"}, + "output":{"shape":"ListAccessGrantsResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "ListAccessGrantsInstances":{ + "name":"ListAccessGrantsInstances", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accessgrantsinstances" + }, + "input":{"shape":"ListAccessGrantsInstancesRequest"}, + "output":{"shape":"ListAccessGrantsInstancesResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "ListAccessGrantsLocations":{ + "name":"ListAccessGrantsLocations", + "http":{ + "method":"GET", + "requestUri":"/v20180820/accessgrantsinstance/locations" + }, + "input":{"shape":"ListAccessGrantsLocationsRequest"}, + "output":{"shape":"ListAccessGrantsLocationsResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, "ListAccessPoints":{ "name":"ListAccessPoints", "http":{ @@ -857,6 +1155,26 @@ "RequiresAccountId":{"value":true} } }, + "PutAccessGrantsInstanceResourcePolicy":{ + "name":"PutAccessGrantsInstanceResourcePolicy", + "http":{ + "method":"PUT", + "requestUri":"/v20180820/accessgrantsinstance/resourcepolicy" + }, + "input":{ + "shape":"PutAccessGrantsInstanceResourcePolicyRequest", + "locationName":"PutAccessGrantsInstanceResourcePolicyRequest", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "output":{"shape":"PutAccessGrantsInstanceResourcePolicyResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, "PutAccessPointConfigurationForObjectLambda":{ "name":"PutAccessPointConfigurationForObjectLambda", "http":{ @@ -1142,6 +1460,26 @@ "RequiresAccountId":{"value":true} } }, + "UpdateAccessGrantsLocation":{ + "name":"UpdateAccessGrantsLocation", + "http":{ + "method":"PUT", + "requestUri":"/v20180820/accessgrantsinstance/location/{id}" + }, + "input":{ + "shape":"UpdateAccessGrantsLocationRequest", + "locationName":"UpdateAccessGrantsLocationRequest", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "output":{"shape":"UpdateAccessGrantsLocationResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, "UpdateJobPriority":{ "name":"UpdateJobPriority", "http":{ @@ -1219,6 +1557,73 @@ "Owner":{"shape":"OwnerOverride"} } }, + "AccessGrantArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"arn:[a-z\\-]+:s3:[a-z0-9\\-]+:\\d{12}:access\\-grants\\/grant/[a-zA-Z0-9\\-]+" + }, + "AccessGrantId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z0-9\\-]+" + }, + "AccessGrantsInstanceArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"arn:[a-z\\-]+:s3:[a-z0-9\\-]+:\\d{12}:access\\-grants\\/[a-zA-Z0-9\\-]+" + }, + "AccessGrantsInstanceId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z0-9\\-]+" + }, + "AccessGrantsInstancesList":{ + "type":"list", + "member":{ + "shape":"ListAccessGrantsInstanceEntry", + "locationName":"AccessGrantsInstance" + } + }, + "AccessGrantsList":{ + "type":"list", + "member":{ + "shape":"ListAccessGrantEntry", + "locationName":"AccessGrant" + } + }, + "AccessGrantsLocationArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"arn:[a-z\\-]+:s3:[a-z0-9\\-]+:\\d{12}:access\\-grants\\/location/[a-zA-Z0-9\\-]+" + }, + "AccessGrantsLocationConfiguration":{ + "type":"structure", + "members":{ + "S3SubPrefix":{"shape":"S3Prefix"} + } + }, + "AccessGrantsLocationId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z0-9\\-]+" + }, + "AccessGrantsLocationsList":{ + "type":"list", + "member":{ + "shape":"ListAccessGrantsLocationsEntry", + "locationName":"AccessGrantsLocation" + } + }, + "AccessKeyId":{ + "type":"string", + "sensitive":true + }, "AccessPoint":{ "type":"structure", "required":[ @@ -1288,6 +1693,23 @@ "max":63, "pattern":"^[0-9a-z\\\\-]{63}" }, + "AssociateAccessGrantsIdentityCenterRequest":{ + "type":"structure", + "required":[ + "AccountId", + "IdentityCenterArn" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "IdentityCenterArn":{"shape":"IdentityCenterArn"} + } + }, "AsyncCreationTimestamp":{"type":"timestamp"}, "AsyncErrorDetails":{ "type":"structure", @@ -1445,6 +1867,99 @@ "ConfirmRemoveSelfBucketAccess":{"type":"boolean"}, "ConfirmationRequired":{"type":"boolean"}, "ContinuationToken":{"type":"string"}, + "CreateAccessGrantRequest":{ + "type":"structure", + "required":[ + "AccountId", + "AccessGrantsLocationId", + "Grantee", + "Permission" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "AccessGrantsLocationId":{"shape":"AccessGrantsLocationId"}, + "AccessGrantsLocationConfiguration":{"shape":"AccessGrantsLocationConfiguration"}, + "Grantee":{"shape":"Grantee"}, + "Permission":{"shape":"Permission"}, + "ApplicationArn":{"shape":"IdentityCenterApplicationArn"}, + "S3PrefixType":{"shape":"S3PrefixType"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateAccessGrantResult":{ + "type":"structure", + "members":{ + "CreatedAt":{"shape":"CreationTimestamp"}, + "AccessGrantId":{"shape":"AccessGrantId"}, + "AccessGrantArn":{"shape":"AccessGrantArn"}, + "Grantee":{"shape":"Grantee"}, + "AccessGrantsLocationId":{"shape":"AccessGrantsLocationId"}, + "AccessGrantsLocationConfiguration":{"shape":"AccessGrantsLocationConfiguration"}, + "Permission":{"shape":"Permission"}, + "ApplicationArn":{"shape":"IdentityCenterApplicationArn"}, + "GrantScope":{"shape":"S3Prefix"} + } + }, + "CreateAccessGrantsInstanceRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "IdentityCenterArn":{"shape":"IdentityCenterArn"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateAccessGrantsInstanceResult":{ + "type":"structure", + "members":{ + "CreatedAt":{"shape":"CreationTimestamp"}, + "AccessGrantsInstanceId":{"shape":"AccessGrantsInstanceId"}, + "AccessGrantsInstanceArn":{"shape":"AccessGrantsInstanceArn"}, + "IdentityCenterArn":{"shape":"IdentityCenterArn"} + } + }, + "CreateAccessGrantsLocationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "LocationScope", + "IAMRoleArn" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "LocationScope":{"shape":"S3Prefix"}, + "IAMRoleArn":{"shape":"IAMRoleArn"}, + "Tags":{"shape":"TagList"} + } + }, + "CreateAccessGrantsLocationResult":{ + "type":"structure", + "members":{ + "CreatedAt":{"shape":"CreationTimestamp"}, + "AccessGrantsLocationId":{"shape":"AccessGrantsLocationId"}, + "AccessGrantsLocationArn":{"shape":"AccessGrantsLocationArn"}, + "LocationScope":{"shape":"S3Prefix"}, + "IAMRoleArn":{"shape":"IAMRoleArn"} + } + }, "CreateAccessPointForObjectLambdaRequest":{ "type":"structure", "required":[ @@ -1692,9 +2207,87 @@ }, "CreationDate":{"type":"timestamp"}, "CreationTimestamp":{"type":"timestamp"}, + "Credentials":{ + "type":"structure", + "members":{ + "AccessKeyId":{"shape":"AccessKeyId"}, + "SecretAccessKey":{"shape":"SecretAccessKey"}, + "SessionToken":{"shape":"SessionToken"}, + "Expiration":{"shape":"Expiration"} + }, + "sensitive":true + }, "Date":{"type":"timestamp"}, "Days":{"type":"integer"}, "DaysAfterInitiation":{"type":"integer"}, + "DeleteAccessGrantRequest":{ + "type":"structure", + "required":[ + "AccountId", + "AccessGrantId" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "AccessGrantId":{ + "shape":"AccessGrantId", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteAccessGrantsInstanceRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + } + } + }, + "DeleteAccessGrantsInstanceResourcePolicyRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + } + } + }, + "DeleteAccessGrantsLocationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "AccessGrantsLocationId" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "AccessGrantsLocationId":{ + "shape":"AccessGrantsLocationId", + "location":"uri", + "locationName":"id" + } + } + }, "DeleteAccessPointForObjectLambdaRequest":{ "type":"structure", "required":[ @@ -2120,6 +2713,25 @@ "IsEnabled":{"shape":"IsEnabled"} } }, + "DissociateAccessGrantsIdentityCenterRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + } + } + }, + "DurationSeconds":{ + "type":"integer", + "box":true, + "max":43200, + "min":900 + }, "EncryptionConfiguration":{ "type":"structure", "members":{ @@ -2166,6 +2778,7 @@ "Disabled" ] }, + "Expiration":{"type":"timestamp"}, "ExpirationStatus":{ "type":"string", "enum":[ @@ -2181,28 +2794,165 @@ "Parquet" ] }, - "FunctionArnString":{ - "type":"string", - "max":1024, - "min":1, - "pattern":"(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?" + "FunctionArnString":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?" + }, + "GeneratedManifestEncryption":{ + "type":"structure", + "members":{ + "SSES3":{ + "shape":"SSES3Encryption", + "locationName":"SSE-S3" + }, + "SSEKMS":{ + "shape":"SSEKMSEncryption", + "locationName":"SSE-KMS" + } + } + }, + "GeneratedManifestFormat":{ + "type":"string", + "enum":["S3InventoryReport_CSV_20211130"] + }, + "GetAccessGrantRequest":{ + "type":"structure", + "required":[ + "AccountId", + "AccessGrantId" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "AccessGrantId":{ + "shape":"AccessGrantId", + "location":"uri", + "locationName":"id" + } + } + }, + "GetAccessGrantResult":{ + "type":"structure", + "members":{ + "CreatedAt":{"shape":"CreationTimestamp"}, + "AccessGrantId":{"shape":"AccessGrantId"}, + "AccessGrantArn":{"shape":"AccessGrantArn"}, + "Grantee":{"shape":"Grantee"}, + "Permission":{"shape":"Permission"}, + "AccessGrantsLocationId":{"shape":"AccessGrantsLocationId"}, + "AccessGrantsLocationConfiguration":{"shape":"AccessGrantsLocationConfiguration"}, + "GrantScope":{"shape":"S3Prefix"}, + "ApplicationArn":{"shape":"IdentityCenterApplicationArn"} + } + }, + "GetAccessGrantsInstanceForPrefixRequest":{ + "type":"structure", + "required":[ + "AccountId", + "S3Prefix" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "S3Prefix":{ + "shape":"S3Prefix", + "location":"querystring", + "locationName":"s3prefix" + } + } + }, + "GetAccessGrantsInstanceForPrefixResult":{ + "type":"structure", + "members":{ + "AccessGrantsInstanceArn":{"shape":"AccessGrantsInstanceArn"}, + "AccessGrantsInstanceId":{"shape":"AccessGrantsInstanceId"} + } + }, + "GetAccessGrantsInstanceRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + } + } + }, + "GetAccessGrantsInstanceResourcePolicyRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + } + } + }, + "GetAccessGrantsInstanceResourcePolicyResult":{ + "type":"structure", + "members":{ + "Policy":{"shape":"PolicyDocument"}, + "Organization":{"shape":"Organization"}, + "CreatedAt":{"shape":"CreationTimestamp"} + } }, - "GeneratedManifestEncryption":{ + "GetAccessGrantsInstanceResult":{ "type":"structure", "members":{ - "SSES3":{ - "shape":"SSES3Encryption", - "locationName":"SSE-S3" + "AccessGrantsInstanceArn":{"shape":"AccessGrantsInstanceArn"}, + "AccessGrantsInstanceId":{"shape":"AccessGrantsInstanceId"}, + "IdentityCenterArn":{"shape":"IdentityCenterArn"}, + "CreatedAt":{"shape":"CreationTimestamp"} + } + }, + "GetAccessGrantsLocationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "AccessGrantsLocationId" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" }, - "SSEKMS":{ - "shape":"SSEKMSEncryption", - "locationName":"SSE-KMS" + "AccessGrantsLocationId":{ + "shape":"AccessGrantsLocationId", + "location":"uri", + "locationName":"id" } } }, - "GeneratedManifestFormat":{ - "type":"string", - "enum":["S3InventoryReport_CSV_20211130"] + "GetAccessGrantsLocationResult":{ + "type":"structure", + "members":{ + "CreatedAt":{"shape":"CreationTimestamp"}, + "AccessGrantsLocationId":{"shape":"AccessGrantsLocationId"}, + "AccessGrantsLocationArn":{"shape":"AccessGrantsLocationArn"}, + "LocationScope":{"shape":"S3Prefix"}, + "IAMRoleArn":{"shape":"IAMRoleArn"} + } }, "GetAccessPointConfigurationForObjectLambdaRequest":{ "type":"structure", @@ -2583,6 +3333,55 @@ } } }, + "GetDataAccessRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Target", + "Permission" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Target":{ + "shape":"S3Prefix", + "location":"querystring", + "locationName":"target" + }, + "Permission":{ + "shape":"Permission", + "location":"querystring", + "locationName":"permission" + }, + "DurationSeconds":{ + "shape":"DurationSeconds", + "location":"querystring", + "locationName":"durationSeconds" + }, + "Privilege":{ + "shape":"Privilege", + "location":"querystring", + "locationName":"privilege" + }, + "TargetType":{ + "shape":"S3PrefixType", + "location":"querystring", + "locationName":"targetType" + } + } + }, + "GetDataAccessResult":{ + "type":"structure", + "members":{ + "Credentials":{"shape":"Credentials"}, + "MatchedGrantTarget":{"shape":"S3Prefix"} + } + }, "GetJobTaggingRequest":{ "type":"structure", "required":[ @@ -2827,6 +3626,22 @@ "GrantReadACP":{"type":"string"}, "GrantWrite":{"type":"string"}, "GrantWriteACP":{"type":"string"}, + "Grantee":{ + "type":"structure", + "members":{ + "GranteeType":{"shape":"GranteeType"}, + "GranteeIdentifier":{"shape":"GranteeIdentifier"} + } + }, + "GranteeIdentifier":{"type":"string"}, + "GranteeType":{ + "type":"string", + "enum":[ + "DIRECTORY_USER", + "DIRECTORY_GROUP", + "IAM" + ] + }, "IAMRoleArn":{ "type":"string", "max":2048, @@ -2841,6 +3656,18 @@ }, "exception":true }, + "IdentityCenterApplicationArn":{ + "type":"string", + "max":1224, + "min":10, + "pattern":"arn:[^:]+:sso:.*$" + }, + "IdentityCenterArn":{ + "type":"string", + "max":1224, + "min":10, + "pattern":"arn:[^:]+:sso::(\\d{12}){0,1}:instance/.*$" + }, "Include":{ "type":"structure", "members":{ @@ -3315,6 +4142,159 @@ "locationName":"Rule" } }, + "ListAccessGrantEntry":{ + "type":"structure", + "members":{ + "CreatedAt":{"shape":"CreationTimestamp"}, + "AccessGrantId":{"shape":"AccessGrantId"}, + "AccessGrantArn":{"shape":"AccessGrantArn"}, + "Grantee":{"shape":"Grantee"}, + "Permission":{"shape":"Permission"}, + "AccessGrantsLocationId":{"shape":"AccessGrantsLocationId"}, + "AccessGrantsLocationConfiguration":{"shape":"AccessGrantsLocationConfiguration"}, + "GrantScope":{"shape":"S3Prefix"}, + "ApplicationArn":{"shape":"IdentityCenterApplicationArn"} + } + }, + "ListAccessGrantsInstanceEntry":{ + "type":"structure", + "members":{ + "AccessGrantsInstanceId":{"shape":"AccessGrantsInstanceId"}, + "AccessGrantsInstanceArn":{"shape":"AccessGrantsInstanceArn"}, + "CreatedAt":{"shape":"CreationTimestamp"}, + "IdentityCenterArn":{"shape":"IdentityCenterArn"} + } + }, + "ListAccessGrantsInstancesRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "NextToken":{ + "shape":"ContinuationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListAccessGrantsInstancesResult":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"ContinuationToken"}, + "AccessGrantsInstancesList":{"shape":"AccessGrantsInstancesList"} + } + }, + "ListAccessGrantsLocationsEntry":{ + "type":"structure", + "members":{ + "CreatedAt":{"shape":"CreationTimestamp"}, + "AccessGrantsLocationId":{"shape":"AccessGrantsLocationId"}, + "AccessGrantsLocationArn":{"shape":"AccessGrantsLocationArn"}, + "LocationScope":{"shape":"S3Prefix"}, + "IAMRoleArn":{"shape":"IAMRoleArn"} + } + }, + "ListAccessGrantsLocationsRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "NextToken":{ + "shape":"ContinuationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "LocationScope":{ + "shape":"S3Prefix", + "location":"querystring", + "locationName":"locationscope" + } + } + }, + "ListAccessGrantsLocationsResult":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"ContinuationToken"}, + "AccessGrantsLocationsList":{"shape":"AccessGrantsLocationsList"} + } + }, + "ListAccessGrantsRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "NextToken":{ + "shape":"ContinuationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "GranteeType":{ + "shape":"GranteeType", + "location":"querystring", + "locationName":"granteetype" + }, + "GranteeIdentifier":{ + "shape":"GranteeIdentifier", + "location":"querystring", + "locationName":"granteeidentifier" + }, + "Permission":{ + "shape":"Permission", + "location":"querystring", + "locationName":"permission" + }, + "GrantScope":{ + "shape":"S3Prefix", + "location":"querystring", + "locationName":"grantscope" + }, + "ApplicationArn":{ + "shape":"IdentityCenterApplicationArn", + "location":"querystring", + "locationName":"application_arn" + } + } + }, + "ListAccessGrantsResult":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"ContinuationToken"}, + "AccessGrantsList":{"shape":"AccessGrantsList"} + } + }, "ListAccessPointsForObjectLambdaRequest":{ "type":"structure", "required":["AccountId"], @@ -3977,6 +4957,12 @@ "S3ReplicateObject" ] }, + "Organization":{ + "type":"string", + "max":34, + "min":12, + "pattern":"^o-[a-z0-9]{10,32}$" + }, "OutputSchemaVersion":{ "type":"string", "enum":["V_1"] @@ -3985,7 +4971,20 @@ "type":"string", "enum":["Destination"] }, + "Permission":{ + "type":"string", + "enum":[ + "READ", + "WRITE", + "READWRITE" + ] + }, "Policy":{"type":"string"}, + "PolicyDocument":{ + "type":"string", + "max":350000, + "min":1 + }, "PolicyStatus":{ "type":"structure", "members":{ @@ -4011,6 +5010,13 @@ } }, "Priority":{"type":"integer"}, + "Privilege":{ + "type":"string", + "enum":[ + "Minimal", + "Default" + ] + }, "ProposedMultiRegionAccessPointPolicy":{ "type":"structure", "members":{ @@ -4039,6 +5045,32 @@ } }, "PublicAccessBlockEnabled":{"type":"boolean"}, + "PutAccessGrantsInstanceResourcePolicyRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Policy" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Policy":{"shape":"PolicyDocument"}, + "Organization":{"shape":"Organization"} + } + }, + "PutAccessGrantsInstanceResourcePolicyResult":{ + "type":"structure", + "members":{ + "Policy":{"shape":"PolicyDocument"}, + "Organization":{"shape":"Organization"}, + "CreatedAt":{"shape":"CreationTimestamp"} + } + }, "PutAccessPointConfigurationForObjectLambdaRequest":{ "type":"structure", "required":[ @@ -4901,6 +5933,16 @@ "WRITE_ACP" ] }, + "S3Prefix":{ + "type":"string", + "max":2000, + "min":1, + "pattern":"^.+$" + }, + "S3PrefixType":{ + "type":"string", + "enum":["Object"] + }, "S3RegionalBucketArn":{ "type":"string", "max":128, @@ -5022,6 +6064,10 @@ }, "locationName":"SSE-S3" }, + "SecretAccessKey":{ + "type":"string", + "sensitive":true + }, "SelectionCriteria":{ "type":"structure", "members":{ @@ -5030,6 +6076,10 @@ "MinStorageBytesPercentage":{"shape":"MinStorageBytesPercentage"} } }, + "SessionToken":{ + "type":"string", + "sensitive":true + }, "Setting":{"type":"boolean"}, "SourceSelectionCriteria":{ "type":"structure", @@ -5424,6 +6474,39 @@ "members":{ } }, + "UpdateAccessGrantsLocationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "AccessGrantsLocationId", + "IAMRoleArn" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "AccessGrantsLocationId":{ + "shape":"AccessGrantsLocationId", + "location":"uri", + "locationName":"id" + }, + "IAMRoleArn":{"shape":"IAMRoleArn"} + } + }, + "UpdateAccessGrantsLocationResult":{ + "type":"structure", + "members":{ + "CreatedAt":{"shape":"CreationTimestamp"}, + "AccessGrantsLocationId":{"shape":"AccessGrantsLocationId"}, + "AccessGrantsLocationArn":{"shape":"AccessGrantsLocationArn"}, + "LocationScope":{"shape":"S3Prefix"}, + "IAMRoleArn":{"shape":"IAMRoleArn"} + } + }, "UpdateJobPriorityRequest":{ "type":"structure", "required":[ diff --git a/models/apis/s3control/2018-08-20/docs-2.json b/models/apis/s3control/2018-08-20/docs-2.json index e6b51f7e9ee..8871d436c7b 100644 --- a/models/apis/s3control/2018-08-20/docs-2.json +++ b/models/apis/s3control/2018-08-20/docs-2.json @@ -2,12 +2,20 @@ "version": "2.0", "service": "

Amazon Web Services S3 Control provides access to Amazon S3 control plane actions.

", "operations": { + "AssociateAccessGrantsIdentityCenter": "

Associate your S3 Access Grants instance with an Amazon Web Services IAM Identity Center instance. Use this action if you want to create access grants for users or groups from your corporate identity directory. First, you must add your corporate identity directory to Amazon Web Services IAM Identity Center. Then, you can associate this IAM Identity Center instance with your S3 Access Grants instance.

Permissions

You must have the s3:AssociateAccessGrantsIdentityCenter permission to use this operation.

Additional Permissions

You must also have the following permissions: sso:CreateApplication, sso:PutApplicationGrant, and sso:PutApplicationAuthenticationMethod.

", + "CreateAccessGrant": "

Creates an access grant that gives a grantee access to your S3 data. The grantee can be an IAM user or role or a directory user, or group. Before you can create a grant, you must have an S3 Access Grants instance in the same Region as the S3 data. You can create an S3 Access Grants instance using the CreateAccessGrantsInstance. You must also have registered at least one S3 data location in your S3 Access Grants instance using CreateAccessGrantsLocation.

Permissions

You must have the s3:CreateAccessGrant permission to use this operation.

Additional Permissions

For any directory identity - sso:DescribeInstance and sso:DescribeApplication

For directory users - identitystore:DescribeUser

For directory groups - identitystore:DescribeGroup

", + "CreateAccessGrantsInstance": "

Creates an S3 Access Grants instance, which serves as a logical grouping for access grants. You can create one S3 Access Grants instance per Region per account.

Permissions

You must have the s3:CreateAccessGrantsInstance permission to use this operation.

Additional Permissions

To associate an IAM Identity Center instance with your S3 Access Grants instance, you must also have the sso:DescribeInstance, sso:CreateApplication, sso:PutApplicationGrant, and sso:PutApplicationAuthenticationMethod permissions.

", + "CreateAccessGrantsLocation": "

The S3 data location that you would like to register in your S3 Access Grants instance. Your S3 data must be in the same Region as your S3 Access Grants instance. The location can be one of the following:

When you register a location, you must include the IAM role that has permission to manage the S3 location that you are registering. Give S3 Access Grants permission to assume this role using a policy. S3 Access Grants assumes this role to manage access to the location and to vend temporary credentials to grantees or client applications.

Permissions

You must have the s3:CreateAccessGrantsLocation permission to use this operation.

Additional Permissions

You must also have the following permission for the specified IAM role: iam:PassRole

", "CreateAccessPoint": "

Creates an access point and associates it with the specified bucket. For more information, see Managing Data Access with Amazon S3 Access Points in the Amazon S3 User Guide.

S3 on Outposts only supports VPC-style access points.

For more information, see Accessing Amazon S3 on Outposts using virtual private cloud (VPC) only access points in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to CreateAccessPoint:

", "CreateAccessPointForObjectLambda": "

Creates an Object Lambda Access Point. For more information, see Transforming objects with Object Lambda Access Points in the Amazon S3 User Guide.

The following actions are related to CreateAccessPointForObjectLambda:

", "CreateBucket": "

This action creates an Amazon S3 on Outposts bucket. To create an S3 bucket, see Create Bucket in the Amazon S3 API Reference.

Creates a new Outposts bucket. By creating the bucket, you become the bucket owner. To create an Outposts bucket, you must have S3 on Outposts. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

Not every string is an acceptable bucket name. For information on bucket naming restrictions, see Working with Amazon S3 Buckets.

S3 on Outposts buckets support:

For a complete list of restrictions and Amazon S3 feature limitations on S3 on Outposts, see Amazon S3 on Outposts Restrictions and Limitations.

For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your API request, see the Examples section.

The following actions are related to CreateBucket for Amazon S3 on Outposts:

", "CreateJob": "

You can use S3 Batch Operations to perform large-scale batch actions on Amazon S3 objects. Batch Operations can run a single action on lists of Amazon S3 objects that you specify. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

This action creates a S3 Batch Operations job.

Related actions include:

", "CreateMultiRegionAccessPoint": "

Creates a Multi-Region Access Point and associates it with the specified buckets. For more information about creating Multi-Region Access Points, see Creating Multi-Region Access Points in the Amazon S3 User Guide.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

This request is asynchronous, meaning that you might receive a response before the command has completed. When this request provides a response, it provides a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation.

The following actions are related to CreateMultiRegionAccessPoint:

", "CreateStorageLensGroup": "

Creates a new S3 Storage Lens group and associates it with the specified Amazon Web Services account ID. An S3 Storage Lens group is a custom grouping of objects based on prefix, suffix, object tags, object size, object age, or a combination of these filters. For each Storage Lens group that you’ve created, you can also optionally add Amazon Web Services resource tags. For more information about S3 Storage Lens groups, see Working with S3 Storage Lens groups.

To use this operation, you must have the permission to perform the s3:CreateStorageLensGroup action. If you’re trying to create a Storage Lens group with Amazon Web Services resource tags, you must also have permission to perform the s3:TagResource action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about Storage Lens groups errors, see List of Amazon S3 Storage Lens error codes.

", + "DeleteAccessGrant": "

Deletes the access grant from the S3 Access Grants instance. You cannot undo an access grant deletion and the grantee will no longer have access to the S3 data.

Permissions

You must have the s3:DeleteAccessGrant permission to use this operation.

", + "DeleteAccessGrantsInstance": "

Deletes your S3 Access Grants instance. You must first delete the access grants and locations before S3 Access Grants can delete the instance. See DeleteAccessGrant and DeleteAccessGrantsLocation. If you have associated an IAM Identity Center instance with your S3 Access Grants instance, you must first dissassociate the Identity Center instance from the S3 Access Grants instance before you can delete the S3 Access Grants instance. See AssociateAccessGrantsIdentityCenter and DissociateAccessGrantsIdentityCenter.

Permissions

You must have the s3:DeleteAccessGrantsInstance permission to use this operation.

", + "DeleteAccessGrantsInstanceResourcePolicy": "

Deletes the resource policy of the S3 Access Grants instance. The resource policy is used to manage cross-account access to your S3 Access Grants instance. By deleting the resource policy, you delete any cross-account permissions to your S3 Access Grants instance.

Permissions

You must have the s3:DeleteAccessGrantsInstanceResourcePolicy permission to use this operation.

", + "DeleteAccessGrantsLocation": "

Deregisters a location from your S3 Access Grants instance. You can only delete a location registration from an S3 Access Grants instance if there are no grants associated with this location. See Delete a grant for information on how to delete grants. You need to have at least one registered location in your S3 Access Grants instance in order to create access grants.

Permissions

You must have the s3:DeleteAccessGrantsLocation permission to use this operation.

", "DeleteAccessPoint": "

Deletes the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteAccessPoint:

", "DeleteAccessPointForObjectLambda": "

Deletes the specified Object Lambda Access Point.

The following actions are related to DeleteAccessPointForObjectLambda:

", "DeleteAccessPointPolicy": "

Deletes the access point policy for the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteAccessPointPolicy:

", @@ -25,6 +33,12 @@ "DeleteStorageLensGroup": "

Deletes an existing S3 Storage Lens group.

To use this operation, you must have the permission to perform the s3:DeleteStorageLensGroup action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about Storage Lens groups errors, see List of Amazon S3 Storage Lens error codes.

", "DescribeJob": "

Retrieves the configuration parameters and status for a Batch Operations job. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", "DescribeMultiRegionAccessPointOperation": "

Retrieves the status of an asynchronous request to manage a Multi-Region Access Point. For more information about managing Multi-Region Access Points and how asynchronous requests work, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to GetMultiRegionAccessPoint:

", + "DissociateAccessGrantsIdentityCenter": "

Dissociates the Amazon Web Services IAM Identity Center instance from the S3 Access Grants instance.

Permissions

You must have the s3:DissociateAccessGrantsIdentityCenter permission to use this operation.

Additional Permissions

You must have the sso:DeleteApplication permission to use this operation.

", + "GetAccessGrant": "

Get the details of an access grant from your S3 Access Grants instance.

Permissions

You must have the s3:GetAccessGrant permission to use this operation.

", + "GetAccessGrantsInstance": "

Retrieves the S3 Access Grants instance for a Region in your account.

Permissions

You must have the s3:GetAccessGrantsInstance permission to use this operation.

", + "GetAccessGrantsInstanceForPrefix": "

Retrieve the S3 Access Grants instance that contains a particular prefix.

Permissions

You must have the s3:GetAccessGrantsInstanceForPrefix permission for the caller account to use this operation.

Additional Permissions

The prefix owner account must grant you the following permissions to their S3 Access Grants instance: s3:GetAccessGrantsInstanceForPrefix.

", + "GetAccessGrantsInstanceResourcePolicy": "

Returns the resource policy of the S3 Access Grants instance.

Permissions

You must have the s3:GetAccessGrantsInstanceResourcePolicy permission to use this operation.

", + "GetAccessGrantsLocation": "

Retrieves the details of a particular location registered in your S3 Access Grants instance.

Permissions

You must have the s3:GetAccessGrantsLocation permission to use this operation.

", "GetAccessPoint": "

Returns configuration information about the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to GetAccessPoint:

", "GetAccessPointConfigurationForObjectLambda": "

Returns configuration for an Object Lambda Access Point.

The following actions are related to GetAccessPointConfigurationForObjectLambda:

", "GetAccessPointForObjectLambda": "

Returns configuration information about the specified Object Lambda Access Point

The following actions are related to GetAccessPointForObjectLambda:

", @@ -38,6 +52,7 @@ "GetBucketReplication": "

This operation gets an Amazon S3 on Outposts bucket's replication configuration. To get an S3 bucket's replication configuration, see GetBucketReplication in the Amazon S3 API Reference.

Returns the replication configuration of an S3 on Outposts bucket. For more information about S3 on Outposts, see Using Amazon S3 on Outposts in the Amazon S3 User Guide. For information about S3 replication on Outposts configuration, see Replicating objects for S3 on Outposts in the Amazon S3 User Guide.

It can take a while to propagate PUT or DELETE requests for a replication configuration to all S3 on Outposts systems. Therefore, the replication configuration that's returned by a GET request soon after a PUT or DELETE request might return a more recent result than what's on the Outpost. If an Outpost is offline, the delay in updating the replication configuration on that Outpost can be significant.

This action requires permissions for the s3-outposts:GetReplicationConfiguration action. The Outposts bucket owner has this permission by default and can grant it to others. For more information about permissions, see Setting up IAM with S3 on Outposts and Managing access to S3 on Outposts bucket in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

If you include the Filter element in a replication configuration, you must also include the DeleteMarkerReplication, Status, and Priority elements. The response also returns those elements.

For information about S3 on Outposts replication failure reasons, see Replication failure reasons in the Amazon S3 User Guide.

The following operations are related to GetBucketReplication:

", "GetBucketTagging": "

This action gets an Amazon S3 on Outposts bucket's tags. To get an S3 bucket tags, see GetBucketTagging in the Amazon S3 API Reference.

Returns the tag set associated with the Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

To use this action, you must have permission to perform the GetBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

GetBucketTagging has the following special error:

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to GetBucketTagging:

", "GetBucketVersioning": "

This operation returns the versioning state for S3 on Outposts buckets only. To return the versioning state for an S3 bucket, see GetBucketVersioning in the Amazon S3 API Reference.

Returns the versioning state for an S3 on Outposts bucket. With S3 Versioning, you can save multiple distinct copies of your objects and recover from unintended user actions and application failures.

If you've never set versioning on your bucket, it has no versioning state. In that case, the GetBucketVersioning request does not return a versioning state value.

For more information about versioning, see Versioning in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following operations are related to GetBucketVersioning for S3 on Outposts.

", + "GetDataAccess": "

Returns a temporary access credential from S3 Access Grants to the grantee or client application. The temporary credential is an Amazon Web Services STS token that grants them access to the S3 data.

Permissions

You must have the s3:GetDataAccess permission to use this operation.

Additional Permissions

The IAM role that S3 Access Grants assumes must have the following permissions specified in the trust policy when registering the location: sts:AssumeRole, for directory users or groups sts:SetContext, and for IAM users or roles sts:SourceIdentity.

", "GetJobTagging": "

Returns the tags on an S3 Batch Operations job. To use the GetJobTagging operation, you must have permission to perform the s3:GetJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

Related actions include:

", "GetMultiRegionAccessPoint": "

Returns configuration information about the specified Multi-Region Access Point.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to GetMultiRegionAccessPoint:

", "GetMultiRegionAccessPointPolicy": "

Returns the access control policy of the specified Multi-Region Access Point.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to GetMultiRegionAccessPointPolicy:

", @@ -47,6 +62,9 @@ "GetStorageLensConfiguration": "

Gets the Amazon S3 Storage Lens configuration. For more information, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:GetStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "GetStorageLensConfigurationTagging": "

Gets the tags of Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:GetStorageLensConfigurationTagging action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "GetStorageLensGroup": "

Retrieves the Storage Lens group configuration details.

To use this operation, you must have the permission to perform the s3:GetStorageLensGroup action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about Storage Lens groups errors, see List of Amazon S3 Storage Lens error codes.

", + "ListAccessGrants": "

Returns the list of access grants in your S3 Access Grants instance.

Permissions

You must have the s3:ListAccessGrants permission to use this operation.

", + "ListAccessGrantsInstances": "

Returns a list of S3 Access Grants instances. An S3 Access Grants instance serves as a logical grouping for your individual access grants. You can only have one S3 Access Grants instance per Region per account.

Permissions

You must have the s3:ListAccessGrantsInstances permission to use this operation.

", + "ListAccessGrantsLocations": "

Returns a list of the locations registered in your S3 Access Grants instance.

Permissions

You must have the s3:ListAccessGrantsLocations permission to use this operation.

", "ListAccessPoints": "

Returns a list of the access points that are owned by the current account that's associated with the specified bucket. You can retrieve up to 1000 access points per call. If the specified bucket has more than 1,000 access points (or the number specified in maxResults, whichever is less), the response will include a continuation token that you can use to list the additional access points.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to ListAccessPoints:

", "ListAccessPointsForObjectLambda": "

Returns some or all (up to 1,000) access points associated with the Object Lambda Access Point per call. If there are more access points than what can be returned in one call, the response will include a continuation token that you can use to list the additional access points.

The following actions are related to ListAccessPointsForObjectLambda:

", "ListJobs": "

Lists current S3 Batch Operations jobs and jobs that have ended within the last 30 days for the Amazon Web Services account making the request. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", @@ -54,7 +72,8 @@ "ListRegionalBuckets": "

Returns a list of all Outposts buckets in an Outpost that are owned by the authenticated sender of the request. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your request, see the Examples section.

", "ListStorageLensConfigurations": "

Gets a list of Amazon S3 Storage Lens configurations. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:ListStorageLensConfigurations action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "ListStorageLensGroups": "

Lists all the Storage Lens groups in the specified home Region.

To use this operation, you must have the permission to perform the s3:ListStorageLensGroups action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about Storage Lens groups errors, see List of Amazon S3 Storage Lens error codes.

", - "ListTagsForResource": "

This operation allows you to list all the Amazon Web Services resource tags for the specified resource.

To use this operation, you must have the permission to perform the s3:ListTagsForResource action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about S3 Tagging errors, see List of Amazon S3 Tagging error codes.

This operation is only supported for S3 Storage Lens groups.

", + "ListTagsForResource": "

This operation allows you to list all the Amazon Web Services resource tags for a specified resource. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize, search for, and filter resources.

Permissions

You must have the s3:ListTagsForResource permission to use this operation.

This operation is only supported for S3 Storage Lens groups and for S3 Access Grants. The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, registered location, or grant.

For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about S3 Tagging errors, see List of Amazon S3 Tagging error codes.

", + "PutAccessGrantsInstanceResourcePolicy": "

Updates the resource policy of the S3 Access Grants instance.

Permissions

You must have the s3:PutAccessGrantsInstanceResourcePolicy permission to use this operation.

", "PutAccessPointConfigurationForObjectLambda": "

Replaces configuration for an Object Lambda Access Point.

The following actions are related to PutAccessPointConfigurationForObjectLambda:

", "PutAccessPointPolicy": "

Associates an access policy with the specified access point. Each access point can have only one policy, so a request made to this API replaces any existing policy associated with the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to PutAccessPointPolicy:

", "PutAccessPointPolicyForObjectLambda": "

Creates or replaces resource policy for an Object Lambda Access Point. For an example policy, see Creating Object Lambda Access Points in the Amazon S3 User Guide.

The following actions are related to PutAccessPointPolicyForObjectLambda:

", @@ -69,8 +88,9 @@ "PutStorageLensConfiguration": "

Puts an Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Working with Amazon S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:PutStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "PutStorageLensConfigurationTagging": "

Put or replace tags on an existing Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:PutStorageLensConfigurationTagging action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "SubmitMultiRegionAccessPointRoutes": "

Submits an updated route configuration for a Multi-Region Access Point. This API operation updates the routing status for the specified Regions from active to passive, or from passive to active. A value of 0 indicates a passive status, which means that traffic won't be routed to the specified Region. A value of 100 indicates an active status, which means that traffic will be routed to the specified Region. At least one Region must be active at all times.

When the routing configuration is changed, any in-progress operations (uploads, copies, deletes, and so on) to formerly active Regions will continue to run to their final completion state (success or failure). The routing configurations of any Regions that aren’t specified remain unchanged.

Updated routing configurations might not be immediately applied. It can take up to 2 minutes for your changes to take effect.

To submit routing control changes and failover requests, use the Amazon S3 failover control infrastructure endpoints in these five Amazon Web Services Regions:

Your Amazon S3 bucket does not need to be in these five Regions.

", - "TagResource": "

Creates a new Amazon Web Services resource tag or updates an existing resource tag. You can add up to 50 Amazon Web Services resource tags for each S3 resource.

To use this operation, you must have the permission to perform the s3:TagResource action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about S3 Tagging errors, see List of Amazon S3 Tagging error codes.

This operation is only supported for S3 Storage Lens groups.

", - "UntagResource": "

This operation removes the specified Amazon Web Services resource tags from an S3 resource.

To use this operation, you must have the permission to perform the s3:UntagResource action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about S3 Tagging errors, see List of Amazon S3 Tagging error codes.

This operation is only supported for S3 Storage Lens groups.

", + "TagResource": "

Creates a new Amazon Web Services resource tag or updates an existing resource tag. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize, search for, and filter resources. You can add up to 50 Amazon Web Services resource tags for each S3 resource.

This operation is only supported for S3 Storage Lens groups and for S3 Access Grants. The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, registered location, or grant.

Permissions

You must have the s3:TagResource permission to use this operation.

For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about S3 Tagging errors, see List of Amazon S3 Tagging error codes.

", + "UntagResource": "

This operation removes the specified Amazon Web Services resource tags from an S3 resource. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize, search for, and filter resources.

This operation is only supported for S3 Storage Lens groups and for S3 Access Grants. The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, registered location, or grant.

Permissions

You must have the s3:UntagResource permission to use this operation.

For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about S3 Tagging errors, see List of Amazon S3 Tagging error codes.

", + "UpdateAccessGrantsLocation": "

Updates the IAM role of a registered location in your S3 Access Grants instance.

Permissions

You must have the s3:UpdateAccessGrantsLocation permission to use this operation.

Additional Permissions

You must also have the following permission: iam:PassRole

", "UpdateJobPriority": "

Updates an existing S3 Batch Operations job's priority. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", "UpdateJobStatus": "

Updates the status for the specified job. Use this action to confirm that you want to run a job or to cancel an existing job. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", "UpdateStorageLensGroup": "

Updates the existing Storage Lens group.

To use this operation, you must have the permission to perform the s3:UpdateStorageLensGroup action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about Storage Lens groups errors, see List of Amazon S3 Storage Lens error codes.

" @@ -88,6 +108,100 @@ "Destination$AccessControlTranslation": "

Specify this property only in a cross-account scenario (where the source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this property is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.

This is not supported by Amazon S3 on Outposts buckets.

" } }, + "AccessGrantArn": { + "base": null, + "refs": { + "CreateAccessGrantResult$AccessGrantArn": "

The Amazon Resource Name (ARN) of the access grant.

", + "GetAccessGrantResult$AccessGrantArn": "

The Amazon Resource Name (ARN) of the access grant.

", + "ListAccessGrantEntry$AccessGrantArn": "

The Amazon Resource Name (ARN) of the access grant.

" + } + }, + "AccessGrantId": { + "base": null, + "refs": { + "CreateAccessGrantResult$AccessGrantId": "

The ID of the access grant. S3 Access Grants auto-generates this ID when you create the access grant.

", + "DeleteAccessGrantRequest$AccessGrantId": "

The ID of the access grant. S3 Access Grants auto-generates this ID when you create the access grant.

", + "GetAccessGrantRequest$AccessGrantId": "

The ID of the access grant. S3 Access Grants auto-generates this ID when you create the access grant.

", + "GetAccessGrantResult$AccessGrantId": "

The ID of the access grant. S3 Access Grants auto-generates this ID when you create the access grant.

", + "ListAccessGrantEntry$AccessGrantId": "

The ID of the access grant. S3 Access Grants auto-generates this ID when you create the access grant.

" + } + }, + "AccessGrantsInstanceArn": { + "base": null, + "refs": { + "CreateAccessGrantsInstanceResult$AccessGrantsInstanceArn": "

The Amazon Resource Name (ARN) of the S3 Access Grants instance.

", + "GetAccessGrantsInstanceForPrefixResult$AccessGrantsInstanceArn": "

The Amazon Resource Name (ARN) of the S3 Access Grants instance.

", + "GetAccessGrantsInstanceResult$AccessGrantsInstanceArn": "

The Amazon Resource Name (ARN) of the S3 Access Grants instance.

", + "ListAccessGrantsInstanceEntry$AccessGrantsInstanceArn": "

The Amazon Resource Name (ARN) of the S3 Access Grants instance.

" + } + }, + "AccessGrantsInstanceId": { + "base": null, + "refs": { + "CreateAccessGrantsInstanceResult$AccessGrantsInstanceId": "

The ID of the S3 Access Grants instance. The ID is default. You can have one S3 Access Grants instance per Region per account.

", + "GetAccessGrantsInstanceForPrefixResult$AccessGrantsInstanceId": "

The ID of the S3 Access Grants instance. The ID is default. You can have one S3 Access Grants instance per Region per account.

", + "GetAccessGrantsInstanceResult$AccessGrantsInstanceId": "

The ID of the S3 Access Grants instance. The ID is default. You can have one S3 Access Grants instance per Region per account.

", + "ListAccessGrantsInstanceEntry$AccessGrantsInstanceId": "

The ID of the S3 Access Grants instance. The ID is default. You can have one S3 Access Grants instance per Region per account.

" + } + }, + "AccessGrantsInstancesList": { + "base": null, + "refs": { + "ListAccessGrantsInstancesResult$AccessGrantsInstancesList": "

A container for a list of S3 Access Grants instances.

" + } + }, + "AccessGrantsList": { + "base": null, + "refs": { + "ListAccessGrantsResult$AccessGrantsList": "

A container for a list of grants in an S3 Access Grants instance.

" + } + }, + "AccessGrantsLocationArn": { + "base": null, + "refs": { + "CreateAccessGrantsLocationResult$AccessGrantsLocationArn": "

The Amazon Resource Name (ARN) of the location you are registering.

", + "GetAccessGrantsLocationResult$AccessGrantsLocationArn": "

The Amazon Resource Name (ARN) of the registered location.

", + "ListAccessGrantsLocationsEntry$AccessGrantsLocationArn": "

The Amazon Resource Name (ARN) of the registered location.

", + "UpdateAccessGrantsLocationResult$AccessGrantsLocationArn": "

The Amazon Resource Name (ARN) of the registered location that you are updating.

" + } + }, + "AccessGrantsLocationConfiguration": { + "base": "

The configuration options of the S3 Access Grants location. It contains the S3SubPrefix field. The grant scope, the data to which you are granting access, is the result of appending the Subprefix field to the scope of the registered location.

", + "refs": { + "CreateAccessGrantRequest$AccessGrantsLocationConfiguration": "

The configuration options of the grant location. The grant location is the S3 path to the data to which you are granting access. It contains the S3SubPrefix field. The grant scope is the result of appending the subprefix to the location scope of the registered location.

", + "CreateAccessGrantResult$AccessGrantsLocationConfiguration": "

The configuration options of the grant location. The grant location is the S3 path to the data to which you are granting access.

", + "GetAccessGrantResult$AccessGrantsLocationConfiguration": "

The configuration options of the grant location. The grant location is the S3 path to the data to which you are granting access.

", + "ListAccessGrantEntry$AccessGrantsLocationConfiguration": "

The configuration options of the grant location. The grant location is the S3 path to the data to which you are granting access.

" + } + }, + "AccessGrantsLocationId": { + "base": null, + "refs": { + "CreateAccessGrantRequest$AccessGrantsLocationId": "

The ID of the registered location to which you are granting access. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

If you are passing the default location, you cannot create an access grant for the entire default location. You must also specify a bucket or a bucket and prefix in the Subprefix field.

", + "CreateAccessGrantResult$AccessGrantsLocationId": "

The ID of the registered location to which you are granting access. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

", + "CreateAccessGrantsLocationResult$AccessGrantsLocationId": "

The ID of the registered location to which you are granting access. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

", + "DeleteAccessGrantsLocationRequest$AccessGrantsLocationId": "

The ID of the registered location that you are deregistering from your S3 Access Grants instance. S3 Access Grants assigned this ID when you registered the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

", + "GetAccessGrantResult$AccessGrantsLocationId": "

The ID of the registered location to which you are granting access. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

", + "GetAccessGrantsLocationRequest$AccessGrantsLocationId": "

The ID of the registered location that you are retrieving. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

", + "GetAccessGrantsLocationResult$AccessGrantsLocationId": "

The ID of the registered location to which you are granting access. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

", + "ListAccessGrantEntry$AccessGrantsLocationId": "

The ID of the registered location to which you are granting access. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

", + "ListAccessGrantsLocationsEntry$AccessGrantsLocationId": "

The ID of the registered location to which you are granting access. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

", + "UpdateAccessGrantsLocationRequest$AccessGrantsLocationId": "

The ID of the registered location that you are updating. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

The ID of the registered location to which you are granting access. S3 Access Grants assigned this ID when you registered the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

If you are passing the default location, you cannot create an access grant for the entire default location. You must also specify a bucket or a bucket and prefix in the Subprefix field.

", + "UpdateAccessGrantsLocationResult$AccessGrantsLocationId": "

The ID of the registered location to which you are granting access. S3 Access Grants assigned this ID when you registered the location. S3 Access Grants assigns the ID default to the default location s3:// and assigns an auto-generated ID to other locations that you register.

" + } + }, + "AccessGrantsLocationsList": { + "base": null, + "refs": { + "ListAccessGrantsLocationsResult$AccessGrantsLocationsList": "

A container for a list of registered locations in an S3 Access Grants instance.

" + } + }, + "AccessKeyId": { + "base": null, + "refs": { + "Credentials$AccessKeyId": "

The unique access key ID of the Amazon Web Services STS temporary credential that S3 Access Grants vends to grantees and client applications.

" + } + }, "AccessPoint": { "base": "

An access point used to access a bucket.

", "refs": { @@ -118,12 +232,20 @@ "base": null, "refs": { "AccessPoint$BucketAccountId": "

The Amazon Web Services account ID associated with the S3 bucket associated with this access point.

", + "AssociateAccessGrantsIdentityCenterRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "CreateAccessGrantRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "CreateAccessGrantsInstanceRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "CreateAccessGrantsLocationRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", "CreateAccessPointForObjectLambdaRequest$AccountId": "

The Amazon Web Services account ID for owner of the specified Object Lambda Access Point.

", "CreateAccessPointRequest$AccountId": "

The Amazon Web Services account ID for the account that owns the specified access point.

", "CreateAccessPointRequest$BucketAccountId": "

The Amazon Web Services account ID associated with the S3 bucket associated with this access point.

", "CreateJobRequest$AccountId": "

The Amazon Web Services account ID that creates the job.

", "CreateMultiRegionAccessPointRequest$AccountId": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point. The owner of the Multi-Region Access Point also must own the underlying buckets.

", "CreateStorageLensGroupRequest$AccountId": "

The Amazon Web Services account ID that the Storage Lens group is created from and associated with.

", + "DeleteAccessGrantRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "DeleteAccessGrantsInstanceRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "DeleteAccessGrantsInstanceResourcePolicyRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "DeleteAccessGrantsLocationRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", "DeleteAccessPointForObjectLambdaRequest$AccountId": "

The account ID for the account that owns the specified Object Lambda Access Point.

", "DeleteAccessPointPolicyForObjectLambdaRequest$AccountId": "

The account ID for the account that owns the specified Object Lambda Access Point.

", "DeleteAccessPointPolicyRequest$AccountId": "

The account ID for the account that owns the specified access point.

", @@ -142,6 +264,12 @@ "DescribeJobRequest$AccountId": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", "DescribeMultiRegionAccessPointOperationRequest$AccountId": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", "Destination$Account": "

The destination bucket owner's account ID.

", + "DissociateAccessGrantsIdentityCenterRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "GetAccessGrantRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "GetAccessGrantsInstanceForPrefixRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "GetAccessGrantsInstanceRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "GetAccessGrantsInstanceResourcePolicyRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "GetAccessGrantsLocationRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", "GetAccessPointConfigurationForObjectLambdaRequest$AccountId": "

The account ID for the account that owns the specified Object Lambda Access Point.

", "GetAccessPointForObjectLambdaRequest$AccountId": "

The account ID for the account that owns the specified Object Lambda Access Point.

", "GetAccessPointPolicyForObjectLambdaRequest$AccountId": "

The account ID for the account that owns the specified Object Lambda Access Point.

", @@ -156,6 +284,7 @@ "GetBucketRequest$AccountId": "

The Amazon Web Services account ID of the Outposts bucket.

", "GetBucketTaggingRequest$AccountId": "

The Amazon Web Services account ID of the Outposts bucket.

", "GetBucketVersioningRequest$AccountId": "

The Amazon Web Services account ID of the S3 on Outposts bucket.

", + "GetDataAccessRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", "GetJobTaggingRequest$AccountId": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", "GetMultiRegionAccessPointPolicyRequest$AccountId": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", "GetMultiRegionAccessPointPolicyStatusRequest$AccountId": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", @@ -165,6 +294,9 @@ "GetStorageLensConfigurationRequest$AccountId": "

The account ID of the requester.

", "GetStorageLensConfigurationTaggingRequest$AccountId": "

The account ID of the requester.

", "GetStorageLensGroupRequest$AccountId": "

The Amazon Web Services account ID associated with the Storage Lens group that you're trying to retrieve the details for.

", + "ListAccessGrantsInstancesRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "ListAccessGrantsLocationsRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", + "ListAccessGrantsRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", "ListAccessPointsForObjectLambdaRequest$AccountId": "

The account ID for the account that owns the specified Object Lambda Access Point.

", "ListAccessPointsRequest$AccountId": "

The Amazon Web Services account ID for the account that owns the specified access points.

", "ListJobsRequest$AccountId": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", @@ -173,6 +305,7 @@ "ListStorageLensConfigurationsRequest$AccountId": "

The account ID of the requester.

", "ListStorageLensGroupsRequest$AccountId": "

The Amazon Web Services account ID that owns the Storage Lens groups.

", "ListTagsForResourceRequest$AccountId": "

The Amazon Web Services account ID of the resource owner.

", + "PutAccessGrantsInstanceResourcePolicyRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", "PutAccessPointConfigurationForObjectLambdaRequest$AccountId": "

The account ID for the account that owns the specified Object Lambda Access Point.

", "PutAccessPointPolicyForObjectLambdaRequest$AccountId": "

The account ID for the account that owns the specified Object Lambda Access Point.

", "PutAccessPointPolicyRequest$AccountId": "

The Amazon Web Services account ID for owner of the bucket associated with the specified access point.

", @@ -192,8 +325,9 @@ "S3JobManifestGenerator$ExpectedBucketOwner": "

The Amazon Web Services account ID that owns the bucket the generated manifest is written to. If provided the generated manifest bucket's owner Amazon Web Services account ID must match this value, else the job fails.

", "S3ManifestOutputLocation$ExpectedManifestBucketOwner": "

The Account ID that owns the bucket the generated manifest is written to.

", "SubmitMultiRegionAccessPointRoutesRequest$AccountId": "

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", - "TagResourceRequest$AccountId": "

The Amazon Web Services account ID that created the S3 resource that you're trying to add tags to.

", + "TagResourceRequest$AccountId": "

The Amazon Web Services account ID that created the S3 resource that you're trying to add tags to or the requester's account ID.

", "UntagResourceRequest$AccountId": "

The Amazon Web Services account ID that owns the resource that you're trying to remove the tags from.

", + "UpdateAccessGrantsLocationRequest$AccountId": "

The ID of the Amazon Web Services account that is making this request.

", "UpdateJobPriorityRequest$AccountId": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", "UpdateJobStatusRequest$AccountId": "

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", "UpdateStorageLensGroupRequest$AccountId": "

The Amazon Web Services account ID of the Storage Lens group owner.

" @@ -234,6 +368,11 @@ "GetAccessPointResult$Alias": "

The name or alias of the access point.

" } }, + "AssociateAccessGrantsIdentityCenterRequest": { + "base": null, + "refs": { + } + }, "AsyncCreationTimestamp": { "base": null, "refs": { @@ -438,12 +577,48 @@ "ContinuationToken": { "base": null, "refs": { + "ListAccessGrantsInstancesRequest$NextToken": "

A pagination token to request the next page of results. Pass this value into a subsequent List Access Grants Instances request in order to retrieve the next page of results.

", + "ListAccessGrantsInstancesResult$NextToken": "

A pagination token to request the next page of results. Pass this value into a subsequent List Access Grants Instances request in order to retrieve the next page of results.

", + "ListAccessGrantsLocationsRequest$NextToken": "

A pagination token to request the next page of results. Pass this value into a subsequent List Access Grants Locations request in order to retrieve the next page of results.

", + "ListAccessGrantsLocationsResult$NextToken": "

A pagination token to request the next page of results. Pass this value into a subsequent List Access Grants Locations request in order to retrieve the next page of results.

", + "ListAccessGrantsRequest$NextToken": "

A pagination token to request the next page of results. Pass this value into a subsequent List Access Grants request in order to retrieve the next page of results.

", + "ListAccessGrantsResult$NextToken": "

A pagination token to request the next page of results. Pass this value into a subsequent List Access Grants request in order to retrieve the next page of results.

", "ListStorageLensConfigurationsRequest$NextToken": "

A pagination token to request the next page of results.

", "ListStorageLensConfigurationsResult$NextToken": "

If the request produced more than the maximum number of S3 Storage Lens configuration results, you can pass this value into a subsequent request to retrieve the next page of results.

", "ListStorageLensGroupsRequest$NextToken": "

The token for the next set of results, or null if there are no more results.

", "ListStorageLensGroupsResult$NextToken": "

If NextToken is returned, there are more Storage Lens groups results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours.

" } }, + "CreateAccessGrantRequest": { + "base": null, + "refs": { + } + }, + "CreateAccessGrantResult": { + "base": null, + "refs": { + } + }, + "CreateAccessGrantsInstanceRequest": { + "base": null, + "refs": { + } + }, + "CreateAccessGrantsInstanceResult": { + "base": null, + "refs": { + } + }, + "CreateAccessGrantsLocationRequest": { + "base": null, + "refs": { + } + }, + "CreateAccessGrantsLocationResult": { + "base": null, + "refs": { + } + }, "CreateAccessPointForObjectLambdaRequest": { "base": null, "refs": { @@ -524,7 +699,25 @@ "CreationTimestamp": { "base": null, "refs": { - "MultiRegionAccessPointReport$CreatedAt": "

When the Multi-Region Access Point create request was received.

" + "CreateAccessGrantResult$CreatedAt": "

The date and time when you created the access grant.

", + "CreateAccessGrantsInstanceResult$CreatedAt": "

The date and time when you created the S3 Access Grants instance.

", + "CreateAccessGrantsLocationResult$CreatedAt": "

The date and time when you registered the location.

", + "GetAccessGrantResult$CreatedAt": "

The date and time when you created the access grant.

", + "GetAccessGrantsInstanceResourcePolicyResult$CreatedAt": "

The date and time when you created the S3 Access Grants instance resource policy.

", + "GetAccessGrantsInstanceResult$CreatedAt": "

The date and time when you created the S3 Access Grants instance.

", + "GetAccessGrantsLocationResult$CreatedAt": "

The date and time when you registered the location.

", + "ListAccessGrantEntry$CreatedAt": "

The date and time when you created the S3 Access Grants instance.

", + "ListAccessGrantsInstanceEntry$CreatedAt": "

The date and time when you created the S3 Access Grants instance.

", + "ListAccessGrantsLocationsEntry$CreatedAt": "

The date and time when you registered the location.

", + "MultiRegionAccessPointReport$CreatedAt": "

When the Multi-Region Access Point create request was received.

", + "PutAccessGrantsInstanceResourcePolicyResult$CreatedAt": "

The date and time when you created the S3 Access Grants instance resource policy.

", + "UpdateAccessGrantsLocationResult$CreatedAt": "

The date and time when you registered the location.

" + } + }, + "Credentials": { + "base": "

The Amazon Web Services Security Token Service temporary credential that S3 Access Grants vends to grantees and client applications.

", + "refs": { + "GetDataAccessResult$Credentials": "

The temporary credential token that S3 Access Grants vends.

" } }, "Date": { @@ -549,6 +742,26 @@ "AbortIncompleteMultipartUpload$DaysAfterInitiation": "

Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload to the Outposts bucket.

" } }, + "DeleteAccessGrantRequest": { + "base": null, + "refs": { + } + }, + "DeleteAccessGrantsInstanceRequest": { + "base": null, + "refs": { + } + }, + "DeleteAccessGrantsInstanceResourcePolicyRequest": { + "base": null, + "refs": { + } + }, + "DeleteAccessGrantsLocationRequest": { + "base": null, + "refs": { + } + }, "DeleteAccessPointForObjectLambdaRequest": { "base": null, "refs": { @@ -691,6 +904,17 @@ "BucketLevel$DetailedStatusCodesMetrics": "

A container for bucket-level detailed status code metrics for S3 Storage Lens.

" } }, + "DissociateAccessGrantsIdentityCenterRequest": { + "base": null, + "refs": { + } + }, + "DurationSeconds": { + "base": null, + "refs": { + "GetDataAccessRequest$DurationSeconds": "

The session duration, in seconds, of the temporary access credential that S3 Access Grants vends to the grantee or client application. The default value is 1 hour, but the grantee can specify a range from 900 seconds (15 minutes) up to 43200 seconds (12 hours). If the grantee requests a value higher than this maximum, the operation fails.

" + } + }, "EncryptionConfiguration": { "base": "

Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.

This is not supported by Amazon S3 on Outposts buckets.

", "refs": { @@ -741,6 +965,12 @@ "ExistingObjectReplication$Status": "

Specifies whether Amazon S3 replicates existing source bucket objects.

" } }, + "Expiration": { + "base": null, + "refs": { + "Credentials$Expiration": "

The expiration date and time of the temporary credential that S3 Access Grants vends to grantees and client applications.

" + } + }, "ExpirationStatus": { "base": null, "refs": { @@ -779,6 +1009,56 @@ "S3ManifestOutputLocation$ManifestFormat": "

The format of the generated manifest.

" } }, + "GetAccessGrantRequest": { + "base": null, + "refs": { + } + }, + "GetAccessGrantResult": { + "base": null, + "refs": { + } + }, + "GetAccessGrantsInstanceForPrefixRequest": { + "base": null, + "refs": { + } + }, + "GetAccessGrantsInstanceForPrefixResult": { + "base": null, + "refs": { + } + }, + "GetAccessGrantsInstanceRequest": { + "base": null, + "refs": { + } + }, + "GetAccessGrantsInstanceResourcePolicyRequest": { + "base": null, + "refs": { + } + }, + "GetAccessGrantsInstanceResourcePolicyResult": { + "base": null, + "refs": { + } + }, + "GetAccessGrantsInstanceResult": { + "base": null, + "refs": { + } + }, + "GetAccessGrantsLocationRequest": { + "base": null, + "refs": { + } + }, + "GetAccessGrantsLocationResult": { + "base": null, + "refs": { + } + }, "GetAccessPointConfigurationForObjectLambdaRequest": { "base": null, "refs": { @@ -909,6 +1189,16 @@ "refs": { } }, + "GetDataAccessRequest": { + "base": null, + "refs": { + } + }, + "GetDataAccessResult": { + "base": null, + "refs": { + } + }, "GetJobTaggingRequest": { "base": null, "refs": { @@ -1029,11 +1319,40 @@ "CreateBucketRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable bucket.

This is not supported by Amazon S3 on Outposts buckets.

" } }, + "Grantee": { + "base": "

The user, group, or role to which you are granting access. You can grant access to an IAM user or role. If you have added your corporate directory to Amazon Web Services IAM Identity Center and associated your Identity Center instance with your S3 Access Grants instance, the grantee can also be a corporate directory user or group.

", + "refs": { + "CreateAccessGrantRequest$Grantee": "

The user, group, or role to which you are granting access. You can grant access to an IAM user or role. If you have added your corporate directory to Amazon Web Services IAM Identity Center and associated your Identity Center instance with your S3 Access Grants instance, the grantee can also be a corporate directory user or group.

", + "CreateAccessGrantResult$Grantee": "

The user, group, or role to which you are granting access. You can grant access to an IAM user or role. If you have added your corporate directory to Amazon Web Services IAM Identity Center and associated your Identity Center instance with your S3 Access Grants instance, the grantee can also be a corporate directory user or group.

", + "GetAccessGrantResult$Grantee": "

The user, group, or role to which you are granting access. You can grant access to an IAM user or role. If you have added a corporate directory to Amazon Web Services IAM Identity Center and associated this Identity Center instance with the S3 Access Grants instance, the grantee can also be a corporate directory user or group.

", + "ListAccessGrantEntry$Grantee": "

The user, group, or role to which you are granting access. You can grant access to an IAM user or role. If you have added your corporate directory to Amazon Web Services IAM Identity Center and associated your Identity Center instance with your S3 Access Grants instance, the grantee can also be a corporate directory user or group.

" + } + }, + "GranteeIdentifier": { + "base": null, + "refs": { + "Grantee$GranteeIdentifier": "

The unique identifier of the Grantee. If the grantee type is IAM, the identifier is the IAM Amazon Resource Name (ARN) of the user or role. If the grantee type is a directory user or group, the identifier is 128-bit universally unique identifier (UUID) in the format a1b2c3d4-5678-90ab-cdef-EXAMPLE11111. You can obtain this UUID from your Amazon Web Services IAM Identity Center instance.

", + "ListAccessGrantsRequest$GranteeIdentifier": "

The unique identifer of the Grantee. If the grantee type is IAM, the identifier is the IAM Amazon Resource Name (ARN) of the user or role. If the grantee type is a directory user or group, the identifier is 128-bit universally unique identifier (UUID) in the format a1b2c3d4-5678-90ab-cdef-EXAMPLE11111. You can obtain this UUID from your Amazon Web Services IAM Identity Center instance.

" + } + }, + "GranteeType": { + "base": null, + "refs": { + "Grantee$GranteeType": "

The type of the grantee to which access has been granted. It can be one of the following values:

", + "ListAccessGrantsRequest$GranteeType": "

The type of the grantee to which access has been granted. It can be one of the following values:

" + } + }, "IAMRoleArn": { "base": null, "refs": { + "CreateAccessGrantsLocationRequest$IAMRoleArn": "

The Amazon Resource Name (ARN) of the IAM role for the registered location. S3 Access Grants assumes this role to manage access to the registered location.

", + "CreateAccessGrantsLocationResult$IAMRoleArn": "

The Amazon Resource Name (ARN) of the IAM role for the registered location. S3 Access Grants assumes this role to manage access to the registered location.

", "CreateJobRequest$RoleArn": "

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) role that Batch Operations will use to run this job's action on every object in the manifest.

", - "JobDescriptor$RoleArn": "

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) role assigned to run the tasks for this job.

" + "GetAccessGrantsLocationResult$IAMRoleArn": "

The Amazon Resource Name (ARN) of the IAM role for the registered location. S3 Access Grants assumes this role to manage access to the registered location.

", + "JobDescriptor$RoleArn": "

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) role assigned to run the tasks for this job.

", + "ListAccessGrantsLocationsEntry$IAMRoleArn": "

The Amazon Resource Name (ARN) of the IAM role for the registered location. S3 Access Grants assumes this role to manage access to the registered location.

", + "UpdateAccessGrantsLocationRequest$IAMRoleArn": "

The Amazon Resource Name (ARN) of the IAM role for the registered location. S3 Access Grants assumes this role to manage access to the registered location.

", + "UpdateAccessGrantsLocationResult$IAMRoleArn": "

The Amazon Resource Name (ARN) of the IAM role of the registered location. S3 Access Grants assumes this role to manage access to the registered location.

" } }, "ID": { @@ -1048,6 +1367,26 @@ "refs": { } }, + "IdentityCenterApplicationArn": { + "base": null, + "refs": { + "CreateAccessGrantRequest$ApplicationArn": "

The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center application associated with your Identity Center instance. If an application ARN is included in the request to create an access grant, the grantee can only access the S3 data through this application.

", + "CreateAccessGrantResult$ApplicationArn": "

The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center application associated with your Identity Center instance. If the grant includes an application ARN, the grantee can only access the S3 data through this application.

", + "GetAccessGrantResult$ApplicationArn": "

The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center application associated with your Identity Center instance. If the grant includes an application ARN, the grantee can only access the S3 data through this application.

", + "ListAccessGrantEntry$ApplicationArn": "

The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center application associated with your Identity Center instance. If the grant includes an application ARN, the grantee can only access the S3 data through this application.

", + "ListAccessGrantsRequest$ApplicationArn": "

The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center application associated with your Identity Center instance. If the grant includes an application ARN, the grantee can only access the S3 data through this application.

" + } + }, + "IdentityCenterArn": { + "base": null, + "refs": { + "AssociateAccessGrantsIdentityCenterRequest$IdentityCenterArn": "

The Amazon Resource Name (ARN) of the Amazon Web Services IAM Identity Center instance that you are associating with your S3 Access Grants instance. An IAM Identity Center instance is your corporate identity directory that you added to the IAM Identity Center. You can use the ListInstances API operation to retrieve a list of your Identity Center instances and their ARNs.

", + "CreateAccessGrantsInstanceRequest$IdentityCenterArn": "

If you would like to associate your S3 Access Grants instance with an Amazon Web Services IAM Identity Center instance, use this field to pass the Amazon Resource Name (ARN) of the Amazon Web Services IAM Identity Center instance that you are associating with your S3 Access Grants instance. An IAM Identity Center instance is your corporate identity directory that you added to the IAM Identity Center. You can use the ListInstances API operation to retrieve a list of your Identity Center instances and their ARNs.

", + "CreateAccessGrantsInstanceResult$IdentityCenterArn": "

If you associated your S3 Access Grants instance with an Amazon Web Services IAM Identity Center instance, this field returns the Amazon Resource Name (ARN) of the IAM Identity Center instance application; a subresource of the original Identity Center instance passed in the request. S3 Access Grants creates this Identity Center application for this specific S3 Access Grants instance.

", + "GetAccessGrantsInstanceResult$IdentityCenterArn": "

If you associated your S3 Access Grants instance with an Amazon Web Services IAM Identity Center instance, this field returns the Amazon Resource Name (ARN) of the Amazon Web Services IAM Identity Center instance application; a subresource of the original Identity Center instance. S3 Access Grants creates this Identity Center application for the specific S3 Access Grants instance.

", + "ListAccessGrantsInstanceEntry$IdentityCenterArn": "

If you associated your S3 Access Grants instance with an Amazon Web Services IAM Identity Center instance, this field returns the Amazon Resource Name (ARN) of the IAM Identity Center instance application; a subresource of the original Identity Center instance. S3 Access Grants creates this Identity Center application for the specific S3 Access Grants instance.

" + } + }, "Include": { "base": "

A container for what Amazon S3 Storage Lens configuration includes.

", "refs": { @@ -1374,6 +1713,54 @@ "LifecycleConfiguration$Rules": "

A lifecycle rule for individual objects in an Outposts bucket.

" } }, + "ListAccessGrantEntry": { + "base": "

Information about the access grant.

", + "refs": { + "AccessGrantsList$member": null + } + }, + "ListAccessGrantsInstanceEntry": { + "base": "

Information about the S3 Access Grants instance.

", + "refs": { + "AccessGrantsInstancesList$member": null + } + }, + "ListAccessGrantsInstancesRequest": { + "base": null, + "refs": { + } + }, + "ListAccessGrantsInstancesResult": { + "base": null, + "refs": { + } + }, + "ListAccessGrantsLocationsEntry": { + "base": "

A container for information about the registered location.

", + "refs": { + "AccessGrantsLocationsList$member": null + } + }, + "ListAccessGrantsLocationsRequest": { + "base": null, + "refs": { + } + }, + "ListAccessGrantsLocationsResult": { + "base": null, + "refs": { + } + }, + "ListAccessGrantsRequest": { + "base": null, + "refs": { + } + }, + "ListAccessGrantsResult": { + "base": null, + "refs": { + } + }, "ListAccessPointsForObjectLambdaRequest": { "base": null, "refs": { @@ -1549,6 +1936,9 @@ "MaxResults": { "base": null, "refs": { + "ListAccessGrantsInstancesRequest$MaxResults": "

The maximum number of access grants that you would like returned in the List Access Grants response. If the results include the pagination token NextToken, make another call using the NextToken to determine if there are more results.

", + "ListAccessGrantsLocationsRequest$MaxResults": "

The maximum number of access grants that you would like returned in the List Access Grants response. If the results include the pagination token NextToken, make another call using the NextToken to determine if there are more results.

", + "ListAccessGrantsRequest$MaxResults": "

The maximum number of access grants that you would like returned in the List Access Grants response. If the results include the pagination token NextToken, make another call using the NextToken to determine if there are more results.

", "ListAccessPointsForObjectLambdaRequest$MaxResults": "

The maximum number of access points that you want to include in the list. The response may contain fewer access points but will never contain more. If there are more than this number of access points, then the response will include a continuation token in the NextToken field that you can use to retrieve the next page of access points.

", "ListAccessPointsRequest$MaxResults": "

The maximum number of access points that you want to include in the list. If the specified bucket has more than this number of access points, then the response will include a continuation token in the NextToken field that you can use to retrieve the next page of access points.

", "ListJobsRequest$MaxResults": "

The maximum number of jobs that Amazon S3 will include in the List Jobs response. If there are more jobs than this number, the response will include a pagination token in the NextToken field to enable you to retrieve the next page of results.

", @@ -1937,6 +2327,14 @@ "JobListDescriptor$Operation": "

The operation that the specified job is configured to run on every object listed in the manifest.

" } }, + "Organization": { + "base": null, + "refs": { + "GetAccessGrantsInstanceResourcePolicyResult$Organization": "

The Organization of the resource policy of the S3 Access Grants instance.

", + "PutAccessGrantsInstanceResourcePolicyRequest$Organization": "

The Organization of the resource policy of the S3 Access Grants instance.

", + "PutAccessGrantsInstanceResourcePolicyResult$Organization": "

The Organization of the resource policy of the S3 Access Grants instance.

" + } + }, "OutputSchemaVersion": { "base": null, "refs": { @@ -1949,6 +2347,17 @@ "AccessControlTranslation$Owner": "

Specifies the replica ownership.

" } }, + "Permission": { + "base": null, + "refs": { + "CreateAccessGrantRequest$Permission": "

The type of access that you are granting to your S3 data, which can be set to one of the following values:

", + "CreateAccessGrantResult$Permission": "

The type of access that you are granting to your S3 data, which can be set to one of the following values:

", + "GetAccessGrantResult$Permission": "

The type of permission that was granted in the access grant. Can be one of the following values:

", + "GetDataAccessRequest$Permission": "

The type of permission granted to your S3 data, which can be set to one of the following values:

", + "ListAccessGrantEntry$Permission": "

The type of access granted to your S3 data, which can be set to one of the following values:

", + "ListAccessGrantsRequest$Permission": "

The type of permission granted to your S3 data, which can be set to one of the following values:

" + } + }, "Policy": { "base": null, "refs": { @@ -1961,6 +2370,14 @@ "PutMultiRegionAccessPointPolicyInput$Policy": "

The policy details for the PutMultiRegionAccessPoint request.

" } }, + "PolicyDocument": { + "base": null, + "refs": { + "GetAccessGrantsInstanceResourcePolicyResult$Policy": "

The resource policy of the S3 Access Grants instance.

", + "PutAccessGrantsInstanceResourcePolicyRequest$Policy": "

The resource policy of the S3 Access Grants instance that you are updating.

", + "PutAccessGrantsInstanceResourcePolicyResult$Policy": "

The updated resource policy of the S3 Access Grants instance.

" + } + }, "PolicyStatus": { "base": "

Indicates whether this access point policy is public. For more information about how Amazon S3 evaluates policies to determine whether they are public, see The Meaning of \"Public\" in the Amazon S3 User Guide.

", "refs": { @@ -1999,6 +2416,12 @@ "ReplicationRule$Priority": "

The priority indicates which rule has precedence whenever two or more replication rules conflict. S3 on Outposts attempts to replicate objects according to all replication rules. However, if there are two or more rules with the same destination Outposts bucket, then objects will be replicated according to the rule with the highest priority. The higher the number, the higher the priority.

For more information, see Creating replication rules on Outposts in the Amazon S3 User Guide.

" } }, + "Privilege": { + "base": null, + "refs": { + "GetDataAccessRequest$Privilege": "

The scope of the temporary access credential that S3 Access Grants vends to the grantee or client application.

" + } + }, "ProposedMultiRegionAccessPointPolicy": { "base": "

The proposed access control policy for the Multi-Region Access Point.

When you update the policy, the update is first listed as the proposed policy. After the update is finished and all Regions have been updated, the proposed policy is listed as the established policy. If both policies have the same version number, the proposed policy is the established policy.

", "refs": { @@ -2024,6 +2447,16 @@ "RegionalBucket$PublicAccessBlockEnabled": "

" } }, + "PutAccessGrantsInstanceResourcePolicyRequest": { + "base": null, + "refs": { + } + }, + "PutAccessGrantsInstanceResourcePolicyResult": { + "base": null, + "refs": { + } + }, "PutAccessPointConfigurationForObjectLambdaRequest": { "base": null, "refs": { @@ -2477,6 +2910,32 @@ "S3Grant$Permission": "

" } }, + "S3Prefix": { + "base": null, + "refs": { + "AccessGrantsLocationConfiguration$S3SubPrefix": "

The S3SubPrefix is appended to the location scope creating the grant scope. Use this field to narrow the scope of the grant to a subset of the location scope. This field is required if the location scope is the default location s3:// because you cannot create a grant for all of your S3 data in the Region and must narrow the scope. For example, if the location scope is the default location s3://, the S3SubPrefx can be a <bucket-name>/*, so the full grant scope path would be s3://<bucket-name>/*. Or the S3SubPrefx can be <bucket-name>/<prefix-name>*, so the full grant scope path would be or s3://<bucket-name>/<prefix-name>*.

If the S3SubPrefix includes a prefix, append the wildcard character * after the prefix to indicate that you want to include all object key names in the bucket that start with that prefix.

", + "CreateAccessGrantResult$GrantScope": "

The S3 path of the data to which you are granting access. It is the result of appending the Subprefix to the location scope.

", + "CreateAccessGrantsLocationRequest$LocationScope": "

The S3 path to the location that you are registering. The location scope can be the default S3 location s3://, the S3 path to a bucket s3://<bucket>, or the S3 path to a bucket and prefix s3://<bucket>/<prefix>. A prefix in S3 is a string of characters at the beginning of an object key name used to organize the objects that you store in your S3 buckets. For example, object key names that start with the engineering/ prefix or object key names that start with the marketing/campaigns/ prefix.

", + "CreateAccessGrantsLocationResult$LocationScope": "

The S3 URI path to the location that you are registering. The location scope can be the default S3 location s3://, the S3 path to a bucket, or the S3 path to a bucket and prefix. A prefix in S3 is a string of characters at the beginning of an object key name used to organize the objects that you store in your S3 buckets. For example, object key names that start with the engineering/ prefix or object key names that start with the marketing/campaigns/ prefix.

", + "GetAccessGrantResult$GrantScope": "

The S3 path of the data to which you are granting access. It is the result of appending the Subprefix to the location scope.

", + "GetAccessGrantsInstanceForPrefixRequest$S3Prefix": "

The S3 prefix of the access grants that you would like to retrieve.

", + "GetAccessGrantsLocationResult$LocationScope": "

The S3 URI path to the registered location. The location scope can be the default S3 location s3://, the S3 path to a bucket, or the S3 path to a bucket and prefix. A prefix in S3 is a string of characters at the beginning of an object key name used to organize the objects that you store in your S3 buckets. For example, object key names that start with the engineering/ prefix or object key names that start with the marketing/campaigns/ prefix.

", + "GetDataAccessRequest$Target": "

The S3 URI path of the data to which you are requesting temporary access credentials. If the requesting account has an access grant for this data, S3 Access Grants vends temporary access credentials in the response.

", + "GetDataAccessResult$MatchedGrantTarget": "

The S3 URI path of the data to which you are being granted temporary access credentials.

", + "ListAccessGrantEntry$GrantScope": "

The S3 path of the data to which you are granting access. It is the result of appending the Subprefix to the location scope.

", + "ListAccessGrantsLocationsEntry$LocationScope": "

The S3 path to the location that you are registering. The location scope can be the default S3 location s3://, the S3 path to a bucket s3://<bucket>, or the S3 path to a bucket and prefix s3://<bucket>/<prefix>. A prefix in S3 is a string of characters at the beginning of an object key name used to organize the objects that you store in your S3 buckets. For example, object key names that start with the engineering/ prefix or object key names that start with the marketing/campaigns/ prefix.

", + "ListAccessGrantsLocationsRequest$LocationScope": "

The S3 path to the location that you are registering. The location scope can be the default S3 location s3://, the S3 path to a bucket s3://<bucket>, or the S3 path to a bucket and prefix s3://<bucket>/<prefix>. A prefix in S3 is a string of characters at the beginning of an object key name used to organize the objects that you store in your S3 buckets. For example, object key names that start with the engineering/ prefix or object key names that start with the marketing/campaigns/ prefix.

", + "ListAccessGrantsRequest$GrantScope": "

The S3 path of the data to which you are granting access. It is the result of appending the Subprefix to the location scope.

", + "UpdateAccessGrantsLocationResult$LocationScope": "

The S3 URI path of the location that you are updating. You cannot update the scope of the registered location. The location scope can be the default S3 location s3://, the S3 path to a bucket s3://<bucket>, or the S3 path to a bucket and prefix s3://<bucket>/<prefix>.

" + } + }, + "S3PrefixType": { + "base": null, + "refs": { + "CreateAccessGrantRequest$S3PrefixType": "

The type of S3SubPrefix. The only possible value is Object. Pass this value if the access grant scope is an object. Do not pass this value if the access grant scope is a bucket or a bucket and a prefix.

", + "GetDataAccessRequest$TargetType": "

The type of Target. The only possible value is Object. Pass this value if the target data that you would like to access is a path to an object. Do not pass this value if the target data is a bucket or a bucket and a prefix.

" + } + }, "S3RegionalBucketArn": { "base": null, "refs": { @@ -2493,9 +2952,9 @@ "S3ResourceArn": { "base": null, "refs": { - "ListTagsForResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the S3 resource that you want to list the tags for.

", - "TagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the S3 resource that you're trying to add tags to.

", - "UntagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the S3 resource that you want to remove the resource tags from.

" + "ListTagsForResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the S3 resource that you want to list the tags for. The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, registered location, or grant.

", + "TagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the S3 resource that you're trying to add tags to. The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, registered location, or grant.

", + "UntagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the S3 resource that you're trying to remove the tags from.

" } }, "S3Retention": { @@ -2600,12 +3059,24 @@ "GeneratedManifestEncryption$SSES3": "

Specifies the use of SSE-S3 to encrypt generated manifest objects.

" } }, + "SecretAccessKey": { + "base": null, + "refs": { + "Credentials$SecretAccessKey": "

The secret access key of the Amazon Web Services STS temporary credential that S3 Access Grants vends to grantees and client applications.

" + } + }, "SelectionCriteria": { "base": "

", "refs": { "PrefixLevelStorageMetrics$SelectionCriteria": null } }, + "SessionToken": { + "base": null, + "refs": { + "Credentials$SessionToken": "

The Amazon Web Services STS temporary credential that S3 Access Grants vends to grantees and client applications.

" + } + }, "Setting": { "base": null, "refs": { @@ -2814,7 +3285,7 @@ } }, "Tag": { - "base": "

An Amazon Web Services resource tag that's associated with your S3 resource. You can add tags to new objects when you upload them, or you can add object tags to existing objects.

This data type is only supported for S3 Storage Lens groups.

", + "base": "

An Amazon Web Services resource tag that's associated with your S3 resource. You can add tags to new objects when you upload them, or you can add object tags to existing objects.

This operation is only supported for S3 Storage Lens groups and for S3 Access Grants. The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, registered location, or grant.

", "refs": { "TagList$member": null } @@ -2822,7 +3293,7 @@ "TagKeyList": { "base": null, "refs": { - "UntagResourceRequest$TagKeys": "

The tag key pair of the S3 resource tag that you're trying to remove.

" + "UntagResourceRequest$TagKeys": "

The array of tag key-value pairs that you're trying to remove from of the S3 resource.

" } }, "TagKeyString": { @@ -2830,13 +3301,16 @@ "refs": { "S3Tag$Key": "

Key of the tag

", "StorageLensTag$Key": "

", - "Tag$Key": "

The tag key for your Amazon Web Services resource. A tag key can be up to 128 Unicode characters in length and is case-sensitive. System created tags that begin with aws: aren’t supported.

", + "Tag$Key": "

The key of the key-value pair of a tag added to your Amazon Web Services resource. A tag key can be up to 128 Unicode characters in length and is case-sensitive. System created tags that begin with aws: aren’t supported.

", "TagKeyList$member": null } }, "TagList": { "base": null, "refs": { + "CreateAccessGrantRequest$Tags": "

The Amazon Web Services resource tags that you are adding to the access grant. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize, search for, and filter resources.

", + "CreateAccessGrantsInstanceRequest$Tags": "

The Amazon Web Services resource tags that you are adding to the S3 Access Grants instance. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize, search for, and filter resources.

", + "CreateAccessGrantsLocationRequest$Tags": "

The Amazon Web Services resource tags that you are adding to the S3 Access Grants location. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize, search for, and filter resources.

", "CreateStorageLensGroupRequest$Tags": "

The Amazon Web Services resource tags that you're adding to your Storage Lens group. This parameter is optional.

", "ListTagsForResourceResult$Tags": "

The Amazon Web Services resource tags that are associated with the resource.

", "TagResourceRequest$Tags": "

The Amazon Web Services resource tags that you want to add to the specified S3 resource.

" @@ -2857,7 +3331,7 @@ "refs": { "S3Tag$Value": "

Value of the tag

", "StorageLensTag$Value": "

", - "Tag$Value": "

The tag value for your Amazon Web Services resource. A tag value can be up to 256 Unicode characters in length and is case-sensitive.

" + "Tag$Value": "

The value of the key-value pair of a tag added to your Amazon Web Services resource. A tag value can be up to 256 Unicode characters in length and is case-sensitive.

" } }, "Tagging": { @@ -2921,6 +3395,16 @@ "refs": { } }, + "UpdateAccessGrantsLocationRequest": { + "base": null, + "refs": { + } + }, + "UpdateAccessGrantsLocationResult": { + "base": null, + "refs": { + } + }, "UpdateJobPriorityRequest": { "base": null, "refs": { diff --git a/models/apis/s3control/2018-08-20/paginators-1.json b/models/apis/s3control/2018-08-20/paginators-1.json index a84980de75c..664795a9379 100644 --- a/models/apis/s3control/2018-08-20/paginators-1.json +++ b/models/apis/s3control/2018-08-20/paginators-1.json @@ -1,5 +1,20 @@ { "pagination": { + "ListAccessGrants": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListAccessGrantsInstances": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListAccessGrantsLocations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListAccessPoints": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/models/apis/secretsmanager/2017-10-17/api-2.json b/models/apis/secretsmanager/2017-10-17/api-2.json index f250e3537e7..76c015e1002 100644 --- a/models/apis/secretsmanager/2017-10-17/api-2.json +++ b/models/apis/secretsmanager/2017-10-17/api-2.json @@ -13,6 +13,23 @@ "uid":"secretsmanager-2017-10-17" }, "operations":{ + "BatchGetSecretValue":{ + "name":"BatchGetSecretValue", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetSecretValueRequest"}, + "output":{"shape":"BatchGetSecretValueResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidRequestException"}, + {"shape":"DecryptionFailure"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidNextTokenException"} + ] + }, "CancelRotateSecret":{ "name":"CancelRotateSecret", "http":{ @@ -362,6 +379,18 @@ } }, "shapes":{ + "APIErrorListType":{ + "type":"list", + "member":{"shape":"APIErrorType"} + }, + "APIErrorType":{ + "type":"structure", + "members":{ + "SecretId":{"shape":"SecretIdType"}, + "ErrorCode":{"shape":"ErrorCode"}, + "Message":{"shape":"ErrorMessage"} + } + }, "AddReplicaRegionListType":{ "type":"list", "member":{"shape":"ReplicaRegionType"}, @@ -372,6 +401,26 @@ "max":1000, "min":1 }, + "BatchGetSecretValueRequest":{ + "type":"structure", + "members":{ + "SecretIdList":{"shape":"SecretIdListType"}, + "Filters":{"shape":"FiltersListType"}, + "MaxResults":{ + "shape":"MaxResultsBatchType", + "box":true + }, + "NextToken":{"shape":"NextTokenType"} + } + }, + "BatchGetSecretValueResponse":{ + "type":"structure", + "members":{ + "SecretValues":{"shape":"SecretValuesType"}, + "NextToken":{"shape":"NextTokenType"}, + "Errors":{"shape":"APIErrorListType"} + } + }, "BooleanType":{"type":"boolean"}, "CancelRotateSecretRequest":{ "type":"structure", @@ -535,6 +584,7 @@ }, "exception":true }, + "ErrorCode":{"type":"string"}, "ErrorMessage":{"type":"string"}, "ExcludeCharactersType":{ "type":"string", @@ -763,6 +813,12 @@ }, "exception":true }, + "MaxResultsBatchType":{ + "type":"integer", + "box":true, + "max":20, + "min":1 + }, "MaxResultsType":{ "type":"integer", "max":100, @@ -1020,6 +1076,12 @@ "min":1, "sensitive":true }, + "SecretIdListType":{ + "type":"list", + "member":{"shape":"SecretIdType"}, + "max":20, + "min":1 + }, "SecretIdType":{ "type":"string", "max":2048, @@ -1077,6 +1139,25 @@ "min":1, "sensitive":true }, + "SecretValueEntry":{ + "type":"structure", + "members":{ + "ARN":{"shape":"SecretARNType"}, + "Name":{"shape":"SecretNameType"}, + "VersionId":{"shape":"SecretVersionIdType"}, + "SecretBinary":{"shape":"SecretBinaryType"}, + "SecretString":{"shape":"SecretStringType"}, + "VersionStages":{"shape":"SecretVersionStagesType"}, + "CreatedDate":{ + "shape":"CreatedDateType", + "box":true + } + } + }, + "SecretValuesType":{ + "type":"list", + "member":{"shape":"SecretValueEntry"} + }, "SecretVersionIdType":{ "type":"string", "max":64, diff --git a/models/apis/secretsmanager/2017-10-17/docs-2.json b/models/apis/secretsmanager/2017-10-17/docs-2.json index e2a4257109e..a0d98654e79 100644 --- a/models/apis/secretsmanager/2017-10-17/docs-2.json +++ b/models/apis/secretsmanager/2017-10-17/docs-2.json @@ -2,6 +2,7 @@ "version": "2.0", "service": "Amazon Web Services Secrets Manager

Amazon Web Services Secrets Manager provides a service to enable you to store, manage, and retrieve, secrets.

This guide provides descriptions of the Secrets Manager API. For more information about using this service, see the Amazon Web Services Secrets Manager User Guide.

API Version

This version of the Secrets Manager API Reference documents the Secrets Manager API version 2017-10-17.

For a list of endpoints, see Amazon Web Services Secrets Manager endpoints.

Support and Feedback for Amazon Web Services Secrets Manager

We welcome your feedback. Send your comments to awssecretsmanager-feedback@amazon.com, or post your feedback and questions in the Amazon Web Services Secrets Manager Discussion Forum. For more information about the Amazon Web Services Discussion Forums, see Forums Help.

Logging API Requests

Amazon Web Services Secrets Manager supports Amazon Web Services CloudTrail, a service that records Amazon Web Services API calls for your Amazon Web Services account and delivers log files to an Amazon S3 bucket. By using information that's collected by Amazon Web Services CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the request, when it was made, and so on. For more about Amazon Web Services Secrets Manager and support for Amazon Web Services CloudTrail, see Logging Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail in the Amazon Web Services Secrets Manager User Guide. To learn more about CloudTrail, including enabling it and find your log files, see the Amazon Web Services CloudTrail User Guide.

", "operations": { + "BatchGetSecretValue": "

Retrieves the contents of the encrypted fields SecretString or SecretBinary for up to 20 secrets. To retrieve a single secret, call GetSecretValue.

To choose which secrets to retrieve, you can specify a list of secrets by name or ARN, or you can use filters. If Secrets Manager encounters errors such as AccessDeniedException while attempting to retrieve any of the secrets, you can see the errors in Errors in the response.

Secrets Manager generates CloudTrail GetSecretValue log entries for each secret you request when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:BatchGetSecretValue, and you must have secretsmanager:GetSecretValue for each secret. If you use filters, you must also have secretsmanager:ListSecrets. If the secrets are encrypted using customer-managed keys instead of the Amazon Web Services managed key aws/secretsmanager, then you also need kms:Decrypt permissions for the keys. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "CancelRotateSecret": "

Turns off automatic rotation, and if a rotation is currently in progress, cancels the rotation.

If you cancel a rotation in progress, it can leave the VersionStage labels in an unexpected state. You might need to remove the staging label AWSPENDING from the partially created version. You also need to determine whether to roll back to the previous version of the secret by moving the staging label AWSCURRENT to the version that has AWSPENDING. To determine which version has a specific staging label, call ListSecretVersionIds. Then use UpdateSecretVersionStage to change staging labels. For more information, see How rotation works.

To turn on automatic rotation again, call RotateSecret.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:CancelRotateSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "CreateSecret": "

Creates a new secret. A secret can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager. The secret also includes the connection information to access a database or other service, which Secrets Manager doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the important information needed to manage the secret.

For secrets that use managed rotation, you need to create the secret through the managing service. For more information, see Secrets Manager secrets managed by other Amazon Web Services services.

For information about creating a secret in the console, see Create a secret.

To create a secret, you can provide the secret value to be encrypted in either the SecretString parameter or the SecretBinary parameter, but not both. If you include SecretString or SecretBinary then Secrets Manager creates an initial secret version and automatically attaches the staging label AWSCURRENT to it.

For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the JSON you store in the SecretString matches the JSON structure of a database secret.

If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result.

If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS key.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:CreateSecret. If you include tags in the secret, you also need secretsmanager:TagResource. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

To encrypt the secret with a KMS key other than aws/secretsmanager, you need kms:GenerateDataKey and kms:Decrypt permission to the key.

", "DeleteResourcePolicy": "

Deletes the resource-based permission policy attached to the secret. To attach a policy to a secret, use PutResourcePolicy.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:DeleteResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", @@ -9,9 +10,9 @@ "DescribeSecret": "

Retrieves the details of a secret. It does not include the encrypted secret value. Secrets Manager only returns fields that have a value in the response.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:DescribeSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "GetRandomPassword": "

Generates a random password. We recommend that you specify the maximum length and include every character type that the system you are generating a password for can support.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:GetRandomPassword. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "GetResourcePolicy": "

Retrieves the JSON text of the resource-based policy document attached to the secret. For more information about permissions policies attached to a secret, see Permissions policies attached to a secret.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:GetResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", - "GetSecretValue": "

Retrieves the contents of the encrypted fields SecretString or SecretBinary from the specified version of a secret, whichever contains content.

We recommend that you cache your secret values by using client-side caching. Caching secrets improves speed and reduces your costs. For more information, see Cache secrets for your applications.

To retrieve the previous version of a secret, use VersionStage and specify AWSPREVIOUS. To revert to the previous version of a secret, call UpdateSecretVersionStage.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:GetSecretValue. If the secret is encrypted using a customer-managed key instead of the Amazon Web Services managed key aws/secretsmanager, then you also need kms:Decrypt permissions for that key. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", + "GetSecretValue": "

Retrieves the contents of the encrypted fields SecretString or SecretBinary from the specified version of a secret, whichever contains content.

To retrieve the values for a group of secrets, call BatchGetSecretValue.

We recommend that you cache your secret values by using client-side caching. Caching secrets improves speed and reduces your costs. For more information, see Cache secrets for your applications.

To retrieve the previous version of a secret, use VersionStage and specify AWSPREVIOUS. To revert to the previous version of a secret, call UpdateSecretVersionStage.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:GetSecretValue. If the secret is encrypted using a customer-managed key instead of the Amazon Web Services managed key aws/secretsmanager, then you also need kms:Decrypt permissions for that key. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "ListSecretVersionIds": "

Lists the versions of a secret. Secrets Manager uses staging labels to indicate the different versions of a secret. For more information, see Secrets Manager concepts: Versions.

To list the secrets in the account, use ListSecrets.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:ListSecretVersionIds. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", - "ListSecrets": "

Lists the secrets that are stored by Secrets Manager in the Amazon Web Services account, not including secrets that are marked for deletion. To see secrets marked for deletion, use the Secrets Manager console.

ListSecrets is eventually consistent, however it might not reflect changes from the last five minutes. To get the latest information for a specific secret, use DescribeSecret.

To list the versions of a secret, use ListSecretVersionIds.

To get the secret value from SecretString or SecretBinary, call GetSecretValue.

For information about finding secrets in the console, see Find secrets in Secrets Manager.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:ListSecrets. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", + "ListSecrets": "

Lists the secrets that are stored by Secrets Manager in the Amazon Web Services account, not including secrets that are marked for deletion. To see secrets marked for deletion, use the Secrets Manager console.

ListSecrets is eventually consistent, however it might not reflect changes from the last five minutes. To get the latest information for a specific secret, use DescribeSecret.

To list the versions of a secret, use ListSecretVersionIds.

To retrieve the values for the secrets, call BatchGetSecretValue or GetSecretValue.

For information about finding secrets in the console, see Find secrets in Secrets Manager.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:ListSecrets. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "PutResourcePolicy": "

Attaches a resource-based permission policy to a secret. A resource-based policy is optional. For more information, see Authentication and access control for Secrets Manager

For information about attaching a policy in the console, see Attach a permissions policy to a secret.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:PutResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "PutSecretValue": "

Creates a new version with a new encrypted secret value and attaches it to the secret. The version can contain a new SecretString value or a new SecretBinary value.

We recommend you avoid calling PutSecretValue at a sustained rate of more than once every 10 minutes. When you update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you call PutSecretValue more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions.

You can specify the staging labels to attach to the new version in VersionStages. If you don't include VersionStages, then Secrets Manager automatically moves the staging label AWSCURRENT to this version. If this operation creates the first version for the secret, then Secrets Manager automatically attaches the staging label AWSCURRENT to it. If this operation moves the staging label AWSCURRENT from another version to this version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to the version that AWSCURRENT was removed from.

This operation is idempotent. If you call this operation with a ClientRequestToken that matches an existing version's VersionId, and you specify the same secret data, the operation succeeds but does nothing. However, if the secret data is different, then the operation fails because you can't modify an existing version; you can only create new ones.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:PutSecretValue. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", "RemoveRegionsFromReplication": "

For a secret that is replicated to other Regions, deletes the secret replicas from the Regions you specify.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:RemoveRegionsFromReplication. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

", @@ -26,6 +27,18 @@ "ValidateResourcePolicy": "

Validates that a resource policy does not grant a wide range of principals access to your secret. A resource-based policy is optional for secrets.

The API performs three checks when validating the policy:

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:ValidateResourcePolicy and secretsmanager:PutResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "shapes": { + "APIErrorListType": { + "base": null, + "refs": { + "BatchGetSecretValueResponse$Errors": "

A list of errors Secrets Manager encountered while attempting to retrieve individual secrets.

" + } + }, + "APIErrorType": { + "base": "

The error Secrets Manager encountered while retrieving an individual secret as part of BatchGetSecretValue.

", + "refs": { + "APIErrorListType$member": null + } + }, "AddReplicaRegionListType": { "base": null, "refs": { @@ -39,6 +52,16 @@ "RotationRulesType$AutomaticallyAfterDays": "

The number of days between rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. If you use this field to set the rotation schedule, Secrets Manager calculates the next rotation date based on the previous rotation. Manually updating the secret value by calling PutSecretValue or UpdateSecret is considered a valid rotation.

In DescribeSecret and ListSecrets, this value is calculated from the rotation schedule after every successful rotation. In RotateSecret, you can set the rotation schedule in RotationRules with AutomaticallyAfterDays or ScheduleExpression, but not both. To set a rotation schedule in hours, use ScheduleExpression.

" } }, + "BatchGetSecretValueRequest": { + "base": null, + "refs": { + } + }, + "BatchGetSecretValueResponse": { + "base": null, + "refs": { + } + }, "BooleanType": { "base": null, "refs": { @@ -85,6 +108,7 @@ "base": null, "refs": { "GetSecretValueResponse$CreatedDate": "

The date and time that this version of the secret was created. If you don't specify which version in VersionId or VersionStage, then Secrets Manager uses the AWSCURRENT version.

", + "SecretValueEntry$CreatedDate": "

The date the secret was created.

", "SecretVersionsListEntry$CreatedDate": "

The date and time this version of the secret was created.

" } }, @@ -156,9 +180,16 @@ "refs": { } }, + "ErrorCode": { + "base": null, + "refs": { + "APIErrorType$ErrorCode": "

The error Secrets Manager encountered while retrieving an individual secret as part of BatchGetSecretValue, for example ResourceNotFoundException,InvalidParameterException, InvalidRequestException, DecryptionFailure, or AccessDeniedException.

" + } + }, "ErrorMessage": { "base": null, "refs": { + "APIErrorType$Message": "

A message describing the error.

", "DecryptionFailure$Message": null, "EncryptionFailure$Message": null, "InternalServiceError$Message": null, @@ -231,6 +262,7 @@ "FiltersListType": { "base": null, "refs": { + "BatchGetSecretValueRequest$Filters": "

The filters to choose which secrets to retrieve. You must include Filters or SecretIdList, but not both.

", "ListSecretsRequest$Filters": "

The filters to apply to the list of secrets.

" } }, @@ -361,6 +393,12 @@ "refs": { } }, + "MaxResultsBatchType": { + "base": null, + "refs": { + "BatchGetSecretValueRequest$MaxResults": "

The number of results to include in the response.

If there are more results available, in the response, Secrets Manager includes NextToken. To get the next results, call BatchGetSecretValue again with the value from NextToken.

" + } + }, "MaxResultsType": { "base": null, "refs": { @@ -388,6 +426,8 @@ "NextTokenType": { "base": null, "refs": { + "BatchGetSecretValueRequest$NextToken": "

A token that indicates where the output should continue from, if a previous call did not show all results. To get the next results, call BatchGetSecretValue again with this value.

", + "BatchGetSecretValueResponse$NextToken": "

Secrets Manager includes this value if there's more output available than what is included in the current response. This can occur even when the response includes no values at all, such as when you ask for a filtered view of a long list. To get the next results, call BatchGetSecretValue again with this value.

", "ListSecretVersionIdsRequest$NextToken": "

A token that indicates where the output should continue from, if a previous call did not show all results. To get the next results, call ListSecretVersionIds again with this value.

", "ListSecretVersionIdsResponse$NextToken": "

Secrets Manager includes this value if there's more output available than what is included in the current response. This can occur even when the response includes no values at all, such as when you ask for a filtered view of a long list. To get the next results, call ListSecretVersionIds again with this value.

", "ListSecretsRequest$NextToken": "

A token that indicates where the output should continue from, if a previous call did not show all results. To get the next results, call ListSecrets again with this value.

", @@ -597,6 +637,7 @@ "RestoreSecretResponse$ARN": "

The ARN of the secret that was restored.

", "RotateSecretResponse$ARN": "

The ARN of the secret.

", "SecretListEntry$ARN": "

The Amazon Resource Name (ARN) of the secret.

", + "SecretValueEntry$ARN": "

The Amazon Resource Name (ARN) of the secret.

", "StopReplicationToReplicaResponse$ARN": "

The ARN of the promoted secret. The ARN is the same as the original primary secret except the Region is changed.

", "UpdateSecretResponse$ARN": "

The ARN of the secret that was updated.

", "UpdateSecretVersionStageResponse$ARN": "

The ARN of the secret that was updated.

" @@ -608,12 +649,20 @@ "CreateSecretRequest$SecretBinary": "

The binary data to encrypt and store in the new version of the secret. We recommend that you store your binary data in a file and then pass the contents of the file as a parameter.

Either SecretString or SecretBinary must have a value, but not both.

This parameter is not available in the Secrets Manager console.

", "GetSecretValueResponse$SecretBinary": "

The decrypted secret value, if the secret value was originally provided as binary data in the form of a byte array. The response parameter represents the binary data as a base64-encoded string.

If the secret was created by using the Secrets Manager console, or if the secret value was originally provided as a string, then this field is omitted. The secret value appears in SecretString instead.

", "PutSecretValueRequest$SecretBinary": "

The binary data to encrypt and store in the new version of the secret. To use this parameter in the command-line tools, we recommend that you store your binary data in a file and then pass the contents of the file as a parameter.

You must include SecretBinary or SecretString, but not both.

You can't access this value from the Secrets Manager console.

", + "SecretValueEntry$SecretBinary": "

The decrypted secret value, if the secret value was originally provided as binary data in the form of a byte array. The parameter represents the binary data as a base64-encoded string.

", "UpdateSecretRequest$SecretBinary": "

The binary data to encrypt and store in the new version of the secret. We recommend that you store your binary data in a file and then pass the contents of the file as a parameter.

Either SecretBinary or SecretString must have a value, but not both.

You can't access this parameter in the Secrets Manager console.

" } }, + "SecretIdListType": { + "base": null, + "refs": { + "BatchGetSecretValueRequest$SecretIdList": "

The ARN or names of the secrets to retrieve. You must include Filters or SecretIdList, but not both.

" + } + }, "SecretIdType": { "base": null, "refs": { + "APIErrorType$SecretId": "

The ARN or name of the secret.

", "CancelRotateSecretRequest$SecretId": "

The ARN or name of the secret.

For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See Finding a secret from a partial ARN.

", "DeleteResourcePolicyRequest$SecretId": "

The ARN or name of the secret to delete the attached resource-based policy for.

For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See Finding a secret from a partial ARN.

", "DeleteSecretRequest$SecretId": "

The ARN or name of the secret to delete.

For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See Finding a secret from a partial ARN.

", @@ -627,6 +676,7 @@ "ReplicateSecretToRegionsRequest$SecretId": "

The ARN or name of the secret to replicate.

", "RestoreSecretRequest$SecretId": "

The ARN or name of the secret to restore.

For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See Finding a secret from a partial ARN.

", "RotateSecretRequest$SecretId": "

The ARN or name of the secret to rotate.

For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See Finding a secret from a partial ARN.

", + "SecretIdListType$member": null, "StopReplicationToReplicaRequest$SecretId": "

The ARN of the primary secret.

", "TagResourceRequest$SecretId": "

The identifier for the secret to attach tags to. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See Finding a secret from a partial ARN.

", "UntagResourceRequest$SecretId": "

The ARN or name of the secret.

For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See Finding a secret from a partial ARN.

", @@ -659,7 +709,8 @@ "PutSecretValueResponse$Name": "

The name of the secret.

", "RestoreSecretResponse$Name": "

The name of the secret that was restored.

", "RotateSecretResponse$Name": "

The name of the secret.

", - "SecretListEntry$Name": "

The friendly name of the secret. You can use forward slashes in the name to represent a path hierarchy. For example, /prod/databases/dbserver1 could represent the secret for a server named dbserver1 in the folder databases in the folder prod.

", + "SecretListEntry$Name": "

The friendly name of the secret.

", + "SecretValueEntry$Name": "

The friendly name of the secret.

", "UpdateSecretResponse$Name": "

The name of the secret that was updated.

", "UpdateSecretVersionStageResponse$Name": "

The name of the secret that was updated.

" } @@ -670,9 +721,22 @@ "CreateSecretRequest$SecretString": "

The text data to encrypt and store in this new version of the secret. We recommend you use a JSON structure of key/value pairs for your secret value.

Either SecretString or SecretBinary must have a value, but not both.

If you create a secret by using the Secrets Manager console then Secrets Manager puts the protected secret text in only the SecretString parameter. The Secrets Manager console stores the information as a JSON structure of key/value pairs that a Lambda rotation function can parse.

", "GetSecretValueResponse$SecretString": "

The decrypted secret value, if the secret value was originally provided as a string or through the Secrets Manager console.

If this secret was created by using the console, then Secrets Manager stores the information as a JSON structure of key/value pairs.

", "PutSecretValueRequest$SecretString": "

The text to encrypt and store in the new version of the secret.

You must include SecretBinary or SecretString, but not both.

We recommend you create the secret string as JSON key/value pairs, as shown in the example.

", + "SecretValueEntry$SecretString": "

The decrypted secret value, if the secret value was originally provided as a string or through the Secrets Manager console.

", "UpdateSecretRequest$SecretString": "

The text data to encrypt and store in the new version of the secret. We recommend you use a JSON structure of key/value pairs for your secret value.

Either SecretBinary or SecretString must have a value, but not both.

" } }, + "SecretValueEntry": { + "base": "

A structure that contains the secret value and other details for a secret.

", + "refs": { + "SecretValuesType$member": null + } + }, + "SecretValuesType": { + "base": null, + "refs": { + "BatchGetSecretValueResponse$SecretValues": "

A list of secret values.

" + } + }, "SecretVersionIdType": { "base": null, "refs": { @@ -682,6 +746,7 @@ "GetSecretValueResponse$VersionId": "

The unique identifier of this version of the secret.

", "PutSecretValueResponse$VersionId": "

The unique identifier of the version of the secret.

", "RotateSecretResponse$VersionId": "

The ID of the new version of the secret.

", + "SecretValueEntry$VersionId": "

The unique version identifier of this version of the secret.

", "SecretVersionsListEntry$VersionId": "

The unique version identifier of this version of the secret.

", "SecretVersionsToStagesMapType$key": null, "UpdateSecretResponse$VersionId": "

If Secrets Manager created a new version of the secret during this operation, then VersionId contains the unique identifier of the new version.

", @@ -703,6 +768,7 @@ "GetSecretValueResponse$VersionStages": "

A list of all of the staging labels currently attached to this version of the secret.

", "PutSecretValueRequest$VersionStages": "

A list of staging labels to attach to this version of the secret. Secrets Manager uses staging labels to track versions of a secret through the rotation process.

If you specify a staging label that's already associated with a different version of the same secret, then Secrets Manager removes the label from the other version and attaches it to this version. If you specify AWSCURRENT, and it is already attached to another version, then Secrets Manager also moves the staging label AWSPREVIOUS to the version that AWSCURRENT was removed from.

If you don't include VersionStages, then Secrets Manager automatically moves the staging label AWSCURRENT to this version.

", "PutSecretValueResponse$VersionStages": "

The list of staging labels that are currently attached to this version of the secret. Secrets Manager uses staging labels to track a version as it progresses through the secret rotation process.

", + "SecretValueEntry$VersionStages": "

A list of all of the staging labels currently attached to this version of the secret.

", "SecretVersionsListEntry$VersionStages": "

An array of staging labels that are currently associated with this version of the secret.

", "SecretVersionsToStagesMapType$value": null } diff --git a/models/apis/secretsmanager/2017-10-17/paginators-1.json b/models/apis/secretsmanager/2017-10-17/paginators-1.json index 23589621f3c..2c985b80a90 100644 --- a/models/apis/secretsmanager/2017-10-17/paginators-1.json +++ b/models/apis/secretsmanager/2017-10-17/paginators-1.json @@ -1,5 +1,10 @@ { "pagination": { + "BatchGetSecretValue": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListSecretVersionIds": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/models/apis/securityhub/2018-10-26/api-2.json b/models/apis/securityhub/2018-10-26/api-2.json index 07d2c22a7e2..e6cfdd15d00 100644 --- a/models/apis/securityhub/2018-10-26/api-2.json +++ b/models/apis/securityhub/2018-10-26/api-2.json @@ -767,6 +767,22 @@ {"shape":"ResourceNotFoundException"} ] }, + "GetSecurityControlDefinition":{ + "name":"GetSecurityControlDefinition", + "http":{ + "method":"GET", + "requestUri":"/securityControl/definition" + }, + "input":{"shape":"GetSecurityControlDefinitionRequest"}, + "output":{"shape":"GetSecurityControlDefinitionResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"InvalidInputException"}, + {"shape":"InvalidAccessException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "InviteMembers":{ "name":"InviteMembers", "http":{ @@ -1026,6 +1042,23 @@ {"shape":"LimitExceededException"} ] }, + "UpdateSecurityControl":{ + "name":"UpdateSecurityControl", + "http":{ + "method":"PATCH", + "requestUri":"/securityControl/update" + }, + "input":{"shape":"UpdateSecurityControlRequest"}, + "output":{"shape":"UpdateSecurityControlResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"InvalidInputException"}, + {"shape":"InvalidAccessException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"} + ] + }, "UpdateSecurityHubConfiguration":{ "name":"UpdateSecurityHubConfiguration", "http":{ @@ -1214,6 +1247,10 @@ "max":10, "min":1 }, + "AlphaNumericNonEmptyString":{ + "type":"string", + "pattern":"^[-_ a-zA-Z0-9]+$" + }, "ArnList":{ "type":"list", "member":{"shape":"NonEmptyString"} @@ -6350,7 +6387,11 @@ "FindingProviderFieldsTypes":{"shape":"StringFilterList"}, "Sample":{"shape":"BooleanFilterList"}, "ComplianceSecurityControlId":{"shape":"StringFilterList"}, - "ComplianceAssociatedStandardsId":{"shape":"StringFilterList"} + "ComplianceAssociatedStandardsId":{"shape":"StringFilterList"}, + "VulnerabilitiesExploitAvailable":{"shape":"StringFilterList"}, + "VulnerabilitiesFixAvailable":{"shape":"StringFilterList"}, + "ComplianceSecurityControlParametersName":{"shape":"StringFilterList"}, + "ComplianceSecurityControlParametersValue":{"shape":"StringFilterList"} } }, "AwsSecurityFindingIdentifier":{ @@ -7006,6 +7047,12 @@ } }, "Boolean":{"type":"boolean"}, + "BooleanConfigurationOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"Boolean"} + } + }, "BooleanFilter":{ "type":"structure", "members":{ @@ -7093,7 +7140,8 @@ "RelatedRequirements":{"shape":"RelatedRequirementsList"}, "StatusReasons":{"shape":"StatusReasonsList"}, "SecurityControlId":{"shape":"NonEmptyString"}, - "AssociatedStandards":{"shape":"AssociatedStandardsList"} + "AssociatedStandards":{"shape":"AssociatedStandardsList"}, + "SecurityControlParameters":{"shape":"SecurityControlParametersList"} } }, "ComplianceStatus":{ @@ -7105,6 +7153,20 @@ "NOT_AVAILABLE" ] }, + "ConfigurationOptions":{ + "type":"structure", + "members":{ + "Integer":{"shape":"IntegerConfigurationOptions"}, + "IntegerList":{"shape":"IntegerListConfigurationOptions"}, + "Double":{"shape":"DoubleConfigurationOptions"}, + "String":{"shape":"StringConfigurationOptions"}, + "StringList":{"shape":"StringListConfigurationOptions"}, + "Boolean":{"shape":"BooleanConfigurationOptions"}, + "Enum":{"shape":"EnumConfigurationOptions"}, + "EnumList":{"shape":"EnumListConfigurationOptions"} + }, + "union":true + }, "ContainerDetails":{ "type":"structure", "members":{ @@ -7259,6 +7321,10 @@ "TotalCount":{"shape":"Long"} } }, + "CustomizableProperties":{ + "type":"list", + "member":{"shape":"SecurityControlProperty"} + }, "Cvss":{ "type":"structure", "members":{ @@ -7599,6 +7665,14 @@ } }, "Double":{"type":"double"}, + "DoubleConfigurationOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"Double"}, + "Min":{"shape":"Double"}, + "Max":{"shape":"Double"} + } + }, "EnableImportFindingsForProductRequest":{ "type":"structure", "required":["ProductArn"], @@ -7637,6 +7711,21 @@ "members":{ } }, + "EnumConfigurationOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"NonEmptyString"}, + "AllowedValues":{"shape":"StringList"} + } + }, + "EnumListConfigurationOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"StringList"}, + "MaxItems":{"shape":"Integer"}, + "AllowedValues":{"shape":"StringList"} + } + }, "FieldMap":{ "type":"map", "key":{"shape":"NonEmptyString"}, @@ -7931,6 +8020,24 @@ "UnprocessedAccounts":{"shape":"ResultList"} } }, + "GetSecurityControlDefinitionRequest":{ + "type":"structure", + "required":["SecurityControlId"], + "members":{ + "SecurityControlId":{ + "shape":"NonEmptyString", + "location":"querystring", + "locationName":"SecurityControlId" + } + } + }, + "GetSecurityControlDefinitionResponse":{ + "type":"structure", + "required":["SecurityControlDefinition"], + "members":{ + "SecurityControlDefinition":{"shape":"SecurityControlDefinition"} + } + }, "IcmpTypeCode":{ "type":"structure", "members":{ @@ -8003,10 +8110,27 @@ } }, "Integer":{"type":"integer"}, + "IntegerConfigurationOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"Integer"}, + "Min":{"shape":"Integer"}, + "Max":{"shape":"Integer"} + } + }, "IntegerList":{ "type":"list", "member":{"shape":"Integer"} }, + "IntegerListConfigurationOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"IntegerList"}, + "Min":{"shape":"Integer"}, + "Max":{"shape":"Integer"}, + "MaxItems":{"shape":"Integer"} + } + }, "IntegrationType":{ "type":"string", "enum":[ @@ -8530,7 +8654,9 @@ "members":{ "Gte":{"shape":"Double"}, "Lte":{"shape":"Double"}, - "Eq":{"shape":"Double"} + "Eq":{"shape":"Double"}, + "Gt":{"shape":"Double"}, + "Lt":{"shape":"Double"} } }, "NumberFilterList":{ @@ -8559,6 +8685,56 @@ "type":"list", "member":{"shape":"Page"} }, + "ParameterConfiguration":{ + "type":"structure", + "required":["ValueType"], + "members":{ + "ValueType":{"shape":"ParameterValueType"}, + "Value":{"shape":"ParameterValue"} + } + }, + "ParameterDefinition":{ + "type":"structure", + "required":[ + "Description", + "ConfigurationOptions" + ], + "members":{ + "Description":{"shape":"NonEmptyString"}, + "ConfigurationOptions":{"shape":"ConfigurationOptions"} + } + }, + "ParameterDefinitions":{ + "type":"map", + "key":{"shape":"NonEmptyString"}, + "value":{"shape":"ParameterDefinition"} + }, + "ParameterValue":{ + "type":"structure", + "members":{ + "Integer":{"shape":"Integer"}, + "IntegerList":{"shape":"IntegerList"}, + "Double":{"shape":"Double"}, + "String":{"shape":"NonEmptyString"}, + "StringList":{"shape":"StringList"}, + "Boolean":{"shape":"Boolean"}, + "Enum":{"shape":"NonEmptyString"}, + "EnumList":{"shape":"StringList"} + }, + "union":true + }, + "ParameterValueType":{ + "type":"string", + "enum":[ + "DEFAULT", + "CUSTOM" + ] + }, + "Parameters":{ + "type":"map", + "key":{"shape":"NonEmptyString"}, + "value":{"shape":"ParameterConfiguration"} + }, "Partition":{ "type":"string", "enum":[ @@ -8871,6 +9047,15 @@ "AwsMskCluster":{"shape":"AwsMskClusterDetails"} } }, + "ResourceInUseException":{ + "type":"structure", + "members":{ + "Message":{"shape":"NonEmptyString"}, + "Code":{"shape":"NonEmptyString"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, "ResourceList":{ "type":"list", "member":{"shape":"Resource"} @@ -9135,7 +9320,10 @@ "Description":{"shape":"NonEmptyString"}, "RemediationUrl":{"shape":"NonEmptyString"}, "SeverityRating":{"shape":"SeverityRating"}, - "SecurityControlStatus":{"shape":"ControlStatus"} + "SecurityControlStatus":{"shape":"ControlStatus"}, + "UpdateStatus":{"shape":"UpdateStatus"}, + "Parameters":{"shape":"Parameters"}, + "LastUpdateReason":{"shape":"AlphaNumericNonEmptyString"} } }, "SecurityControlDefinition":{ @@ -9154,13 +9342,30 @@ "Description":{"shape":"NonEmptyString"}, "RemediationUrl":{"shape":"NonEmptyString"}, "SeverityRating":{"shape":"SeverityRating"}, - "CurrentRegionAvailability":{"shape":"RegionAvailabilityStatus"} + "CurrentRegionAvailability":{"shape":"RegionAvailabilityStatus"}, + "CustomizableProperties":{"shape":"CustomizableProperties"}, + "ParameterDefinitions":{"shape":"ParameterDefinitions"} } }, "SecurityControlDefinitions":{ "type":"list", "member":{"shape":"SecurityControlDefinition"} }, + "SecurityControlParameter":{ + "type":"structure", + "members":{ + "Name":{"shape":"NonEmptyString"}, + "Value":{"shape":"TypeList"} + } + }, + "SecurityControlParametersList":{ + "type":"list", + "member":{"shape":"SecurityControlParameter"} + }, + "SecurityControlProperty":{ + "type":"string", + "enum":["Parameters"] + }, "SecurityControls":{ "type":"list", "member":{"shape":"SecurityControl"} @@ -9497,6 +9702,14 @@ "type":"list", "member":{"shape":"StatusReason"} }, + "StringConfigurationOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"NonEmptyString"}, + "Re2Expression":{"shape":"NonEmptyString"}, + "ExpressionDescription":{"shape":"NonEmptyString"} + } + }, "StringFilter":{ "type":"structure", "members":{ @@ -9523,6 +9736,15 @@ "type":"list", "member":{"shape":"NonEmptyString"} }, + "StringListConfigurationOptions":{ + "type":"structure", + "members":{ + "DefaultValue":{"shape":"StringList"}, + "Re2Expression":{"shape":"NonEmptyString"}, + "MaxItems":{"shape":"Integer"}, + "ExpressionDescription":{"shape":"NonEmptyString"} + } + }, "TagKey":{ "type":"string", "max":128, @@ -9827,6 +10049,23 @@ "members":{ } }, + "UpdateSecurityControlRequest":{ + "type":"structure", + "required":[ + "SecurityControlId", + "Parameters" + ], + "members":{ + "SecurityControlId":{"shape":"NonEmptyString"}, + "Parameters":{"shape":"Parameters"}, + "LastUpdateReason":{"shape":"AlphaNumericNonEmptyString"} + } + }, + "UpdateSecurityControlResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateSecurityHubConfigurationRequest":{ "type":"structure", "members":{ @@ -9857,6 +10096,13 @@ "members":{ } }, + "UpdateStatus":{ + "type":"string", + "enum":[ + "READY", + "UPDATING" + ] + }, "VerificationState":{ "type":"string", "enum":[ diff --git a/models/apis/securityhub/2018-10-26/docs-2.json b/models/apis/securityhub/2018-10-26/docs-2.json index 5b1218b2f99..3ab6a442d51 100644 --- a/models/apis/securityhub/2018-10-26/docs-2.json +++ b/models/apis/securityhub/2018-10-26/docs-2.json @@ -50,6 +50,7 @@ "GetInvitationsCount": "

Returns the count of all Security Hub membership invitations that were sent to the current member account, not including the currently accepted invitation.

", "GetMasterAccount": "

This method is deprecated. Instead, use GetAdministratorAccount.

The Security Hub console continues to use GetMasterAccount. It will eventually change to use GetAdministratorAccount. Any IAM policies that specifically control access to this function must continue to use GetMasterAccount. You should also add GetAdministratorAccount to your policies to ensure that the correct permissions are in place after the console begins to use GetAdministratorAccount.

Provides the details for the Security Hub administrator account for the current member account.

Can be used by both member accounts that are managed using Organizations and accounts that were invited manually.

", "GetMembers": "

Returns the details for the Security Hub member accounts for the specified account IDs.

An administrator account can be either the delegated Security Hub administrator account for an organization or an administrator account that enabled Security Hub manually.

The results include both member accounts that are managed using Organizations and accounts that were invited manually.

", + "GetSecurityControlDefinition": "

Retrieves the definition of a security control. The definition includes the control title, description, Region availability, parameter definitions, and other details.

", "InviteMembers": "

Invites other Amazon Web Services accounts to become member accounts for the Security Hub administrator account that the invitation is sent from.

This operation is only used to invite accounts that do not belong to an organization. Organization accounts do not receive invitations.

Before you can use this action to invite a member, you must first use the CreateMembers action to create the member account in Security Hub.

When the account owner enables Security Hub and accepts the invitation to become a member account, the administrator account can view the findings generated from the member account.

", "ListAutomationRules": "

A list of automation rules and their metadata for the calling account.

", "ListEnabledProductsForImport": "

Lists all findings-generating solutions (products) that you are subscribed to receive findings from in Security Hub.

", @@ -67,6 +68,7 @@ "UpdateFindings": "

UpdateFindings is deprecated. Instead of UpdateFindings, use BatchUpdateFindings.

Updates the Note and RecordState of the Security Hub-aggregated findings that the filter attributes specify. Any member account that can view the finding also sees the update to the finding.

", "UpdateInsight": "

Updates the Security Hub insight identified by the specified insight ARN.

", "UpdateOrganizationConfiguration": "

Used to update the configuration related to Organizations. Can only be called from a Security Hub administrator account.

", + "UpdateSecurityControl": "

Updates the properties of a security control.

", "UpdateSecurityHubConfiguration": "

Updates configuration options for Security Hub.

", "UpdateStandardsControl": "

Used to control whether an individual security standard control is enabled or disabled.

" }, @@ -217,6 +219,13 @@ "ListOrganizationAdminAccountsRequest$MaxResults": "

The maximum number of items to return in the response.

" } }, + "AlphaNumericNonEmptyString": { + "base": null, + "refs": { + "SecurityControl$LastUpdateReason": "

The most recent reason for updating the customizable properties of a security control. This differs from the UpdateReason field of the BatchUpdateStandardsControlAssociations API, which tracks the reason for updating the enablement status of a control. This field accepts alphanumeric characters in addition to white spaces, dashes, and underscores.

", + "UpdateSecurityControlRequest$LastUpdateReason": "

The most recent reason for updating the properties of the security control. This field accepts alphanumeric characters in addition to white spaces, dashes, and underscores.

" + } + }, "ArnList": { "base": null, "refs": { @@ -882,7 +891,7 @@ } }, "AwsCloudFrontDistributionOriginItem": { - "base": "

A complex type that describes the Amazon S3 bucket, HTTP server (for example, a web server), AWS Elemental MediaStore, or other server from which CloudFront gets your files.

", + "base": "

A complex type that describes the Amazon S3 bucket, HTTP server (for example, a web server), Elemental MediaStore, or other server from which CloudFront gets your files.

", "refs": { "AwsCloudFrontDistributionOriginItemList$member": null } @@ -3816,7 +3825,7 @@ } }, "AwsSecurityFindingFilters": { - "base": "

A collection of attributes that are applied to all active Security Hub-aggregated findings and that result in a subset of findings that are included in this insight.

You can filter by up to 10 finding attributes. For each attribute, you can provide up to 20 filter values.

", + "base": "

A collection of filters that are applied to all active findings aggregated by Security Hub.

You can filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter values.

", "refs": { "CreateInsightRequest$Filters": "

One or more attributes used to filter the findings included in the insight. The insight only includes findings that match the criteria defined in the filters.

", "GetFindingsRequest$Filters": "

The finding attributes used to define a condition to filter the returned findings.

You can filter by up to 10 finding attributes. For each attribute, you can provide up to 20 filter values.

Note that in the available filter fields, WorkflowState is deprecated. To search for a finding based on its workflow status, use WorkflowStatus.

", @@ -4522,6 +4531,7 @@ "AwsWafv2VisibilityConfigDetails$CloudWatchMetricsEnabled": "

A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see WAF metrics and dimensions in the WAF Developer Guide.

", "AwsWafv2VisibilityConfigDetails$SampledRequestsEnabled": "

A boolean indicating whether WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the WAF console.

", "AwsWafv2WebAclDetails$ManagedbyFirewallManager": "

Indicates whether this web ACL is managed by Firewall Manager.

", + "BooleanConfigurationOptions$DefaultValue": "

The Security Hub default value for a boolean parameter.

", "BooleanFilter$Value": "

The value of the boolean.

", "ClassificationResult$AdditionalOccurrences": "

Indicates whether there are additional occurrences of sensitive data that are not included in the finding. This occurs when the number of occurrences exceeds the maximum that can be included.

", "ContainerDetails$Privileged": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user).

", @@ -4534,6 +4544,7 @@ "FindingHistoryRecord$FindingCreated": "

Identifies whether the event marks the creation of a new finding. A value of True means that the finding is newly created. A value of False means that the finding isn’t newly created.

", "ListMembersRequest$OnlyAssociated": "

Specifies which member accounts to include in the response based on their relationship status with the administrator account. The default value is TRUE.

If OnlyAssociated is set to TRUE, the response includes member accounts whose relationship status with the administrator account is set to ENABLED.

If OnlyAssociated is set to FALSE, the response includes all existing member accounts.

", "NetworkConnectionAction$Blocked": "

Indicates whether the network connection attempt was blocked.

", + "ParameterValue$Boolean": "

A control parameter that is a boolean.

", "PortProbeAction$Blocked": "

Indicates whether the port probe was blocked.

", "Standard$EnabledByDefault": "

Whether the standard is enabled by default. When Security Hub is enabled from the console, if a standard is enabled by default, the check box for that standard is selected by default.

When Security Hub is enabled using the EnableSecurityHub API operation, the standard is enabled by default unless EnableDefaultStandards is set to false.

", "UpdateAutomationRulesRequestItem$IsTerminal": "

Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.

", @@ -4544,6 +4555,12 @@ "VpcInfoPeeringOptionsDetails$AllowEgressFromLocalVpcToRemoteClassicLink": "

Indicates whether a local VPC can communicate with a ClassicLink connection in the peer VPC over the VPC peering connection.

" } }, + "BooleanConfigurationOptions": { + "base": "

The options for customizing a security control parameter with a boolean. For a boolean parameter, the options are true and false.

", + "refs": { + "ConfigurationOptions$Boolean": "

The options for customizing a security control parameter that is a boolean. For a boolean parameter, the options are true and false.

" + } + }, "BooleanFilter": { "base": "

Boolean filter for querying findings.

", "refs": { @@ -4628,6 +4645,12 @@ "Compliance$Status": "

The result of a standards check.

The valid values for Status are as follows.

" } }, + "ConfigurationOptions": { + "base": "

The options for customizing a security control parameter.

", + "refs": { + "ParameterDefinition$ConfigurationOptions": "

The options for customizing a control parameter. Customization options vary based on the data type of the parameter.

" + } + }, "ContainerDetails": { "base": "

Container details related to a finding.

", "refs": { @@ -4731,6 +4754,12 @@ "ClassificationResult$CustomDataIdentifiers": "

Provides details about sensitive data that was identified based on customer-defined configuration.

" } }, + "CustomizableProperties": { + "base": null, + "refs": { + "SecurityControlDefinition$CustomizableProperties": "

Security control properties that you can customize. Currently, only parameter customization is supported for select controls. An empty array is returned for controls that don’t support custom properties.

" + } + }, "Cvss": { "base": "

CVSS scores from the advisory related to the vulnerability.

", "refs": { @@ -4988,16 +5017,28 @@ "AwsKmsKeyDetails$CreationDate": "

Indicates when the KMS key was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

", "AwsRedshiftClusterRestoreStatus$CurrentRestoreRateInMegaBytesPerSecond": "

The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup.

This field is only updated when you restore to DC2 and DS2 node types.

", "Cvss$BaseScore": "

The base CVSS score.

", + "DoubleConfigurationOptions$DefaultValue": "

The Security Hub default value for a control parameter that is a double.

", + "DoubleConfigurationOptions$Min": "

The minimum valid value for a control parameter that is a double.

", + "DoubleConfigurationOptions$Max": "

The maximum valid value for a control parameter that is a double.

", "GeoLocation$Lon": "

The longitude of the location.

", "GeoLocation$Lat": "

The latitude of the location.

", "NumberFilter$Gte": "

The greater-than-equal condition to be applied to a single field when querying for findings.

", "NumberFilter$Lte": "

The less-than-equal condition to be applied to a single field when querying for findings.

", "NumberFilter$Eq": "

The equal-to condition to be applied to a single field when querying for findings.

", - "Severity$Product": "

Deprecated. This attribute is being deprecated. Instead of providing Product, provide Original.

The native severity as defined by the Amazon Web Services service or integrated partner product that generated the finding.

", + "NumberFilter$Gt": "

The greater-than condition to be applied to a single field when querying for findings.

", + "NumberFilter$Lt": "

The less-than condition to be applied to a single field when querying for findings.

", + "ParameterValue$Double": "

A control parameter that is a double.

", + "Severity$Product": "

Deprecated. This attribute isn't included in findings. Instead of providing Product, provide Original.

The native severity as defined by the Amazon Web Services service or integrated partner product that generated the finding.

", "SeverityUpdate$Product": "

The native severity as defined by the Amazon Web Services service or integrated partner product that generated the finding.

", "Vulnerability$EpssScore": "

The Exploit Prediction Scoring System (EPSS) score for a finding.

" } }, + "DoubleConfigurationOptions": { + "base": "

The options for customizing a security control parameter that is a double.

", + "refs": { + "ConfigurationOptions$Double": "

The options for customizing a security control parameter that is a double.

" + } + }, "EnableImportFindingsForProductRequest": { "base": null, "refs": { @@ -5028,6 +5069,18 @@ "refs": { } }, + "EnumConfigurationOptions": { + "base": "

The options for customizing a security control parameter that is an enum.

", + "refs": { + "ConfigurationOptions$Enum": "

The options for customizing a security control parameter that is an enum.

" + } + }, + "EnumListConfigurationOptions": { + "base": "

The options for customizing a security control parameter that is a list of enums.

", + "refs": { + "ConfigurationOptions$EnumList": "

The options for customizing a security control parameter that is a list of enums.

" + } + }, "FieldMap": { "base": null, "refs": { @@ -5278,6 +5331,16 @@ "refs": { } }, + "GetSecurityControlDefinitionRequest": { + "base": null, + "refs": { + } + }, + "GetSecurityControlDefinitionResponse": { + "base": null, + "refs": { + } + }, "IcmpTypeCode": { "base": "

An Internet Control Message Protocol (ICMP) type and code.

", "refs": { @@ -5534,15 +5597,23 @@ "CodeVulnerabilitiesFilePath$EndLine": "

The line number of the last line of code in which the vulnerability is located.

", "CodeVulnerabilitiesFilePath$StartLine": "

The line number of the first line of code in which the vulnerability is located.

", "DateRange$Value": "

A date range value for the date filter.

", + "EnumListConfigurationOptions$MaxItems": "

The maximum number of list items that an enum list control parameter can accept.

", "FirewallPolicyStatelessRuleGroupReferencesDetails$Priority": "

The order in which to run the stateless rule group.

", "GetInvitationsCountResponse$InvitationsCount": "

The number of all membership invitations sent to this Security Hub member account, not including the currently accepted invitation.

", "IcmpTypeCode$Code": "

The ICMP code for which to deny or allow access. To deny or allow all codes, use the value -1.

", "IcmpTypeCode$Type": "

The ICMP type for which to deny or allow access. To deny or allow all types, use the value -1.

", "InsightResultValue$Count": "

The number of findings returned for each GroupByAttributeValue.

", + "IntegerConfigurationOptions$DefaultValue": "

The Security Hub default value for a control parameter that is an integer.

", + "IntegerConfigurationOptions$Min": "

The minimum valid value for a control parameter that is an integer.

", + "IntegerConfigurationOptions$Max": "

The maximum valid value for a control parameter that is an integer.

", "IntegerList$member": null, + "IntegerListConfigurationOptions$Min": "

The minimum valid value for a control parameter that is a list of integers.

", + "IntegerListConfigurationOptions$Max": "

The maximum valid value for a control parameter that is a list of integers.

", + "IntegerListConfigurationOptions$MaxItems": "

The maximum number of list items that an interger list control parameter can accept.

", "IpOrganizationDetails$Asn": "

The Autonomous System Number (ASN) of the internet provider

", "Network$SourcePort": "

The source port of network-related information about a finding.

", "Network$DestinationPort": "

The destination port of network-related information about a finding.

", + "ParameterValue$Integer": "

A control parameter that is an integer.

", "PatchSummary$InstalledCount": "

The number of patches from the compliance standard that were installed successfully.

", "PatchSummary$MissingCount": "

The number of patches that are part of the compliance standard but are not installed. The count includes patches that failed to install.

", "PatchSummary$FailedCount": "

The number of patches from the compliance standard that failed to install.

", @@ -5561,16 +5632,31 @@ "RuleGroupSourceStatelessRuleMatchAttributesSourcePorts$FromPort": "

The starting port value for the port range.

", "RuleGroupSourceStatelessRuleMatchAttributesSourcePorts$ToPort": "

The ending port value for the port range.

", "RuleGroupSourceStatelessRulesDetails$Priority": "

Indicates the order in which to run this rule relative to all of the rules in the stateless rule group.

", - "Severity$Normalized": "

Deprecated. The normalized severity of a finding. This attribute is being deprecated. Instead of providing Normalized, provide Label.

If you provide Label and do not provide Normalized, then Normalized is set automatically as follows.

", + "Severity$Normalized": "

Deprecated. The normalized severity of a finding. Instead of providing Normalized, provide Label.

If you provide Label and do not provide Normalized, then Normalized is set automatically as follows.

", + "StringListConfigurationOptions$MaxItems": "

The maximum number of list items that a string list control parameter can accept.

", "Threat$ItemCount": "

This total number of items in which the threat has been detected.

", "UnprocessedAutomationRule$ErrorCode": "

The error code associated with the unprocessed automation rule.

" } }, + "IntegerConfigurationOptions": { + "base": "

The options for customizing a security control parameter that is an integer.

", + "refs": { + "ConfigurationOptions$Integer": "

The options for customizing a security control parameter that is an integer.

" + } + }, "IntegerList": { "base": null, "refs": { "AwsEc2VpnConnectionOptionsTunnelOptionsDetails$Phase1DhGroupNumbers": "

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 IKE negotiations.

", - "AwsEc2VpnConnectionOptionsTunnelOptionsDetails$Phase2DhGroupNumbers": "

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE negotiations.

" + "AwsEc2VpnConnectionOptionsTunnelOptionsDetails$Phase2DhGroupNumbers": "

The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 IKE negotiations.

", + "IntegerListConfigurationOptions$DefaultValue": "

The Security Hub default value for a control parameter that is a list of integers.

", + "ParameterValue$IntegerList": "

A control parameter that is a list of integers.

" + } + }, + "IntegerListConfigurationOptions": { + "base": "

The options for customizing a security control parameter that is a list of integers.

", + "refs": { + "ConfigurationOptions$IntegerList": "

The options for customizing a security control parameter that is a list of integers.

" } }, "IntegrationType": { @@ -7335,6 +7421,7 @@ "EnableImportFindingsForProductRequest$ProductArn": "

The ARN of the product to enable the integration for.

", "EnableImportFindingsForProductResponse$ProductSubscriptionArn": "

The ARN of your subscription to the product to enable integrations for.

", "EnableOrganizationAdminAccountRequest$AdminAccountId": "

The Amazon Web Services account identifier of the account to designate as the Security Hub administrator account.

", + "EnumConfigurationOptions$DefaultValue": "

The Security Hub default value for a control parameter that is an enum.

", "FieldMap$key": null, "FieldMap$value": null, "FilePaths$FilePath": "

Path to the infected or suspicious file on the resource it was detected on.

", @@ -7357,6 +7444,7 @@ "GetFindingAggregatorResponse$FindingAggregationRegion": "

The aggregation Region.

", "GetFindingAggregatorResponse$RegionLinkingMode": "

Indicates whether to link all Regions, all Regions except for a list of excluded Regions, or a list of included Regions.

", "GetInsightResultsRequest$InsightArn": "

The ARN of the insight for which to return results.

", + "GetSecurityControlDefinitionRequest$SecurityControlId": "

The ID of the security control to retrieve the definition for. This field doesn’t accept an Amazon Resource Name (ARN).

", "ImportFindingsError$Id": "

The identifier of the finding that could not be updated.

", "ImportFindingsError$ErrorCode": "

The code of the error returned by the BatchImportFindings operation.

", "ImportFindingsError$ErrorMessage": "

The message of the error returned by the BatchImportFindings operation.

", @@ -7417,6 +7505,11 @@ "Note$UpdatedAt": "

The timestamp of when the note was updated.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

", "NoteUpdate$Text": "

The updated note text.

", "NoteUpdate$UpdatedBy": "

The principal that updated the note.

", + "ParameterDefinition$Description": "

Description of a control parameter.

", + "ParameterDefinitions$key": null, + "ParameterValue$String": "

A control parameter that is a string.

", + "ParameterValue$Enum": "

A control parameter that is an enum.

", + "Parameters$key": null, "PatchSummary$Id": "

The identifier of the compliance standard that was used to determine the patch compliance status.

", "PatchSummary$OperationStartTime": "

Indicates when the operation started.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

", "PatchSummary$OperationEndTime": "

Indicates when the operation completed.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces, and date and time should be separated by T. For example, 2020-03-22T13:22:13.933Z.

", @@ -7447,6 +7540,8 @@ "Resource$ResourceRole": "

Identifies the role of the resource in the finding. A resource is either the actor or target of the finding activity,

", "ResourceConflictException$Message": null, "ResourceConflictException$Code": null, + "ResourceInUseException$Message": null, + "ResourceInUseException$Code": null, "ResourceNotFoundException$Message": null, "ResourceNotFoundException$Code": null, "Result$ProcessingResult": "

The reason that the account was not processed.

", @@ -7489,6 +7584,7 @@ "SecurityControlDefinition$Title": "

The title of a security control.

", "SecurityControlDefinition$Description": "

The description of a security control across standards. This typically summarizes how Security Hub evaluates the control and the conditions under which it produces a failed finding. This parameter doesn't reference a specific standard.

", "SecurityControlDefinition$RemediationUrl": "

A link to Security Hub documentation that explains how to remediate a failed finding for a security control.

", + "SecurityControlParameter$Name": "

The name of a

", "SecurityGroups$member": null, "SensitiveDataDetections$Type": "

The type of sensitive data that was detected. For example, the type might indicate that the data is an email address.

", "SensitiveDataResult$Category": "

The category of sensitive data that was detected. For example, the category can indicate that the sensitive data involved credentials, financial information, or personal information.

", @@ -7543,8 +7639,13 @@ "StatelessCustomPublishMetricActionDimension$Value": "

The value to use for the custom metric dimension.

", "StatusReason$ReasonCode": "

A code that represents a reason for the control status. For the list of status reason codes and their meanings, see Standards-related information in the ASFF in the Security Hub User Guide.

", "StatusReason$Description": "

The corresponding description for the status reason code.

", + "StringConfigurationOptions$DefaultValue": "

The Security Hub default value for a control parameter that is a string.

", + "StringConfigurationOptions$Re2Expression": "

An RE2 regular expression that Security Hub uses to validate a user-provided control parameter string.

", + "StringConfigurationOptions$ExpressionDescription": "

The description of the RE2 regular expression.

", "StringFilter$Value": "

The string filter value. Filter values are case sensitive. For example, the product name for control-based findings is Security Hub. If you provide security hub as the filter value, there's no match.

", "StringList$member": null, + "StringListConfigurationOptions$Re2Expression": "

An RE2 regular expression that Security Hub uses to validate a user-provided list of strings for a control parameter.

", + "StringListConfigurationOptions$ExpressionDescription": "

The description of the RE2 regular expression.

", "Threat$Name": "

The name of the threat.

", "Threat$Severity": "

The severity of the threat.

", "ThreatIntelIndicator$Value": "

The value of a threat intelligence indicator.

", @@ -7572,6 +7673,7 @@ "UpdateInsightRequest$InsightArn": "

The ARN of the insight that you want to update.

", "UpdateInsightRequest$Name": "

The updated name for the insight.

", "UpdateInsightRequest$GroupByAttribute": "

The updated GroupBy attribute that defines this insight.

", + "UpdateSecurityControlRequest$SecurityControlId": "

The Amazon Resource Name (ARN) or ID of the control to update.

", "UpdateStandardsControlRequest$StandardsControlArn": "

The ARN of the security standard control to enable or disable.

", "UpdateStandardsControlRequest$DisabledReason": "

A description of the reason why you are disabling a security standard control. If you are disabling a control, then this is required.

", "VolumeMount$Name": "

The name of the volume.

", @@ -7732,6 +7834,43 @@ "Occurrences$Pages": "

Occurrences of sensitive data in an Adobe Portable Document Format (PDF) file.

" } }, + "ParameterConfiguration": { + "base": "

An object that provides the current value of a security control parameter and identifies whether it has been customized.

", + "refs": { + "Parameters$value": null + } + }, + "ParameterDefinition": { + "base": "

An object that describes a security control parameter and the options for customizing it.

", + "refs": { + "ParameterDefinitions$value": null + } + }, + "ParameterDefinitions": { + "base": null, + "refs": { + "SecurityControlDefinition$ParameterDefinitions": "

An object that provides a security control parameter name, description, and the options for customizing it. This object is excluded for a control that doesn't support custom parameters.

" + } + }, + "ParameterValue": { + "base": "

An object that includes the data type of a security control parameter and its current value.

", + "refs": { + "ParameterConfiguration$Value": "

The current value of a control parameter.

" + } + }, + "ParameterValueType": { + "base": null, + "refs": { + "ParameterConfiguration$ValueType": "

Identifies whether a control parameter uses a custom user-defined value or the Security Hub default value.

" + } + }, + "Parameters": { + "base": null, + "refs": { + "SecurityControl$Parameters": "

An object that identifies the name of a control parameter, its current value, and whether it has been customized.

", + "UpdateSecurityControlRequest$Parameters": "

An object that specifies which security control parameters to update.

" + } + }, "Partition": { "base": null, "refs": { @@ -7930,6 +8069,11 @@ "Resource$Details": "

Additional details about the resource related to a finding.

" } }, + "ResourceInUseException": { + "base": "

The request was rejected because it conflicts with the resource's availability. For example, you tried to update a security control that's currently in the UPDATING state.

", + "refs": { + } + }, "ResourceList": { "base": null, "refs": { @@ -8177,6 +8321,7 @@ "SecurityControlDefinition": { "base": "

Provides metadata for a security control, including its unique standard-agnostic identifier, title, description, severity, availability in Amazon Web Services Regions, and a link to remediation steps.

", "refs": { + "GetSecurityControlDefinitionResponse$SecurityControlDefinition": null, "SecurityControlDefinitions$member": null } }, @@ -8186,6 +8331,24 @@ "ListSecurityControlDefinitionsResponse$SecurityControlDefinitions": "

An array of controls that apply to the specified standard.

" } }, + "SecurityControlParameter": { + "base": "

A parameter that a security control accepts.

", + "refs": { + "SecurityControlParametersList$member": null + } + }, + "SecurityControlParametersList": { + "base": null, + "refs": { + "Compliance$SecurityControlParameters": "

An object that includes security control parameter names and values.

" + } + }, + "SecurityControlProperty": { + "base": null, + "refs": { + "CustomizableProperties$member": null + } + }, "SecurityControls": { "base": null, "refs": { @@ -8469,6 +8632,12 @@ "Compliance$StatusReasons": "

For findings generated from controls, a list of reasons behind the value of Status. For the list of status reason codes and their meanings, see Standards-related information in the ASFF in the Security Hub User Guide.

" } }, + "StringConfigurationOptions": { + "base": "

The options for customizing a security control parameter that is a string.

", + "refs": { + "ConfigurationOptions$String": "

The options for customizing a security control parameter that is a string data type.

" + } + }, "StringFilter": { "base": "

A string filter for filtering Security Hub findings.

", "refs": { @@ -8572,7 +8741,11 @@ "AwsSecurityFindingFilters$FindingProviderFieldsSeverityOriginal": "

The finding provider's original value for the severity.

", "AwsSecurityFindingFilters$FindingProviderFieldsTypes": "

One or more finding types that the finding provider assigned to the finding. Uses the format of namespace/category/classifier that classify a finding.

Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual Behaviors | Sensitive Data Identifications

", "AwsSecurityFindingFilters$ComplianceSecurityControlId": "

The unique identifier of a control across standards. Values for this field typically consist of an Amazon Web Service and a number, such as APIGateway.5.

", - "AwsSecurityFindingFilters$ComplianceAssociatedStandardsId": "

The unique identifier of a standard in which a control is enabled. This field consists of the resource portion of the Amazon Resource Name (ARN) returned for a standard in the DescribeStandards API response.

" + "AwsSecurityFindingFilters$ComplianceAssociatedStandardsId": "

The unique identifier of a standard in which a control is enabled. This field consists of the resource portion of the Amazon Resource Name (ARN) returned for a standard in the DescribeStandards API response.

", + "AwsSecurityFindingFilters$VulnerabilitiesExploitAvailable": "

Indicates whether a software vulnerability in your environment has a known exploit. You can filter findings by this field only if you use Security Hub and Amazon Inspector.

", + "AwsSecurityFindingFilters$VulnerabilitiesFixAvailable": "

Indicates whether a vulnerability is fixed in a newer version of the affected software packages. You can filter findings by this field only if you use Security Hub and Amazon Inspector.

", + "AwsSecurityFindingFilters$ComplianceSecurityControlParametersName": "

The name of a security control parameter.

", + "AwsSecurityFindingFilters$ComplianceSecurityControlParametersValue": "

The current value of a security control parameter.

" } }, "StringList": { @@ -8611,14 +8784,26 @@ "BatchGetSecurityControlsRequest$SecurityControlIds": "

A list of security controls (identified with SecurityControlId, SecurityControlArn, or a mix of both parameters). The security control ID or Amazon Resource Name (ARN) is the same across standards.

", "CreateFindingAggregatorRequest$Regions": "

If RegionLinkingMode is ALL_REGIONS_EXCEPT_SPECIFIED, then this is a space-separated list of Regions that do not aggregate findings to the aggregation Region.

If RegionLinkingMode is SPECIFIED_REGIONS, then this is a space-separated list of Regions that do aggregate findings to the aggregation Region.

", "CreateFindingAggregatorResponse$Regions": "

The list of excluded Regions or included Regions.

", + "EnumConfigurationOptions$AllowedValues": "

The valid values for a control parameter that is an enum.

", + "EnumListConfigurationOptions$DefaultValue": "

The Security Hub default value for a control parameter that is a list of enums.

", + "EnumListConfigurationOptions$AllowedValues": "

The valid values for a control parameter that is a list of enums.

", "GetFindingAggregatorResponse$Regions": "

The list of excluded Regions or included Regions.

", "NetworkPathComponentDetails$Address": "

The IP addresses of the destination.

", + "ParameterValue$StringList": "

A control parameter that is a list of strings.

", + "ParameterValue$EnumList": "

A control parameter that is a list of enums.

", + "StringListConfigurationOptions$DefaultValue": "

The Security Hub default value for a control parameter that is a list of strings.

", "UpdateFindingAggregatorRequest$Regions": "

If RegionLinkingMode is ALL_REGIONS_EXCEPT_SPECIFIED, then this is a space-separated list of Regions that do not aggregate findings to the aggregation Region.

If RegionLinkingMode is SPECIFIED_REGIONS, then this is a space-separated list of Regions that do aggregate findings to the aggregation Region.

", "UpdateFindingAggregatorResponse$Regions": "

The list of excluded Regions or included Regions.

", "Vulnerability$RelatedVulnerabilities": "

List of vulnerabilities that are related to this vulnerability.

", "Vulnerability$ReferenceUrls": "

A list of URLs that provide additional information about the vulnerability.

" } }, + "StringListConfigurationOptions": { + "base": "

The options for customizing a security control parameter that is a list of strings.

", + "refs": { + "ConfigurationOptions$StringList": "

The options for customizing a security control parameter that is a list of strings.

" + } + }, "TagKey": { "base": null, "refs": { @@ -8719,6 +8904,7 @@ "BatchUpdateFindingsRequest$Types": "

One or more finding types in the format of namespace/category/classifier that classify a finding.

Valid namespace values are as follows.

", "FindingProviderFields$Types": "

One or more finding types in the format of namespace/category/classifier that classify a finding.

Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual Behaviors | Sensitive Data Identifications

", "GeneratorDetails$Labels": "

An array of tags used to identify the detector associated with the finding.

", + "SecurityControlParameter$Value": "

The current value of a control parameter.

", "VulnerabilityCodeVulnerabilities$Cwes": "

The Common Weakness Enumeration (CWE) item associated with the detected code vulnerability.

" } }, @@ -8852,6 +9038,16 @@ "refs": { } }, + "UpdateSecurityControlRequest": { + "base": null, + "refs": { + } + }, + "UpdateSecurityControlResponse": { + "base": null, + "refs": { + } + }, "UpdateSecurityHubConfigurationRequest": { "base": null, "refs": { @@ -8872,6 +9068,12 @@ "refs": { } }, + "UpdateStatus": { + "base": null, + "refs": { + "SecurityControl$UpdateStatus": "

Identifies whether customizable properties of a security control are reflected in Security Hub findings. A status of READY indicates findings include the current parameter values. A status of UPDATING indicates that all findings may not include the current parameter values.

" + } + }, "VerificationState": { "base": null, "refs": { diff --git a/models/apis/securityhub/2018-10-26/endpoint-rule-set-1.json b/models/apis/securityhub/2018-10-26/endpoint-rule-set-1.json index 659462cfddb..f94b5ce4b36 100644 --- a/models/apis/securityhub/2018-10-26/endpoint-rule-set-1.json +++ b/models/apis/securityhub/2018-10-26/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/securityhub/2018-10-26/examples-1.json b/models/apis/securityhub/2018-10-26/examples-1.json index 84a9121efbd..2ad7f578c95 100644 --- a/models/apis/securityhub/2018-10-26/examples-1.json +++ b/models/apis/securityhub/2018-10-26/examples-1.json @@ -220,21 +220,41 @@ "SecurityControls": [ { "Description": "This AWS control checks whether ACM Certificates in your account are marked for expiration within a specified time period. Certificates provided by ACM are automatically renewed. ACM does not automatically renew certificates that you import.", + "LastUpdateReason": "Stayed with default value", + "Parameters": { + "daysToExpiration": { + "Value": { + "Integer": 30 + }, + "ValueType": "DEFAULT" + } + }, "RemediationUrl": "https://docs.aws.amazon.com/console/securityhub/ACM.1/remediation", "SecurityControlArn": "arn:aws:securityhub:us-west-2:123456789012:security-control/ACM.1", "SecurityControlId": "ACM.1", "SecurityControlStatus": "ENABLED", "SeverityRating": "MEDIUM", - "Title": "Imported and ACM-issued certificates should be renewed after a specified time period" + "Title": "Imported and ACM-issued certificates should be renewed after a specified time period", + "UpdateStatus": "UPDATING" }, { "Description": "This control checks whether all stages of Amazon API Gateway REST and WebSocket APIs have logging enabled. The control fails if logging is not enabled for all methods of a stage or if loggingLevel is neither ERROR nor INFO.", + "LastUpdateReason": "Updated control parameters to comply with internal requirements", + "Parameters": { + "loggingLevel": { + "Value": { + "Enum": "ERROR" + }, + "ValueType": "CUSTOM" + } + }, "RemediationUrl": "https://docs.aws.amazon.com/console/securityhub/APIGateway.1/remediation", "SecurityControlArn": "arn:aws:securityhub:us-west-2:123456789012:security-control/APIGateway.1", "SecurityControlId": "APIGateway.1", "SecurityControlStatus": "ENABLED", "SeverityRating": "MEDIUM", - "Title": "API Gateway REST and WebSocket API execution logging should be enabled" + "Title": "API Gateway REST and WebSocket API execution logging should be enabled", + "UpdateStatus": "UPDATING" } ] }, @@ -1502,6 +1522,44 @@ "title": "To get member account details" } ], + "GetSecurityControlDefinition": [ + { + "input": { + "SecurityControlId": "EC2.4" + }, + "output": { + "SecurityControlDefinition": { + "CurrentRegionAvailability": "AVAILABLE", + "Description": "This control checks whether an Amazon EC2 instance has been stopped for longer than the allowed number of days. The control fails if an EC2 instance is stopped for longer than the maximum allowed time period. Unless you provide a custom parameter value for the maximum allowed time period, Security Hub uses a default value of 30 days.", + "ParameterDefinitions": { + "AllowedDays": { + "ConfigurationOptions": { + "Integer": { + "DefaultValue": 30, + "Max": 365, + "Min": 1 + } + }, + "Description": "Number of days the EC2 instance is allowed to be in a stopped state before generating a failed finding" + } + }, + "RemediationUrl": "https://docs.aws.amazon.com/console/securityhub/EC2.4/remediation", + "SecurityControlId": "EC2.4", + "SeverityRating": "MEDIUM", + "Title": "Stopped Amazon EC2 instances should be removed after a specified time period" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example retrieves definition details for the specified security control.", + "id": "to-get-the-definition-of-a-security-control-1699283789356", + "title": "To get the definition of a security control." + } + ], "InviteMembers": [ { "input": { @@ -1700,6 +1758,9 @@ "SecurityControlDefinitions": [ { "CurrentRegionAvailability": "AVAILABLE", + "CustomizableProperties": [ + "Parameters" + ], "Description": "This AWS control checks whether ACM Certificates in your account are marked for expiration within a specified time period. Certificates provided by ACM are automatically renewed. ACM does not automatically renew certificates that you import.", "RemediationUrl": "https://docs.aws.amazon.com/console/securityhub/ACM.1/remediation", "SecurityControlId": "ACM.1", @@ -1708,6 +1769,9 @@ }, { "CurrentRegionAvailability": "AVAILABLE", + "CustomizableProperties": [ + "Parameters" + ], "Description": "This control checks whether all stages of Amazon API Gateway REST and WebSocket APIs have logging enabled. The control fails if logging is not enabled for all methods of a stage or if loggingLevel is neither ERROR nor INFO.", "RemediationUrl": "https://docs.aws.amazon.com/console/securityhub/APIGateway.1/remediation", "SecurityControlId": "APIGateway.1", @@ -1940,6 +2004,33 @@ "title": "To update organization configuration" } ], + "UpdateSecurityControl": [ + { + "input": { + "LastUpdateReason": "Comply with internal requirements", + "Parameters": { + "maxCredentialUsageAge": { + "Value": { + "Integer": 15 + }, + "ValueType": "CUSTOM" + } + }, + "SecurityControlId": "ACM.1" + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example updates the specified security control. Specifically, this example updates control parameters.", + "id": "to-update-security-control-properties-1699282942434", + "title": "To update security control properties" + } + ], "UpdateSecurityHubConfiguration": [ { "input": { diff --git a/models/apis/states/2016-11-23/api-2.json b/models/apis/states/2016-11-23/api-2.json index 93b2cd933c2..4ddf82a0339 100644 --- a/models/apis/states/2016-11-23/api-2.json +++ b/models/apis/states/2016-11-23/api-2.json @@ -472,6 +472,22 @@ {"shape":"TooManyTags"} ] }, + "TestState":{ + "name":"TestState", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TestStateInput"}, + "output":{"shape":"TestStateOutput"}, + "errors":[ + {"shape":"InvalidArn"}, + {"shape":"InvalidDefinition"}, + {"shape":"InvalidExecutionInput"}, + {"shape":"ValidationException"} + ], + "endpoint":{"hostPrefix":"sync-"} + }, "UntagResource":{ "name":"UntagResource", "http":{ @@ -533,7 +549,8 @@ {"shape":"ValidationException"}, {"shape":"InvalidArn"}, {"shape":"ResourceNotFound"}, - {"shape":"ConflictException"} + {"shape":"ConflictException"}, + {"shape":"StateMachineDeleting"} ] } }, @@ -1157,6 +1174,12 @@ "nextToken":{"shape":"PageToken"} } }, + "HTTPBody":{"type":"string"}, + "HTTPHeaders":{"type":"string"}, + "HTTPMethod":{"type":"string"}, + "HTTPProtocol":{"type":"string"}, + "HTTPStatusCode":{"type":"string"}, + "HTTPStatusMessage":{"type":"string"}, "HistoryEvent":{ "type":"structure", "required":[ @@ -1292,6 +1315,48 @@ "type":"boolean", "box":true }, + "InspectionData":{ + "type":"structure", + "members":{ + "input":{"shape":"SensitiveData"}, + "afterInputPath":{"shape":"SensitiveData"}, + "afterParameters":{"shape":"SensitiveData"}, + "result":{"shape":"SensitiveData"}, + "afterResultSelector":{"shape":"SensitiveData"}, + "afterResultPath":{"shape":"SensitiveData"}, + "request":{"shape":"InspectionDataRequest"}, + "response":{"shape":"InspectionDataResponse"} + }, + "sensitive":true + }, + "InspectionDataRequest":{ + "type":"structure", + "members":{ + "protocol":{"shape":"HTTPProtocol"}, + "method":{"shape":"HTTPMethod"}, + "url":{"shape":"URL"}, + "headers":{"shape":"HTTPHeaders"}, + "body":{"shape":"HTTPBody"} + } + }, + "InspectionDataResponse":{ + "type":"structure", + "members":{ + "protocol":{"shape":"HTTPProtocol"}, + "statusCode":{"shape":"HTTPStatusCode"}, + "statusMessage":{"shape":"HTTPStatusMessage"}, + "headers":{"shape":"HTTPHeaders"}, + "body":{"shape":"HTTPBody"} + } + }, + "InspectionLevel":{ + "type":"string", + "enum":[ + "INFO", + "DEBUG", + "TRACE" + ] + }, "InvalidArn":{ "type":"structure", "members":{ @@ -1738,6 +1803,7 @@ }, "exception":true }, + "RevealSecrets":{"type":"boolean"}, "ReverseOrder":{"type":"boolean"}, "RevisionId":{"type":"string"}, "RoutingConfigurationList":{ @@ -2000,6 +2066,11 @@ "creationDate":{"shape":"Timestamp"} } }, + "StateName":{ + "type":"string", + "max":80, + "min":1 + }, "StopExecutionInput":{ "type":"structure", "required":["executionArn"], @@ -2203,6 +2274,40 @@ "max":1024, "min":1 }, + "TestExecutionStatus":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "FAILED", + "RETRIABLE", + "CAUGHT_ERROR" + ] + }, + "TestStateInput":{ + "type":"structure", + "required":[ + "definition", + "roleArn" + ], + "members":{ + "definition":{"shape":"Definition"}, + "roleArn":{"shape":"Arn"}, + "input":{"shape":"SensitiveData"}, + "inspectionLevel":{"shape":"InspectionLevel"}, + "revealSecrets":{"shape":"RevealSecrets"} + } + }, + "TestStateOutput":{ + "type":"structure", + "members":{ + "output":{"shape":"SensitiveData"}, + "error":{"shape":"SensitiveError"}, + "cause":{"shape":"SensitiveCause"}, + "inspectionData":{"shape":"InspectionData"}, + "nextState":{"shape":"StateName"}, + "status":{"shape":"TestExecutionStatus"} + } + }, "TimeoutInSeconds":{"type":"long"}, "Timestamp":{"type":"timestamp"}, "ToleratedFailureCount":{ @@ -2234,6 +2339,7 @@ "enabled":{"shape":"Enabled"} } }, + "URL":{"type":"string"}, "UnsignedInteger":{ "type":"integer", "min":0 diff --git a/models/apis/states/2016-11-23/docs-2.json b/models/apis/states/2016-11-23/docs-2.json index a3eeed27a5f..2f87cf6a162 100644 --- a/models/apis/states/2016-11-23/docs-2.json +++ b/models/apis/states/2016-11-23/docs-2.json @@ -25,7 +25,7 @@ "ListStateMachines": "

Lists the existing state machines.

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

", "ListTagsForResource": "

List tags for a given resource.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

", "PublishStateMachineVersion": "

Creates a version from the current revision of a state machine. Use versions to create immutable snapshots of your state machine. You can start executions from versions either directly or with an alias. To create an alias, use CreateStateMachineAlias.

You can publish up to 1000 versions for each state machine. You must manually delete unused versions using the DeleteStateMachineVersion API action.

PublishStateMachineVersion is an idempotent API. It doesn't create a duplicate state machine version if it already exists for the current revision. Step Functions bases PublishStateMachineVersion's idempotency check on the stateMachineArn, name, and revisionId parameters. Requests with the same parameters return a successful idempotent response. If you don't specify a revisionId, Step Functions checks for a previously published version of the state machine's current revision.

Related operations:

", - "RedriveExecution": "

Restarts unsuccessful executions of Standard workflows that didn't complete successfully in the last 14 days. These include failed, aborted, or timed out executions. When you redrive an execution, it continues the failed execution from the unsuccessful step and uses the same input. Step Functions preserves the results and execution history of the successful steps, and doesn't rerun these steps when you redrive an execution. Redriven executions use the same state machine definition and execution ARN as the original execution attempt.

For workflows that include an Inline Map or Parallel state, RedriveExecution API action reschedules and redrives only the iterations and branches that failed or aborted.

To redrive a workflow that includes a Distributed Map state with failed child workflow executions, you must redrive the parent workflow. The parent workflow redrives all the unsuccessful states, including Distributed Map.

This API action is not supported by EXPRESS state machines.

However, you can restart the unsuccessful executions of Express child workflows in a Distributed Map by redriving its Map Run. When you redrive a Map Run, the Express child workflows are rerun using the StartExecution API action. For more information, see Redriving Map Runs.

You can redrive executions if your original execution meets the following conditions:

", + "RedriveExecution": "

Restarts unsuccessful executions of Standard workflows that didn't complete successfully in the last 14 days. These include failed, aborted, or timed out executions. When you redrive an execution, it continues the failed execution from the unsuccessful step and uses the same input. Step Functions preserves the results and execution history of the successful steps, and doesn't rerun these steps when you redrive an execution. Redriven executions use the same state machine definition and execution ARN as the original execution attempt.

For workflows that include an Inline Map or Parallel state, RedriveExecution API action reschedules and redrives only the iterations and branches that failed or aborted.

To redrive a workflow that includes a Distributed Map state whose Map Run failed, you must redrive the parent workflow. The parent workflow redrives all the unsuccessful states, including a failed Map Run. If a Map Run was not started in the original execution attempt, the redriven parent workflow starts the Map Run.

This API action is not supported by EXPRESS state machines.

However, you can restart the unsuccessful executions of Express child workflows in a Distributed Map by redriving its Map Run. When you redrive a Map Run, the Express child workflows are rerun using the StartExecution API action. For more information, see Redriving Map Runs.

You can redrive executions if your original execution meets the following conditions:

", "SendTaskFailure": "

Used by activity workers, Task states using the callback pattern, and optionally Task states using the job run pattern to report that the task identified by the taskToken failed.

", "SendTaskHeartbeat": "

Used by activity workers and Task states using the callback pattern, and optionally Task states using the job run pattern to report to Step Functions that the task represented by the specified taskToken is still making progress. This action resets the Heartbeat clock. The Heartbeat threshold is specified in the state machine's Amazon States Language definition (HeartbeatSeconds). This action does not in itself create an event in the execution history. However, if the task times out, the execution history contains an ActivityTimedOut entry for activities, or a TaskTimedOut entry for tasks using the job run or callback pattern.

The Timeout of a task, defined in the state machine's Amazon States Language definition, is its maximum allowed duration, regardless of the number of SendTaskHeartbeat requests received. Use HeartbeatSeconds to configure the timeout interval for heartbeats.

", "SendTaskSuccess": "

Used by activity workers, Task states using the callback pattern, and optionally Task states using the job run pattern to report that the task identified by the taskToken completed successfully.

", @@ -33,6 +33,7 @@ "StartSyncExecution": "

Starts a Synchronous Express state machine execution. StartSyncExecution is not available for STANDARD workflows.

StartSyncExecution will return a 200 OK response, even if your execution fails, because the status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your execution from running, such as permissions errors, limit errors, or issues with your state machine code and configuration.

This API action isn't logged in CloudTrail.

", "StopExecution": "

Stops an execution.

This API action is not supported by EXPRESS state machines.

", "TagResource": "

Add a tag to a Step Functions resource.

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User Guide, and Controlling Access Using IAM Tags.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

", + "TestState": "

Accepts the definition of a single state and executes it. You can test a state without creating a state machine or updating an existing state machine. Using this API, you can test the following:

You can call this API on only one state at a time. The states that you can test include the following:

The TestState API assumes an IAM role which must contain the required IAM permissions for the resources your state is accessing. For information about the permissions a state might need, see IAM permissions to test a state.

The TestState API can run for up to five minutes. If the execution of a state exceeds this duration, it fails with the States.Timeout error.

TestState doesn't support Activity tasks, .sync or .waitForTaskToken service integration patterns, Parallel, or Map states.

", "UntagResource": "

Remove a tag from a Step Functions resource

", "UpdateMapRun": "

Updates an in-progress Map Run's configuration to include changes to the settings that control maximum concurrency and Map Run failure.

", "UpdateStateMachine": "

Updates an existing state machine by modifying its definition, roleArn, or loggingConfiguration. Running executions will continue to use the previous definition and roleArn. You must include at least one of definition or roleArn or you will receive a MissingRequiredParameter error.

A qualified state machine ARN refers to a Distributed Map state defined within a state machine. For example, the qualified state machine ARN arn:partition:states:region:account-id:stateMachine:stateMachineName/mapStateLabel refers to a Distributed Map state with a label mapStateLabel in the state machine named stateMachineName.

A qualified state machine ARN can either refer to a Distributed Map state defined within a state machine, a version ARN, or an alias ARN.

The following are some examples of qualified and unqualified state machine ARNs:

After you update your state machine, you can set the publish parameter to true in the same action to publish a new version. This way, you can opt-in to strict versioning of your state machine.

Step Functions assigns monotonically increasing integers for state machine versions, starting at version number 1.

All StartExecution calls within a few seconds use the updated definition and roleArn. Executions started immediately after you call UpdateStateMachine may use the previous state machine definition and roleArn.

", @@ -170,6 +171,7 @@ "StateMachineListItem$stateMachineArn": "

The Amazon Resource Name (ARN) that identifies the state machine.

", "StopExecutionInput$executionArn": "

The Amazon Resource Name (ARN) of the execution to stop.

", "TagResourceInput$resourceArn": "

The Amazon Resource Name (ARN) for the Step Functions state machine or activity.

", + "TestStateInput$roleArn": "

The Amazon Resource Name (ARN) of the execution role with the required IAM permissions for the state.

", "TooManyTags$resourceName": null, "UntagResourceInput$resourceArn": "

The Amazon Resource Name (ARN) for the Step Functions state machine or activity.

", "UpdateStateMachineAliasInput$stateMachineAliasArn": "

The Amazon Resource Name (ARN) of the state machine alias.

", @@ -205,7 +207,7 @@ "ClientToken": { "base": null, "refs": { - "RedriveExecutionInput$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don’t specify a client token, the Amazon Web Services SDK automatically generates a client token and uses it for the request to ensure idempotency. The API uses one of the last 10 client tokens provided.

" + "RedriveExecutionInput$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don’t specify a client token, the Amazon Web Services SDK automatically generates a client token and uses it for the request to ensure idempotency. The API will return idempotent responses for the last 10 client tokens used to successfully redrive the execution. These client tokens are valid for up to 15 minutes after they are first used.

" } }, "CloudWatchEventsExecutionDataDetails": { @@ -270,6 +272,7 @@ "CreateStateMachineInput$definition": "

The Amazon States Language definition of the state machine. See Amazon States Language.

", "DescribeStateMachineForExecutionOutput$definition": "

The Amazon States Language definition of the state machine. See Amazon States Language.

", "DescribeStateMachineOutput$definition": "

The Amazon States Language definition of the state machine. See Amazon States Language.

", + "TestStateInput$definition": "

The Amazon States Language (ASL) definition of the state.

", "UpdateStateMachineInput$definition": "

The Amazon States Language definition of the state machine. See Amazon States Language.

" } }, @@ -527,6 +530,45 @@ "refs": { } }, + "HTTPBody": { + "base": null, + "refs": { + "InspectionDataRequest$body": "

The request body for the HTTP request.

", + "InspectionDataResponse$body": "

The HTTP response returned.

" + } + }, + "HTTPHeaders": { + "base": null, + "refs": { + "InspectionDataRequest$headers": "

The request headers associated with the HTTP request.

", + "InspectionDataResponse$headers": "

The response headers associated with the HTTP response.

" + } + }, + "HTTPMethod": { + "base": null, + "refs": { + "InspectionDataRequest$method": "

The HTTP method used for the HTTP request.

" + } + }, + "HTTPProtocol": { + "base": null, + "refs": { + "InspectionDataRequest$protocol": "

The protocol used to make the HTTP request.

", + "InspectionDataResponse$protocol": "

The protocol used to return the HTTP response.

" + } + }, + "HTTPStatusCode": { + "base": null, + "refs": { + "InspectionDataResponse$statusCode": "

The HTTP response status code for the HTTP response.

" + } + }, + "HTTPStatusMessage": { + "base": null, + "refs": { + "InspectionDataResponse$statusMessage": "

The message associated with the HTTP status code.

" + } + }, "HistoryEvent": { "base": "

Contains details about the events of an execution.

", "refs": { @@ -578,6 +620,30 @@ "GetExecutionHistoryInput$includeExecutionData": "

You can select whether execution data (input or output of a history event) is returned. The default is true.

" } }, + "InspectionData": { + "base": "

Contains additional details about the state's execution, including its input and output data processing flow, and HTTP request and response information.

", + "refs": { + "TestStateOutput$inspectionData": "

Returns additional details about the state's execution, including its input and output data processing flow, and HTTP request and response information. The inspectionLevel request parameter specifies which details are returned.

" + } + }, + "InspectionDataRequest": { + "base": "

Contains additional details about the state's execution, including its input and output data processing flow, and HTTP request information.

", + "refs": { + "InspectionData$request": "

The raw HTTP request that is sent when you test an HTTP Task.

" + } + }, + "InspectionDataResponse": { + "base": "

Contains additional details about the state's execution, including its input and output data processing flow, and HTTP response information. The inspectionLevel request parameter specifies which details are returned.

", + "refs": { + "InspectionData$response": "

The raw HTTP response that is returned when you test an HTTP Task.

" + } + }, + "InspectionLevel": { + "base": null, + "refs": { + "TestStateInput$inspectionLevel": "

Determines the values to return when a state is tested. You can specify one of the following types:

Each of these levels also provide information about the status of the state execution and the next state to transition to.

" + } + }, "InvalidArn": { "base": "

The provided Amazon Resource Name (ARN) is not valid.

", "refs": { @@ -780,9 +846,9 @@ "LongObject": { "base": null, "refs": { - "MapRunExecutionCounts$failuresNotRedrivable": "

The number of FAILED, ABORTED, or TIMED_OUT child workflow executions that cannot be redriven because their execution status is terminal. For example, if your execution event history contains 25,000 entries, or the toleratedFailureCount or toleratedFailurePercentage for the Distributed Map has exceeded.

", + "MapRunExecutionCounts$failuresNotRedrivable": "

The number of FAILED, ABORTED, or TIMED_OUT child workflow executions that cannot be redriven because their execution status is terminal. For example, child workflows with an execution status of FAILED, ABORTED, or TIMED_OUT and a redriveStatus of NOT_REDRIVABLE.

", "MapRunExecutionCounts$pendingRedrive": "

The number of unsuccessful child workflow executions currently waiting to be redriven. The status of these child workflow executions could be FAILED, ABORTED, or TIMED_OUT in the original execution attempt or a previous redrive attempt.

", - "MapRunItemCounts$failuresNotRedrivable": "

The number of FAILED, ABORTED, or TIMED_OUT items in child workflow executions that cannot be redriven because the execution status of those child workflows is terminal. For example, if your execution event history contains 25,000 entries, or the toleratedFailureCount or toleratedFailurePercentage for the Distributed Map has exceeded.

", + "MapRunItemCounts$failuresNotRedrivable": "

The number of FAILED, ABORTED, or TIMED_OUT items in child workflow executions that cannot be redriven because the execution status of those child workflows is terminal. For example, child workflows with an execution status of FAILED, ABORTED, or TIMED_OUT and a redriveStatus of NOT_REDRIVABLE.

", "MapRunItemCounts$pendingRedrive": "

The number of unsuccessful items in child workflow executions currently waiting to be redriven.

" } }, @@ -956,9 +1022,9 @@ "RedriveCount": { "base": null, "refs": { - "DescribeExecutionOutput$redriveCount": "

The number of times you've redriven an execution. If you have not yet redriven an execution, the redriveCount is 0. This count is not updated for redrives that failed to start or are pending to be redriven.

", - "DescribeMapRunOutput$redriveCount": "

The number of times you've redriven a Map Run. If you have not yet redriven a Map Run, the redriveCount is 0. This count is not updated for redrives that failed to start or are pending to be redriven.

", - "ExecutionListItem$redriveCount": "

The number of times you've redriven an execution. If you have not yet redriven an execution, the redriveCount is 0. This count is not updated for redrives that failed to start or are pending to be redriven.

", + "DescribeExecutionOutput$redriveCount": "

The number of times you've redriven an execution. If you have not yet redriven an execution, the redriveCount is 0. This count is only updated if you successfully redrive an execution.

", + "DescribeMapRunOutput$redriveCount": "

The number of times you've redriven a Map Run. If you have not yet redriven a Map Run, the redriveCount is 0. This count is only updated if you successfully redrive a Map Run.

", + "ExecutionListItem$redriveCount": "

The number of times you've redriven an execution. If you have not yet redriven an execution, the redriveCount is 0. This count is only updated when you successfully redrive an execution.

", "ExecutionRedrivenEventDetails$redriveCount": "

The number of times you've redriven an execution. If you have not yet redriven an execution, the redriveCount is 0. This count is not updated for redrives that failed to start or are pending to be redriven.

", "MapRunRedrivenEventDetails$redriveCount": "

The number of times the Map Run has been redriven at this point in the execution's history including this event. The redrive count for a redriven Map Run is always greater than 0.

" } @@ -978,6 +1044,12 @@ "refs": { } }, + "RevealSecrets": { + "base": null, + "refs": { + "TestStateInput$revealSecrets": "

Specifies whether or not to include secret information in the test result. For HTTP Tasks, a secret includes the data that an EventBridge connection adds to modify the HTTP request headers, query parameters, and body. Step Functions doesn't omit any information included in the state definition or the HTTP response.

If you set revealSecrets to true, you must make sure that the IAM user that calls the TestState API has permission for the states:RevealSecrets action. For an example of IAM policy that sets the states:RevealSecrets permission, see IAM permissions to test a state. Without this permission, Step Functions throws an access denied error.

By default, revealSecrets is set to false.

" + } + }, "ReverseOrder": { "base": null, "refs": { @@ -1058,7 +1130,8 @@ "TaskFailedEventDetails$cause": "

A more detailed explanation of the cause of the failure.

", "TaskStartFailedEventDetails$cause": "

A more detailed explanation of the cause of the failure.

", "TaskSubmitFailedEventDetails$cause": "

A more detailed explanation of the cause of the failure.

", - "TaskTimedOutEventDetails$cause": "

A more detailed explanation of the cause of the failure.

" + "TaskTimedOutEventDetails$cause": "

A more detailed explanation of the cause of the failure.

", + "TestStateOutput$cause": "

A detailed explanation of the cause for the error when the execution of a state fails.

" } }, "SensitiveData": { @@ -1071,6 +1144,12 @@ "DescribeExecutionOutput$redriveStatusReason": "

When redriveStatus is NOT_REDRIVABLE, redriveStatusReason specifies the reason why an execution cannot be redriven.

", "ExecutionStartedEventDetails$input": "

The JSON data input to the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

", "ExecutionSucceededEventDetails$output": "

The JSON data output by the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

", + "InspectionData$input": "

The raw state input.

", + "InspectionData$afterInputPath": "

The input after Step Functions applies the InputPath filter.

", + "InspectionData$afterParameters": "

The effective input after Step Functions applies the Parameters filter.

", + "InspectionData$result": "

The state's raw result.

", + "InspectionData$afterResultSelector": "

The effective result after Step Functions applies the ResultSelector filter.

", + "InspectionData$afterResultPath": "

The effective result combined with the raw state input after Step Functions applies the ResultPath filter.

", "LambdaFunctionScheduledEventDetails$input": "

The JSON data input to the Lambda function. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

", "LambdaFunctionSucceededEventDetails$output": "

The JSON data output by the Lambda function. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

", "SendTaskSuccessInput$output": "

The JSON output of the task. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

", @@ -1081,7 +1160,9 @@ "StateEnteredEventDetails$input": "

The string that contains the JSON input data for the state. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

", "StateExitedEventDetails$output": "

The JSON output data of the state. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

", "TaskSubmittedEventDetails$output": "

The response from a resource when a task has started. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

", - "TaskSucceededEventDetails$output": "

The full JSON response from a resource when a task has succeeded. This response becomes the output of the related task. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

" + "TaskSucceededEventDetails$output": "

The full JSON response from a resource when a task has succeeded. This response becomes the output of the related task. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

", + "TestStateInput$input": "

A string that contains the JSON input data for the state.

", + "TestStateOutput$output": "

The JSON output data of the state. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

" } }, "SensitiveDataJobInput": { @@ -1111,7 +1192,8 @@ "TaskFailedEventDetails$error": "

The error code of the failure.

", "TaskStartFailedEventDetails$error": "

The error code of the failure.

", "TaskSubmitFailedEventDetails$error": "

The error code of the failure.

", - "TaskTimedOutEventDetails$error": "

The error code of the failure.

" + "TaskTimedOutEventDetails$error": "

The error code of the failure.

", + "TestStateOutput$error": "

The error returned when the execution of a state fails.

" } }, "ServiceQuotaExceededException": { @@ -1226,6 +1308,12 @@ "StateMachineVersionList$member": null } }, + "StateName": { + "base": null, + "refs": { + "TestStateOutput$nextState": "

The name of the next state to transition to. If you haven't defined a next state in your definition or if the execution of the state fails, this field doesn't contain a value.

" + } + }, "StopExecutionInput": { "base": null, "refs": { @@ -1360,6 +1448,22 @@ "SendTaskSuccessInput$taskToken": "

The token that represents this task. Task tokens are generated by Step Functions when tasks are assigned to a worker, or in the context object when a workflow enters a task state. See GetActivityTaskOutput$taskToken.

" } }, + "TestExecutionStatus": { + "base": null, + "refs": { + "TestStateOutput$status": "

The execution status of the state.

" + } + }, + "TestStateInput": { + "base": null, + "refs": { + } + }, + "TestStateOutput": { + "base": null, + "refs": { + } + }, "TimeoutInSeconds": { "base": null, "refs": { @@ -1444,6 +1548,12 @@ "UpdateStateMachineInput$tracingConfiguration": "

Selects whether X-Ray tracing is enabled.

" } }, + "URL": { + "base": null, + "refs": { + "InspectionDataRequest$url": "

The API endpoint used for the HTTP request.

" + } + }, "UnsignedInteger": { "base": null, "refs": { diff --git a/models/apis/transcribe/2017-10-26/api-2.json b/models/apis/transcribe/2017-10-26/api-2.json index 8f907ec5c53..b8fa17cf3d1 100644 --- a/models/apis/transcribe/2017-10-26/api-2.json +++ b/models/apis/transcribe/2017-10-26/api-2.json @@ -658,7 +658,8 @@ "LanguageModelName":{"shape":"ModelName"}, "ContentRedaction":{"shape":"ContentRedaction"}, "LanguageOptions":{"shape":"LanguageOptions"}, - "LanguageIdSettings":{"shape":"LanguageIdSettingsMap"} + "LanguageIdSettings":{"shape":"LanguageIdSettingsMap"}, + "Summarization":{"shape":"Summarization"} } }, "CallAnalyticsJobStatus":{ @@ -1150,7 +1151,71 @@ "en-ZA", "en-NZ", "vi-VN", - "sv-SE" + "sv-SE", + "ab-GE", + "ast-ES", + "az-AZ", + "ba-RU", + "be-BY", + "bg-BG", + "bn-IN", + "bs-BA", + "ca-ES", + "ckb-IQ", + "ckb-IR", + "cs-CZ", + "cy-WL", + "el-GR", + "et-ET", + "eu-ES", + "fi-FI", + "gl-ES", + "gu-IN", + "ha-NG", + "hr-HR", + "hu-HU", + "hy-AM", + "is-IS", + "ka-GE", + "kab-DZ", + "kk-KZ", + "kn-IN", + "ky-KG", + "lg-IN", + "lt-LT", + "lv-LV", + "mhr-RU", + "mi-NZ", + "mk-MK", + "ml-IN", + "mn-MN", + "mr-IN", + "mt-MT", + "no-NO", + "or-IN", + "pa-IN", + "pl-PL", + "ps-AF", + "ro-RO", + "rw-RW", + "si-LK", + "sk-SK", + "sl-SI", + "so-SO", + "sr-RS", + "su-ID", + "sw-BI", + "sw-KE", + "sw-RW", + "sw-TZ", + "sw-UG", + "tl-PH", + "tt-RU", + "ug-CN", + "uk-UA", + "uz-UZ", + "wo-SN", + "zu-ZA" ] }, "LanguageCodeItem":{ @@ -1780,6 +1845,13 @@ "OutputStartIndex":{"shape":"SubtitleOutputStartIndex"} } }, + "Summarization":{ + "type":"structure", + "required":["GenerateAbstractiveSummary"], + "members":{ + "GenerateAbstractiveSummary":{"shape":"Boolean"} + } + }, "Tag":{ "type":"structure", "required":[ diff --git a/models/apis/transcribe/2017-10-26/docs-2.json b/models/apis/transcribe/2017-10-26/docs-2.json index 9cf90a04b86..9ddf6745206 100644 --- a/models/apis/transcribe/2017-10-26/docs-2.json +++ b/models/apis/transcribe/2017-10-26/docs-2.json @@ -81,6 +81,7 @@ "Settings$ShowAlternatives": "

To include alternative transcriptions within your transcription output, include ShowAlternatives in your transcription request.

If you have multi-channel audio and do not enable channel identification, your audio is transcribed in a continuous manner and your transcript does not separate the speech by channel.

If you include ShowAlternatives, you must also include MaxAlternatives, which is the maximum number of alternative transcriptions you want Amazon Transcribe to generate.

For more information, see Alternative transcriptions.

", "StartTranscriptionJobRequest$IdentifyLanguage": "

Enables automatic language identification in your transcription job request. Use this parameter if your media file contains only one language. If your media contains multiple languages, use IdentifyMultipleLanguages instead.

If you include IdentifyLanguage, you can optionally include a list of language codes, using LanguageOptions, that you think may be present in your media file. Including LanguageOptions restricts IdentifyLanguage to only the language options that you specify, which can improve transcription accuracy.

If you want to apply a custom language model, a custom vocabulary, or a custom vocabulary filter to your automatic language identification request, include LanguageIdSettings with the relevant sub-parameters (VocabularyName, LanguageModelName, and VocabularyFilterName). If you include LanguageIdSettings, also include LanguageOptions.

Note that you must include one of LanguageCode, IdentifyLanguage, or IdentifyMultipleLanguages in your request. If you include more than one of these parameters, your transcription job fails.

", "StartTranscriptionJobRequest$IdentifyMultipleLanguages": "

Enables automatic multi-language identification in your transcription job request. Use this parameter if your media file contains more than one language. If your media contains only one language, use IdentifyLanguage instead.

If you include IdentifyMultipleLanguages, you can optionally include a list of language codes, using LanguageOptions, that you think may be present in your media file. Including LanguageOptions restricts IdentifyLanguage to only the language options that you specify, which can improve transcription accuracy.

If you want to apply a custom vocabulary or a custom vocabulary filter to your automatic language identification request, include LanguageIdSettings with the relevant sub-parameters (VocabularyName and VocabularyFilterName). If you include LanguageIdSettings, also include LanguageOptions.

Note that you must include one of LanguageCode, IdentifyLanguage, or IdentifyMultipleLanguages in your request. If you include more than one of these parameters, your transcription job fails.

", + "Summarization$GenerateAbstractiveSummary": "

Enables Generative call summarization in your Call Analytics request

Generative call summarization provides a summary of the transcript including important components discussed in the conversation.

For more information, see Enabling generative call summarization.

", "TranscriptFilter$Negate": "

Set to TRUE to flag the absence of the phrase that you specified in your request. Set to FALSE to flag the presence of the phrase that you specified in your request.

", "TranscriptionJob$IdentifyLanguage": "

Indicates whether automatic language identification was enabled (TRUE) for the specified transcription job.

", "TranscriptionJob$IdentifyMultipleLanguages": "

Indicates whether automatic multi-language identification was enabled (TRUE) for the specified transcription job.

", @@ -1074,6 +1075,12 @@ "TranscriptionJob$Subtitles": "

Indicates whether subtitles were generated with your transcription.

" } }, + "Summarization": { + "base": "

Contains GenerateAbstractiveSummary, which is a required parameter if you want to enable Generative call summarization in your Call Analytics request.

", + "refs": { + "CallAnalyticsJobSettings$Summarization": "

Contains GenerateAbstractiveSummary, which is a required parameter if you want to enable Generative call summarization in your Call Analytics request.

" + } + }, "Tag": { "base": "

Adds metadata, in the form of a key:value pair, to the specified resource.

For example, you could add the tag Department:Sales to a resource to indicate that it pertains to your organization's sales department. You can also use tags for tag-based access control.

To learn more about tagging, see Tagging resources.

", "refs": { diff --git a/models/apis/transcribe/2017-10-26/endpoint-rule-set-1.json b/models/apis/transcribe/2017-10-26/endpoint-rule-set-1.json index 0589babab4d..ab643beb1e6 100644 --- a/models/apis/transcribe/2017-10-26/endpoint-rule-set-1.json +++ b/models/apis/transcribe/2017-10-26/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,18 +212,17 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ - "aws", { "fn": "getAttr", "argv": [ @@ -236,7 +231,8 @@ }, "name" ] - } + }, + "aws" ] } ], @@ -252,7 +248,6 @@ { "fn": "stringEquals", "argv": [ - "aws-us-gov", { "fn": "getAttr", "argv": [ @@ -261,7 +256,8 @@ }, "name" ] - } + }, + "aws-us-gov" ] } ], @@ -281,14 +277,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -302,7 +300,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -322,7 +319,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -333,14 +329,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -389,9 +387,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/workspaces-thin-client/2023-08-22/api-2.json b/models/apis/workspaces-thin-client/2023-08-22/api-2.json new file mode 100644 index 00000000000..488e3d44c82 --- /dev/null +++ b/models/apis/workspaces-thin-client/2023-08-22/api-2.json @@ -0,0 +1,1140 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2023-08-22", + "endpointPrefix":"thinclient", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon WorkSpaces Thin Client", + "serviceId":"WorkSpaces Thin Client", + "signatureVersion":"v4", + "signingName":"thinclient", + "uid":"workspaces-thin-client-2023-08-22" + }, + "operations":{ + "CreateEnvironment":{ + "name":"CreateEnvironment", + "http":{ + "method":"POST", + "requestUri":"/environments", + "responseCode":201 + }, + "input":{"shape":"CreateEnvironmentRequest"}, + "output":{"shape":"CreateEnvironmentResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."} + }, + "DeleteDevice":{ + "name":"DeleteDevice", + "http":{ + "method":"DELETE", + "requestUri":"/devices/{id}", + "responseCode":204 + }, + "input":{"shape":"DeleteDeviceRequest"}, + "output":{"shape":"DeleteDeviceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."}, + "idempotent":true + }, + "DeleteEnvironment":{ + "name":"DeleteEnvironment", + "http":{ + "method":"DELETE", + "requestUri":"/environments/{id}", + "responseCode":204 + }, + "input":{"shape":"DeleteEnvironmentRequest"}, + "output":{"shape":"DeleteEnvironmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."}, + "idempotent":true + }, + "DeregisterDevice":{ + "name":"DeregisterDevice", + "http":{ + "method":"POST", + "requestUri":"/deregister-device/{id}", + "responseCode":202 + }, + "input":{"shape":"DeregisterDeviceRequest"}, + "output":{"shape":"DeregisterDeviceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."}, + "idempotent":true + }, + "GetDevice":{ + "name":"GetDevice", + "http":{ + "method":"GET", + "requestUri":"/devices/{id}", + "responseCode":200 + }, + "input":{"shape":"GetDeviceRequest"}, + "output":{"shape":"GetDeviceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."} + }, + "GetEnvironment":{ + "name":"GetEnvironment", + "http":{ + "method":"GET", + "requestUri":"/environments/{id}", + "responseCode":200 + }, + "input":{"shape":"GetEnvironmentRequest"}, + "output":{"shape":"GetEnvironmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."} + }, + "GetSoftwareSet":{ + "name":"GetSoftwareSet", + "http":{ + "method":"GET", + "requestUri":"/softwaresets/{id}", + "responseCode":200 + }, + "input":{"shape":"GetSoftwareSetRequest"}, + "output":{"shape":"GetSoftwareSetResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."} + }, + "ListDevices":{ + "name":"ListDevices", + "http":{ + "method":"GET", + "requestUri":"/devices", + "responseCode":200 + }, + "input":{"shape":"ListDevicesRequest"}, + "output":{"shape":"ListDevicesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."} + }, + "ListEnvironments":{ + "name":"ListEnvironments", + "http":{ + "method":"GET", + "requestUri":"/environments", + "responseCode":200 + }, + "input":{"shape":"ListEnvironmentsRequest"}, + "output":{"shape":"ListEnvironmentsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."} + }, + "ListSoftwareSets":{ + "name":"ListSoftwareSets", + "http":{ + "method":"GET", + "requestUri":"/softwaresets", + "responseCode":200 + }, + "input":{"shape":"ListSoftwareSetsRequest"}, + "output":{"shape":"ListSoftwareSetsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."} + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"} + ], + "endpoint":{"hostPrefix":"api."} + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"} + ], + "endpoint":{"hostPrefix":"api."} + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"} + ], + "endpoint":{"hostPrefix":"api."}, + "idempotent":true + }, + "UpdateDevice":{ + "name":"UpdateDevice", + "http":{ + "method":"PATCH", + "requestUri":"/devices/{id}", + "responseCode":200 + }, + "input":{"shape":"UpdateDeviceRequest"}, + "output":{"shape":"UpdateDeviceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."}, + "idempotent":true + }, + "UpdateEnvironment":{ + "name":"UpdateEnvironment", + "http":{ + "method":"PATCH", + "requestUri":"/environments/{id}", + "responseCode":200 + }, + "input":{"shape":"UpdateEnvironmentRequest"}, + "output":{"shape":"UpdateEnvironmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."}, + "idempotent":true + }, + "UpdateSoftwareSet":{ + "name":"UpdateSoftwareSet", + "http":{ + "method":"PATCH", + "requestUri":"/softwaresets/{id}", + "responseCode":204 + }, + "input":{"shape":"UpdateSoftwareSetRequest"}, + "output":{"shape":"UpdateSoftwareSetResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "endpoint":{"hostPrefix":"api."}, + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "ActivationCode":{ + "type":"string", + "pattern":"[a-z]{2}[a-z0-9]{6}" + }, + "ApplyTimeOf":{ + "type":"string", + "enum":[ + "UTC", + "DEVICE" + ] + }, + "Arn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[0-9]{0,12}:[a-zA-Z0-9\\-\\/\\._]+" + }, + "ClientToken":{ + "type":"string", + "max":512, + "min":1 + }, + "ConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"}, + "resourceId":{"shape":"ResourceId"}, + "resourceType":{"shape":"ResourceType"} + }, + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateEnvironmentRequest":{ + "type":"structure", + "required":["desktopArn"], + "members":{ + "name":{"shape":"EnvironmentName"}, + "desktopArn":{"shape":"Arn"}, + "desktopEndpoint":{"shape":"DesktopEndpoint"}, + "softwareSetUpdateSchedule":{"shape":"SoftwareSetUpdateSchedule"}, + "maintenanceWindow":{"shape":"MaintenanceWindow"}, + "softwareSetUpdateMode":{"shape":"SoftwareSetUpdateMode"}, + "desiredSoftwareSetId":{"shape":"SoftwareSetId"}, + "kmsKeyArn":{"shape":"KmsKeyArn"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "tags":{"shape":"TagsMap"} + } + }, + "CreateEnvironmentResponse":{ + "type":"structure", + "members":{ + "environment":{"shape":"EnvironmentSummary"} + } + }, + "DayOfWeek":{ + "type":"string", + "enum":[ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ] + }, + "DayOfWeekList":{ + "type":"list", + "member":{"shape":"DayOfWeek"}, + "max":7, + "min":1 + }, + "DeleteDeviceRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"DeviceId", + "location":"uri", + "locationName":"id" + }, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + } + } + }, + "DeleteDeviceResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteEnvironmentRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"EnvironmentId", + "location":"uri", + "locationName":"id" + }, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + } + } + }, + "DeleteEnvironmentResponse":{ + "type":"structure", + "members":{ + } + }, + "DeregisterDeviceRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"DeviceId", + "location":"uri", + "locationName":"id" + }, + "targetDeviceStatus":{"shape":"TargetDeviceStatus"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "DeregisterDeviceResponse":{ + "type":"structure", + "members":{ + } + }, + "DesktopEndpoint":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"(https:\\/\\/)[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,32}(:[0-9]{1,5})?(\\/.*)?", + "sensitive":true + }, + "DesktopType":{ + "type":"string", + "enum":[ + "workspaces", + "appstream", + "workspaces-web" + ] + }, + "Device":{ + "type":"structure", + "members":{ + "id":{"shape":"DeviceId"}, + "serialNumber":{"shape":"String"}, + "name":{"shape":"DeviceName"}, + "model":{"shape":"String"}, + "environmentId":{"shape":"EnvironmentId"}, + "status":{"shape":"DeviceStatus"}, + "currentSoftwareSetId":{"shape":"SoftwareSetId"}, + "currentSoftwareSetVersion":{"shape":"String"}, + "desiredSoftwareSetId":{"shape":"SoftwareSetId"}, + "pendingSoftwareSetId":{"shape":"SoftwareSetId"}, + "pendingSoftwareSetVersion":{"shape":"String"}, + "softwareSetUpdateSchedule":{"shape":"SoftwareSetUpdateSchedule"}, + "softwareSetComplianceStatus":{"shape":"DeviceSoftwareSetComplianceStatus"}, + "softwareSetUpdateStatus":{"shape":"SoftwareSetUpdateStatus"}, + "lastConnectedAt":{"shape":"Timestamp"}, + "lastPostureAt":{"shape":"Timestamp"}, + "createdAt":{"shape":"Timestamp"}, + "updatedAt":{"shape":"Timestamp"}, + "arn":{"shape":"Arn"}, + "kmsKeyArn":{"shape":"KmsKeyArn"}, + "tags":{"shape":"EmbeddedTag"} + } + }, + "DeviceId":{ + "type":"string", + "pattern":"[a-zA-Z0-9]{24}" + }, + "DeviceList":{ + "type":"list", + "member":{"shape":"DeviceSummary"} + }, + "DeviceName":{ + "type":"string", + "pattern":"[0-9\\p{IsAlphabetic}+:,.@'\" -]{1,64}", + "sensitive":true + }, + "DeviceSoftwareSetComplianceStatus":{ + "type":"string", + "enum":[ + "NONE", + "COMPLIANT", + "NOT_COMPLIANT" + ] + }, + "DeviceStatus":{ + "type":"string", + "enum":[ + "REGISTERED", + "DEREGISTERING", + "DEREGISTERED", + "ARCHIVED" + ] + }, + "DeviceSummary":{ + "type":"structure", + "members":{ + "id":{"shape":"DeviceId"}, + "serialNumber":{"shape":"String"}, + "name":{"shape":"DeviceName"}, + "model":{"shape":"String"}, + "environmentId":{"shape":"EnvironmentId"}, + "status":{"shape":"DeviceStatus"}, + "currentSoftwareSetId":{"shape":"SoftwareSetId"}, + "desiredSoftwareSetId":{"shape":"SoftwareSetId"}, + "pendingSoftwareSetId":{"shape":"SoftwareSetId"}, + "softwareSetUpdateSchedule":{"shape":"SoftwareSetUpdateSchedule"}, + "lastConnectedAt":{"shape":"Timestamp"}, + "lastPostureAt":{"shape":"Timestamp"}, + "createdAt":{"shape":"Timestamp"}, + "updatedAt":{"shape":"Timestamp"}, + "arn":{"shape":"Arn"}, + "tags":{"shape":"EmbeddedTag"} + } + }, + "EmbeddedTag":{ + "type":"structure", + "members":{ + "resourceArn":{"shape":"String"}, + "internalId":{"shape":"String"} + }, + "sensitive":true + }, + "Environment":{ + "type":"structure", + "members":{ + "id":{"shape":"EnvironmentId"}, + "name":{"shape":"EnvironmentName"}, + "desktopArn":{"shape":"Arn"}, + "desktopEndpoint":{"shape":"DesktopEndpoint"}, + "desktopType":{"shape":"DesktopType"}, + "activationCode":{"shape":"ActivationCode"}, + "registeredDevicesCount":{"shape":"Integer"}, + "softwareSetUpdateSchedule":{"shape":"SoftwareSetUpdateSchedule"}, + "maintenanceWindow":{"shape":"MaintenanceWindow"}, + "softwareSetUpdateMode":{"shape":"SoftwareSetUpdateMode"}, + "desiredSoftwareSetId":{"shape":"SoftwareSetId"}, + "pendingSoftwareSetId":{"shape":"SoftwareSetId"}, + "pendingSoftwareSetVersion":{"shape":"String"}, + "softwareSetComplianceStatus":{"shape":"EnvironmentSoftwareSetComplianceStatus"}, + "createdAt":{"shape":"Timestamp"}, + "updatedAt":{"shape":"Timestamp"}, + "arn":{"shape":"Arn"}, + "kmsKeyArn":{"shape":"KmsKeyArn"}, + "tags":{"shape":"EmbeddedTag"} + } + }, + "EnvironmentId":{ + "type":"string", + "pattern":"[a-z0-9]{9}" + }, + "EnvironmentList":{ + "type":"list", + "member":{"shape":"EnvironmentSummary"} + }, + "EnvironmentName":{ + "type":"string", + "pattern":"[0-9\\p{IsAlphabetic}+:,.@'\" -][0-9\\p{IsAlphabetic}+=:,.@'\" -]{0,63}", + "sensitive":true + }, + "EnvironmentSoftwareSetComplianceStatus":{ + "type":"string", + "enum":[ + "NO_REGISTERED_DEVICES", + "COMPLIANT", + "NOT_COMPLIANT" + ] + }, + "EnvironmentSummary":{ + "type":"structure", + "members":{ + "id":{"shape":"EnvironmentId"}, + "name":{"shape":"EnvironmentName"}, + "desktopArn":{"shape":"Arn"}, + "desktopEndpoint":{"shape":"DesktopEndpoint"}, + "desktopType":{"shape":"DesktopType"}, + "activationCode":{"shape":"ActivationCode"}, + "softwareSetUpdateSchedule":{"shape":"SoftwareSetUpdateSchedule"}, + "maintenanceWindow":{"shape":"MaintenanceWindow"}, + "softwareSetUpdateMode":{"shape":"SoftwareSetUpdateMode"}, + "desiredSoftwareSetId":{"shape":"SoftwareSetId"}, + "pendingSoftwareSetId":{"shape":"SoftwareSetId"}, + "createdAt":{"shape":"Timestamp"}, + "updatedAt":{"shape":"Timestamp"}, + "arn":{"shape":"Arn"}, + "tags":{"shape":"EmbeddedTag"} + } + }, + "ExceptionMessage":{"type":"string"}, + "FieldName":{"type":"string"}, + "GetDeviceRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"DeviceId", + "location":"uri", + "locationName":"id" + } + } + }, + "GetDeviceResponse":{ + "type":"structure", + "members":{ + "device":{"shape":"Device"} + } + }, + "GetEnvironmentRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"EnvironmentId", + "location":"uri", + "locationName":"id" + } + } + }, + "GetEnvironmentResponse":{ + "type":"structure", + "members":{ + "environment":{"shape":"Environment"} + } + }, + "GetSoftwareSetRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"SoftwareSetId", + "location":"uri", + "locationName":"id" + } + } + }, + "GetSoftwareSetResponse":{ + "type":"structure", + "members":{ + "softwareSet":{"shape":"SoftwareSet"} + } + }, + "Hour":{ + "type":"integer", + "box":true, + "max":23, + "min":0 + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"}, + "retryAfterSeconds":{ + "shape":"RetryAfterSeconds", + "location":"header", + "locationName":"Retry-After" + } + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "InternalServiceException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"}, + "retryAfterSeconds":{ + "shape":"RetryAfterSeconds", + "location":"header", + "locationName":"Retry-After" + } + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "KmsKeyArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:[\\w+=\\/,.@-]+:kms:[a-zA-Z0-9\\-]*:[0-9]{0,12}:key\\/[a-zA-Z0-9-]+" + }, + "ListDevicesRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListDevicesResponse":{ + "type":"structure", + "members":{ + "devices":{"shape":"DeviceList"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "ListEnvironmentsRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListEnvironmentsResponse":{ + "type":"structure", + "members":{ + "environments":{"shape":"EnvironmentList"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "ListSoftwareSetsRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListSoftwareSetsResponse":{ + "type":"structure", + "members":{ + "softwareSets":{"shape":"SoftwareSetList"}, + "nextToken":{"shape":"PaginationToken"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagsMap"} + } + }, + "MaintenanceWindow":{ + "type":"structure", + "members":{ + "type":{"shape":"MaintenanceWindowType"}, + "startTimeHour":{"shape":"Hour"}, + "startTimeMinute":{"shape":"Minute"}, + "endTimeHour":{"shape":"Hour"}, + "endTimeMinute":{"shape":"Minute"}, + "daysOfTheWeek":{"shape":"DayOfWeekList"}, + "applyTimeOf":{"shape":"ApplyTimeOf"} + } + }, + "MaintenanceWindowType":{ + "type":"string", + "enum":[ + "SYSTEM", + "CUSTOM" + ] + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "Minute":{ + "type":"integer", + "box":true, + "max":59, + "min":0 + }, + "PaginationToken":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"\\S*" + }, + "QuotaCode":{"type":"string"}, + "ResourceId":{"type":"string"}, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"}, + "resourceId":{"shape":"ResourceId"}, + "resourceType":{"shape":"ResourceType"} + }, + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResourceType":{"type":"string"}, + "RetryAfterSeconds":{ + "type":"integer", + "box":true + }, + "ServiceCode":{"type":"string"}, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"}, + "resourceId":{"shape":"ResourceId"}, + "resourceType":{"shape":"ResourceType"}, + "serviceCode":{"shape":"ServiceCode"}, + "quotaCode":{"shape":"QuotaCode"} + }, + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "Software":{ + "type":"structure", + "members":{ + "name":{"shape":"String"}, + "version":{"shape":"String"} + } + }, + "SoftwareList":{ + "type":"list", + "member":{"shape":"Software"} + }, + "SoftwareSet":{ + "type":"structure", + "members":{ + "id":{"shape":"SoftwareSetId"}, + "version":{"shape":"String"}, + "releasedAt":{"shape":"Timestamp"}, + "supportedUntil":{"shape":"Timestamp"}, + "validationStatus":{"shape":"SoftwareSetValidationStatus"}, + "software":{"shape":"SoftwareList"}, + "arn":{"shape":"Arn"} + } + }, + "SoftwareSetId":{ + "type":"string", + "pattern":"[0-9]{1,9}" + }, + "SoftwareSetIdOrEmptyString":{ + "type":"string", + "pattern":"[0-9]{0,9}" + }, + "SoftwareSetList":{ + "type":"list", + "member":{"shape":"SoftwareSetSummary"} + }, + "SoftwareSetSummary":{ + "type":"structure", + "members":{ + "id":{"shape":"SoftwareSetId"}, + "version":{"shape":"String"}, + "releasedAt":{"shape":"Timestamp"}, + "supportedUntil":{"shape":"Timestamp"}, + "validationStatus":{"shape":"SoftwareSetValidationStatus"}, + "arn":{"shape":"Arn"} + } + }, + "SoftwareSetUpdateMode":{ + "type":"string", + "enum":[ + "USE_LATEST", + "USE_DESIRED" + ] + }, + "SoftwareSetUpdateSchedule":{ + "type":"string", + "enum":[ + "USE_MAINTENANCE_WINDOW", + "APPLY_IMMEDIATELY" + ] + }, + "SoftwareSetUpdateStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "IN_PROGRESS", + "UP_TO_DATE" + ] + }, + "SoftwareSetValidationStatus":{ + "type":"string", + "enum":[ + "VALIDATED", + "NOT_VALIDATED" + ] + }, + "String":{"type":"string"}, + "TagKeys":{ + "type":"list", + "member":{"shape":"String"}, + "sensitive":true + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"TagsMap"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagsMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"}, + "sensitive":true + }, + "TargetDeviceStatus":{ + "type":"string", + "enum":[ + "DEREGISTERED", + "ARCHIVED" + ] + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"}, + "serviceCode":{"shape":"ServiceCode"}, + "quotaCode":{"shape":"QuotaCode"}, + "retryAfterSeconds":{ + "shape":"RetryAfterSeconds", + "location":"header", + "locationName":"Retry-After" + } + }, + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "Timestamp":{"type":"timestamp"}, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"String", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeys", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateDeviceRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"DeviceId", + "location":"uri", + "locationName":"id" + }, + "name":{"shape":"DeviceName"}, + "desiredSoftwareSetId":{"shape":"SoftwareSetId"}, + "softwareSetUpdateSchedule":{"shape":"SoftwareSetUpdateSchedule"}, + "kmsKeyArn":{"shape":"KmsKeyArn"} + } + }, + "UpdateDeviceResponse":{ + "type":"structure", + "members":{ + "device":{"shape":"DeviceSummary"} + } + }, + "UpdateEnvironmentRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"EnvironmentId", + "location":"uri", + "locationName":"id" + }, + "name":{"shape":"EnvironmentName"}, + "desktopArn":{"shape":"Arn"}, + "desktopEndpoint":{"shape":"DesktopEndpoint"}, + "softwareSetUpdateSchedule":{"shape":"SoftwareSetUpdateSchedule"}, + "maintenanceWindow":{"shape":"MaintenanceWindow"}, + "softwareSetUpdateMode":{"shape":"SoftwareSetUpdateMode"}, + "desiredSoftwareSetId":{"shape":"SoftwareSetIdOrEmptyString"} + } + }, + "UpdateEnvironmentResponse":{ + "type":"structure", + "members":{ + "environment":{"shape":"EnvironmentSummary"} + } + }, + "UpdateSoftwareSetRequest":{ + "type":"structure", + "required":[ + "id", + "validationStatus" + ], + "members":{ + "id":{ + "shape":"SoftwareSetId", + "location":"uri", + "locationName":"id" + }, + "validationStatus":{"shape":"SoftwareSetValidationStatus"} + } + }, + "UpdateSoftwareSetResponse":{ + "type":"structure", + "members":{ + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"}, + "reason":{"shape":"ValidationExceptionReason"}, + "fieldList":{"shape":"ValidationExceptionFieldList"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "name", + "message" + ], + "members":{ + "name":{"shape":"FieldName"}, + "message":{"shape":"ExceptionMessage"} + } + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other" + ] + } + } +} diff --git a/models/apis/workspaces-thin-client/2023-08-22/docs-2.json b/models/apis/workspaces-thin-client/2023-08-22/docs-2.json new file mode 100644 index 00000000000..7987aa7b7fa --- /dev/null +++ b/models/apis/workspaces-thin-client/2023-08-22/docs-2.json @@ -0,0 +1,692 @@ +{ + "version": "2.0", + "service": "

Amazon WorkSpaces Thin Client is a affordable device built to work with Amazon Web Services End User Computing (EUC) virtual desktops to provide users with a complete cloud desktop solution. WorkSpaces Thin Client is a compact device designed to connect up to two monitors and USB devices like a keyboard, mouse, headset, and webcam. To maximize endpoint security, WorkSpaces Thin Client devices do not allow local data storage or installation of unapproved applications. The WorkSpaces Thin Client device ships preloaded with device management software.

You can use these APIs to complete WorkSpaces Thin Client tasks, such as creating environments or viewing devices. For more information about WorkSpaces Thin Client, including the required permissions to use the service, see the Amazon WorkSpaces Thin Client Administrator Guide. For more information about using the Command Line Interface (CLI) to manage your WorkSpaces Thin Client resources, see the WorkSpaces Thin Client section of the CLI Reference.

", + "operations": { + "CreateEnvironment": "

Creates an environment for your thin client devices.

", + "DeleteDevice": "

Deletes a thin client device.

", + "DeleteEnvironment": "

Deletes an environment.

", + "DeregisterDevice": "

Deregisters a thin client device.

", + "GetDevice": "

Returns information for a thin client device.

", + "GetEnvironment": "

Returns information for an environment.

", + "GetSoftwareSet": "

Returns information for a software set.

", + "ListDevices": "

Returns a list of thin client devices.

", + "ListEnvironments": "

Returns a list of environments.

", + "ListSoftwareSets": "

Returns a list of software sets.

", + "ListTagsForResource": "

Returns a list of tags for a resource.

", + "TagResource": "

Assigns one or more tags (key-value pairs) to the specified resource.

", + "UntagResource": "

Removes a tag or tags from a resource.

", + "UpdateDevice": "

Updates a thin client device.

", + "UpdateEnvironment": "

Updates an environment.

", + "UpdateSoftwareSet": "

Updates a software set.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You do not have sufficient access to perform this action.

", + "refs": { + } + }, + "ActivationCode": { + "base": null, + "refs": { + "Environment$activationCode": "

The activation code to register a device to the environment.

", + "EnvironmentSummary$activationCode": "

The activation code to register a device to the environment.

" + } + }, + "ApplyTimeOf": { + "base": null, + "refs": { + "MaintenanceWindow$applyTimeOf": "

The option to set the maintenance window during the device local time or Universal Coordinated Time (UTC).

" + } + }, + "Arn": { + "base": null, + "refs": { + "CreateEnvironmentRequest$desktopArn": "

The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Web, or AppStream 2.0.

", + "Device$arn": "

The Amazon Resource Name (ARN) of the device.

", + "DeviceSummary$arn": "

The Amazon Resource Name (ARN) of the device.

", + "Environment$desktopArn": "

The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Web, or AppStream 2.0.

", + "Environment$arn": "

The Amazon Resource Name (ARN) of the environment.

", + "EnvironmentSummary$desktopArn": "

The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Web, or AppStream 2.0.

", + "EnvironmentSummary$arn": "

The Amazon Resource Name (ARN) of the environment.

", + "SoftwareSet$arn": "

The Amazon Resource Name (ARN) of the software set.

", + "SoftwareSetSummary$arn": "

The Amazon Resource Name (ARN) of the software set.

", + "UpdateEnvironmentRequest$desktopArn": "

The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, WorkSpaces Web, or AppStream 2.0.

" + } + }, + "ClientToken": { + "base": null, + "refs": { + "CreateEnvironmentRequest$clientToken": "

Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value.

If you don't provide this value, then Amazon Web Services generates a random one for you.

If you retry the operation with the same ClientToken, but with different parameters, the retry fails with an IdempotentParameterMismatch error.

", + "DeleteDeviceRequest$clientToken": "

Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value.

If you don't provide this value, then Amazon Web Services generates a random one for you.

If you retry the operation with the same ClientToken, but with different parameters, the retry fails with an IdempotentParameterMismatch error.

", + "DeleteEnvironmentRequest$clientToken": "

Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value.

If you don't provide this value, then Amazon Web Services generates a random one for you.

If you retry the operation with the same ClientToken, but with different parameters, the retry fails with an IdempotentParameterMismatch error.

", + "DeregisterDeviceRequest$clientToken": "

Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value.

If you don't provide this value, then Amazon Web Services generates a random one for you.

If you retry the operation with the same ClientToken, but with different parameters, the retry fails with an IdempotentParameterMismatch error.

" + } + }, + "ConflictException": { + "base": "

The requested operation would cause a conflict with the current state of a service resource associated with the request. Resolve the conflict before retrying this request.

", + "refs": { + } + }, + "CreateEnvironmentRequest": { + "base": null, + "refs": { + } + }, + "CreateEnvironmentResponse": { + "base": null, + "refs": { + } + }, + "DayOfWeek": { + "base": null, + "refs": { + "DayOfWeekList$member": null + } + }, + "DayOfWeekList": { + "base": null, + "refs": { + "MaintenanceWindow$daysOfTheWeek": "

The days of the week during which the maintenance window is open.

" + } + }, + "DeleteDeviceRequest": { + "base": null, + "refs": { + } + }, + "DeleteDeviceResponse": { + "base": null, + "refs": { + } + }, + "DeleteEnvironmentRequest": { + "base": null, + "refs": { + } + }, + "DeleteEnvironmentResponse": { + "base": null, + "refs": { + } + }, + "DeregisterDeviceRequest": { + "base": null, + "refs": { + } + }, + "DeregisterDeviceResponse": { + "base": null, + "refs": { + } + }, + "DesktopEndpoint": { + "base": null, + "refs": { + "CreateEnvironmentRequest$desktopEndpoint": "

The URL for the identity provider login (only for environments that use AppStream 2.0).

", + "Environment$desktopEndpoint": "

The URL for the identity provider login (only for environments that use AppStream 2.0).

", + "EnvironmentSummary$desktopEndpoint": "

The URL for the identity provider login (only for environments that use AppStream 2.0).

", + "UpdateEnvironmentRequest$desktopEndpoint": "

The URL for the identity provider login (only for environments that use AppStream 2.0).

" + } + }, + "DesktopType": { + "base": null, + "refs": { + "Environment$desktopType": "

The type of streaming desktop for the environment.

", + "EnvironmentSummary$desktopType": "

The type of streaming desktop for the environment.

" + } + }, + "Device": { + "base": "

Describes a thin client device.

", + "refs": { + "GetDeviceResponse$device": "

Describes an device.

" + } + }, + "DeviceId": { + "base": null, + "refs": { + "DeleteDeviceRequest$id": "

The ID of the device to delete.

", + "DeregisterDeviceRequest$id": "

The ID of the device to deregister.

", + "Device$id": "

The ID of the device.

", + "DeviceSummary$id": "

The ID of the device.

", + "GetDeviceRequest$id": "

The ID of the device for which to return information.

", + "UpdateDeviceRequest$id": "

The ID of the device to update.

" + } + }, + "DeviceList": { + "base": null, + "refs": { + "ListDevicesResponse$devices": "

Describes devices.

" + } + }, + "DeviceName": { + "base": null, + "refs": { + "Device$name": "

The name of the device.

", + "DeviceSummary$name": "

The name of the device.

", + "UpdateDeviceRequest$name": "

The name of the device to update.

" + } + }, + "DeviceSoftwareSetComplianceStatus": { + "base": null, + "refs": { + "Device$softwareSetComplianceStatus": "

Describes if the software currently installed on the device is a supported version.

" + } + }, + "DeviceStatus": { + "base": null, + "refs": { + "Device$status": "

The status of the device.

", + "DeviceSummary$status": "

The status of the device.

" + } + }, + "DeviceSummary": { + "base": "

Describes a thin client device.

", + "refs": { + "DeviceList$member": null, + "UpdateDeviceResponse$device": "

Describes a device.

" + } + }, + "EmbeddedTag": { + "base": "

The resource and internal ID of a resource to tag.

", + "refs": { + "Device$tags": "

The tag keys and optional values for the resource.

", + "DeviceSummary$tags": "

The tag keys and optional values for the resource.

", + "Environment$tags": "

The tag keys and optional values for the resource.

", + "EnvironmentSummary$tags": "

The tag keys and optional values for the resource.

" + } + }, + "Environment": { + "base": "

Describes an environment.

", + "refs": { + "GetEnvironmentResponse$environment": "

Describes an environment.

" + } + }, + "EnvironmentId": { + "base": null, + "refs": { + "DeleteEnvironmentRequest$id": "

The ID of the environment to delete.

", + "Device$environmentId": "

The ID of the environment the device is associated with.

", + "DeviceSummary$environmentId": "

The ID of the environment the device is associated with.

", + "Environment$id": "

The ID of the environment.

", + "EnvironmentSummary$id": "

The ID of the environment.

", + "GetEnvironmentRequest$id": "

The ID of the environment for which to return information.

", + "UpdateEnvironmentRequest$id": "

The ID of the environment to update.

" + } + }, + "EnvironmentList": { + "base": null, + "refs": { + "ListEnvironmentsResponse$environments": "

Describes environments.

" + } + }, + "EnvironmentName": { + "base": null, + "refs": { + "CreateEnvironmentRequest$name": "

The name for the environment.

", + "Environment$name": "

The name of the environment.

", + "EnvironmentSummary$name": "

The name of the environment.

", + "UpdateEnvironmentRequest$name": "

The name of the environment to update.

" + } + }, + "EnvironmentSoftwareSetComplianceStatus": { + "base": null, + "refs": { + "Environment$softwareSetComplianceStatus": "

Describes if the software currently installed on all devices in the environment is a supported version.

" + } + }, + "EnvironmentSummary": { + "base": "

Describes an environment.

", + "refs": { + "CreateEnvironmentResponse$environment": "

Describes an environment.

", + "EnvironmentList$member": null, + "UpdateEnvironmentResponse$environment": "

Describes an environment.

" + } + }, + "ExceptionMessage": { + "base": null, + "refs": { + "AccessDeniedException$message": null, + "ConflictException$message": null, + "InternalServerException$message": null, + "InternalServiceException$message": null, + "ResourceNotFoundException$message": null, + "ServiceQuotaExceededException$message": null, + "ThrottlingException$message": null, + "ValidationException$message": null, + "ValidationExceptionField$message": "

A message that describes the reason for the exception.

" + } + }, + "FieldName": { + "base": null, + "refs": { + "ValidationExceptionField$name": "

The name of the exception.

" + } + }, + "GetDeviceRequest": { + "base": null, + "refs": { + } + }, + "GetDeviceResponse": { + "base": null, + "refs": { + } + }, + "GetEnvironmentRequest": { + "base": null, + "refs": { + } + }, + "GetEnvironmentResponse": { + "base": null, + "refs": { + } + }, + "GetSoftwareSetRequest": { + "base": null, + "refs": { + } + }, + "GetSoftwareSetResponse": { + "base": null, + "refs": { + } + }, + "Hour": { + "base": null, + "refs": { + "MaintenanceWindow$startTimeHour": "

The hour for the maintenance window start (00-23).

", + "MaintenanceWindow$endTimeHour": "

The hour for the maintenance window end (00-23).

" + } + }, + "Integer": { + "base": null, + "refs": { + "Environment$registeredDevicesCount": "

The number of devices registered to the environment.

" + } + }, + "InternalServerException": { + "base": "

The server encountered an internal error and is unable to complete the request.

", + "refs": { + } + }, + "InternalServiceException": { + "base": "

Request processing failed due to some unknown error, exception, or failure.

", + "refs": { + } + }, + "KmsKeyArn": { + "base": null, + "refs": { + "CreateEnvironmentRequest$kmsKeyArn": "

The Amazon Resource Name (ARN) of the Key Management Service key to use to encrypt the environment.

", + "Device$kmsKeyArn": "

The Amazon Resource Name (ARN) of the Key Management Service key used to encrypt the device.

", + "Environment$kmsKeyArn": "

The Amazon Resource Name (ARN) of the Key Management Service key used to encrypt the environment.

", + "UpdateDeviceRequest$kmsKeyArn": "

The Amazon Resource Name (ARN) of the Key Management Service key to use for the update.

" + } + }, + "ListDevicesRequest": { + "base": null, + "refs": { + } + }, + "ListDevicesResponse": { + "base": null, + "refs": { + } + }, + "ListEnvironmentsRequest": { + "base": null, + "refs": { + } + }, + "ListEnvironmentsResponse": { + "base": null, + "refs": { + } + }, + "ListSoftwareSetsRequest": { + "base": null, + "refs": { + } + }, + "ListSoftwareSetsResponse": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "MaintenanceWindow": { + "base": "

Describes the maintenance window for a thin client device.

", + "refs": { + "CreateEnvironmentRequest$maintenanceWindow": "

A specification for a time window to apply software updates.

", + "Environment$maintenanceWindow": "

A specification for a time window to apply software updates.

", + "EnvironmentSummary$maintenanceWindow": "

A specification for a time window to apply software updates.

", + "UpdateEnvironmentRequest$maintenanceWindow": "

A specification for a time window to apply software updates.

" + } + }, + "MaintenanceWindowType": { + "base": null, + "refs": { + "MaintenanceWindow$type": "

An option to select the default or custom maintenance window.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListDevicesRequest$maxResults": "

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results.

This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.

", + "ListEnvironmentsRequest$maxResults": "

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results.

This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.

", + "ListSoftwareSetsRequest$maxResults": "

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results.

This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.

" + } + }, + "Minute": { + "base": null, + "refs": { + "MaintenanceWindow$startTimeMinute": "

The minutes past the hour for the maintenance window start (00-59).

", + "MaintenanceWindow$endTimeMinute": "

The minutes for the maintenance window end (00-59).

" + } + }, + "PaginationToken": { + "base": null, + "refs": { + "ListDevicesRequest$nextToken": "

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

", + "ListDevicesResponse$nextToken": "

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

", + "ListEnvironmentsRequest$nextToken": "

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

", + "ListEnvironmentsResponse$nextToken": "

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

", + "ListSoftwareSetsRequest$nextToken": "

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

", + "ListSoftwareSetsResponse$nextToken": "

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

" + } + }, + "QuotaCode": { + "base": null, + "refs": { + "ServiceQuotaExceededException$quotaCode": "

The code for the quota in Service Quotas.

", + "ThrottlingException$quotaCode": "

The code for the quota in Service Quotas.

" + } + }, + "ResourceId": { + "base": null, + "refs": { + "ConflictException$resourceId": "

The ID of the resource associated with the request.

", + "ResourceNotFoundException$resourceId": "

The ID of the resource associated with the request.

", + "ServiceQuotaExceededException$resourceId": "

The ID of the resource that exceeds the service quota.

" + } + }, + "ResourceNotFoundException": { + "base": "

The resource specified in the request was not found.

", + "refs": { + } + }, + "ResourceType": { + "base": null, + "refs": { + "ConflictException$resourceType": "

The type of the resource associated with the request.

", + "ResourceNotFoundException$resourceType": "

The type of the resource associated with the request.

", + "ServiceQuotaExceededException$resourceType": "

The type of the resource that exceeds the service quota.

" + } + }, + "RetryAfterSeconds": { + "base": null, + "refs": { + "InternalServerException$retryAfterSeconds": "

The number of seconds to wait before retrying the next request.

", + "InternalServiceException$retryAfterSeconds": "

The number of seconds to wait before retrying the next request.

", + "ThrottlingException$retryAfterSeconds": "

The number of seconds to wait before retrying the next request.

" + } + }, + "ServiceCode": { + "base": null, + "refs": { + "ServiceQuotaExceededException$serviceCode": "

The code for the service in Service Quotas.

", + "ThrottlingException$serviceCode": "

The code for the service in Service Quotas.

" + } + }, + "ServiceQuotaExceededException": { + "base": "

Your request exceeds a service quota.

", + "refs": { + } + }, + "Software": { + "base": "

Describes software.

", + "refs": { + "SoftwareList$member": null + } + }, + "SoftwareList": { + "base": null, + "refs": { + "SoftwareSet$software": "

A list of the software components in the software set.

" + } + }, + "SoftwareSet": { + "base": "

Describes a software set.

", + "refs": { + "GetSoftwareSetResponse$softwareSet": "

Describes a software set.

" + } + }, + "SoftwareSetId": { + "base": null, + "refs": { + "CreateEnvironmentRequest$desiredSoftwareSetId": "

The ID of the software set to apply.

", + "Device$currentSoftwareSetId": "

The ID of the software set currently installed on the device.

", + "Device$desiredSoftwareSetId": "

The ID of the software set which the device has been set to.

", + "Device$pendingSoftwareSetId": "

The ID of the software set that is pending to be installed on the device.

", + "DeviceSummary$currentSoftwareSetId": "

The ID of the software set currently installed on the device.

", + "DeviceSummary$desiredSoftwareSetId": "

The ID of the software set which the device has been set to.

", + "DeviceSummary$pendingSoftwareSetId": "

The ID of the software set that is pending to be installed on the device.

", + "Environment$desiredSoftwareSetId": "

The ID of the software set to apply.

", + "Environment$pendingSoftwareSetId": "

The ID of the software set that is pending to be installed.

", + "EnvironmentSummary$desiredSoftwareSetId": "

The ID of the software set to apply.

", + "EnvironmentSummary$pendingSoftwareSetId": "

The ID of the software set that is pending to be installed.

", + "GetSoftwareSetRequest$id": "

The ID of the software set for which to return information.

", + "SoftwareSet$id": "

The ID of the software set.

", + "SoftwareSetSummary$id": "

The ID of the software set.

", + "UpdateDeviceRequest$desiredSoftwareSetId": "

The ID of the software set to apply.

", + "UpdateSoftwareSetRequest$id": "

The ID of the software set to update.

" + } + }, + "SoftwareSetIdOrEmptyString": { + "base": null, + "refs": { + "UpdateEnvironmentRequest$desiredSoftwareSetId": "

The ID of the software set to apply.

" + } + }, + "SoftwareSetList": { + "base": null, + "refs": { + "ListSoftwareSetsResponse$softwareSets": "

Describes software sets.

" + } + }, + "SoftwareSetSummary": { + "base": "

Describes a software set.

", + "refs": { + "SoftwareSetList$member": null + } + }, + "SoftwareSetUpdateMode": { + "base": null, + "refs": { + "CreateEnvironmentRequest$softwareSetUpdateMode": "

An option to define which software updates to apply.

", + "Environment$softwareSetUpdateMode": "

An option to define which software updates to apply.

", + "EnvironmentSummary$softwareSetUpdateMode": "

An option to define which software updates to apply.

", + "UpdateEnvironmentRequest$softwareSetUpdateMode": "

An option to define which software updates to apply.

" + } + }, + "SoftwareSetUpdateSchedule": { + "base": null, + "refs": { + "CreateEnvironmentRequest$softwareSetUpdateSchedule": "

An option to define if software updates should be applied within a maintenance window.

", + "Device$softwareSetUpdateSchedule": "

An option to define if software updates should be applied within a maintenance window.

", + "DeviceSummary$softwareSetUpdateSchedule": "

An option to define if software updates should be applied within a maintenance window.

", + "Environment$softwareSetUpdateSchedule": "

An option to define if software updates should be applied within a maintenance window.

", + "EnvironmentSummary$softwareSetUpdateSchedule": "

An option to define if software updates should be applied within a maintenance window.

", + "UpdateDeviceRequest$softwareSetUpdateSchedule": "

An option to define if software updates should be applied within a maintenance window.

", + "UpdateEnvironmentRequest$softwareSetUpdateSchedule": "

An option to define if software updates should be applied within a maintenance window.

" + } + }, + "SoftwareSetUpdateStatus": { + "base": null, + "refs": { + "Device$softwareSetUpdateStatus": "

Describes if the device has a supported version of software installed.

" + } + }, + "SoftwareSetValidationStatus": { + "base": null, + "refs": { + "SoftwareSet$validationStatus": "

An option to define if the software set has been validated.

", + "SoftwareSetSummary$validationStatus": "

An option to define if the software set has been validated.

", + "UpdateSoftwareSetRequest$validationStatus": "

An option to define if the software set has been validated.

" + } + }, + "String": { + "base": null, + "refs": { + "Device$serialNumber": "

The hardware serial number of the device.

", + "Device$model": "

The model number of the device.

", + "Device$currentSoftwareSetVersion": "

The version of the software set currently installed on the device.

", + "Device$pendingSoftwareSetVersion": "

The version of the software set that is pending to be installed on the device.

", + "DeviceSummary$serialNumber": "

The hardware serial number of the device.

", + "DeviceSummary$model": "

The model number of the device.

", + "EmbeddedTag$resourceArn": "

The Amazon Resource Name (ARN) of a resource to tag.

", + "EmbeddedTag$internalId": "

The internal ID of a resource to tag.

", + "Environment$pendingSoftwareSetVersion": "

The version of the software set that is pending to be installed.

", + "ListTagsForResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource for which you want to retrieve tags.

", + "Software$name": "

The name of the software component.

", + "Software$version": "

The version of the software component.

", + "SoftwareSet$version": "

The version of the software set.

", + "SoftwareSetSummary$version": "

The version of the software set.

", + "TagKeys$member": null, + "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource that you want to tag.

", + "TagsMap$key": null, + "TagsMap$value": null, + "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource that you want to untag.

" + } + }, + "TagKeys": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

The keys of the key-value pairs for the tag or tags you want to remove from the specified resource.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagsMap": { + "base": null, + "refs": { + "CreateEnvironmentRequest$tags": "

A map of the key-value pairs of the tag or tags to assign to the resource.

", + "ListTagsForResourceResponse$tags": "

A map of the key-value pairs for the tag or tags assigned to the specified resource.

", + "TagResourceRequest$tags": "

A map of the key-value pairs of the tag or tags to assign to the resource.

" + } + }, + "TargetDeviceStatus": { + "base": null, + "refs": { + "DeregisterDeviceRequest$targetDeviceStatus": "

The desired new status for the device.

" + } + }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "Device$lastConnectedAt": "

The timestamp of the most recent session on the device.

", + "Device$lastPostureAt": "

The timestamp of the most recent check-in of the device.

", + "Device$createdAt": "

The timestamp of when the device was created.

", + "Device$updatedAt": "

The timestamp of when the device was updated.

", + "DeviceSummary$lastConnectedAt": "

The timestamp of the most recent session on the device.

", + "DeviceSummary$lastPostureAt": "

The timestamp of the most recent check-in of the device.

", + "DeviceSummary$createdAt": "

The timestamp of when the device was created.

", + "DeviceSummary$updatedAt": "

The timestamp of when the device was updated.

", + "Environment$createdAt": "

The timestamp of when the environment was created.

", + "Environment$updatedAt": "

The timestamp of when the device was updated.

", + "EnvironmentSummary$createdAt": "

The timestamp of when the environment was created.

", + "EnvironmentSummary$updatedAt": "

The timestamp of when the device was updated.

", + "SoftwareSet$releasedAt": "

The timestamp of when the software set was released.

", + "SoftwareSet$supportedUntil": "

The timestamp of the end of support for the software set.

", + "SoftwareSetSummary$releasedAt": "

The timestamp of when the software set was released.

", + "SoftwareSetSummary$supportedUntil": "

The timestamp of the end of support for the software set.

" + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateDeviceRequest": { + "base": null, + "refs": { + } + }, + "UpdateDeviceResponse": { + "base": null, + "refs": { + } + }, + "UpdateEnvironmentRequest": { + "base": null, + "refs": { + } + }, + "UpdateEnvironmentResponse": { + "base": null, + "refs": { + } + }, + "UpdateSoftwareSetRequest": { + "base": null, + "refs": { + } + }, + "UpdateSoftwareSetResponse": { + "base": null, + "refs": { + } + }, + "ValidationException": { + "base": "

The input fails to satisfy the specified constraints.

", + "refs": { + } + }, + "ValidationExceptionField": { + "base": "

Describes a validation exception.

", + "refs": { + "ValidationExceptionFieldList$member": null + } + }, + "ValidationExceptionFieldList": { + "base": null, + "refs": { + "ValidationException$fieldList": "

A list of fields that didn't validate.

" + } + }, + "ValidationExceptionReason": { + "base": null, + "refs": { + "ValidationException$reason": "

The reason for the exception.

" + } + } + } +} diff --git a/models/apis/workspaces-thin-client/2023-08-22/endpoint-rule-set-1.json b/models/apis/workspaces-thin-client/2023-08-22/endpoint-rule-set-1.json new file mode 100644 index 00000000000..e2a675a5752 --- /dev/null +++ b/models/apis/workspaces-thin-client/2023-08-22/endpoint-rule-set-1.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://thinclient-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://thinclient-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://thinclient.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://thinclient.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/models/apis/workspaces-thin-client/2023-08-22/endpoint-tests-1.json b/models/apis/workspaces-thin-client/2023-08-22/endpoint-tests-1.json new file mode 100644 index 00000000000..b1c009f8bcc --- /dev/null +++ b/models/apis/workspaces-thin-client/2023-08-22/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://thinclient-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://thinclient-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://thinclient.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://thinclient.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://thinclient-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://thinclient-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://thinclient.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://thinclient.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://thinclient-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://thinclient-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://thinclient.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://thinclient.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://thinclient-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://thinclient.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://thinclient-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://thinclient.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/workspaces-thin-client/2023-08-22/examples-1.json b/models/apis/workspaces-thin-client/2023-08-22/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/workspaces-thin-client/2023-08-22/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/workspaces-thin-client/2023-08-22/paginators-1.json b/models/apis/workspaces-thin-client/2023-08-22/paginators-1.json new file mode 100644 index 00000000000..9fe21a48570 --- /dev/null +++ b/models/apis/workspaces-thin-client/2023-08-22/paginators-1.json @@ -0,0 +1,22 @@ +{ + "pagination": { + "ListDevices": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "devices" + }, + "ListEnvironments": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "environments" + }, + "ListSoftwareSets": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "softwareSets" + } + } +} diff --git a/models/apis/workspaces/2015-04-08/api-2.json b/models/apis/workspaces/2015-04-08/api-2.json index ddc715b63c4..f481b0d5dbb 100644 --- a/models/apis/workspaces/2015-04-08/api-2.json +++ b/models/apis/workspaces/2015-04-08/api-2.json @@ -1749,6 +1749,20 @@ "PendingRequests":{"shape":"WorkspaceList"} } }, + "DataReplication":{ + "type":"string", + "enum":[ + "NO_REPLICATION", + "PRIMARY_AS_SOURCE" + ] + }, + "DataReplicationSettings":{ + "type":"structure", + "members":{ + "DataReplication":{"shape":"DataReplication"}, + "RecoverySnapshotTime":{"shape":"Timestamp"} + } + }, "DedicatedTenancyCidrRangeList":{ "type":"list", "member":{"shape":"DedicatedTenancyManagementCidrRange"} @@ -2789,13 +2803,11 @@ }, "ModifyWorkspacePropertiesRequest":{ "type":"structure", - "required":[ - "WorkspaceId", - "WorkspaceProperties" - ], + "required":["WorkspaceId"], "members":{ "WorkspaceId":{"shape":"WorkspaceId"}, - "WorkspaceProperties":{"shape":"WorkspaceProperties"} + "WorkspaceProperties":{"shape":"WorkspaceProperties"}, + "DataReplication":{"shape":"DataReplication"} } }, "ModifyWorkspacePropertiesResult":{ @@ -3169,7 +3181,8 @@ "PrimaryWorkspaceId":{"shape":"WorkspaceId"}, "VolumeEncryptionKey":{"shape":"VolumeEncryptionKey"}, "DirectoryId":{"shape":"DirectoryId"}, - "Tags":{"shape":"TagList"} + "Tags":{"shape":"TagList"}, + "DataReplication":{"shape":"DataReplication"} } }, "StandbyWorkspaceRelationshipType":{ @@ -3183,6 +3196,18 @@ "type":"list", "member":{"shape":"StandbyWorkspace"} }, + "StandbyWorkspacesProperties":{ + "type":"structure", + "members":{ + "StandbyWorkspaceId":{"shape":"WorkspaceId"}, + "DataReplication":{"shape":"DataReplication"}, + "RecoverySnapshotTime":{"shape":"Timestamp"} + } + }, + "StandbyWorkspacesPropertiesList":{ + "type":"list", + "member":{"shape":"StandbyWorkspacesProperties"} + }, "StartRequest":{ "type":"structure", "members":{ @@ -3515,7 +3540,9 @@ "RootVolumeEncryptionEnabled":{"shape":"BooleanObject"}, "WorkspaceProperties":{"shape":"WorkspaceProperties"}, "ModificationStates":{"shape":"ModificationStateList"}, - "RelatedWorkspaces":{"shape":"RelatedWorkspaces"} + "RelatedWorkspaces":{"shape":"RelatedWorkspaces"}, + "DataReplicationSettings":{"shape":"DataReplicationSettings"}, + "StandbyWorkspacesProperties":{"shape":"StandbyWorkspacesPropertiesList"} } }, "WorkspaceAccessProperties":{ diff --git a/models/apis/workspaces/2015-04-08/docs-2.json b/models/apis/workspaces/2015-04-08/docs-2.json index 522666f2ef2..c75c9acf57d 100644 --- a/models/apis/workspaces/2015-04-08/docs-2.json +++ b/models/apis/workspaces/2015-04-08/docs-2.json @@ -672,6 +672,21 @@ "refs": { } }, + "DataReplication": { + "base": null, + "refs": { + "DataReplicationSettings$DataReplication": "

Indicates whether data replication is enabled, and if enabled, the type of data replication.

", + "ModifyWorkspacePropertiesRequest$DataReplication": "

Indicates the data replication status.

", + "StandbyWorkspace$DataReplication": "

Indicates whether data replication is enabled, and if enabled, the type of data replication.

", + "StandbyWorkspacesProperties$DataReplication": "

Indicates whether data replication is enabled, and if enabled, the type of data replication.

" + } + }, + "DataReplicationSettings": { + "base": "

Describes the data replication settings.

", + "refs": { + "Workspace$DataReplicationSettings": "

Indicates the settings of the data replication.

" + } + }, "DedicatedTenancyCidrRangeList": { "base": null, "refs": { @@ -2015,6 +2030,18 @@ "CreateStandbyWorkspacesRequest$StandbyWorkspaces": "

Information about the standby WorkSpace to be created.

" } }, + "StandbyWorkspacesProperties": { + "base": "

Describes the properties of the related standby WorkSpaces.

", + "refs": { + "StandbyWorkspacesPropertiesList$member": null + } + }, + "StandbyWorkspacesPropertiesList": { + "base": null, + "refs": { + "Workspace$StandbyWorkspacesProperties": "

The properties of the standby WorkSpace

" + } + }, "StartRequest": { "base": "

Information used to start a WorkSpace.

", "refs": { @@ -2165,9 +2192,11 @@ "BundleResourceAssociation$Created": "

The time the association is created.

", "BundleResourceAssociation$LastUpdatedTime": "

The time the association status was last updated.

", "CreateWorkspaceImageResult$Created": "

The date when the image was created.

", + "DataReplicationSettings$RecoverySnapshotTime": "

The date and time at which the last successful snapshot was taken of the primary WorkSpace used for replicating data.

", "ImageResourceAssociation$Created": "

The time the association is created.

", "ImageResourceAssociation$LastUpdatedTime": "

The time the association status was last updated.

", "Snapshot$SnapshotTime": "

The time when the snapshot was created.

", + "StandbyWorkspacesProperties$RecoverySnapshotTime": "

The date and time at which the last successful snapshot was taken of the primary WorkSpace used for replicating data.

", "WorkSpaceApplication$Created": "

The time the application is created.

", "WorkspaceBundle$LastUpdatedTime": "

The last time that the bundle was updated.

", "WorkspaceBundle$CreationTime": "

The time when the bundle was created.

", @@ -2452,6 +2481,7 @@ "RelatedWorkspaceProperties$WorkspaceId": "

The identifier of the related WorkSpace.

", "RestoreWorkspaceRequest$WorkspaceId": "

The identifier of the WorkSpace.

", "StandbyWorkspace$PrimaryWorkspaceId": "

The identifier of the standby WorkSpace.

", + "StandbyWorkspacesProperties$StandbyWorkspaceId": "

The identifier of the standby WorkSpace

", "StartRequest$WorkspaceId": "

The identifier of the WorkSpace.

", "StopRequest$WorkspaceId": "

The identifier of the WorkSpace.

", "TerminateRequest$WorkspaceId": "

The identifier of the WorkSpace.

", diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 01340a41583..97ad54337e8 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -4267,6 +4267,16 @@ } } }, + "cost-optimization-hub" : { + "endpoints" : { + "us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "cost-optimization-hub.us-east-1.amazonaws.com" + } + } + }, "cur" : { "endpoints" : { "us-east-1" : { } @@ -20815,6 +20825,12 @@ } } }, + "arc-zonal-shift" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "athena" : { "endpoints" : { "fips-us-gov-east-1" : { @@ -25443,8 +25459,66 @@ }, "rds" : { "endpoints" : { - "us-iso-east-1" : { }, - "us-iso-west-1" : { } + "rds-fips.us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "deprecated" : true, + "hostname" : "rds-fips.us-iso-east-1.c2s.ic.gov" + }, + "rds-fips.us-iso-west-1" : { + "credentialScope" : { + "region" : "us-iso-west-1" + }, + "deprecated" : true, + "hostname" : "rds-fips.us-iso-west-1.c2s.ic.gov" + }, + "rds.us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "deprecated" : true, + "variants" : [ { + "hostname" : "rds-fips.us-iso-east-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + }, + "rds.us-iso-west-1" : { + "credentialScope" : { + "region" : "us-iso-west-1" + }, + "deprecated" : true, + "variants" : [ { + "hostname" : "rds-fips.us-iso-west-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + }, + "us-iso-east-1" : { + "variants" : [ { + "hostname" : "rds-fips.us-iso-east-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + }, + "us-iso-east-1-fips" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "deprecated" : true, + "hostname" : "rds-fips.us-iso-east-1.c2s.ic.gov" + }, + "us-iso-west-1" : { + "variants" : [ { + "hostname" : "rds-fips.us-iso-west-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + }, + "us-iso-west-1-fips" : { + "credentialScope" : { + "region" : "us-iso-west-1" + }, + "deprecated" : true, + "hostname" : "rds-fips.us-iso-west-1.c2s.ic.gov" + } } }, "redshift" : { @@ -25954,7 +26028,36 @@ }, "rds" : { "endpoints" : { - "us-isob-east-1" : { } + "rds-fips.us-isob-east-1" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "deprecated" : true, + "hostname" : "rds-fips.us-isob-east-1.sc2s.sgov.gov" + }, + "rds.us-isob-east-1" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "deprecated" : true, + "variants" : [ { + "hostname" : "rds-fips.us-isob-east-1.sc2s.sgov.gov", + "tags" : [ "fips" ] + } ] + }, + "us-isob-east-1" : { + "variants" : [ { + "hostname" : "rds-fips.us-isob-east-1.sc2s.sgov.gov", + "tags" : [ "fips" ] + } ] + }, + "us-isob-east-1-fips" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "deprecated" : true, + "hostname" : "rds-fips.us-isob-east-1.sc2s.sgov.gov" + } } }, "redshift" : { diff --git a/service/accessanalyzer/accessanalyzeriface/interface.go b/service/accessanalyzer/accessanalyzeriface/interface.go index 8ec3b6fef14..ccb77083565 100644 --- a/service/accessanalyzer/accessanalyzeriface/interface.go +++ b/service/accessanalyzer/accessanalyzeriface/interface.go @@ -68,6 +68,14 @@ type AccessAnalyzerAPI interface { CancelPolicyGenerationWithContext(aws.Context, *accessanalyzer.CancelPolicyGenerationInput, ...request.Option) (*accessanalyzer.CancelPolicyGenerationOutput, error) CancelPolicyGenerationRequest(*accessanalyzer.CancelPolicyGenerationInput) (*request.Request, *accessanalyzer.CancelPolicyGenerationOutput) + CheckAccessNotGranted(*accessanalyzer.CheckAccessNotGrantedInput) (*accessanalyzer.CheckAccessNotGrantedOutput, error) + CheckAccessNotGrantedWithContext(aws.Context, *accessanalyzer.CheckAccessNotGrantedInput, ...request.Option) (*accessanalyzer.CheckAccessNotGrantedOutput, error) + CheckAccessNotGrantedRequest(*accessanalyzer.CheckAccessNotGrantedInput) (*request.Request, *accessanalyzer.CheckAccessNotGrantedOutput) + + CheckNoNewAccess(*accessanalyzer.CheckNoNewAccessInput) (*accessanalyzer.CheckNoNewAccessOutput, error) + CheckNoNewAccessWithContext(aws.Context, *accessanalyzer.CheckNoNewAccessInput, ...request.Option) (*accessanalyzer.CheckNoNewAccessOutput, error) + CheckNoNewAccessRequest(*accessanalyzer.CheckNoNewAccessInput) (*request.Request, *accessanalyzer.CheckNoNewAccessOutput) + CreateAccessPreview(*accessanalyzer.CreateAccessPreviewInput) (*accessanalyzer.CreateAccessPreviewOutput, error) CreateAccessPreviewWithContext(aws.Context, *accessanalyzer.CreateAccessPreviewInput, ...request.Option) (*accessanalyzer.CreateAccessPreviewOutput, error) CreateAccessPreviewRequest(*accessanalyzer.CreateAccessPreviewInput) (*request.Request, *accessanalyzer.CreateAccessPreviewOutput) @@ -108,6 +116,13 @@ type AccessAnalyzerAPI interface { GetFindingWithContext(aws.Context, *accessanalyzer.GetFindingInput, ...request.Option) (*accessanalyzer.GetFindingOutput, error) GetFindingRequest(*accessanalyzer.GetFindingInput) (*request.Request, *accessanalyzer.GetFindingOutput) + GetFindingV2(*accessanalyzer.GetFindingV2Input) (*accessanalyzer.GetFindingV2Output, error) + GetFindingV2WithContext(aws.Context, *accessanalyzer.GetFindingV2Input, ...request.Option) (*accessanalyzer.GetFindingV2Output, error) + GetFindingV2Request(*accessanalyzer.GetFindingV2Input) (*request.Request, *accessanalyzer.GetFindingV2Output) + + GetFindingV2Pages(*accessanalyzer.GetFindingV2Input, func(*accessanalyzer.GetFindingV2Output, bool) bool) error + GetFindingV2PagesWithContext(aws.Context, *accessanalyzer.GetFindingV2Input, func(*accessanalyzer.GetFindingV2Output, bool) bool, ...request.Option) error + GetGeneratedPolicy(*accessanalyzer.GetGeneratedPolicyInput) (*accessanalyzer.GetGeneratedPolicyOutput, error) GetGeneratedPolicyWithContext(aws.Context, *accessanalyzer.GetGeneratedPolicyInput, ...request.Option) (*accessanalyzer.GetGeneratedPolicyOutput, error) GetGeneratedPolicyRequest(*accessanalyzer.GetGeneratedPolicyInput) (*request.Request, *accessanalyzer.GetGeneratedPolicyOutput) @@ -154,6 +169,13 @@ type AccessAnalyzerAPI interface { ListFindingsPages(*accessanalyzer.ListFindingsInput, func(*accessanalyzer.ListFindingsOutput, bool) bool) error ListFindingsPagesWithContext(aws.Context, *accessanalyzer.ListFindingsInput, func(*accessanalyzer.ListFindingsOutput, bool) bool, ...request.Option) error + ListFindingsV2(*accessanalyzer.ListFindingsV2Input) (*accessanalyzer.ListFindingsV2Output, error) + ListFindingsV2WithContext(aws.Context, *accessanalyzer.ListFindingsV2Input, ...request.Option) (*accessanalyzer.ListFindingsV2Output, error) + ListFindingsV2Request(*accessanalyzer.ListFindingsV2Input) (*request.Request, *accessanalyzer.ListFindingsV2Output) + + ListFindingsV2Pages(*accessanalyzer.ListFindingsV2Input, func(*accessanalyzer.ListFindingsV2Output, bool) bool) error + ListFindingsV2PagesWithContext(aws.Context, *accessanalyzer.ListFindingsV2Input, func(*accessanalyzer.ListFindingsV2Output, bool) bool, ...request.Option) error + ListPolicyGenerations(*accessanalyzer.ListPolicyGenerationsInput) (*accessanalyzer.ListPolicyGenerationsOutput, error) ListPolicyGenerationsWithContext(aws.Context, *accessanalyzer.ListPolicyGenerationsInput, ...request.Option) (*accessanalyzer.ListPolicyGenerationsOutput, error) ListPolicyGenerationsRequest(*accessanalyzer.ListPolicyGenerationsInput) (*request.Request, *accessanalyzer.ListPolicyGenerationsOutput) diff --git a/service/accessanalyzer/api.go b/service/accessanalyzer/api.go index 1fb5b843f8a..3f4e13b2689 100644 --- a/service/accessanalyzer/api.go +++ b/service/accessanalyzer/api.go @@ -195,6 +195,201 @@ func (c *AccessAnalyzer) CancelPolicyGenerationWithContext(ctx aws.Context, inpu return out, req.Send() } +const opCheckAccessNotGranted = "CheckAccessNotGranted" + +// CheckAccessNotGrantedRequest generates a "aws/request.Request" representing the +// client's request for the CheckAccessNotGranted 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 CheckAccessNotGranted for more information on using the CheckAccessNotGranted +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CheckAccessNotGrantedRequest method. +// req, resp := client.CheckAccessNotGrantedRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CheckAccessNotGranted +func (c *AccessAnalyzer) CheckAccessNotGrantedRequest(input *CheckAccessNotGrantedInput) (req *request.Request, output *CheckAccessNotGrantedOutput) { + op := &request.Operation{ + Name: opCheckAccessNotGranted, + HTTPMethod: "POST", + HTTPPath: "/policy/check-access-not-granted", + } + + if input == nil { + input = &CheckAccessNotGrantedInput{} + } + + output = &CheckAccessNotGrantedOutput{} + req = c.newRequest(op, input, output) + return +} + +// CheckAccessNotGranted API operation for Access Analyzer. +// +// Checks whether the specified access isn't allowed by a policy. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Access Analyzer's +// API operation CheckAccessNotGranted for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// Validation exception error. +// +// - InternalServerException +// Internal server error. +// +// - InvalidParameterException +// The specified parameter is invalid. +// +// - UnprocessableEntityException +// The specified entity could not be processed. +// +// - ThrottlingException +// Throttling limit exceeded error. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CheckAccessNotGranted +func (c *AccessAnalyzer) CheckAccessNotGranted(input *CheckAccessNotGrantedInput) (*CheckAccessNotGrantedOutput, error) { + req, out := c.CheckAccessNotGrantedRequest(input) + return out, req.Send() +} + +// CheckAccessNotGrantedWithContext is the same as CheckAccessNotGranted with the addition of +// the ability to pass a context and additional request options. +// +// See CheckAccessNotGranted for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AccessAnalyzer) CheckAccessNotGrantedWithContext(ctx aws.Context, input *CheckAccessNotGrantedInput, opts ...request.Option) (*CheckAccessNotGrantedOutput, error) { + req, out := c.CheckAccessNotGrantedRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCheckNoNewAccess = "CheckNoNewAccess" + +// CheckNoNewAccessRequest generates a "aws/request.Request" representing the +// client's request for the CheckNoNewAccess 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 CheckNoNewAccess for more information on using the CheckNoNewAccess +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CheckNoNewAccessRequest method. +// req, resp := client.CheckNoNewAccessRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CheckNoNewAccess +func (c *AccessAnalyzer) CheckNoNewAccessRequest(input *CheckNoNewAccessInput) (req *request.Request, output *CheckNoNewAccessOutput) { + op := &request.Operation{ + Name: opCheckNoNewAccess, + HTTPMethod: "POST", + HTTPPath: "/policy/check-no-new-access", + } + + if input == nil { + input = &CheckNoNewAccessInput{} + } + + output = &CheckNoNewAccessOutput{} + req = c.newRequest(op, input, output) + return +} + +// CheckNoNewAccess API operation for Access Analyzer. +// +// Checks whether new access is allowed for an updated policy when compared +// to the existing policy. +// +// You can find examples for reference policies and learn how to set up and +// run a custom policy check for new access in the IAM Access Analyzer custom +// policy checks samples (https://github.com/aws-samples/iam-access-analyzer-custom-policy-check-samples) +// repository on GitHub. The reference policies in this repository are meant +// to be passed to the existingPolicyDocument request parameter. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Access Analyzer's +// API operation CheckNoNewAccess for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// Validation exception error. +// +// - InternalServerException +// Internal server error. +// +// - InvalidParameterException +// The specified parameter is invalid. +// +// - UnprocessableEntityException +// The specified entity could not be processed. +// +// - ThrottlingException +// Throttling limit exceeded error. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CheckNoNewAccess +func (c *AccessAnalyzer) CheckNoNewAccess(input *CheckNoNewAccessInput) (*CheckNoNewAccessOutput, error) { + req, out := c.CheckNoNewAccessRequest(input) + return out, req.Send() +} + +// CheckNoNewAccessWithContext is the same as CheckNoNewAccess with the addition of +// the ability to pass a context and additional request options. +// +// See CheckNoNewAccess for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AccessAnalyzer) CheckNoNewAccessWithContext(ctx aws.Context, input *CheckNoNewAccessInput, opts ...request.Option) (*CheckNoNewAccessOutput, error) { + req, out := c.CheckNoNewAccessRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateAccessPreview = "CreateAccessPreview" // CreateAccessPreviewRequest generates a "aws/request.Request" representing the @@ -1137,6 +1332,154 @@ func (c *AccessAnalyzer) GetFindingWithContext(ctx aws.Context, input *GetFindin return out, req.Send() } +const opGetFindingV2 = "GetFindingV2" + +// GetFindingV2Request generates a "aws/request.Request" representing the +// client's request for the GetFindingV2 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 GetFindingV2 for more information on using the GetFindingV2 +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetFindingV2Request method. +// req, resp := client.GetFindingV2Request(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetFindingV2 +func (c *AccessAnalyzer) GetFindingV2Request(input *GetFindingV2Input) (req *request.Request, output *GetFindingV2Output) { + op := &request.Operation{ + Name: opGetFindingV2, + HTTPMethod: "GET", + HTTPPath: "/findingv2/{id}", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetFindingV2Input{} + } + + output = &GetFindingV2Output{} + req = c.newRequest(op, input, output) + return +} + +// GetFindingV2 API operation for Access Analyzer. +// +// Retrieves information about the specified finding. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Access Analyzer's +// API operation GetFindingV2 for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The specified resource could not be found. +// +// - ValidationException +// Validation exception error. +// +// - InternalServerException +// Internal server error. +// +// - ThrottlingException +// Throttling limit exceeded error. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetFindingV2 +func (c *AccessAnalyzer) GetFindingV2(input *GetFindingV2Input) (*GetFindingV2Output, error) { + req, out := c.GetFindingV2Request(input) + return out, req.Send() +} + +// GetFindingV2WithContext is the same as GetFindingV2 with the addition of +// the ability to pass a context and additional request options. +// +// See GetFindingV2 for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AccessAnalyzer) GetFindingV2WithContext(ctx aws.Context, input *GetFindingV2Input, opts ...request.Option) (*GetFindingV2Output, error) { + req, out := c.GetFindingV2Request(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// GetFindingV2Pages iterates over the pages of a GetFindingV2 operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See GetFindingV2 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 GetFindingV2 operation. +// pageNum := 0 +// err := client.GetFindingV2Pages(params, +// func(page *accessanalyzer.GetFindingV2Output, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *AccessAnalyzer) GetFindingV2Pages(input *GetFindingV2Input, fn func(*GetFindingV2Output, bool) bool) error { + return c.GetFindingV2PagesWithContext(aws.BackgroundContext(), input, fn) +} + +// GetFindingV2PagesWithContext same as GetFindingV2Pages 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 *AccessAnalyzer) GetFindingV2PagesWithContext(ctx aws.Context, input *GetFindingV2Input, fn func(*GetFindingV2Output, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *GetFindingV2Input + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.GetFindingV2Request(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*GetFindingV2Output), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opGetGeneratedPolicy = "GetGeneratedPolicy" // GetGeneratedPolicyRequest generates a "aws/request.Request" representing the @@ -2116,17 +2459,169 @@ func (c *AccessAnalyzer) ListFindingsPagesWithContext(ctx aws.Context, input *Li return p.Err() } -const opListPolicyGenerations = "ListPolicyGenerations" +const opListFindingsV2 = "ListFindingsV2" -// ListPolicyGenerationsRequest generates a "aws/request.Request" representing the -// client's request for the ListPolicyGenerations operation. The "output" return +// ListFindingsV2Request generates a "aws/request.Request" representing the +// client's request for the ListFindingsV2 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 ListPolicyGenerations for more information on using the ListPolicyGenerations +// See ListFindingsV2 for more information on using the ListFindingsV2 +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListFindingsV2Request method. +// req, resp := client.ListFindingsV2Request(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListFindingsV2 +func (c *AccessAnalyzer) ListFindingsV2Request(input *ListFindingsV2Input) (req *request.Request, output *ListFindingsV2Output) { + op := &request.Operation{ + Name: opListFindingsV2, + HTTPMethod: "POST", + HTTPPath: "/findingv2", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListFindingsV2Input{} + } + + output = &ListFindingsV2Output{} + req = c.newRequest(op, input, output) + return +} + +// ListFindingsV2 API operation for Access Analyzer. +// +// Retrieves a list of findings generated by the specified analyzer. +// +// To learn about filter keys that you can use to retrieve a list of findings, +// see IAM Access Analyzer filter keys (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html) +// in the IAM 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 +// the error. +// +// See the AWS API reference guide for Access Analyzer's +// API operation ListFindingsV2 for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The specified resource could not be found. +// +// - ValidationException +// Validation exception error. +// +// - InternalServerException +// Internal server error. +// +// - ThrottlingException +// Throttling limit exceeded error. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListFindingsV2 +func (c *AccessAnalyzer) ListFindingsV2(input *ListFindingsV2Input) (*ListFindingsV2Output, error) { + req, out := c.ListFindingsV2Request(input) + return out, req.Send() +} + +// ListFindingsV2WithContext is the same as ListFindingsV2 with the addition of +// the ability to pass a context and additional request options. +// +// See ListFindingsV2 for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AccessAnalyzer) ListFindingsV2WithContext(ctx aws.Context, input *ListFindingsV2Input, opts ...request.Option) (*ListFindingsV2Output, error) { + req, out := c.ListFindingsV2Request(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListFindingsV2Pages iterates over the pages of a ListFindingsV2 operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListFindingsV2 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 ListFindingsV2 operation. +// pageNum := 0 +// err := client.ListFindingsV2Pages(params, +// func(page *accessanalyzer.ListFindingsV2Output, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *AccessAnalyzer) ListFindingsV2Pages(input *ListFindingsV2Input, fn func(*ListFindingsV2Output, bool) bool) error { + return c.ListFindingsV2PagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListFindingsV2PagesWithContext same as ListFindingsV2Pages 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 *AccessAnalyzer) ListFindingsV2PagesWithContext(ctx aws.Context, input *ListFindingsV2Input, fn func(*ListFindingsV2Output, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListFindingsV2Input + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListFindingsV2Request(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListFindingsV2Output), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListPolicyGenerations = "ListPolicyGenerations" + +// ListPolicyGenerationsRequest generates a "aws/request.Request" representing the +// client's request for the ListPolicyGenerations 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 ListPolicyGenerations for more information on using the ListPolicyGenerations // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration @@ -3054,6 +3549,54 @@ func (c *AccessAnalyzer) ValidatePolicyPagesWithContext(ctx aws.Context, input * return p.Err() } +// Contains information about actions that define permissions to check against +// a policy. +type Access struct { + _ struct{} `type:"structure"` + + // A list of actions for the access permissions. + // + // Actions is a required field + Actions []*string `locationName:"actions" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Access) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Access) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Access) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Access"} + if s.Actions == nil { + invalidParams.Add(request.NewErrParamRequired("Actions")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActions sets the Actions field's value. +func (s *Access) SetActions(v []*string) *Access { + s.Actions = v + return s +} + // You do not have sufficient access to perform this action. type AccessDeniedException struct { _ struct{} `type:"structure"` @@ -3773,6 +4316,41 @@ func (s *AnalyzedResourceSummary) SetResourceType(v string) *AnalyzedResourceSum return s } +// Contains information about the configuration of an unused access analyzer +// for an Amazon Web Services organization or account. +type AnalyzerConfiguration struct { + _ struct{} `type:"structure"` + + // Specifies the configuration of an unused access analyzer for an Amazon Web + // Services organization or account. External access analyzers do not support + // any configuration. + UnusedAccess *UnusedAccessConfiguration `locationName:"unusedAccess" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AnalyzerConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AnalyzerConfiguration) GoString() string { + return s.String() +} + +// SetUnusedAccess sets the UnusedAccess field's value. +func (s *AnalyzerConfiguration) SetUnusedAccess(v *UnusedAccessConfiguration) *AnalyzerConfiguration { + s.UnusedAccess = v + return s +} + // Contains information about the analyzer. type AnalyzerSummary struct { _ struct{} `type:"structure"` @@ -3782,6 +4360,9 @@ type AnalyzerSummary struct { // Arn is a required field Arn *string `locationName:"arn" type:"string" required:"true"` + // Specifies whether the analyzer is an external access or unused access analyzer. + Configuration *AnalyzerConfiguration `locationName:"configuration" type:"structure"` + // A timestamp for the time at which the analyzer was created. // // CreatedAt is a required field @@ -3849,6 +4430,12 @@ func (s *AnalyzerSummary) SetArn(v string) *AnalyzerSummary { return s } +// SetConfiguration sets the Configuration field's value. +func (s *AnalyzerSummary) SetConfiguration(v *AnalyzerConfiguration) *AnalyzerSummary { + s.Configuration = v + return s +} + // SetCreatedAt sets the CreatedAt field's value. func (s *AnalyzerSummary) SetCreatedAt(v time.Time) *AnalyzerSummary { s.CreatedAt = &v @@ -4132,33 +4719,35 @@ func (s CancelPolicyGenerationOutput) GoString() string { return s.String() } -// Contains information about CloudTrail access. -type CloudTrailDetails struct { +type CheckAccessNotGrantedInput struct { _ struct{} `type:"structure"` - // The ARN of the service role that IAM Access Analyzer uses to access your - // CloudTrail trail and service last accessed information. + // An access object containing the permissions that shouldn't be granted by + // the specified policy. // - // AccessRole is a required field - AccessRole *string `locationName:"accessRole" type:"string" required:"true"` - - // The end of the time range for which IAM Access Analyzer reviews your CloudTrail - // events. Events with a timestamp after this time are not considered to generate - // a policy. If this is not included in the request, the default value is the - // current time. - EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"` + // Access is a required field + Access []*Access `locationName:"access" type:"list" required:"true"` - // The start of the time range for which IAM Access Analyzer reviews your CloudTrail - // events. Events with a timestamp before this time are not considered to generate - // a policy. + // The JSON policy document to use as the content for the policy. // - // StartTime is a required field - StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + // PolicyDocument is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CheckAccessNotGrantedInput's + // String and GoString methods. + // + // PolicyDocument is a required field + PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true" sensitive:"true"` - // A Trail object that contains settings for a trail. + // The type of policy. Identity policies grant permissions to IAM principals. + // Identity policies include managed and inline policies for IAM roles, users, + // and groups. // - // Trails is a required field - Trails []*Trail `locationName:"trails" type:"list" required:"true"` + // Resource policies grant permissions on Amazon Web Services resources. Resource + // policies include trust policies for IAM roles and bucket policies for Amazon + // S3 buckets. You can provide a generic input such as identity policy or resource + // policy or a specific input such as managed policy or Amazon S3 bucket policy. + // + // PolicyType is a required field + PolicyType *string `locationName:"policyType" type:"string" required:"true" enum:"AccessCheckPolicyType"` } // String returns the string representation. @@ -4166,7 +4755,7 @@ type CloudTrailDetails struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CloudTrailDetails) String() string { +func (s CheckAccessNotGrantedInput) String() string { return awsutil.Prettify(s) } @@ -4175,29 +4764,29 @@ func (s CloudTrailDetails) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CloudTrailDetails) GoString() string { +func (s CheckAccessNotGrantedInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CloudTrailDetails) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CloudTrailDetails"} - if s.AccessRole == nil { - invalidParams.Add(request.NewErrParamRequired("AccessRole")) +func (s *CheckAccessNotGrantedInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CheckAccessNotGrantedInput"} + if s.Access == nil { + invalidParams.Add(request.NewErrParamRequired("Access")) } - if s.StartTime == nil { - invalidParams.Add(request.NewErrParamRequired("StartTime")) + if s.PolicyDocument == nil { + invalidParams.Add(request.NewErrParamRequired("PolicyDocument")) } - if s.Trails == nil { - invalidParams.Add(request.NewErrParamRequired("Trails")) + if s.PolicyType == nil { + invalidParams.Add(request.NewErrParamRequired("PolicyType")) } - if s.Trails != nil { - for i, v := range s.Trails { + if s.Access != nil { + for i, v := range s.Access { if v == nil { continue } if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Trails", i), err.(request.ErrInvalidParams)) + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Access", i), err.(request.ErrInvalidParams)) } } } @@ -4208,38 +4797,324 @@ func (s *CloudTrailDetails) Validate() error { return nil } -// SetAccessRole sets the AccessRole field's value. -func (s *CloudTrailDetails) SetAccessRole(v string) *CloudTrailDetails { - s.AccessRole = &v - return s -} - -// SetEndTime sets the EndTime field's value. -func (s *CloudTrailDetails) SetEndTime(v time.Time) *CloudTrailDetails { - s.EndTime = &v +// SetAccess sets the Access field's value. +func (s *CheckAccessNotGrantedInput) SetAccess(v []*Access) *CheckAccessNotGrantedInput { + s.Access = v return s } -// SetStartTime sets the StartTime field's value. -func (s *CloudTrailDetails) SetStartTime(v time.Time) *CloudTrailDetails { - s.StartTime = &v +// SetPolicyDocument sets the PolicyDocument field's value. +func (s *CheckAccessNotGrantedInput) SetPolicyDocument(v string) *CheckAccessNotGrantedInput { + s.PolicyDocument = &v return s } -// SetTrails sets the Trails field's value. -func (s *CloudTrailDetails) SetTrails(v []*Trail) *CloudTrailDetails { - s.Trails = v +// SetPolicyType sets the PolicyType field's value. +func (s *CheckAccessNotGrantedInput) SetPolicyType(v string) *CheckAccessNotGrantedInput { + s.PolicyType = &v return s } -// Contains information about CloudTrail access. -type CloudTrailProperties struct { +type CheckAccessNotGrantedOutput struct { _ struct{} `type:"structure"` - // The end of the time range for which IAM Access Analyzer reviews your CloudTrail - // events. Events with a timestamp after this time are not considered to generate - // a policy. If this is not included in the request, the default value is the - // current time. + // The message indicating whether the specified access is allowed. + Message *string `locationName:"message" type:"string"` + + // A description of the reasoning of the result. + Reasons []*ReasonSummary `locationName:"reasons" type:"list"` + + // The result of the check for whether the access is allowed. If the result + // is PASS, the specified policy doesn't allow any of the specified permissions + // in the access object. If the result is FAIL, the specified policy might allow + // some or all of the permissions in the access object. + Result *string `locationName:"result" type:"string" enum:"CheckAccessNotGrantedResult"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CheckAccessNotGrantedOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CheckAccessNotGrantedOutput) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *CheckAccessNotGrantedOutput) SetMessage(v string) *CheckAccessNotGrantedOutput { + s.Message = &v + return s +} + +// SetReasons sets the Reasons field's value. +func (s *CheckAccessNotGrantedOutput) SetReasons(v []*ReasonSummary) *CheckAccessNotGrantedOutput { + s.Reasons = v + return s +} + +// SetResult sets the Result field's value. +func (s *CheckAccessNotGrantedOutput) SetResult(v string) *CheckAccessNotGrantedOutput { + s.Result = &v + return s +} + +type CheckNoNewAccessInput struct { + _ struct{} `type:"structure"` + + // The JSON policy document to use as the content for the existing policy. + // + // ExistingPolicyDocument is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CheckNoNewAccessInput's + // String and GoString methods. + // + // ExistingPolicyDocument is a required field + ExistingPolicyDocument *string `locationName:"existingPolicyDocument" type:"string" required:"true" sensitive:"true"` + + // The JSON policy document to use as the content for the updated policy. + // + // NewPolicyDocument is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CheckNoNewAccessInput's + // String and GoString methods. + // + // NewPolicyDocument is a required field + NewPolicyDocument *string `locationName:"newPolicyDocument" type:"string" required:"true" sensitive:"true"` + + // The type of policy to compare. Identity policies grant permissions to IAM + // principals. Identity policies include managed and inline policies for IAM + // roles, users, and groups. + // + // Resource policies grant permissions on Amazon Web Services resources. Resource + // policies include trust policies for IAM roles and bucket policies for Amazon + // S3 buckets. You can provide a generic input such as identity policy or resource + // policy or a specific input such as managed policy or Amazon S3 bucket policy. + // + // PolicyType is a required field + PolicyType *string `locationName:"policyType" type:"string" required:"true" enum:"AccessCheckPolicyType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CheckNoNewAccessInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CheckNoNewAccessInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CheckNoNewAccessInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CheckNoNewAccessInput"} + if s.ExistingPolicyDocument == nil { + invalidParams.Add(request.NewErrParamRequired("ExistingPolicyDocument")) + } + if s.NewPolicyDocument == nil { + invalidParams.Add(request.NewErrParamRequired("NewPolicyDocument")) + } + if s.PolicyType == nil { + invalidParams.Add(request.NewErrParamRequired("PolicyType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetExistingPolicyDocument sets the ExistingPolicyDocument field's value. +func (s *CheckNoNewAccessInput) SetExistingPolicyDocument(v string) *CheckNoNewAccessInput { + s.ExistingPolicyDocument = &v + return s +} + +// SetNewPolicyDocument sets the NewPolicyDocument field's value. +func (s *CheckNoNewAccessInput) SetNewPolicyDocument(v string) *CheckNoNewAccessInput { + s.NewPolicyDocument = &v + return s +} + +// SetPolicyType sets the PolicyType field's value. +func (s *CheckNoNewAccessInput) SetPolicyType(v string) *CheckNoNewAccessInput { + s.PolicyType = &v + return s +} + +type CheckNoNewAccessOutput struct { + _ struct{} `type:"structure"` + + // The message indicating whether the updated policy allows new access. + Message *string `locationName:"message" type:"string"` + + // A description of the reasoning of the result. + Reasons []*ReasonSummary `locationName:"reasons" type:"list"` + + // The result of the check for new access. If the result is PASS, no new access + // is allowed by the updated policy. If the result is FAIL, the updated policy + // might allow new access. + Result *string `locationName:"result" type:"string" enum:"CheckNoNewAccessResult"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CheckNoNewAccessOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CheckNoNewAccessOutput) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *CheckNoNewAccessOutput) SetMessage(v string) *CheckNoNewAccessOutput { + s.Message = &v + return s +} + +// SetReasons sets the Reasons field's value. +func (s *CheckNoNewAccessOutput) SetReasons(v []*ReasonSummary) *CheckNoNewAccessOutput { + s.Reasons = v + return s +} + +// SetResult sets the Result field's value. +func (s *CheckNoNewAccessOutput) SetResult(v string) *CheckNoNewAccessOutput { + s.Result = &v + return s +} + +// Contains information about CloudTrail access. +type CloudTrailDetails struct { + _ struct{} `type:"structure"` + + // The ARN of the service role that IAM Access Analyzer uses to access your + // CloudTrail trail and service last accessed information. + // + // AccessRole is a required field + AccessRole *string `locationName:"accessRole" type:"string" required:"true"` + + // The end of the time range for which IAM Access Analyzer reviews your CloudTrail + // events. Events with a timestamp after this time are not considered to generate + // a policy. If this is not included in the request, the default value is the + // current time. + EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"` + + // The start of the time range for which IAM Access Analyzer reviews your CloudTrail + // events. Events with a timestamp before this time are not considered to generate + // a policy. + // + // StartTime is a required field + StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // A Trail object that contains settings for a trail. + // + // Trails is a required field + Trails []*Trail `locationName:"trails" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CloudTrailDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CloudTrailDetails) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CloudTrailDetails) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CloudTrailDetails"} + if s.AccessRole == nil { + invalidParams.Add(request.NewErrParamRequired("AccessRole")) + } + if s.StartTime == nil { + invalidParams.Add(request.NewErrParamRequired("StartTime")) + } + if s.Trails == nil { + invalidParams.Add(request.NewErrParamRequired("Trails")) + } + if s.Trails != nil { + for i, v := range s.Trails { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Trails", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessRole sets the AccessRole field's value. +func (s *CloudTrailDetails) SetAccessRole(v string) *CloudTrailDetails { + s.AccessRole = &v + return s +} + +// SetEndTime sets the EndTime field's value. +func (s *CloudTrailDetails) SetEndTime(v time.Time) *CloudTrailDetails { + s.EndTime = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *CloudTrailDetails) SetStartTime(v time.Time) *CloudTrailDetails { + s.StartTime = &v + return s +} + +// SetTrails sets the Trails field's value. +func (s *CloudTrailDetails) SetTrails(v []*Trail) *CloudTrailDetails { + s.Trails = v + return s +} + +// Contains information about CloudTrail access. +type CloudTrailProperties struct { + _ struct{} `type:"structure"` + + // The end of the time range for which IAM Access Analyzer reviews your CloudTrail + // events. Events with a timestamp after this time are not considered to generate + // a policy. If this is not included in the request, the default value is the + // current time. // // EndTime is a required field EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` @@ -4644,12 +5519,18 @@ type CreateAnalyzerInput struct { // A client token. ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"` - // The tags to apply to the analyzer. + // Specifies the configuration of the analyzer. If the analyzer is an unused + // access analyzer, the specified scope of unused access is used for the configuration. + // If the analyzer is an external access analyzer, this field is not used. + Configuration *AnalyzerConfiguration `locationName:"configuration" type:"structure"` + + // An array of key-value pairs to apply to the analyzer. Tags map[string]*string `locationName:"tags" type:"map"` - // The type of analyzer to create. Only ACCOUNT and ORGANIZATION analyzers are - // supported. You can create only one analyzer per account per Region. You can - // create up to 5 analyzers per organization per Region. + // The type of analyzer to create. Only ACCOUNT, ORGANIZATION, ACCOUNT_UNUSED_ACCESS, + // and ORGANIZTAION_UNUSED_ACCESS analyzers are supported. You can create only + // one analyzer per account per Region. You can create up to 5 analyzers per + // organization per Region. // // Type is a required field Type *string `locationName:"type" type:"string" required:"true" enum:"Type"` @@ -4720,6 +5601,12 @@ func (s *CreateAnalyzerInput) SetClientToken(v string) *CreateAnalyzerInput { return s } +// SetConfiguration sets the Configuration field's value. +func (s *CreateAnalyzerInput) SetConfiguration(v *AnalyzerConfiguration) *CreateAnalyzerInput { + s.Configuration = v + return s +} + // SetTags sets the Tags field's value. func (s *CreateAnalyzerInput) SetTags(v map[string]*string) *CreateAnalyzerInput { s.Tags = v @@ -5326,42 +6213,116 @@ func (s *EfsFileSystemConfiguration) SetFileSystemPolicy(v string) *EfsFileSyste return s } -// Contains information about a finding. -type Finding struct { +// Contains information about an external access finding. +type ExternalAccessDetails struct { _ struct{} `type:"structure"` // The action in the analyzed policy statement that an external principal has // permission to use. Action []*string `locationName:"action" type:"list"` - // The time at which the resource was analyzed. - // - // AnalyzedAt is a required field - AnalyzedAt *time.Time `locationName:"analyzedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` - - // The condition in the analyzed policy statement that resulted in a finding. + // The condition in the analyzed policy statement that resulted in an external + // access finding. // // Condition is a required field Condition map[string]*string `locationName:"condition" type:"map" required:"true"` - // The time at which the finding was generated. - // - // CreatedAt is a required field - CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` - - // An error. - Error *string `locationName:"error" type:"string"` + // Specifies whether the external access finding is public. + IsPublic *bool `locationName:"isPublic" type:"boolean"` - // The ID of the finding. - // - // Id is a required field - Id *string `locationName:"id" type:"string" required:"true"` + // The external principal that has access to a resource within the zone of trust. + Principal map[string]*string `locationName:"principal" type:"map"` + + // The sources of the external access finding. This indicates how the access + // that generated the finding is granted. It is populated for Amazon S3 bucket + // findings. + Sources []*FindingSource `locationName:"sources" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExternalAccessDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExternalAccessDetails) GoString() string { + return s.String() +} + +// SetAction sets the Action field's value. +func (s *ExternalAccessDetails) SetAction(v []*string) *ExternalAccessDetails { + s.Action = v + return s +} + +// SetCondition sets the Condition field's value. +func (s *ExternalAccessDetails) SetCondition(v map[string]*string) *ExternalAccessDetails { + s.Condition = v + return s +} + +// SetIsPublic sets the IsPublic field's value. +func (s *ExternalAccessDetails) SetIsPublic(v bool) *ExternalAccessDetails { + s.IsPublic = &v + return s +} + +// SetPrincipal sets the Principal field's value. +func (s *ExternalAccessDetails) SetPrincipal(v map[string]*string) *ExternalAccessDetails { + s.Principal = v + return s +} + +// SetSources sets the Sources field's value. +func (s *ExternalAccessDetails) SetSources(v []*FindingSource) *ExternalAccessDetails { + s.Sources = v + return s +} + +// Contains information about a finding. +type Finding struct { + _ struct{} `type:"structure"` + + // The action in the analyzed policy statement that an external principal has + // permission to use. + Action []*string `locationName:"action" type:"list"` + + // The time at which the resource was analyzed. + // + // AnalyzedAt is a required field + AnalyzedAt *time.Time `locationName:"analyzedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The condition in the analyzed policy statement that resulted in a finding. + // + // Condition is a required field + Condition map[string]*string `locationName:"condition" type:"map" required:"true"` + + // The time at which the finding was generated. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // An error. + Error *string `locationName:"error" type:"string"` + + // The ID of the finding. + // + // Id is a required field + Id *string `locationName:"id" type:"string" required:"true"` // Indicates whether the policy that generated the finding allows public access // to the resource. IsPublic *bool `locationName:"isPublic" type:"boolean"` - // The external principal that access to a resource within the zone of trust. + // The external principal that has access to a resource within the zone of trust. Principal map[string]*string `locationName:"principal" type:"map"` // The resource that an external principal has access to. @@ -5494,6 +6455,79 @@ func (s *Finding) SetUpdatedAt(v time.Time) *Finding { return s } +// Contains information about an external access or unused access finding. Only +// one parameter can be used in a FindingDetails object. +type FindingDetails struct { + _ struct{} `type:"structure"` + + // The details for an external access analyzer finding. + ExternalAccessDetails *ExternalAccessDetails `locationName:"externalAccessDetails" type:"structure"` + + // The details for an unused access analyzer finding with an unused IAM role + // finding type. + UnusedIamRoleDetails *UnusedIamRoleDetails `locationName:"unusedIamRoleDetails" type:"structure"` + + // The details for an unused access analyzer finding with an unused IAM user + // access key finding type. + UnusedIamUserAccessKeyDetails *UnusedIamUserAccessKeyDetails `locationName:"unusedIamUserAccessKeyDetails" type:"structure"` + + // The details for an unused access analyzer finding with an unused IAM user + // password finding type. + UnusedIamUserPasswordDetails *UnusedIamUserPasswordDetails `locationName:"unusedIamUserPasswordDetails" type:"structure"` + + // The details for an unused access analyzer finding with an unused permission + // finding type. + UnusedPermissionDetails *UnusedPermissionDetails `locationName:"unusedPermissionDetails" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FindingDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FindingDetails) GoString() string { + return s.String() +} + +// SetExternalAccessDetails sets the ExternalAccessDetails field's value. +func (s *FindingDetails) SetExternalAccessDetails(v *ExternalAccessDetails) *FindingDetails { + s.ExternalAccessDetails = v + return s +} + +// SetUnusedIamRoleDetails sets the UnusedIamRoleDetails field's value. +func (s *FindingDetails) SetUnusedIamRoleDetails(v *UnusedIamRoleDetails) *FindingDetails { + s.UnusedIamRoleDetails = v + return s +} + +// SetUnusedIamUserAccessKeyDetails sets the UnusedIamUserAccessKeyDetails field's value. +func (s *FindingDetails) SetUnusedIamUserAccessKeyDetails(v *UnusedIamUserAccessKeyDetails) *FindingDetails { + s.UnusedIamUserAccessKeyDetails = v + return s +} + +// SetUnusedIamUserPasswordDetails sets the UnusedIamUserPasswordDetails field's value. +func (s *FindingDetails) SetUnusedIamUserPasswordDetails(v *UnusedIamUserPasswordDetails) *FindingDetails { + s.UnusedIamUserPasswordDetails = v + return s +} + +// SetUnusedPermissionDetails sets the UnusedPermissionDetails field's value. +func (s *FindingDetails) SetUnusedPermissionDetails(v *UnusedPermissionDetails) *FindingDetails { + s.UnusedPermissionDetails = v + return s +} + // The source of the finding. This indicates how the access that generated the // finding is granted. It is populated for Amazon S3 bucket findings. type FindingSource struct { @@ -5751,6 +6785,134 @@ func (s *FindingSummary) SetUpdatedAt(v time.Time) *FindingSummary { return s } +// Contains information about a finding. +type FindingSummaryV2 struct { + _ struct{} `type:"structure"` + + // The time at which the resource-based policy or IAM entity that generated + // the finding was analyzed. + // + // AnalyzedAt is a required field + AnalyzedAt *time.Time `locationName:"analyzedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The time at which the finding was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The error that resulted in an Error finding. + Error *string `locationName:"error" type:"string"` + + // The type of the external access or unused access finding. + FindingType *string `locationName:"findingType" type:"string" enum:"FindingType"` + + // The ID of the finding. + // + // Id is a required field + Id *string `locationName:"id" type:"string" required:"true"` + + // The resource that the external principal has access to. + Resource *string `locationName:"resource" type:"string"` + + // The Amazon Web Services account ID that owns the resource. + // + // ResourceOwnerAccount is a required field + ResourceOwnerAccount *string `locationName:"resourceOwnerAccount" type:"string" required:"true"` + + // The type of the resource that the external principal has access to. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"` + + // The status of the finding. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"FindingStatus"` + + // The time at which the finding was most recently updated. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FindingSummaryV2) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FindingSummaryV2) GoString() string { + return s.String() +} + +// SetAnalyzedAt sets the AnalyzedAt field's value. +func (s *FindingSummaryV2) SetAnalyzedAt(v time.Time) *FindingSummaryV2 { + s.AnalyzedAt = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *FindingSummaryV2) SetCreatedAt(v time.Time) *FindingSummaryV2 { + s.CreatedAt = &v + return s +} + +// SetError sets the Error field's value. +func (s *FindingSummaryV2) SetError(v string) *FindingSummaryV2 { + s.Error = &v + return s +} + +// SetFindingType sets the FindingType field's value. +func (s *FindingSummaryV2) SetFindingType(v string) *FindingSummaryV2 { + s.FindingType = &v + return s +} + +// SetId sets the Id field's value. +func (s *FindingSummaryV2) SetId(v string) *FindingSummaryV2 { + s.Id = &v + return s +} + +// SetResource sets the Resource field's value. +func (s *FindingSummaryV2) SetResource(v string) *FindingSummaryV2 { + s.Resource = &v + return s +} + +// SetResourceOwnerAccount sets the ResourceOwnerAccount field's value. +func (s *FindingSummaryV2) SetResourceOwnerAccount(v string) *FindingSummaryV2 { + s.ResourceOwnerAccount = &v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *FindingSummaryV2) SetResourceType(v string) *FindingSummaryV2 { + s.ResourceType = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *FindingSummaryV2) SetStatus(v string) *FindingSummaryV2 { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *FindingSummaryV2) SetUpdatedAt(v time.Time) *FindingSummaryV2 { + s.UpdatedAt = &v + return s +} + // Contains the text for the generated policy. type GeneratedPolicy struct { _ struct{} `type:"structure"` @@ -6317,47 +7479,279 @@ func (s *GetFindingInput) Validate() error { return nil } -// SetAnalyzerArn sets the AnalyzerArn field's value. -func (s *GetFindingInput) SetAnalyzerArn(v string) *GetFindingInput { - s.AnalyzerArn = &v +// SetAnalyzerArn sets the AnalyzerArn field's value. +func (s *GetFindingInput) SetAnalyzerArn(v string) *GetFindingInput { + s.AnalyzerArn = &v + return s +} + +// SetId sets the Id field's value. +func (s *GetFindingInput) SetId(v string) *GetFindingInput { + s.Id = &v + return s +} + +// The response to the request. +type GetFindingOutput struct { + _ struct{} `type:"structure"` + + // A finding object that contains finding details. + Finding *Finding `locationName:"finding" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetFindingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetFindingOutput) GoString() string { + return s.String() +} + +// SetFinding sets the Finding field's value. +func (s *GetFindingOutput) SetFinding(v *Finding) *GetFindingOutput { + s.Finding = v + return s +} + +type GetFindingV2Input struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN of the analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources) + // that generated the finding. + // + // AnalyzerArn is a required field + AnalyzerArn *string `location:"querystring" locationName:"analyzerArn" type:"string" required:"true"` + + // The ID of the finding to retrieve. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` + + // The maximum number of results to return in the response. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // A token used for pagination of results returned. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetFindingV2Input) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetFindingV2Input) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetFindingV2Input) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetFindingV2Input"} + if s.AnalyzerArn == nil { + invalidParams.Add(request.NewErrParamRequired("AnalyzerArn")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnalyzerArn sets the AnalyzerArn field's value. +func (s *GetFindingV2Input) SetAnalyzerArn(v string) *GetFindingV2Input { + s.AnalyzerArn = &v + return s +} + +// SetId sets the Id field's value. +func (s *GetFindingV2Input) SetId(v string) *GetFindingV2Input { + s.Id = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *GetFindingV2Input) SetMaxResults(v int64) *GetFindingV2Input { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *GetFindingV2Input) SetNextToken(v string) *GetFindingV2Input { + s.NextToken = &v + return s +} + +type GetFindingV2Output struct { + _ struct{} `type:"structure"` + + // The time at which the resource-based policy or IAM entity that generated + // the finding was analyzed. + // + // AnalyzedAt is a required field + AnalyzedAt *time.Time `locationName:"analyzedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The time at which the finding was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // An error. + Error *string `locationName:"error" type:"string"` + + // A localized message that explains the finding and provides guidance on how + // to address it. + // + // FindingDetails is a required field + FindingDetails []*FindingDetails `locationName:"findingDetails" type:"list" required:"true"` + + // The type of the finding. For external access analyzers, the type is ExternalAccess. + // For unused access analyzers, the type can be UnusedIAMRole, UnusedIAMUserAccessKey, + // UnusedIAMUserPassword, or UnusedPermission. + FindingType *string `locationName:"findingType" type:"string" enum:"FindingType"` + + // The ID of the finding to retrieve. + // + // Id is a required field + Id *string `locationName:"id" type:"string" required:"true"` + + // A token used for pagination of results returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The resource that generated the finding. + Resource *string `locationName:"resource" type:"string"` + + // Tye Amazon Web Services account ID that owns the resource. + // + // ResourceOwnerAccount is a required field + ResourceOwnerAccount *string `locationName:"resourceOwnerAccount" type:"string" required:"true"` + + // The type of the resource identified in the finding. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"` + + // The status of the finding. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"FindingStatus"` + + // The time at which the finding was updated. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetFindingV2Output) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetFindingV2Output) GoString() string { + return s.String() +} + +// SetAnalyzedAt sets the AnalyzedAt field's value. +func (s *GetFindingV2Output) SetAnalyzedAt(v time.Time) *GetFindingV2Output { + s.AnalyzedAt = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetFindingV2Output) SetCreatedAt(v time.Time) *GetFindingV2Output { + s.CreatedAt = &v + return s +} + +// SetError sets the Error field's value. +func (s *GetFindingV2Output) SetError(v string) *GetFindingV2Output { + s.Error = &v + return s +} + +// SetFindingDetails sets the FindingDetails field's value. +func (s *GetFindingV2Output) SetFindingDetails(v []*FindingDetails) *GetFindingV2Output { + s.FindingDetails = v + return s +} + +// SetFindingType sets the FindingType field's value. +func (s *GetFindingV2Output) SetFindingType(v string) *GetFindingV2Output { + s.FindingType = &v return s } // SetId sets the Id field's value. -func (s *GetFindingInput) SetId(v string) *GetFindingInput { +func (s *GetFindingV2Output) SetId(v string) *GetFindingV2Output { s.Id = &v return s } -// The response to the request. -type GetFindingOutput struct { - _ struct{} `type:"structure"` +// SetNextToken sets the NextToken field's value. +func (s *GetFindingV2Output) SetNextToken(v string) *GetFindingV2Output { + s.NextToken = &v + return s +} - // A finding object that contains finding details. - Finding *Finding `locationName:"finding" type:"structure"` +// SetResource sets the Resource field's value. +func (s *GetFindingV2Output) SetResource(v string) *GetFindingV2Output { + s.Resource = &v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetFindingOutput) String() string { - return awsutil.Prettify(s) +// SetResourceOwnerAccount sets the ResourceOwnerAccount field's value. +func (s *GetFindingV2Output) SetResourceOwnerAccount(v string) *GetFindingV2Output { + s.ResourceOwnerAccount = &v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetFindingOutput) GoString() string { - return s.String() +// SetResourceType sets the ResourceType field's value. +func (s *GetFindingV2Output) SetResourceType(v string) *GetFindingV2Output { + s.ResourceType = &v + return s } -// SetFinding sets the Finding field's value. -func (s *GetFindingOutput) SetFinding(v *Finding) *GetFindingOutput { - s.Finding = v +// SetStatus sets the Status field's value. +func (s *GetFindingV2Output) SetStatus(v string) *GetFindingV2Output { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *GetFindingV2Output) SetUpdatedAt(v time.Time) *GetFindingV2Output { + s.UpdatedAt = &v return s } @@ -6690,6 +8084,70 @@ func (s InternetConfiguration) GoString() string { return s.String() } +// The specified parameter is invalid. +type InvalidParameterException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidParameterException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidParameterException) GoString() string { + return s.String() +} + +func newErrorInvalidParameterException(v protocol.ResponseMetadata) error { + return &InvalidParameterException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InvalidParameterException) Code() string { + return "InvalidParameterException" +} + +// Message returns the exception's message. +func (s *InvalidParameterException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InvalidParameterException) OrigErr() error { + return nil +} + +func (s *InvalidParameterException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InvalidParameterException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InvalidParameterException) RequestID() string { + return s.RespMetadata.RequestID +} + // Contains details about the policy generation request. type JobDetails struct { _ struct{} `type:"structure"` @@ -7749,6 +9207,142 @@ func (s *ListFindingsOutput) SetNextToken(v string) *ListFindingsOutput { return s } +type ListFindingsV2Input struct { + _ struct{} `type:"structure"` + + // The ARN of the analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources) + // to retrieve findings from. + // + // AnalyzerArn is a required field + AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"` + + // A filter to match for the findings to return. + Filter map[string]*Criterion `locationName:"filter" type:"map"` + + // The maximum number of results to return in the response. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // A token used for pagination of results returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The criteria used to sort. + Sort *SortCriteria `locationName:"sort" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListFindingsV2Input) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListFindingsV2Input) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListFindingsV2Input) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListFindingsV2Input"} + if s.AnalyzerArn == nil { + invalidParams.Add(request.NewErrParamRequired("AnalyzerArn")) + } + if s.Filter != nil { + for i, v := range s.Filter { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filter", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnalyzerArn sets the AnalyzerArn field's value. +func (s *ListFindingsV2Input) SetAnalyzerArn(v string) *ListFindingsV2Input { + s.AnalyzerArn = &v + return s +} + +// SetFilter sets the Filter field's value. +func (s *ListFindingsV2Input) SetFilter(v map[string]*Criterion) *ListFindingsV2Input { + s.Filter = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListFindingsV2Input) SetMaxResults(v int64) *ListFindingsV2Input { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListFindingsV2Input) SetNextToken(v string) *ListFindingsV2Input { + s.NextToken = &v + return s +} + +// SetSort sets the Sort field's value. +func (s *ListFindingsV2Input) SetSort(v *SortCriteria) *ListFindingsV2Input { + s.Sort = v + return s +} + +type ListFindingsV2Output struct { + _ struct{} `type:"structure"` + + // A list of findings retrieved from the analyzer that match the filter criteria + // specified, if any. + // + // Findings is a required field + Findings []*FindingSummaryV2 `locationName:"findings" type:"list" required:"true"` + + // A token used for pagination of results returned. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListFindingsV2Output) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListFindingsV2Output) GoString() string { + return s.String() +} + +// SetFindings sets the Findings field's value. +func (s *ListFindingsV2Output) SetFindings(v []*FindingSummaryV2) *ListFindingsV2Output { + s.Findings = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListFindingsV2Output) SetNextToken(v string) *ListFindingsV2Output { + s.NextToken = &v + return s +} + type ListPolicyGenerationsInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -8484,15 +10078,66 @@ func (s RdsDbSnapshotConfiguration) GoString() string { return s.String() } -// SetAttributes sets the Attributes field's value. -func (s *RdsDbSnapshotConfiguration) SetAttributes(v map[string]*RdsDbSnapshotAttributeValue) *RdsDbSnapshotConfiguration { - s.Attributes = v +// SetAttributes sets the Attributes field's value. +func (s *RdsDbSnapshotConfiguration) SetAttributes(v map[string]*RdsDbSnapshotAttributeValue) *RdsDbSnapshotConfiguration { + s.Attributes = v + return s +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *RdsDbSnapshotConfiguration) SetKmsKeyId(v string) *RdsDbSnapshotConfiguration { + s.KmsKeyId = &v + return s +} + +// Contains information about the reasoning why a check for access passed or +// failed. +type ReasonSummary struct { + _ struct{} `type:"structure"` + + // A description of the reasoning of a result of checking for access. + Description *string `locationName:"description" type:"string"` + + // The identifier for the reason statement. + StatementId *string `locationName:"statementId" type:"string"` + + // The index number of the reason statement. + StatementIndex *int64 `locationName:"statementIndex" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReasonSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReasonSummary) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *ReasonSummary) SetDescription(v string) *ReasonSummary { + s.Description = &v + return s +} + +// SetStatementId sets the StatementId field's value. +func (s *ReasonSummary) SetStatementId(v string) *ReasonSummary { + s.StatementId = &v return s } -// SetKmsKeyId sets the KmsKeyId field's value. -func (s *RdsDbSnapshotConfiguration) SetKmsKeyId(v string) *RdsDbSnapshotConfiguration { - s.KmsKeyId = &v +// SetStatementIndex sets the StatementIndex field's value. +func (s *ReasonSummary) SetStatementIndex(v int64) *ReasonSummary { + s.StatementIndex = &v return s } @@ -9766,6 +11411,70 @@ func (s *TrailProperties) SetRegions(v []*string) *TrailProperties { return s } +// The specified entity could not be processed. +type UnprocessableEntityException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnprocessableEntityException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnprocessableEntityException) GoString() string { + return s.String() +} + +func newErrorUnprocessableEntityException(v protocol.ResponseMetadata) error { + return &UnprocessableEntityException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *UnprocessableEntityException) Code() string { + return "UnprocessableEntityException" +} + +// Message returns the exception's message. +func (s *UnprocessableEntityException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *UnprocessableEntityException) OrigErr() error { + return nil +} + +func (s *UnprocessableEntityException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *UnprocessableEntityException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *UnprocessableEntityException) RequestID() string { + return s.RespMetadata.RequestID +} + // Removes a tag from the specified resource. type UntagResourceInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -9853,6 +11562,260 @@ func (s UntagResourceOutput) GoString() string { return s.String() } +// Contains information about an unused access analyzer. +type UnusedAccessConfiguration struct { + _ struct{} `type:"structure"` + + // The specified access age in days for which to generate findings for unused + // access. For example, if you specify 90 days, the analyzer will generate findings + // for IAM entities within the accounts of the selected organization for any + // access that hasn't been used in 90 or more days since the analyzer's last + // scan. You can choose a value between 1 and 180 days. + UnusedAccessAge *int64 `locationName:"unusedAccessAge" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedAccessConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedAccessConfiguration) GoString() string { + return s.String() +} + +// SetUnusedAccessAge sets the UnusedAccessAge field's value. +func (s *UnusedAccessConfiguration) SetUnusedAccessAge(v int64) *UnusedAccessConfiguration { + s.UnusedAccessAge = &v + return s +} + +// Contains information about an unused access finding for an action. IAM Access +// Analyzer charges for unused access analysis based on the number of IAM roles +// and users analyzed per month. For more details on pricing, see IAM Access +// Analyzer pricing (https://aws.amazon.com/iam/access-analyzer/pricing). +type UnusedAction struct { + _ struct{} `type:"structure"` + + // The action for which the unused access finding was generated. + // + // Action is a required field + Action *string `locationName:"action" type:"string" required:"true"` + + // The time at which the action was last accessed. + LastAccessed *time.Time `locationName:"lastAccessed" type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedAction) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedAction) GoString() string { + return s.String() +} + +// SetAction sets the Action field's value. +func (s *UnusedAction) SetAction(v string) *UnusedAction { + s.Action = &v + return s +} + +// SetLastAccessed sets the LastAccessed field's value. +func (s *UnusedAction) SetLastAccessed(v time.Time) *UnusedAction { + s.LastAccessed = &v + return s +} + +// Contains information about an unused access finding for an IAM role. IAM +// Access Analyzer charges for unused access analysis based on the number of +// IAM roles and users analyzed per month. For more details on pricing, see +// IAM Access Analyzer pricing (https://aws.amazon.com/iam/access-analyzer/pricing). +type UnusedIamRoleDetails struct { + _ struct{} `type:"structure"` + + // The time at which the role was last accessed. + LastAccessed *time.Time `locationName:"lastAccessed" type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedIamRoleDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedIamRoleDetails) GoString() string { + return s.String() +} + +// SetLastAccessed sets the LastAccessed field's value. +func (s *UnusedIamRoleDetails) SetLastAccessed(v time.Time) *UnusedIamRoleDetails { + s.LastAccessed = &v + return s +} + +// Contains information about an unused access finding for an IAM user access +// key. IAM Access Analyzer charges for unused access analysis based on the +// number of IAM roles and users analyzed per month. For more details on pricing, +// see IAM Access Analyzer pricing (https://aws.amazon.com/iam/access-analyzer/pricing). +type UnusedIamUserAccessKeyDetails struct { + _ struct{} `type:"structure"` + + // The ID of the access key for which the unused access finding was generated. + // + // AccessKeyId is a required field + AccessKeyId *string `locationName:"accessKeyId" type:"string" required:"true"` + + // The time at which the access key was last accessed. + LastAccessed *time.Time `locationName:"lastAccessed" type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedIamUserAccessKeyDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedIamUserAccessKeyDetails) GoString() string { + return s.String() +} + +// SetAccessKeyId sets the AccessKeyId field's value. +func (s *UnusedIamUserAccessKeyDetails) SetAccessKeyId(v string) *UnusedIamUserAccessKeyDetails { + s.AccessKeyId = &v + return s +} + +// SetLastAccessed sets the LastAccessed field's value. +func (s *UnusedIamUserAccessKeyDetails) SetLastAccessed(v time.Time) *UnusedIamUserAccessKeyDetails { + s.LastAccessed = &v + return s +} + +// Contains information about an unused access finding for an IAM user password. +// IAM Access Analyzer charges for unused access analysis based on the number +// of IAM roles and users analyzed per month. For more details on pricing, see +// IAM Access Analyzer pricing (https://aws.amazon.com/iam/access-analyzer/pricing). +type UnusedIamUserPasswordDetails struct { + _ struct{} `type:"structure"` + + // The time at which the password was last accessed. + LastAccessed *time.Time `locationName:"lastAccessed" type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedIamUserPasswordDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedIamUserPasswordDetails) GoString() string { + return s.String() +} + +// SetLastAccessed sets the LastAccessed field's value. +func (s *UnusedIamUserPasswordDetails) SetLastAccessed(v time.Time) *UnusedIamUserPasswordDetails { + s.LastAccessed = &v + return s +} + +// Contains information about an unused access finding for a permission. IAM +// Access Analyzer charges for unused access analysis based on the number of +// IAM roles and users analyzed per month. For more details on pricing, see +// IAM Access Analyzer pricing (https://aws.amazon.com/iam/access-analyzer/pricing). +type UnusedPermissionDetails struct { + _ struct{} `type:"structure"` + + // A list of unused actions for which the unused access finding was generated. + Actions []*UnusedAction `locationName:"actions" type:"list"` + + // The time at which the permission last accessed. + LastAccessed *time.Time `locationName:"lastAccessed" type:"timestamp" timestampFormat:"iso8601"` + + // The namespace of the Amazon Web Services service that contains the unused + // actions. + // + // ServiceNamespace is a required field + ServiceNamespace *string `locationName:"serviceNamespace" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedPermissionDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UnusedPermissionDetails) GoString() string { + return s.String() +} + +// SetActions sets the Actions field's value. +func (s *UnusedPermissionDetails) SetActions(v []*UnusedAction) *UnusedPermissionDetails { + s.Actions = v + return s +} + +// SetLastAccessed sets the LastAccessed field's value. +func (s *UnusedPermissionDetails) SetLastAccessed(v time.Time) *UnusedPermissionDetails { + s.LastAccessed = &v + return s +} + +// SetServiceNamespace sets the ServiceNamespace field's value. +func (s *UnusedPermissionDetails) SetServiceNamespace(v string) *UnusedPermissionDetails { + s.ServiceNamespace = &v + return s +} + // Updates the specified archive rule. type UpdateArchiveRuleInput struct { _ struct{} `type:"structure"` @@ -10200,15 +12163,16 @@ type ValidatePolicyInput struct { // The type of policy to validate. Identity policies grant permissions to IAM // principals. Identity policies include managed and inline policies for IAM - // roles, users, and groups. They also include service-control policies (SCPs) - // that are attached to an Amazon Web Services organization, organizational - // unit (OU), or an account. + // roles, users, and groups. // // Resource policies grant permissions on Amazon Web Services resources. Resource // policies include trust policies for IAM roles and bucket policies for Amazon // S3 buckets. You can provide a generic input such as identity policy or resource // policy or a specific input such as managed policy or Amazon S3 bucket policy. // + // Service control policies (SCPs) are a type of organization policy attached + // to an Amazon Web Services organization, organizational unit (OU), or an account. + // // PolicyType is a required field PolicyType *string `locationName:"policyType" type:"string" required:"true" enum:"PolicyType"` @@ -10505,6 +12469,22 @@ func (s *VpcConfiguration) SetVpcId(v string) *VpcConfiguration { return s } +const ( + // AccessCheckPolicyTypeIdentityPolicy is a AccessCheckPolicyType enum value + AccessCheckPolicyTypeIdentityPolicy = "IDENTITY_POLICY" + + // AccessCheckPolicyTypeResourcePolicy is a AccessCheckPolicyType enum value + AccessCheckPolicyTypeResourcePolicy = "RESOURCE_POLICY" +) + +// AccessCheckPolicyType_Values returns all elements of the AccessCheckPolicyType enum +func AccessCheckPolicyType_Values() []string { + return []string{ + AccessCheckPolicyTypeIdentityPolicy, + AccessCheckPolicyTypeResourcePolicy, + } +} + const ( // AccessPreviewStatusCompleted is a AccessPreviewStatus enum value AccessPreviewStatusCompleted = "COMPLETED" @@ -10593,6 +12573,38 @@ func AnalyzerStatus_Values() []string { } } +const ( + // CheckAccessNotGrantedResultPass is a CheckAccessNotGrantedResult enum value + CheckAccessNotGrantedResultPass = "PASS" + + // CheckAccessNotGrantedResultFail is a CheckAccessNotGrantedResult enum value + CheckAccessNotGrantedResultFail = "FAIL" +) + +// CheckAccessNotGrantedResult_Values returns all elements of the CheckAccessNotGrantedResult enum +func CheckAccessNotGrantedResult_Values() []string { + return []string{ + CheckAccessNotGrantedResultPass, + CheckAccessNotGrantedResultFail, + } +} + +const ( + // CheckNoNewAccessResultPass is a CheckNoNewAccessResult enum value + CheckNoNewAccessResultPass = "PASS" + + // CheckNoNewAccessResultFail is a CheckNoNewAccessResult enum value + CheckNoNewAccessResultFail = "FAIL" +) + +// CheckNoNewAccessResult_Values returns all elements of the CheckNoNewAccessResult enum +func CheckNoNewAccessResult_Values() []string { + return []string{ + CheckNoNewAccessResultPass, + CheckNoNewAccessResultFail, + } +} + const ( // FindingChangeTypeChanged is a FindingChangeType enum value FindingChangeTypeChanged = "CHANGED" @@ -10673,6 +12685,34 @@ func FindingStatusUpdate_Values() []string { } } +const ( + // FindingTypeExternalAccess is a FindingType enum value + FindingTypeExternalAccess = "ExternalAccess" + + // FindingTypeUnusedIamrole is a FindingType enum value + FindingTypeUnusedIamrole = "UnusedIAMRole" + + // FindingTypeUnusedIamuserAccessKey is a FindingType enum value + FindingTypeUnusedIamuserAccessKey = "UnusedIAMUserAccessKey" + + // FindingTypeUnusedIamuserPassword is a FindingType enum value + FindingTypeUnusedIamuserPassword = "UnusedIAMUserPassword" + + // FindingTypeUnusedPermission is a FindingType enum value + FindingTypeUnusedPermission = "UnusedPermission" +) + +// FindingType_Values returns all elements of the FindingType enum +func FindingType_Values() []string { + return []string{ + FindingTypeExternalAccess, + FindingTypeUnusedIamrole, + FindingTypeUnusedIamuserAccessKey, + FindingTypeUnusedIamuserPassword, + FindingTypeUnusedPermission, + } +} + const ( // JobErrorCodeAuthorizationError is a JobErrorCode enum value JobErrorCodeAuthorizationError = "AUTHORIZATION_ERROR" @@ -10959,6 +12999,12 @@ const ( // TypeOrganization is a Type enum value TypeOrganization = "ORGANIZATION" + + // TypeAccountUnusedAccess is a Type enum value + TypeAccountUnusedAccess = "ACCOUNT_UNUSED_ACCESS" + + // TypeOrganizationUnusedAccess is a Type enum value + TypeOrganizationUnusedAccess = "ORGANIZATION_UNUSED_ACCESS" ) // Type_Values returns all elements of the Type enum @@ -10966,6 +13012,8 @@ func Type_Values() []string { return []string{ TypeAccount, TypeOrganization, + TypeAccountUnusedAccess, + TypeOrganizationUnusedAccess, } } diff --git a/service/accessanalyzer/doc.go b/service/accessanalyzer/doc.go index 97374fe026f..ecf09b81b71 100644 --- a/service/accessanalyzer/doc.go +++ b/service/accessanalyzer/doc.go @@ -3,21 +3,36 @@ // Package accessanalyzer provides the client and types for making API // requests to Access Analyzer. // -// Identity and Access Management Access Analyzer helps identify potential resource-access -// risks by enabling you to identify any policies that grant access to an external -// principal. It does this by using logic-based reasoning to analyze resource-based -// policies in your Amazon Web Services environment. An external principal can -// be another Amazon Web Services account, a root user, an IAM user or role, -// a federated user, an Amazon Web Services service, or an anonymous user. You -// can also use IAM Access Analyzer to preview and validate public and cross-account -// access to your resources before deploying permissions changes. This guide -// describes the Identity and Access Management Access Analyzer operations that -// you can call programmatically. For general information about IAM Access Analyzer, -// see Identity and Access Management Access Analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) +// Identity and Access Management Access Analyzer helps you to set, verify, +// and refine your IAM policies by providing a suite of capabilities. Its features +// include findings for external and unused access, basic and custom policy +// checks for validating policies, and policy generation to generate fine-grained +// policies. To start using IAM Access Analyzer to identify external or unused +// access, you first need to create an analyzer. +// +// External access analyzers help identify potential risks of accessing resources +// by enabling you to identify any resource policies that grant access to an +// external principal. It does this by using logic-based reasoning to analyze +// resource-based policies in your Amazon Web Services environment. An external +// principal can be another Amazon Web Services account, a root user, an IAM +// user or role, a federated user, an Amazon Web Services service, or an anonymous +// user. You can also use IAM Access Analyzer to preview public and cross-account +// access to your resources before deploying permissions changes. +// +// Unused access analyzers help identify potential identity access risks by +// enabling you to identify unused IAM roles, unused access keys, unused console +// passwords, and IAM principals with unused service and action-level permissions. +// +// Beyond findings, IAM Access Analyzer provides basic and custom policy checks +// to validate IAM policies before deploying permissions changes. You can use +// policy generation to refine permissions by attaching a policy generated using +// access activity logged in CloudTrail logs. +// +// This guide describes the IAM Access Analyzer operations that you can call +// programmatically. For general information about IAM Access Analyzer, see +// Identity and Access Management Access Analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) // in the IAM User Guide. // -// To start using IAM Access Analyzer, you first need to create an analyzer. -// // See https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01 for more information on this service. // // See accessanalyzer package documentation for more information. diff --git a/service/accessanalyzer/errors.go b/service/accessanalyzer/errors.go index 820e7a54e78..7fce7940892 100644 --- a/service/accessanalyzer/errors.go +++ b/service/accessanalyzer/errors.go @@ -26,6 +26,12 @@ const ( // Internal server error. ErrCodeInternalServerException = "InternalServerException" + // ErrCodeInvalidParameterException for service response error code + // "InvalidParameterException". + // + // The specified parameter is invalid. + ErrCodeInvalidParameterException = "InvalidParameterException" + // ErrCodeResourceNotFoundException for service response error code // "ResourceNotFoundException". // @@ -44,6 +50,12 @@ const ( // Throttling limit exceeded error. ErrCodeThrottlingException = "ThrottlingException" + // ErrCodeUnprocessableEntityException for service response error code + // "UnprocessableEntityException". + // + // The specified entity could not be processed. + ErrCodeUnprocessableEntityException = "UnprocessableEntityException" + // ErrCodeValidationException for service response error code // "ValidationException". // @@ -55,8 +67,10 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "AccessDeniedException": newErrorAccessDeniedException, "ConflictException": newErrorConflictException, "InternalServerException": newErrorInternalServerException, + "InvalidParameterException": newErrorInvalidParameterException, "ResourceNotFoundException": newErrorResourceNotFoundException, "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, "ThrottlingException": newErrorThrottlingException, + "UnprocessableEntityException": newErrorUnprocessableEntityException, "ValidationException": newErrorValidationException, } diff --git a/service/bcmdataexports/api.go b/service/bcmdataexports/api.go new file mode 100644 index 00000000000..5d306c07218 --- /dev/null +++ b/service/bcmdataexports/api.go @@ -0,0 +1,3990 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package bcmdataexports + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" +) + +const opCreateExport = "CreateExport" + +// CreateExportRequest generates a "aws/request.Request" representing the +// client's request for the CreateExport 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 CreateExport for more information on using the CreateExport +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateExportRequest method. +// req, resp := client.CreateExportRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/CreateExport +func (c *BCMDataExports) CreateExportRequest(input *CreateExportInput) (req *request.Request, output *CreateExportOutput) { + op := &request.Operation{ + Name: opCreateExport, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateExportInput{} + } + + output = &CreateExportOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateExport API operation for AWS Billing and Cost Management Data Exports. +// +// Creates a data export and specifies the data query, the delivery preference, +// and any optional resource tags. +// +// A DataQuery consists of both a QueryStatement and TableConfigurations. +// +// The QueryStatement is an SQL statement. Data Exports only supports a limited +// subset of the SQL syntax. For more information on the SQL syntax that is +// supported, see Data query (https://docs.aws.amazon.com/cur/latest/userguide/de-data-query.html). +// To view the available tables and columns, see the Data Exports table dictionary +// (https://docs.aws.amazon.com/cur/latest/userguide/de-table-dictionary.html). +// +// The TableConfigurations is a collection of specified TableProperties for +// the table being queried in the QueryStatement. TableProperties are additional +// configurations you can provide to change the data and schema of a table. +// Each table can have different TableProperties. However, tables are not required +// to have any TableProperties. Each table property has a default value that +// it assumes if not specified. For more information on table configurations, +// see Data query (https://docs.aws.amazon.com/cur/latest/userguide/de-data-query.html). +// To view the table properties available for each table, see the Data Exports +// table dictionary (https://docs.aws.amazon.com/cur/latest/userguide/de-table-dictionary.html) +// or use the ListTables API to get a response of all tables and their available +// properties. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Billing and Cost Management Data Exports's +// API operation CreateExport for usage and error information. +// +// Returned Error Types: +// +// - ServiceQuotaExceededException +// You've reached the limit on the number of resources you can create, or exceeded +// the size of an individual resource. +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/CreateExport +func (c *BCMDataExports) CreateExport(input *CreateExportInput) (*CreateExportOutput, error) { + req, out := c.CreateExportRequest(input) + return out, req.Send() +} + +// CreateExportWithContext is the same as CreateExport with the addition of +// the ability to pass a context and additional request options. +// +// See CreateExport for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *BCMDataExports) CreateExportWithContext(ctx aws.Context, input *CreateExportInput, opts ...request.Option) (*CreateExportOutput, error) { + req, out := c.CreateExportRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteExport = "DeleteExport" + +// DeleteExportRequest generates a "aws/request.Request" representing the +// client's request for the DeleteExport 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 DeleteExport for more information on using the DeleteExport +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteExportRequest method. +// req, resp := client.DeleteExportRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/DeleteExport +func (c *BCMDataExports) DeleteExportRequest(input *DeleteExportInput) (req *request.Request, output *DeleteExportOutput) { + op := &request.Operation{ + Name: opDeleteExport, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteExportInput{} + } + + output = &DeleteExportOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteExport API operation for AWS Billing and Cost Management Data Exports. +// +// Deletes an existing data export. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Billing and Cost Management Data Exports's +// API operation DeleteExport for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ResourceNotFoundException +// The specified Amazon Resource Name (ARN) in the request doesn't exist. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/DeleteExport +func (c *BCMDataExports) DeleteExport(input *DeleteExportInput) (*DeleteExportOutput, error) { + req, out := c.DeleteExportRequest(input) + return out, req.Send() +} + +// DeleteExportWithContext is the same as DeleteExport with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteExport for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *BCMDataExports) DeleteExportWithContext(ctx aws.Context, input *DeleteExportInput, opts ...request.Option) (*DeleteExportOutput, error) { + req, out := c.DeleteExportRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetExecution = "GetExecution" + +// GetExecutionRequest generates a "aws/request.Request" representing the +// client's request for the GetExecution 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 GetExecution for more information on using the GetExecution +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetExecutionRequest method. +// req, resp := client.GetExecutionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/GetExecution +func (c *BCMDataExports) GetExecutionRequest(input *GetExecutionInput) (req *request.Request, output *GetExecutionOutput) { + op := &request.Operation{ + Name: opGetExecution, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetExecutionInput{} + } + + output = &GetExecutionOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetExecution API operation for AWS Billing and Cost Management Data Exports. +// +// Exports data based on the source data update. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Billing and Cost Management Data Exports's +// API operation GetExecution for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ResourceNotFoundException +// The specified Amazon Resource Name (ARN) in the request doesn't exist. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/GetExecution +func (c *BCMDataExports) GetExecution(input *GetExecutionInput) (*GetExecutionOutput, error) { + req, out := c.GetExecutionRequest(input) + return out, req.Send() +} + +// GetExecutionWithContext is the same as GetExecution with the addition of +// the ability to pass a context and additional request options. +// +// See GetExecution for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *BCMDataExports) GetExecutionWithContext(ctx aws.Context, input *GetExecutionInput, opts ...request.Option) (*GetExecutionOutput, error) { + req, out := c.GetExecutionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetExport = "GetExport" + +// GetExportRequest generates a "aws/request.Request" representing the +// client's request for the GetExport 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 GetExport for more information on using the GetExport +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetExportRequest method. +// req, resp := client.GetExportRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/GetExport +func (c *BCMDataExports) GetExportRequest(input *GetExportInput) (req *request.Request, output *GetExportOutput) { + op := &request.Operation{ + Name: opGetExport, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetExportInput{} + } + + output = &GetExportOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetExport API operation for AWS Billing and Cost Management Data Exports. +// +// Views the definition of an existing data export. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Billing and Cost Management Data Exports's +// API operation GetExport for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ResourceNotFoundException +// The specified Amazon Resource Name (ARN) in the request doesn't exist. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/GetExport +func (c *BCMDataExports) GetExport(input *GetExportInput) (*GetExportOutput, error) { + req, out := c.GetExportRequest(input) + return out, req.Send() +} + +// GetExportWithContext is the same as GetExport with the addition of +// the ability to pass a context and additional request options. +// +// See GetExport for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *BCMDataExports) GetExportWithContext(ctx aws.Context, input *GetExportInput, opts ...request.Option) (*GetExportOutput, error) { + req, out := c.GetExportRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetTable = "GetTable" + +// GetTableRequest generates a "aws/request.Request" representing the +// client's request for the GetTable 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 GetTable for more information on using the GetTable +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetTableRequest method. +// req, resp := client.GetTableRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/GetTable +func (c *BCMDataExports) GetTableRequest(input *GetTableInput) (req *request.Request, output *GetTableOutput) { + op := &request.Operation{ + Name: opGetTable, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetTableInput{} + } + + output = &GetTableOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetTable API operation for AWS Billing and Cost Management Data Exports. +// +// Returns the metadata for the specified table and table properties. This includes +// the list of columns in the table schema, their data types, and column descriptions. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Billing and Cost Management Data Exports's +// API operation GetTable for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/GetTable +func (c *BCMDataExports) GetTable(input *GetTableInput) (*GetTableOutput, error) { + req, out := c.GetTableRequest(input) + return out, req.Send() +} + +// GetTableWithContext is the same as GetTable with the addition of +// the ability to pass a context and additional request options. +// +// See GetTable for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *BCMDataExports) GetTableWithContext(ctx aws.Context, input *GetTableInput, opts ...request.Option) (*GetTableOutput, error) { + req, out := c.GetTableRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListExecutions = "ListExecutions" + +// ListExecutionsRequest generates a "aws/request.Request" representing the +// client's request for the ListExecutions 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 ListExecutions for more information on using the ListExecutions +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListExecutionsRequest method. +// req, resp := client.ListExecutionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/ListExecutions +func (c *BCMDataExports) ListExecutionsRequest(input *ListExecutionsInput) (req *request.Request, output *ListExecutionsOutput) { + op := &request.Operation{ + Name: opListExecutions, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListExecutionsInput{} + } + + output = &ListExecutionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListExecutions API operation for AWS Billing and Cost Management Data Exports. +// +// Lists the historical executions for the export. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Billing and Cost Management Data Exports's +// API operation ListExecutions for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ResourceNotFoundException +// The specified Amazon Resource Name (ARN) in the request doesn't exist. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/ListExecutions +func (c *BCMDataExports) ListExecutions(input *ListExecutionsInput) (*ListExecutionsOutput, error) { + req, out := c.ListExecutionsRequest(input) + return out, req.Send() +} + +// ListExecutionsWithContext is the same as ListExecutions with the addition of +// the ability to pass a context and additional request options. +// +// See ListExecutions for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *BCMDataExports) ListExecutionsWithContext(ctx aws.Context, input *ListExecutionsInput, opts ...request.Option) (*ListExecutionsOutput, error) { + req, out := c.ListExecutionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListExecutionsPages iterates over the pages of a ListExecutions operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListExecutions 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 ListExecutions operation. +// pageNum := 0 +// err := client.ListExecutionsPages(params, +// func(page *bcmdataexports.ListExecutionsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BCMDataExports) ListExecutionsPages(input *ListExecutionsInput, fn func(*ListExecutionsOutput, bool) bool) error { + return c.ListExecutionsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListExecutionsPagesWithContext same as ListExecutionsPages 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 *BCMDataExports) ListExecutionsPagesWithContext(ctx aws.Context, input *ListExecutionsInput, fn func(*ListExecutionsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListExecutionsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListExecutionsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListExecutionsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListExports = "ListExports" + +// ListExportsRequest generates a "aws/request.Request" representing the +// client's request for the ListExports 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 ListExports for more information on using the ListExports +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListExportsRequest method. +// req, resp := client.ListExportsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/ListExports +func (c *BCMDataExports) ListExportsRequest(input *ListExportsInput) (req *request.Request, output *ListExportsOutput) { + op := &request.Operation{ + Name: opListExports, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListExportsInput{} + } + + output = &ListExportsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListExports API operation for AWS Billing and Cost Management Data Exports. +// +// Lists all data export definitions. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Billing and Cost Management Data Exports's +// API operation ListExports for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/ListExports +func (c *BCMDataExports) ListExports(input *ListExportsInput) (*ListExportsOutput, error) { + req, out := c.ListExportsRequest(input) + return out, req.Send() +} + +// ListExportsWithContext is the same as ListExports with the addition of +// the ability to pass a context and additional request options. +// +// See ListExports for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *BCMDataExports) ListExportsWithContext(ctx aws.Context, input *ListExportsInput, opts ...request.Option) (*ListExportsOutput, error) { + req, out := c.ListExportsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListExportsPages iterates over the pages of a ListExports operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListExports 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 ListExports operation. +// pageNum := 0 +// err := client.ListExportsPages(params, +// func(page *bcmdataexports.ListExportsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BCMDataExports) ListExportsPages(input *ListExportsInput, fn func(*ListExportsOutput, bool) bool) error { + return c.ListExportsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListExportsPagesWithContext same as ListExportsPages 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 *BCMDataExports) ListExportsPagesWithContext(ctx aws.Context, input *ListExportsInput, fn func(*ListExportsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListExportsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListExportsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListExportsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTables = "ListTables" + +// ListTablesRequest generates a "aws/request.Request" representing the +// client's request for the ListTables 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 ListTables for more information on using the ListTables +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListTablesRequest method. +// req, resp := client.ListTablesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/ListTables +func (c *BCMDataExports) ListTablesRequest(input *ListTablesInput) (req *request.Request, output *ListTablesOutput) { + op := &request.Operation{ + Name: opListTables, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListTablesInput{} + } + + output = &ListTablesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTables API operation for AWS Billing and Cost Management Data Exports. +// +// Lists all available tables in data exports. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Billing and Cost Management Data Exports's +// API operation ListTables for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/ListTables +func (c *BCMDataExports) ListTables(input *ListTablesInput) (*ListTablesOutput, error) { + req, out := c.ListTablesRequest(input) + return out, req.Send() +} + +// ListTablesWithContext is the same as ListTables with the addition of +// the ability to pass a context and additional request options. +// +// See ListTables for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *BCMDataExports) ListTablesWithContext(ctx aws.Context, input *ListTablesInput, opts ...request.Option) (*ListTablesOutput, error) { + req, out := c.ListTablesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListTablesPages iterates over the pages of a ListTables operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListTables 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 ListTables operation. +// pageNum := 0 +// err := client.ListTablesPages(params, +// func(page *bcmdataexports.ListTablesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BCMDataExports) ListTablesPages(input *ListTablesInput, fn func(*ListTablesOutput, bool) bool) error { + return c.ListTablesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListTablesPagesWithContext same as ListTablesPages 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 *BCMDataExports) ListTablesPagesWithContext(ctx aws.Context, input *ListTablesInput, fn func(*ListTablesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListTablesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListTablesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListTablesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/ListTagsForResource +func (c *BCMDataExports) 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 AWS Billing and Cost Management Data Exports. +// +// List tags associated with an existing data export. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Billing and Cost Management Data Exports's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ResourceNotFoundException +// The specified Amazon Resource Name (ARN) in the request doesn't exist. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/ListTagsForResource +func (c *BCMDataExports) 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 *BCMDataExports) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/TagResource +func (c *BCMDataExports) 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 AWS Billing and Cost Management Data Exports. +// +// Adds tags for an existing data export 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 Billing and Cost Management Data Exports's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ResourceNotFoundException +// The specified Amazon Resource Name (ARN) in the request doesn't exist. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/TagResource +func (c *BCMDataExports) 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 *BCMDataExports) 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/bcm-data-exports-2023-11-26/UntagResource +func (c *BCMDataExports) 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 AWS Billing and Cost Management Data Exports. +// +// Deletes tags associated with an existing data export 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 Billing and Cost Management Data Exports's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ResourceNotFoundException +// The specified Amazon Resource Name (ARN) in the request doesn't exist. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/UntagResource +func (c *BCMDataExports) 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 *BCMDataExports) 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 opUpdateExport = "UpdateExport" + +// UpdateExportRequest generates a "aws/request.Request" representing the +// client's request for the UpdateExport 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 UpdateExport for more information on using the UpdateExport +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateExportRequest method. +// req, resp := client.UpdateExportRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/UpdateExport +func (c *BCMDataExports) UpdateExportRequest(input *UpdateExportInput) (req *request.Request, output *UpdateExportOutput) { + op := &request.Operation{ + Name: opUpdateExport, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateExportInput{} + } + + output = &UpdateExportOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateExport API operation for AWS Billing and Cost Management Data Exports. +// +// Updates an existing data export by overwriting all export parameters. All +// export parameters must be provided in the UpdateExport request. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Billing and Cost Management Data Exports's +// API operation UpdateExport for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - ResourceNotFoundException +// The specified Amazon Resource Name (ARN) in the request doesn't exist. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26/UpdateExport +func (c *BCMDataExports) UpdateExport(input *UpdateExportInput) (*UpdateExportOutput, error) { + req, out := c.UpdateExportRequest(input) + return out, req.Send() +} + +// UpdateExportWithContext is the same as UpdateExport with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateExport for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *BCMDataExports) UpdateExportWithContext(ctx aws.Context, input *UpdateExportInput, opts ...request.Option) (*UpdateExportOutput, error) { + req, out := c.UpdateExportRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// Includes basic information for a data column such as its description, name, +// and type. +type Column struct { + _ struct{} `type:"structure"` + + // The description for a column. + Description *string `type:"string"` + + // The column name. + Name *string `type:"string"` + + // The kind of data a column stores. + Type *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Column) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Column) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *Column) SetDescription(v string) *Column { + s.Description = &v + return s +} + +// SetName sets the Name field's value. +func (s *Column) SetName(v string) *Column { + s.Name = &v + return s +} + +// SetType sets the Type field's value. +func (s *Column) SetType(v string) *Column { + s.Type = &v + return s +} + +type CreateExportInput struct { + _ struct{} `type:"structure"` + + // The details of the export, including data query, name, description, and destination + // configuration. + // + // Export is a required field + Export *Export `type:"structure" required:"true"` + + // An optional list of tags to associate with the specified export. Each tag + // consists of a key and a value, and each key must be unique for the resource. + ResourceTags []*ResourceTag `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateExportInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateExportInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateExportInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateExportInput"} + if s.Export == nil { + invalidParams.Add(request.NewErrParamRequired("Export")) + } + if s.Export != nil { + if err := s.Export.Validate(); err != nil { + invalidParams.AddNested("Export", err.(request.ErrInvalidParams)) + } + } + if s.ResourceTags != nil { + for i, v := range s.ResourceTags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceTags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetExport sets the Export field's value. +func (s *CreateExportInput) SetExport(v *Export) *CreateExportInput { + s.Export = v + return s +} + +// SetResourceTags sets the ResourceTags field's value. +func (s *CreateExportInput) SetResourceTags(v []*ResourceTag) *CreateExportInput { + s.ResourceTags = v + return s +} + +type CreateExportOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) for this export. + ExportArn *string `min:"20" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateExportOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateExportOutput) GoString() string { + return s.String() +} + +// SetExportArn sets the ExportArn field's value. +func (s *CreateExportOutput) SetExportArn(v string) *CreateExportOutput { + s.ExportArn = &v + return s +} + +// The SQL query of column selections and row filters from the data table you +// want. +type DataQuery struct { + _ struct{} `type:"structure"` + + // The query statement. + // + // QueryStatement is a required field + QueryStatement *string `min:"1" type:"string" required:"true"` + + // The table configuration. + TableConfigurations map[string]map[string]*string `type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DataQuery) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DataQuery) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DataQuery) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DataQuery"} + if s.QueryStatement == nil { + invalidParams.Add(request.NewErrParamRequired("QueryStatement")) + } + if s.QueryStatement != nil && len(*s.QueryStatement) < 1 { + invalidParams.Add(request.NewErrParamMinLen("QueryStatement", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetQueryStatement sets the QueryStatement field's value. +func (s *DataQuery) SetQueryStatement(v string) *DataQuery { + s.QueryStatement = &v + return s +} + +// SetTableConfigurations sets the TableConfigurations field's value. +func (s *DataQuery) SetTableConfigurations(v map[string]map[string]*string) *DataQuery { + s.TableConfigurations = v + return s +} + +type DeleteExportInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) for this export. + // + // ExportArn is a required field + ExportArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteExportInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteExportInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteExportInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteExportInput"} + if s.ExportArn == nil { + invalidParams.Add(request.NewErrParamRequired("ExportArn")) + } + if s.ExportArn != nil && len(*s.ExportArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ExportArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetExportArn sets the ExportArn field's value. +func (s *DeleteExportInput) SetExportArn(v string) *DeleteExportInput { + s.ExportArn = &v + return s +} + +type DeleteExportOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) for this export. + ExportArn *string `min:"20" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteExportOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteExportOutput) GoString() string { + return s.String() +} + +// SetExportArn sets the ExportArn field's value. +func (s *DeleteExportOutput) SetExportArn(v string) *DeleteExportOutput { + s.ExportArn = &v + return s +} + +// The destinations used for data exports. +type DestinationConfigurations struct { + _ struct{} `type:"structure"` + + // An object that describes the destination of the data exports file. + // + // S3Destination is a required field + S3Destination *S3Destination `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DestinationConfigurations) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DestinationConfigurations) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DestinationConfigurations) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DestinationConfigurations"} + if s.S3Destination == nil { + invalidParams.Add(request.NewErrParamRequired("S3Destination")) + } + if s.S3Destination != nil { + if err := s.S3Destination.Validate(); err != nil { + invalidParams.AddNested("S3Destination", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetS3Destination sets the S3Destination field's value. +func (s *DestinationConfigurations) SetS3Destination(v *S3Destination) *DestinationConfigurations { + s.S3Destination = v + return s +} + +// The reference for the data export update. +type ExecutionReference struct { + _ struct{} `type:"structure"` + + // The ID for this specific execution. + // + // ExecutionId is a required field + ExecutionId *string `type:"string" required:"true"` + + // The status of this specific execution. + // + // ExecutionStatus is a required field + ExecutionStatus *ExecutionStatus `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExecutionReference) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExecutionReference) GoString() string { + return s.String() +} + +// SetExecutionId sets the ExecutionId field's value. +func (s *ExecutionReference) SetExecutionId(v string) *ExecutionReference { + s.ExecutionId = &v + return s +} + +// SetExecutionStatus sets the ExecutionStatus field's value. +func (s *ExecutionReference) SetExecutionStatus(v *ExecutionStatus) *ExecutionReference { + s.ExecutionStatus = v + return s +} + +// The status of the execution. +type ExecutionStatus struct { + _ struct{} `type:"structure"` + + // The time when the execution was completed. + CompletedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The time when the execution was created. + CreatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The time when the execution was last updated. + LastUpdatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The code for the status of the execution. + StatusCode *string `type:"string" enum:"ExecutionStatusCode"` + + // The reason for the failed status. + StatusReason *string `type:"string" enum:"ExecutionStatusReason"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExecutionStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExecutionStatus) GoString() string { + return s.String() +} + +// SetCompletedAt sets the CompletedAt field's value. +func (s *ExecutionStatus) SetCompletedAt(v time.Time) *ExecutionStatus { + s.CompletedAt = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *ExecutionStatus) SetCreatedAt(v time.Time) *ExecutionStatus { + s.CreatedAt = &v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *ExecutionStatus) SetLastUpdatedAt(v time.Time) *ExecutionStatus { + s.LastUpdatedAt = &v + return s +} + +// SetStatusCode sets the StatusCode field's value. +func (s *ExecutionStatus) SetStatusCode(v string) *ExecutionStatus { + s.StatusCode = &v + return s +} + +// SetStatusReason sets the StatusReason field's value. +func (s *ExecutionStatus) SetStatusReason(v string) *ExecutionStatus { + s.StatusReason = &v + return s +} + +// The details that are available for an export. +type Export struct { + _ struct{} `type:"structure"` + + // The data query for this specific data export. + // + // DataQuery is a required field + DataQuery *DataQuery `type:"structure" required:"true"` + + // The description for this specific data export. + Description *string `type:"string"` + + // The destination configuration for this specific data export. + // + // DestinationConfigurations is a required field + DestinationConfigurations *DestinationConfigurations `type:"structure" required:"true"` + + // The Amazon Resource Name (ARN) for this export. + ExportArn *string `min:"20" type:"string"` + + // The name of this specific data export. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The cadence for Amazon Web Services to update the export in your S3 bucket. + // + // RefreshCadence is a required field + RefreshCadence *RefreshCadence `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Export) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Export) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Export) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Export"} + if s.DataQuery == nil { + invalidParams.Add(request.NewErrParamRequired("DataQuery")) + } + if s.DestinationConfigurations == nil { + invalidParams.Add(request.NewErrParamRequired("DestinationConfigurations")) + } + if s.ExportArn != nil && len(*s.ExportArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ExportArn", 20)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.RefreshCadence == nil { + invalidParams.Add(request.NewErrParamRequired("RefreshCadence")) + } + if s.DataQuery != nil { + if err := s.DataQuery.Validate(); err != nil { + invalidParams.AddNested("DataQuery", err.(request.ErrInvalidParams)) + } + } + if s.DestinationConfigurations != nil { + if err := s.DestinationConfigurations.Validate(); err != nil { + invalidParams.AddNested("DestinationConfigurations", err.(request.ErrInvalidParams)) + } + } + if s.RefreshCadence != nil { + if err := s.RefreshCadence.Validate(); err != nil { + invalidParams.AddNested("RefreshCadence", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataQuery sets the DataQuery field's value. +func (s *Export) SetDataQuery(v *DataQuery) *Export { + s.DataQuery = v + return s +} + +// SetDescription sets the Description field's value. +func (s *Export) SetDescription(v string) *Export { + s.Description = &v + return s +} + +// SetDestinationConfigurations sets the DestinationConfigurations field's value. +func (s *Export) SetDestinationConfigurations(v *DestinationConfigurations) *Export { + s.DestinationConfigurations = v + return s +} + +// SetExportArn sets the ExportArn field's value. +func (s *Export) SetExportArn(v string) *Export { + s.ExportArn = &v + return s +} + +// SetName sets the Name field's value. +func (s *Export) SetName(v string) *Export { + s.Name = &v + return s +} + +// SetRefreshCadence sets the RefreshCadence field's value. +func (s *Export) SetRefreshCadence(v *RefreshCadence) *Export { + s.RefreshCadence = v + return s +} + +// The reference details for a given export. +type ExportReference struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) for this export. + // + // ExportArn is a required field + ExportArn *string `min:"20" type:"string" required:"true"` + + // The name of this specific data export. + // + // ExportName is a required field + ExportName *string `min:"1" type:"string" required:"true"` + + // The status of this specific data export. + // + // ExportStatus is a required field + ExportStatus *ExportStatus `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExportReference) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExportReference) GoString() string { + return s.String() +} + +// SetExportArn sets the ExportArn field's value. +func (s *ExportReference) SetExportArn(v string) *ExportReference { + s.ExportArn = &v + return s +} + +// SetExportName sets the ExportName field's value. +func (s *ExportReference) SetExportName(v string) *ExportReference { + s.ExportName = &v + return s +} + +// SetExportStatus sets the ExportStatus field's value. +func (s *ExportReference) SetExportStatus(v *ExportStatus) *ExportReference { + s.ExportStatus = v + return s +} + +// The status of the data export. +type ExportStatus struct { + _ struct{} `type:"structure"` + + // The timestamp of when the export was created. + CreatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The timestamp of when the export was last generated. + LastRefreshedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The timestamp of when the export was updated. + LastUpdatedAt *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The status code for the request. + StatusCode *string `type:"string" enum:"ExportStatusCode"` + + // The description for the status code. + StatusReason *string `type:"string" enum:"ExecutionStatusReason"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExportStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExportStatus) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *ExportStatus) SetCreatedAt(v time.Time) *ExportStatus { + s.CreatedAt = &v + return s +} + +// SetLastRefreshedAt sets the LastRefreshedAt field's value. +func (s *ExportStatus) SetLastRefreshedAt(v time.Time) *ExportStatus { + s.LastRefreshedAt = &v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *ExportStatus) SetLastUpdatedAt(v time.Time) *ExportStatus { + s.LastUpdatedAt = &v + return s +} + +// SetStatusCode sets the StatusCode field's value. +func (s *ExportStatus) SetStatusCode(v string) *ExportStatus { + s.StatusCode = &v + return s +} + +// SetStatusReason sets the StatusReason field's value. +func (s *ExportStatus) SetStatusReason(v string) *ExportStatus { + s.StatusReason = &v + return s +} + +type GetExecutionInput struct { + _ struct{} `type:"structure"` + + // The ID for this specific execution. + // + // ExecutionId is a required field + ExecutionId *string `type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the Export object that generated this specific + // execution. + // + // ExportArn is a required field + ExportArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetExecutionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetExecutionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetExecutionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetExecutionInput"} + if s.ExecutionId == nil { + invalidParams.Add(request.NewErrParamRequired("ExecutionId")) + } + if s.ExportArn == nil { + invalidParams.Add(request.NewErrParamRequired("ExportArn")) + } + if s.ExportArn != nil && len(*s.ExportArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ExportArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetExecutionId sets the ExecutionId field's value. +func (s *GetExecutionInput) SetExecutionId(v string) *GetExecutionInput { + s.ExecutionId = &v + return s +} + +// SetExportArn sets the ExportArn field's value. +func (s *GetExecutionInput) SetExportArn(v string) *GetExecutionInput { + s.ExportArn = &v + return s +} + +type GetExecutionOutput struct { + _ struct{} `type:"structure"` + + // The ID for this specific execution. + ExecutionId *string `type:"string"` + + // The status of this specific execution. + ExecutionStatus *ExecutionStatus `type:"structure"` + + // The export data for this specific execution. This export data is a snapshot + // from when the execution was generated. The data could be different from the + // current export data if the export was updated since the execution was generated. + Export *Export `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetExecutionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetExecutionOutput) GoString() string { + return s.String() +} + +// SetExecutionId sets the ExecutionId field's value. +func (s *GetExecutionOutput) SetExecutionId(v string) *GetExecutionOutput { + s.ExecutionId = &v + return s +} + +// SetExecutionStatus sets the ExecutionStatus field's value. +func (s *GetExecutionOutput) SetExecutionStatus(v *ExecutionStatus) *GetExecutionOutput { + s.ExecutionStatus = v + return s +} + +// SetExport sets the Export field's value. +func (s *GetExecutionOutput) SetExport(v *Export) *GetExecutionOutput { + s.Export = v + return s +} + +type GetExportInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) for this export. + // + // ExportArn is a required field + ExportArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetExportInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetExportInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetExportInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetExportInput"} + if s.ExportArn == nil { + invalidParams.Add(request.NewErrParamRequired("ExportArn")) + } + if s.ExportArn != nil && len(*s.ExportArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ExportArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetExportArn sets the ExportArn field's value. +func (s *GetExportInput) SetExportArn(v string) *GetExportInput { + s.ExportArn = &v + return s +} + +type GetExportOutput struct { + _ struct{} `type:"structure"` + + // The data for this specific export. + Export *Export `type:"structure"` + + // The status of this specific export. + ExportStatus *ExportStatus `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetExportOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetExportOutput) GoString() string { + return s.String() +} + +// SetExport sets the Export field's value. +func (s *GetExportOutput) SetExport(v *Export) *GetExportOutput { + s.Export = v + return s +} + +// SetExportStatus sets the ExportStatus field's value. +func (s *GetExportOutput) SetExportStatus(v *ExportStatus) *GetExportOutput { + s.ExportStatus = v + return s +} + +type GetTableInput struct { + _ struct{} `type:"structure"` + + // The name of the table. + // + // TableName is a required field + TableName *string `type:"string" required:"true"` + + // TableProperties are additional configurations you can provide to change the + // data and schema of a table. Each table can have different TableProperties. + // Tables are not required to have any TableProperties. Each table property + // has a default value that it assumes if not specified. + TableProperties map[string]*string `type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTableInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTableInput) 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.TableName == nil { + invalidParams.Add(request.NewErrParamRequired("TableName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetTableName sets the TableName field's value. +func (s *GetTableInput) SetTableName(v string) *GetTableInput { + s.TableName = &v + return s +} + +// SetTableProperties sets the TableProperties field's value. +func (s *GetTableInput) SetTableProperties(v map[string]*string) *GetTableInput { + s.TableProperties = v + return s +} + +type GetTableOutput struct { + _ struct{} `type:"structure"` + + // The table description. + Description *string `type:"string"` + + // The schema of the table. + Schema []*Column `type:"list"` + + // The name of the table. + TableName *string `type:"string"` + + // TableProperties are additional configurations you can provide to change the + // data and schema of a table. Each table can have different TableProperties. + // Tables are not required to have any TableProperties. Each table property + // has a default value that it assumes if not specified. + TableProperties map[string]*string `type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTableOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTableOutput) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *GetTableOutput) SetDescription(v string) *GetTableOutput { + s.Description = &v + return s +} + +// SetSchema sets the Schema field's value. +func (s *GetTableOutput) SetSchema(v []*Column) *GetTableOutput { + s.Schema = v + return s +} + +// SetTableName sets the TableName field's value. +func (s *GetTableOutput) SetTableName(v string) *GetTableOutput { + s.TableName = &v + return s +} + +// SetTableProperties sets the TableProperties field's value. +func (s *GetTableOutput) SetTableProperties(v map[string]*string) *GetTableOutput { + s.TableProperties = v + return s +} + +// An error on the server occurred during the processing of your request. Try +// again later. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +type ListExecutionsInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) for this export. + // + // ExportArn is a required field + ExportArn *string `min:"20" type:"string" required:"true"` + + // The maximum number of objects that are returned for the request. + MaxResults *int64 `min:"1" type:"integer"` + + // The token to retrieve the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListExecutionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListExecutionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListExecutionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListExecutionsInput"} + if s.ExportArn == nil { + invalidParams.Add(request.NewErrParamRequired("ExportArn")) + } + if s.ExportArn != nil && len(*s.ExportArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ExportArn", 20)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetExportArn sets the ExportArn field's value. +func (s *ListExecutionsInput) SetExportArn(v string) *ListExecutionsInput { + s.ExportArn = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListExecutionsInput) SetMaxResults(v int64) *ListExecutionsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListExecutionsInput) SetNextToken(v string) *ListExecutionsInput { + s.NextToken = &v + return s +} + +type ListExecutionsOutput struct { + _ struct{} `type:"structure"` + + // The list of executions. + Executions []*ExecutionReference `type:"list"` + + // The token to retrieve the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListExecutionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListExecutionsOutput) GoString() string { + return s.String() +} + +// SetExecutions sets the Executions field's value. +func (s *ListExecutionsOutput) SetExecutions(v []*ExecutionReference) *ListExecutionsOutput { + s.Executions = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListExecutionsOutput) SetNextToken(v string) *ListExecutionsOutput { + s.NextToken = &v + return s +} + +type ListExportsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects that are returned for the request. + MaxResults *int64 `min:"1" type:"integer"` + + // The token to retrieve the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListExportsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListExportsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListExportsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListExportsInput"} + 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 *ListExportsInput) SetMaxResults(v int64) *ListExportsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListExportsInput) SetNextToken(v string) *ListExportsInput { + s.NextToken = &v + return s +} + +type ListExportsOutput struct { + _ struct{} `type:"structure"` + + // The details of the exports, including name and export status. + Exports []*ExportReference `type:"list"` + + // The token to retrieve the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListExportsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListExportsOutput) GoString() string { + return s.String() +} + +// SetExports sets the Exports field's value. +func (s *ListExportsOutput) SetExports(v []*ExportReference) *ListExportsOutput { + s.Exports = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListExportsOutput) SetNextToken(v string) *ListExportsOutput { + s.NextToken = &v + return s +} + +type ListTablesInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects that are returned for the request. + MaxResults *int64 `min:"1" type:"integer"` + + // The token to retrieve the next set of results. + NextToken *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTablesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTablesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTablesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTablesInput"} + 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 *ListTablesInput) SetMaxResults(v int64) *ListTablesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListTablesInput) SetNextToken(v string) *ListTablesInput { + s.NextToken = &v + return s +} + +type ListTablesOutput struct { + _ struct{} `type:"structure"` + + // The token to retrieve the next set of results. + NextToken *string `type:"string"` + + // The list of tables. + Tables []*Table `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTablesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTablesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListTablesOutput) SetNextToken(v string) *ListTablesOutput { + s.NextToken = &v + return s +} + +// SetTables sets the Tables field's value. +func (s *ListTablesOutput) SetTables(v []*Table) *ListTablesOutput { + s.Tables = v + return s +} + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The maximum number of objects that are returned for the request. + MaxResults *int64 `min:"1" type:"integer"` + + // The token to retrieve the next set of results. + NextToken *string `type:"string"` + + // The unique identifier for the resource. + // + // ResourceArn is a required field + ResourceArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// 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"` + + // The token to retrieve the next set of results. + NextToken *string `type:"string"` + + // An optional list of tags to associate with the specified export. Each tag + // consists of a key and a value, and each key must be unique for the resource. + ResourceTags []*ResourceTag `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput { + s.NextToken = &v + return s +} + +// SetResourceTags sets the ResourceTags field's value. +func (s *ListTagsForResourceOutput) SetResourceTags(v []*ResourceTag) *ListTagsForResourceOutput { + s.ResourceTags = v + return s +} + +// The cadence for Amazon Web Services to update the data export in your S3 +// bucket. +type RefreshCadence struct { + _ struct{} `type:"structure"` + + // The frequency that data exports are updated. The export refreshes each time + // the source data updates, up to three times daily. + // + // Frequency is a required field + Frequency *string `type:"string" required:"true" enum:"FrequencyOption"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RefreshCadence) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RefreshCadence) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RefreshCadence) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RefreshCadence"} + if s.Frequency == nil { + invalidParams.Add(request.NewErrParamRequired("Frequency")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFrequency sets the Frequency field's value. +func (s *RefreshCadence) SetFrequency(v string) *RefreshCadence { + s.Frequency = &v + return s +} + +// The specified Amazon Resource Name (ARN) in the request doesn't exist. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` + + // The identifier of the resource that was not found. + // + // ResourceId is a required field + ResourceId *string `type:"string" required:"true"` + + // The type of the resource that was not found. + // + // ResourceType is a required field + ResourceType *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The tag structure that contains a tag key and value. +type ResourceTag struct { + _ struct{} `type:"structure"` + + // The key that's associated with the tag. + // + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` + + // The value that's associated with the tag. + // + // Value is a required field + Value *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceTag) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceTag) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ResourceTag) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ResourceTag"} + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *ResourceTag) SetKey(v string) *ResourceTag { + s.Key = &v + return s +} + +// SetValue sets the Value field's value. +func (s *ResourceTag) SetValue(v string) *ResourceTag { + s.Value = &v + return s +} + +// Describes the destination Amazon Simple Storage Service (Amazon S3) bucket +// name and object keys of a data exports file. +type S3Destination struct { + _ struct{} `type:"structure"` + + // The name of the Amazon S3 bucket used as the destination of a data export + // file. + // + // S3Bucket is a required field + S3Bucket *string `type:"string" required:"true"` + + // The output configuration for the data export. + // + // S3OutputConfigurations is a required field + S3OutputConfigurations *S3OutputConfigurations `type:"structure" required:"true"` + + // The S3 path prefix you want prepended to the name of your data export. + // + // S3Prefix is a required field + S3Prefix *string `type:"string" required:"true"` + + // The S3 bucket Region. + // + // S3Region is a required field + S3Region *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s S3Destination) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s S3Destination) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3Destination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "S3Destination"} + if s.S3Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("S3Bucket")) + } + if s.S3OutputConfigurations == nil { + invalidParams.Add(request.NewErrParamRequired("S3OutputConfigurations")) + } + if s.S3Prefix == nil { + invalidParams.Add(request.NewErrParamRequired("S3Prefix")) + } + if s.S3Region == nil { + invalidParams.Add(request.NewErrParamRequired("S3Region")) + } + if s.S3OutputConfigurations != nil { + if err := s.S3OutputConfigurations.Validate(); err != nil { + invalidParams.AddNested("S3OutputConfigurations", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetS3Bucket sets the S3Bucket field's value. +func (s *S3Destination) SetS3Bucket(v string) *S3Destination { + s.S3Bucket = &v + return s +} + +// SetS3OutputConfigurations sets the S3OutputConfigurations field's value. +func (s *S3Destination) SetS3OutputConfigurations(v *S3OutputConfigurations) *S3Destination { + s.S3OutputConfigurations = v + return s +} + +// SetS3Prefix sets the S3Prefix field's value. +func (s *S3Destination) SetS3Prefix(v string) *S3Destination { + s.S3Prefix = &v + return s +} + +// SetS3Region sets the S3Region field's value. +func (s *S3Destination) SetS3Region(v string) *S3Destination { + s.S3Region = &v + return s +} + +// The compression type, file format, and overwrite preference for the data +// export. +type S3OutputConfigurations struct { + _ struct{} `type:"structure"` + + // The compression type for the data export. + // + // Compression is a required field + Compression *string `type:"string" required:"true" enum:"CompressionOption"` + + // The file format for the data export. + // + // Format is a required field + Format *string `type:"string" required:"true" enum:"FormatOption"` + + // The output type for the data export. + // + // OutputType is a required field + OutputType *string `type:"string" required:"true" enum:"S3OutputType"` + + // The rule to follow when generating a version of the data export file. You + // have the choice to overwrite the previous version or to be delivered in addition + // to the previous versions. Overwriting exports can save on Amazon S3 storage + // costs. Creating new export versions allows you to track the changes in cost + // and usage data over time. + // + // Overwrite is a required field + Overwrite *string `type:"string" required:"true" enum:"OverwriteOption"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s S3OutputConfigurations) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s S3OutputConfigurations) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3OutputConfigurations) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "S3OutputConfigurations"} + if s.Compression == nil { + invalidParams.Add(request.NewErrParamRequired("Compression")) + } + if s.Format == nil { + invalidParams.Add(request.NewErrParamRequired("Format")) + } + if s.OutputType == nil { + invalidParams.Add(request.NewErrParamRequired("OutputType")) + } + if s.Overwrite == nil { + invalidParams.Add(request.NewErrParamRequired("Overwrite")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCompression sets the Compression field's value. +func (s *S3OutputConfigurations) SetCompression(v string) *S3OutputConfigurations { + s.Compression = &v + return s +} + +// SetFormat sets the Format field's value. +func (s *S3OutputConfigurations) SetFormat(v string) *S3OutputConfigurations { + s.Format = &v + return s +} + +// SetOutputType sets the OutputType field's value. +func (s *S3OutputConfigurations) SetOutputType(v string) *S3OutputConfigurations { + s.OutputType = &v + return s +} + +// SetOverwrite sets the Overwrite field's value. +func (s *S3OutputConfigurations) SetOverwrite(v string) *S3OutputConfigurations { + s.Overwrite = &v + return s +} + +// You've reached the limit on the number of resources you can create, or exceeded +// the size of an individual resource. +type ServiceQuotaExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` + + // The quota code that was exceeded. + // + // QuotaCode is a required field + QuotaCode *string `type:"string" required:"true"` + + // The identifier of the resource that exceeded quota. + ResourceId *string `type:"string"` + + // The type of the resource that exceeded quota. + ResourceType *string `type:"string"` + + // The service code that exceeded quota. It will always be “AWSBillingAndCostManagementDataExports”. + // + // ServiceCode is a required field + ServiceCode *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceQuotaExceededException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceQuotaExceededException) GoString() string { + return s.String() +} + +func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error { + return &ServiceQuotaExceededException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ServiceQuotaExceededException) Code() string { + return "ServiceQuotaExceededException" +} + +// Message returns the exception's message. +func (s *ServiceQuotaExceededException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceQuotaExceededException) OrigErr() error { + return nil +} + +func (s *ServiceQuotaExceededException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceQuotaExceededException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServiceQuotaExceededException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The details for the data export table. +type Table struct { + _ struct{} `type:"structure"` + + // The description for the table. + Description *string `type:"string"` + + // The name of the table. + TableName *string `type:"string"` + + // The properties for the table. + TableProperties []*TablePropertyDescription `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Table) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Table) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *Table) SetDescription(v string) *Table { + s.Description = &v + return s +} + +// SetTableName sets the TableName field's value. +func (s *Table) SetTableName(v string) *Table { + s.TableName = &v + return s +} + +// SetTableProperties sets the TableProperties field's value. +func (s *Table) SetTableProperties(v []*TablePropertyDescription) *Table { + s.TableProperties = v + return s +} + +// The properties for the data export table. +type TablePropertyDescription struct { + _ struct{} `type:"structure"` + + // The default value for the table. + DefaultValue *string `type:"string"` + + // The description for the table. + Description *string `type:"string"` + + // The name of the table. + Name *string `type:"string"` + + // The valid values for the table. + ValidValues []*string `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TablePropertyDescription) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TablePropertyDescription) GoString() string { + return s.String() +} + +// SetDefaultValue sets the DefaultValue field's value. +func (s *TablePropertyDescription) SetDefaultValue(v string) *TablePropertyDescription { + s.DefaultValue = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *TablePropertyDescription) SetDescription(v string) *TablePropertyDescription { + s.Description = &v + return s +} + +// SetName sets the Name field's value. +func (s *TablePropertyDescription) SetName(v string) *TablePropertyDescription { + s.Name = &v + return s +} + +// SetValidValues sets the ValidValues field's value. +func (s *TablePropertyDescription) SetValidValues(v []*string) *TablePropertyDescription { + s.ValidValues = v + return s +} + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The unique identifier for the resource. + // + // ResourceArn is a required field + ResourceArn *string `min:"20" type:"string" required:"true"` + + // The tags to associate with the resource. Each tag consists of a key and a + // value, and each key must be unique for the resource. + // + // ResourceTags is a required field + ResourceTags []*ResourceTag `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + if s.ResourceTags == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceTags")) + } + if s.ResourceTags != nil { + for i, v := range s.ResourceTags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceTags", 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 +} + +// SetResourceTags sets the ResourceTags field's value. +func (s *TagResourceInput) SetResourceTags(v []*ResourceTag) *TagResourceInput { + s.ResourceTags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) GoString() string { + return s.String() +} + +// The request was denied due to request throttling. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` + + // The quota code that exceeded the throttling limit. + QuotaCode *string `type:"string"` + + // The service code that exceeded the throttling limit. It will always be “AWSBillingAndCostManagementDataExports”. + ServiceCode *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The unique identifier for the resource. + // + // ResourceArn is a required field + ResourceArn *string `min:"20" type:"string" required:"true"` + + // The tag keys that are associated with the resource ARN. + // + // ResourceTagKeys is a required field + ResourceTagKeys []*string `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + if s.ResourceTagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceTagKeys")) + } + + 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 +} + +// SetResourceTagKeys sets the ResourceTagKeys field's value. +func (s *UntagResourceInput) SetResourceTagKeys(v []*string) *UntagResourceInput { + s.ResourceTagKeys = v + return s +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) GoString() string { + return s.String() +} + +type UpdateExportInput struct { + _ struct{} `type:"structure"` + + // The name and query details for the export. + // + // Export is a required field + Export *Export `type:"structure" required:"true"` + + // The Amazon Resource Name (ARN) for this export. + // + // ExportArn is a required field + ExportArn *string `min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateExportInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateExportInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateExportInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateExportInput"} + if s.Export == nil { + invalidParams.Add(request.NewErrParamRequired("Export")) + } + if s.ExportArn == nil { + invalidParams.Add(request.NewErrParamRequired("ExportArn")) + } + if s.ExportArn != nil && len(*s.ExportArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ExportArn", 20)) + } + if s.Export != nil { + if err := s.Export.Validate(); err != nil { + invalidParams.AddNested("Export", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetExport sets the Export field's value. +func (s *UpdateExportInput) SetExport(v *Export) *UpdateExportInput { + s.Export = v + return s +} + +// SetExportArn sets the ExportArn field's value. +func (s *UpdateExportInput) SetExportArn(v string) *UpdateExportInput { + s.ExportArn = &v + return s +} + +type UpdateExportOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) for this export. + ExportArn *string `min:"20" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateExportOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateExportOutput) GoString() string { + return s.String() +} + +// SetExportArn sets the ExportArn field's value. +func (s *UpdateExportOutput) SetExportArn(v string) *UpdateExportOutput { + s.ExportArn = &v + return s +} + +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // The list of fields that are invalid. + Fields []*ValidationExceptionField `type:"list"` + + Message_ *string `locationName:"Message" type:"string"` + + // The reason for the validation exception. + Reason *string `type:"string" enum:"ValidationExceptionReason"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) GoString() string { + return s.String() +} + +func newErrorValidationException(v protocol.ResponseMetadata) error { + return &ValidationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ValidationException) Code() string { + return "ValidationException" +} + +// Message returns the exception's message. +func (s *ValidationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ValidationException) OrigErr() error { + return nil +} + +func (s *ValidationException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ValidationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ValidationException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The input failed to meet the constraints specified by the Amazon Web Services +// service in a specified field. +type ValidationExceptionField struct { + _ struct{} `type:"structure"` + + // A message with the reason for the validation exception error. + // + // Message is a required field + Message *string `type:"string" required:"true"` + + // The field name where the invalid entry was detected. + // + // Name is a required field + Name *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationExceptionField) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationExceptionField) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *ValidationExceptionField) SetMessage(v string) *ValidationExceptionField { + s.Message = &v + return s +} + +// SetName sets the Name field's value. +func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField { + s.Name = &v + return s +} + +const ( + // CompressionOptionGzip is a CompressionOption enum value + CompressionOptionGzip = "GZIP" + + // CompressionOptionParquet is a CompressionOption enum value + CompressionOptionParquet = "PARQUET" +) + +// CompressionOption_Values returns all elements of the CompressionOption enum +func CompressionOption_Values() []string { + return []string{ + CompressionOptionGzip, + CompressionOptionParquet, + } +} + +const ( + // ExecutionStatusCodeInitiationInProcess is a ExecutionStatusCode enum value + ExecutionStatusCodeInitiationInProcess = "INITIATION_IN_PROCESS" + + // ExecutionStatusCodeQueryQueued is a ExecutionStatusCode enum value + ExecutionStatusCodeQueryQueued = "QUERY_QUEUED" + + // ExecutionStatusCodeQueryInProcess is a ExecutionStatusCode enum value + ExecutionStatusCodeQueryInProcess = "QUERY_IN_PROCESS" + + // ExecutionStatusCodeQueryFailure is a ExecutionStatusCode enum value + ExecutionStatusCodeQueryFailure = "QUERY_FAILURE" + + // ExecutionStatusCodeDeliveryInProcess is a ExecutionStatusCode enum value + ExecutionStatusCodeDeliveryInProcess = "DELIVERY_IN_PROCESS" + + // ExecutionStatusCodeDeliverySuccess is a ExecutionStatusCode enum value + ExecutionStatusCodeDeliverySuccess = "DELIVERY_SUCCESS" + + // ExecutionStatusCodeDeliveryFailure is a ExecutionStatusCode enum value + ExecutionStatusCodeDeliveryFailure = "DELIVERY_FAILURE" +) + +// ExecutionStatusCode_Values returns all elements of the ExecutionStatusCode enum +func ExecutionStatusCode_Values() []string { + return []string{ + ExecutionStatusCodeInitiationInProcess, + ExecutionStatusCodeQueryQueued, + ExecutionStatusCodeQueryInProcess, + ExecutionStatusCodeQueryFailure, + ExecutionStatusCodeDeliveryInProcess, + ExecutionStatusCodeDeliverySuccess, + ExecutionStatusCodeDeliveryFailure, + } +} + +const ( + // ExecutionStatusReasonInsufficientPermission is a ExecutionStatusReason enum value + ExecutionStatusReasonInsufficientPermission = "INSUFFICIENT_PERMISSION" + + // ExecutionStatusReasonBillOwnerChanged is a ExecutionStatusReason enum value + ExecutionStatusReasonBillOwnerChanged = "BILL_OWNER_CHANGED" + + // ExecutionStatusReasonInternalFailure is a ExecutionStatusReason enum value + ExecutionStatusReasonInternalFailure = "INTERNAL_FAILURE" +) + +// ExecutionStatusReason_Values returns all elements of the ExecutionStatusReason enum +func ExecutionStatusReason_Values() []string { + return []string{ + ExecutionStatusReasonInsufficientPermission, + ExecutionStatusReasonBillOwnerChanged, + ExecutionStatusReasonInternalFailure, + } +} + +const ( + // ExportStatusCodeHealthy is a ExportStatusCode enum value + ExportStatusCodeHealthy = "HEALTHY" + + // ExportStatusCodeUnhealthy is a ExportStatusCode enum value + ExportStatusCodeUnhealthy = "UNHEALTHY" +) + +// ExportStatusCode_Values returns all elements of the ExportStatusCode enum +func ExportStatusCode_Values() []string { + return []string{ + ExportStatusCodeHealthy, + ExportStatusCodeUnhealthy, + } +} + +const ( + // FormatOptionTextOrCsv is a FormatOption enum value + FormatOptionTextOrCsv = "TEXT_OR_CSV" + + // FormatOptionParquet is a FormatOption enum value + FormatOptionParquet = "PARQUET" +) + +// FormatOption_Values returns all elements of the FormatOption enum +func FormatOption_Values() []string { + return []string{ + FormatOptionTextOrCsv, + FormatOptionParquet, + } +} + +const ( + // FrequencyOptionSynchronous is a FrequencyOption enum value + FrequencyOptionSynchronous = "SYNCHRONOUS" +) + +// FrequencyOption_Values returns all elements of the FrequencyOption enum +func FrequencyOption_Values() []string { + return []string{ + FrequencyOptionSynchronous, + } +} + +const ( + // OverwriteOptionCreateNewReport is a OverwriteOption enum value + OverwriteOptionCreateNewReport = "CREATE_NEW_REPORT" + + // OverwriteOptionOverwriteReport is a OverwriteOption enum value + OverwriteOptionOverwriteReport = "OVERWRITE_REPORT" +) + +// OverwriteOption_Values returns all elements of the OverwriteOption enum +func OverwriteOption_Values() []string { + return []string{ + OverwriteOptionCreateNewReport, + OverwriteOptionOverwriteReport, + } +} + +const ( + // S3OutputTypeCustom is a S3OutputType enum value + S3OutputTypeCustom = "CUSTOM" +) + +// S3OutputType_Values returns all elements of the S3OutputType enum +func S3OutputType_Values() []string { + return []string{ + S3OutputTypeCustom, + } +} + +const ( + // ValidationExceptionReasonUnknownOperation is a ValidationExceptionReason enum value + ValidationExceptionReasonUnknownOperation = "unknownOperation" + + // ValidationExceptionReasonCannotParse is a ValidationExceptionReason enum value + ValidationExceptionReasonCannotParse = "cannotParse" + + // ValidationExceptionReasonFieldValidationFailed is a ValidationExceptionReason enum value + ValidationExceptionReasonFieldValidationFailed = "fieldValidationFailed" + + // ValidationExceptionReasonOther is a ValidationExceptionReason enum value + ValidationExceptionReasonOther = "other" +) + +// ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum +func ValidationExceptionReason_Values() []string { + return []string{ + ValidationExceptionReasonUnknownOperation, + ValidationExceptionReasonCannotParse, + ValidationExceptionReasonFieldValidationFailed, + ValidationExceptionReasonOther, + } +} diff --git a/service/bcmdataexports/bcmdataexportsiface/interface.go b/service/bcmdataexports/bcmdataexportsiface/interface.go new file mode 100644 index 00000000000..ca9417f5cba --- /dev/null +++ b/service/bcmdataexports/bcmdataexportsiface/interface.go @@ -0,0 +1,121 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package bcmdataexportsiface provides an interface to enable mocking the AWS Billing and Cost Management Data Exports service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package bcmdataexportsiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/bcmdataexports" +) + +// BCMDataExportsAPI provides an interface to enable mocking the +// bcmdataexports.BCMDataExports service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // AWS Billing and Cost Management Data Exports. +// func myFunc(svc bcmdataexportsiface.BCMDataExportsAPI) bool { +// // Make svc.CreateExport request +// } +// +// func main() { +// sess := session.New() +// svc := bcmdataexports.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockBCMDataExportsClient struct { +// bcmdataexportsiface.BCMDataExportsAPI +// } +// func (m *mockBCMDataExportsClient) CreateExport(input *bcmdataexports.CreateExportInput) (*bcmdataexports.CreateExportOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockBCMDataExportsClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type BCMDataExportsAPI interface { + CreateExport(*bcmdataexports.CreateExportInput) (*bcmdataexports.CreateExportOutput, error) + CreateExportWithContext(aws.Context, *bcmdataexports.CreateExportInput, ...request.Option) (*bcmdataexports.CreateExportOutput, error) + CreateExportRequest(*bcmdataexports.CreateExportInput) (*request.Request, *bcmdataexports.CreateExportOutput) + + DeleteExport(*bcmdataexports.DeleteExportInput) (*bcmdataexports.DeleteExportOutput, error) + DeleteExportWithContext(aws.Context, *bcmdataexports.DeleteExportInput, ...request.Option) (*bcmdataexports.DeleteExportOutput, error) + DeleteExportRequest(*bcmdataexports.DeleteExportInput) (*request.Request, *bcmdataexports.DeleteExportOutput) + + GetExecution(*bcmdataexports.GetExecutionInput) (*bcmdataexports.GetExecutionOutput, error) + GetExecutionWithContext(aws.Context, *bcmdataexports.GetExecutionInput, ...request.Option) (*bcmdataexports.GetExecutionOutput, error) + GetExecutionRequest(*bcmdataexports.GetExecutionInput) (*request.Request, *bcmdataexports.GetExecutionOutput) + + GetExport(*bcmdataexports.GetExportInput) (*bcmdataexports.GetExportOutput, error) + GetExportWithContext(aws.Context, *bcmdataexports.GetExportInput, ...request.Option) (*bcmdataexports.GetExportOutput, error) + GetExportRequest(*bcmdataexports.GetExportInput) (*request.Request, *bcmdataexports.GetExportOutput) + + GetTable(*bcmdataexports.GetTableInput) (*bcmdataexports.GetTableOutput, error) + GetTableWithContext(aws.Context, *bcmdataexports.GetTableInput, ...request.Option) (*bcmdataexports.GetTableOutput, error) + GetTableRequest(*bcmdataexports.GetTableInput) (*request.Request, *bcmdataexports.GetTableOutput) + + ListExecutions(*bcmdataexports.ListExecutionsInput) (*bcmdataexports.ListExecutionsOutput, error) + ListExecutionsWithContext(aws.Context, *bcmdataexports.ListExecutionsInput, ...request.Option) (*bcmdataexports.ListExecutionsOutput, error) + ListExecutionsRequest(*bcmdataexports.ListExecutionsInput) (*request.Request, *bcmdataexports.ListExecutionsOutput) + + ListExecutionsPages(*bcmdataexports.ListExecutionsInput, func(*bcmdataexports.ListExecutionsOutput, bool) bool) error + ListExecutionsPagesWithContext(aws.Context, *bcmdataexports.ListExecutionsInput, func(*bcmdataexports.ListExecutionsOutput, bool) bool, ...request.Option) error + + ListExports(*bcmdataexports.ListExportsInput) (*bcmdataexports.ListExportsOutput, error) + ListExportsWithContext(aws.Context, *bcmdataexports.ListExportsInput, ...request.Option) (*bcmdataexports.ListExportsOutput, error) + ListExportsRequest(*bcmdataexports.ListExportsInput) (*request.Request, *bcmdataexports.ListExportsOutput) + + ListExportsPages(*bcmdataexports.ListExportsInput, func(*bcmdataexports.ListExportsOutput, bool) bool) error + ListExportsPagesWithContext(aws.Context, *bcmdataexports.ListExportsInput, func(*bcmdataexports.ListExportsOutput, bool) bool, ...request.Option) error + + ListTables(*bcmdataexports.ListTablesInput) (*bcmdataexports.ListTablesOutput, error) + ListTablesWithContext(aws.Context, *bcmdataexports.ListTablesInput, ...request.Option) (*bcmdataexports.ListTablesOutput, error) + ListTablesRequest(*bcmdataexports.ListTablesInput) (*request.Request, *bcmdataexports.ListTablesOutput) + + ListTablesPages(*bcmdataexports.ListTablesInput, func(*bcmdataexports.ListTablesOutput, bool) bool) error + ListTablesPagesWithContext(aws.Context, *bcmdataexports.ListTablesInput, func(*bcmdataexports.ListTablesOutput, bool) bool, ...request.Option) error + + ListTagsForResource(*bcmdataexports.ListTagsForResourceInput) (*bcmdataexports.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *bcmdataexports.ListTagsForResourceInput, ...request.Option) (*bcmdataexports.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*bcmdataexports.ListTagsForResourceInput) (*request.Request, *bcmdataexports.ListTagsForResourceOutput) + + TagResource(*bcmdataexports.TagResourceInput) (*bcmdataexports.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *bcmdataexports.TagResourceInput, ...request.Option) (*bcmdataexports.TagResourceOutput, error) + TagResourceRequest(*bcmdataexports.TagResourceInput) (*request.Request, *bcmdataexports.TagResourceOutput) + + UntagResource(*bcmdataexports.UntagResourceInput) (*bcmdataexports.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *bcmdataexports.UntagResourceInput, ...request.Option) (*bcmdataexports.UntagResourceOutput, error) + UntagResourceRequest(*bcmdataexports.UntagResourceInput) (*request.Request, *bcmdataexports.UntagResourceOutput) + + UpdateExport(*bcmdataexports.UpdateExportInput) (*bcmdataexports.UpdateExportOutput, error) + UpdateExportWithContext(aws.Context, *bcmdataexports.UpdateExportInput, ...request.Option) (*bcmdataexports.UpdateExportOutput, error) + UpdateExportRequest(*bcmdataexports.UpdateExportInput) (*request.Request, *bcmdataexports.UpdateExportOutput) +} + +var _ BCMDataExportsAPI = (*bcmdataexports.BCMDataExports)(nil) diff --git a/service/bcmdataexports/doc.go b/service/bcmdataexports/doc.go new file mode 100644 index 00000000000..501de1c592f --- /dev/null +++ b/service/bcmdataexports/doc.go @@ -0,0 +1,34 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package bcmdataexports provides the client and types for making API +// requests to AWS Billing and Cost Management Data Exports. +// +// You can use the Data Exports API to create customized exports from multiple +// Amazon Web Services cost management and billing datasets, such as cost and +// usage data and cost optimization recommendations. +// +// The Data Exports API provides the following endpoint: +// +// - https://bcm-data-exports.us-east-1.api.aws +// +// See https://docs.aws.amazon.com/goto/WebAPI/bcm-data-exports-2023-11-26 for more information on this service. +// +// See bcmdataexports package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/bcmdataexports/ +// +// # Using the Client +// +// To contact AWS Billing and Cost Management Data Exports with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AWS Billing and Cost Management Data Exports client BCMDataExports for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/bcmdataexports/#New +package bcmdataexports diff --git a/service/bcmdataexports/errors.go b/service/bcmdataexports/errors.go new file mode 100644 index 00000000000..69a6f7e61ee --- /dev/null +++ b/service/bcmdataexports/errors.go @@ -0,0 +1,51 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package bcmdataexports + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // An error on the server occurred during the processing of your request. Try + // again later. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified Amazon Resource Name (ARN) in the request doesn't exist. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // You've reached the limit on the number of resources you can create, or exceeded + // the size of an individual resource. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input fails to satisfy the constraints specified by an Amazon Web Services + // service. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "InternalServerException": newErrorInternalServerException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "ThrottlingException": newErrorThrottlingException, + "ValidationException": newErrorValidationException, +} diff --git a/service/bcmdataexports/service.go b/service/bcmdataexports/service.go new file mode 100644 index 00000000000..3e536ae7613 --- /dev/null +++ b/service/bcmdataexports/service.go @@ -0,0 +1,108 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package bcmdataexports + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" +) + +// BCMDataExports provides the API operation methods for making requests to +// AWS Billing and Cost Management Data Exports. See this package's package overview docs +// for details on the service. +// +// BCMDataExports methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type BCMDataExports struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "BCM Data Exports" // Name of service. + EndpointsID = "bcm-data-exports" // ID to lookup a service endpoint with. + ServiceID = "BCM Data Exports" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the BCMDataExports client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a BCMDataExports client from just a session. +// svc := bcmdataexports.New(mySession) +// +// // Create a BCMDataExports client with additional configuration +// svc := bcmdataexports.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *BCMDataExports { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "bcm-data-exports" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *BCMDataExports { + svc := &BCMDataExports{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2023-11-26", + ResolvedRegion: resolvedRegion, + JSONVersion: "1.1", + TargetPrefix: "AWSBillingAndCostManagementDataExports", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(jsonrpc.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a BCMDataExports operation and runs any +// custom request initialization. +func (c *BCMDataExports) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/cloudtrail/api.go b/service/cloudtrail/api.go index ea36bc7310e..359e016423a 100644 --- a/service/cloudtrail/api.go +++ b/service/cloudtrail/api.go @@ -941,8 +941,9 @@ func (c *CloudTrail) DeleteEventDataStoreRequest(input *DeleteEventDataStoreInpu // an event data store ARN. After you run DeleteEventDataStore, the event data // store enters a PENDING_DELETION state, and is automatically deleted after // a wait period of seven days. TerminationProtectionEnabled must be set to -// False on the event data store; this operation cannot work if TerminationProtectionEnabled -// is True. +// False on the event data store and the FederationStatus must be DISABLED. +// You cannot delete an event data store if TerminationProtectionEnabled is +// True or the FederationStatus is ENABLED. // // After you run DeleteEventDataStore on an event data store, you cannot run // ListQueries, DescribeQuery, or GetQueryResults on queries that are using @@ -1005,6 +1006,18 @@ func (c *CloudTrail) DeleteEventDataStoreRequest(input *DeleteEventDataStoreInpu // organization resource lacks one or more required permissions for creating // an organization resource in a required service. // +// - ConflictException +// This exception is thrown when the specified resource is not ready for an +// operation. This can occur when you try to run an operation on a resource +// before CloudTrail has time to fully load the resource, or because another +// operation is modifying the resource. If this exception occurs, wait a few +// minutes, and then try the operation again. +// +// - EventDataStoreFederationEnabledException +// You cannot delete the event data store because Lake query federation is enabled. +// To delete the event data store, run the DisableFederation operation to disable +// Lake query federation on the event data store. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/DeleteEventDataStore func (c *CloudTrail) DeleteEventDataStore(input *DeleteEventDataStoreInput) (*DeleteEventDataStoreOutput, error) { req, out := c.DeleteEventDataStoreRequest(input) @@ -1607,6 +1620,301 @@ func (c *CloudTrail) DescribeTrailsWithContext(ctx aws.Context, input *DescribeT return out, req.Send() } +const opDisableFederation = "DisableFederation" + +// DisableFederationRequest generates a "aws/request.Request" representing the +// client's request for the DisableFederation 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 DisableFederation for more information on using the DisableFederation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DisableFederationRequest method. +// req, resp := client.DisableFederationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/DisableFederation +func (c *CloudTrail) DisableFederationRequest(input *DisableFederationInput) (req *request.Request, output *DisableFederationOutput) { + op := &request.Operation{ + Name: opDisableFederation, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DisableFederationInput{} + } + + output = &DisableFederationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DisableFederation API operation for AWS CloudTrail. +// +// Disables Lake query federation on the specified event data store. When you +// disable federation, CloudTrail removes the metadata associated with the federated +// event data store in the Glue Data Catalog and removes registration for the +// federation role ARN and event data store in Lake Formation. No CloudTrail +// Lake data is deleted when you disable federation. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CloudTrail's +// API operation DisableFederation for usage and error information. +// +// Returned Error Types: +// +// - EventDataStoreARNInvalidException +// The specified event data store ARN is not valid or does not map to an event +// data store in your account. +// +// - EventDataStoreNotFoundException +// The specified event data store was not found. +// +// - InvalidParameterException +// The request includes a parameter that is not valid. +// +// - InactiveEventDataStoreException +// The event data store is inactive. +// +// - OperationNotPermittedException +// This exception is thrown when the requested operation is not permitted. +// +// - UnsupportedOperationException +// This exception is thrown when the requested operation is not supported. +// +// - AccessNotEnabledException +// This exception is thrown when trusted access has not been enabled between +// CloudTrail and Organizations. For more information, see Enabling Trusted +// Access with Other Amazon Web Services Services (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html) +// and Prepare For Creating a Trail For Your Organization (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html). +// +// - InsufficientDependencyServiceAccessPermissionException +// This exception is thrown when the IAM identity that is used to create the +// organization resource lacks one or more required permissions for creating +// an organization resource in a required service. +// +// - NotOrganizationMasterAccountException +// This exception is thrown when the Amazon Web Services account making the +// request to create or update an organization trail or event data store is +// not the management account for an organization in Organizations. For more +// information, see Prepare For Creating a Trail For Your Organization (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html) +// or Create an event data store (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store.html). +// +// - NoManagementAccountSLRExistsException +// This exception is thrown when the management account does not have a service-linked +// role. +// +// - OrganizationsNotInUseException +// This exception is thrown when the request is made from an Amazon Web Services +// account that is not a member of an organization. To make this request, sign +// in using the credentials of an account that belongs to an organization. +// +// - OrganizationNotInAllFeaturesModeException +// This exception is thrown when Organizations is not configured to support +// all features. All features must be enabled in Organizations to support creating +// an organization trail or event data store. +// +// - ConcurrentModificationException +// You are trying to update a resource when another request is in progress. +// Allow sufficient wait time for the previous request to complete, then retry +// your request. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/DisableFederation +func (c *CloudTrail) DisableFederation(input *DisableFederationInput) (*DisableFederationOutput, error) { + req, out := c.DisableFederationRequest(input) + return out, req.Send() +} + +// DisableFederationWithContext is the same as DisableFederation with the addition of +// the ability to pass a context and additional request options. +// +// See DisableFederation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudTrail) DisableFederationWithContext(ctx aws.Context, input *DisableFederationInput, opts ...request.Option) (*DisableFederationOutput, error) { + req, out := c.DisableFederationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opEnableFederation = "EnableFederation" + +// EnableFederationRequest generates a "aws/request.Request" representing the +// client's request for the EnableFederation 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 EnableFederation for more information on using the EnableFederation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the EnableFederationRequest method. +// req, resp := client.EnableFederationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/EnableFederation +func (c *CloudTrail) EnableFederationRequest(input *EnableFederationInput) (req *request.Request, output *EnableFederationOutput) { + op := &request.Operation{ + Name: opEnableFederation, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &EnableFederationInput{} + } + + output = &EnableFederationOutput{} + req = c.newRequest(op, input, output) + return +} + +// EnableFederation API operation for AWS CloudTrail. +// +// Enables Lake query federation on the specified event data store. Federating +// an event data store lets you view the metadata associated with the event +// data store in the Glue Data Catalog (https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro) +// and run SQL queries against your event data using Amazon Athena. The table +// metadata stored in the Glue Data Catalog lets the Athena query engine know +// how to find, read, and process the data that you want to query. +// +// When you enable Lake query federation, CloudTrail creates a federated database +// named aws:cloudtrail (if the database doesn't already exist) and a federated +// table in the Glue Data Catalog. The event data store ID is used for the table +// name. CloudTrail registers the role ARN and event data store in Lake Formation +// (https://docs.aws.amazon.com/lake-formation/latest/dg/how-it-works.html), +// the service responsible for revoking or granting permissions to the federated +// resources in the Glue Data Catalog. +// +// For more information about Lake query federation, see Federate an event data +// store (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-federation.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 CloudTrail's +// API operation EnableFederation for usage and error information. +// +// Returned Error Types: +// +// - EventDataStoreARNInvalidException +// The specified event data store ARN is not valid or does not map to an event +// data store in your account. +// +// - EventDataStoreNotFoundException +// The specified event data store was not found. +// +// - InvalidParameterException +// The request includes a parameter that is not valid. +// +// - InactiveEventDataStoreException +// The event data store is inactive. +// +// - OperationNotPermittedException +// This exception is thrown when the requested operation is not permitted. +// +// - UnsupportedOperationException +// This exception is thrown when the requested operation is not supported. +// +// - AccessNotEnabledException +// This exception is thrown when trusted access has not been enabled between +// CloudTrail and Organizations. For more information, see Enabling Trusted +// Access with Other Amazon Web Services Services (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html) +// and Prepare For Creating a Trail For Your Organization (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html). +// +// - InsufficientDependencyServiceAccessPermissionException +// This exception is thrown when the IAM identity that is used to create the +// organization resource lacks one or more required permissions for creating +// an organization resource in a required service. +// +// - NotOrganizationMasterAccountException +// This exception is thrown when the Amazon Web Services account making the +// request to create or update an organization trail or event data store is +// not the management account for an organization in Organizations. For more +// information, see Prepare For Creating a Trail For Your Organization (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html) +// or Create an event data store (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store.html). +// +// - NoManagementAccountSLRExistsException +// This exception is thrown when the management account does not have a service-linked +// role. +// +// - OrganizationsNotInUseException +// This exception is thrown when the request is made from an Amazon Web Services +// account that is not a member of an organization. To make this request, sign +// in using the credentials of an account that belongs to an organization. +// +// - OrganizationNotInAllFeaturesModeException +// This exception is thrown when Organizations is not configured to support +// all features. All features must be enabled in Organizations to support creating +// an organization trail or event data store. +// +// - ConcurrentModificationException +// You are trying to update a resource when another request is in progress. +// Allow sufficient wait time for the previous request to complete, then retry +// your request. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - EventDataStoreFederationEnabledException +// You cannot delete the event data store because Lake query federation is enabled. +// To delete the event data store, run the DisableFederation operation to disable +// Lake query federation on the event data store. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/EnableFederation +func (c *CloudTrail) EnableFederation(input *EnableFederationInput) (*EnableFederationOutput, error) { + req, out := c.EnableFederationRequest(input) + return out, req.Send() +} + +// EnableFederationWithContext is the same as EnableFederation with the addition of +// the ability to pass a context and additional request options. +// +// See EnableFederation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudTrail) EnableFederationWithContext(ctx aws.Context, input *EnableFederationInput, opts ...request.Option) (*EnableFederationOutput, error) { + req, out := c.EnableFederationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetChannel = "GetChannel" // GetChannelRequest generates a "aws/request.Request" representing the @@ -6560,6 +6868,70 @@ func (s *ARNInvalidException) RequestID() string { return s.RespMetadata.RequestID } +// You do not have sufficient access to perform this action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + // This exception is thrown when trusted access has not been enabled between // CloudTrail and Organizations. For more information, see Enabling Trusted // Access with Other Amazon Web Services Services (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html) @@ -7931,26 +8303,92 @@ func (s *CloudTrailInvalidClientTokenIdException) Message() string { } // OrigErr always returns nil, satisfies awserr.Error interface. -func (s *CloudTrailInvalidClientTokenIdException) OrigErr() error { +func (s *CloudTrailInvalidClientTokenIdException) OrigErr() error { + return nil +} + +func (s *CloudTrailInvalidClientTokenIdException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *CloudTrailInvalidClientTokenIdException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *CloudTrailInvalidClientTokenIdException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Cannot set a CloudWatch Logs delivery for this Region. +type CloudWatchLogsDeliveryUnavailableException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CloudWatchLogsDeliveryUnavailableException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CloudWatchLogsDeliveryUnavailableException) GoString() string { + return s.String() +} + +func newErrorCloudWatchLogsDeliveryUnavailableException(v protocol.ResponseMetadata) error { + return &CloudWatchLogsDeliveryUnavailableException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *CloudWatchLogsDeliveryUnavailableException) Code() string { + return "CloudWatchLogsDeliveryUnavailableException" +} + +// Message returns the exception's message. +func (s *CloudWatchLogsDeliveryUnavailableException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *CloudWatchLogsDeliveryUnavailableException) OrigErr() error { return nil } -func (s *CloudTrailInvalidClientTokenIdException) Error() string { +func (s *CloudWatchLogsDeliveryUnavailableException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. -func (s *CloudTrailInvalidClientTokenIdException) StatusCode() int { +func (s *CloudWatchLogsDeliveryUnavailableException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. -func (s *CloudTrailInvalidClientTokenIdException) RequestID() string { +func (s *CloudWatchLogsDeliveryUnavailableException) RequestID() string { return s.RespMetadata.RequestID } -// Cannot set a CloudWatch Logs delivery for this Region. -type CloudWatchLogsDeliveryUnavailableException struct { +// You are trying to update a resource when another request is in progress. +// Allow sufficient wait time for the previous request to complete, then retry +// your request. +type ConcurrentModificationException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -7962,7 +8400,7 @@ type CloudWatchLogsDeliveryUnavailableException struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CloudWatchLogsDeliveryUnavailableException) String() string { +func (s ConcurrentModificationException) String() string { return awsutil.Prettify(s) } @@ -7971,23 +8409,23 @@ func (s CloudWatchLogsDeliveryUnavailableException) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CloudWatchLogsDeliveryUnavailableException) GoString() string { +func (s ConcurrentModificationException) GoString() string { return s.String() } -func newErrorCloudWatchLogsDeliveryUnavailableException(v protocol.ResponseMetadata) error { - return &CloudWatchLogsDeliveryUnavailableException{ +func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error { + return &ConcurrentModificationException{ RespMetadata: v, } } // Code returns the exception type name. -func (s *CloudWatchLogsDeliveryUnavailableException) Code() string { - return "CloudWatchLogsDeliveryUnavailableException" +func (s *ConcurrentModificationException) Code() string { + return "ConcurrentModificationException" } // Message returns the exception's message. -func (s *CloudWatchLogsDeliveryUnavailableException) Message() string { +func (s *ConcurrentModificationException) Message() string { if s.Message_ != nil { return *s.Message_ } @@ -7995,21 +8433,21 @@ func (s *CloudWatchLogsDeliveryUnavailableException) Message() string { } // OrigErr always returns nil, satisfies awserr.Error interface. -func (s *CloudWatchLogsDeliveryUnavailableException) OrigErr() error { +func (s *ConcurrentModificationException) OrigErr() error { return nil } -func (s *CloudWatchLogsDeliveryUnavailableException) Error() string { +func (s *ConcurrentModificationException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. -func (s *CloudWatchLogsDeliveryUnavailableException) StatusCode() int { +func (s *ConcurrentModificationException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. -func (s *CloudWatchLogsDeliveryUnavailableException) RequestID() string { +func (s *ConcurrentModificationException) RequestID() string { return s.RespMetadata.RequestID } @@ -9969,6 +10407,215 @@ func (s *Destination) SetType(v string) *Destination { return s } +type DisableFederationInput struct { + _ struct{} `type:"structure"` + + // The ARN (or ID suffix of the ARN) of the event data store for which you want + // to disable Lake query federation. + // + // EventDataStore is a required field + EventDataStore *string `min:"3" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisableFederationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisableFederationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisableFederationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DisableFederationInput"} + if s.EventDataStore == nil { + invalidParams.Add(request.NewErrParamRequired("EventDataStore")) + } + if s.EventDataStore != nil && len(*s.EventDataStore) < 3 { + invalidParams.Add(request.NewErrParamMinLen("EventDataStore", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEventDataStore sets the EventDataStore field's value. +func (s *DisableFederationInput) SetEventDataStore(v string) *DisableFederationInput { + s.EventDataStore = &v + return s +} + +type DisableFederationOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the event data store for which you disabled Lake query federation. + EventDataStoreArn *string `min:"3" type:"string"` + + // The federation status. + FederationStatus *string `type:"string" enum:"FederationStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisableFederationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisableFederationOutput) GoString() string { + return s.String() +} + +// SetEventDataStoreArn sets the EventDataStoreArn field's value. +func (s *DisableFederationOutput) SetEventDataStoreArn(v string) *DisableFederationOutput { + s.EventDataStoreArn = &v + return s +} + +// SetFederationStatus sets the FederationStatus field's value. +func (s *DisableFederationOutput) SetFederationStatus(v string) *DisableFederationOutput { + s.FederationStatus = &v + return s +} + +type EnableFederationInput struct { + _ struct{} `type:"structure"` + + // The ARN (or ID suffix of the ARN) of the event data store for which you want + // to enable Lake query federation. + // + // EventDataStore is a required field + EventDataStore *string `min:"3" type:"string" required:"true"` + + // The ARN of the federation role to use for the event data store. Amazon Web + // Services services like Lake Formation use this federation role to access + // data for the federated event data store. The federation role must exist in + // your account and provide the required minimum permissions (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-federation.html#query-federation-permissions-role). + // + // FederationRoleArn is a required field + FederationRoleArn *string `min:"3" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnableFederationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnableFederationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EnableFederationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EnableFederationInput"} + if s.EventDataStore == nil { + invalidParams.Add(request.NewErrParamRequired("EventDataStore")) + } + if s.EventDataStore != nil && len(*s.EventDataStore) < 3 { + invalidParams.Add(request.NewErrParamMinLen("EventDataStore", 3)) + } + if s.FederationRoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("FederationRoleArn")) + } + if s.FederationRoleArn != nil && len(*s.FederationRoleArn) < 3 { + invalidParams.Add(request.NewErrParamMinLen("FederationRoleArn", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEventDataStore sets the EventDataStore field's value. +func (s *EnableFederationInput) SetEventDataStore(v string) *EnableFederationInput { + s.EventDataStore = &v + return s +} + +// SetFederationRoleArn sets the FederationRoleArn field's value. +func (s *EnableFederationInput) SetFederationRoleArn(v string) *EnableFederationInput { + s.FederationRoleArn = &v + return s +} + +type EnableFederationOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the event data store for which you enabled Lake query federation. + EventDataStoreArn *string `min:"3" type:"string"` + + // The ARN of the federation role. + FederationRoleArn *string `min:"3" type:"string"` + + // The federation status. + FederationStatus *string `type:"string" enum:"FederationStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnableFederationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnableFederationOutput) GoString() string { + return s.String() +} + +// SetEventDataStoreArn sets the EventDataStoreArn field's value. +func (s *EnableFederationOutput) SetEventDataStoreArn(v string) *EnableFederationOutput { + s.EventDataStoreArn = &v + return s +} + +// SetFederationRoleArn sets the FederationRoleArn field's value. +func (s *EnableFederationOutput) SetFederationRoleArn(v string) *EnableFederationOutput { + s.FederationRoleArn = &v + return s +} + +// SetFederationStatus sets the FederationStatus field's value. +func (s *EnableFederationOutput) SetFederationStatus(v string) *EnableFederationOutput { + s.FederationStatus = &v + return s +} + // Contains information about an event that was returned by a lookup request. // The result includes a representation of a CloudTrail event. type Event struct { @@ -10342,6 +10989,72 @@ func (s *EventDataStoreAlreadyExistsException) RequestID() string { return s.RespMetadata.RequestID } +// You cannot delete the event data store because Lake query federation is enabled. +// To delete the event data store, run the DisableFederation operation to disable +// Lake query federation on the event data store. +type EventDataStoreFederationEnabledException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EventDataStoreFederationEnabledException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EventDataStoreFederationEnabledException) GoString() string { + return s.String() +} + +func newErrorEventDataStoreFederationEnabledException(v protocol.ResponseMetadata) error { + return &EventDataStoreFederationEnabledException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *EventDataStoreFederationEnabledException) Code() string { + return "EventDataStoreFederationEnabledException" +} + +// Message returns the exception's message. +func (s *EventDataStoreFederationEnabledException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *EventDataStoreFederationEnabledException) OrigErr() error { + return nil +} + +func (s *EventDataStoreFederationEnabledException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *EventDataStoreFederationEnabledException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *EventDataStoreFederationEnabledException) RequestID() string { + return s.RespMetadata.RequestID +} + // This exception is thrown when you try to update or delete an event data store // that currently has an import in progress. type EventDataStoreHasOngoingImportException struct { @@ -10897,6 +11610,16 @@ type GetEventDataStoreOutput struct { // The event data store Amazon Resource Number (ARN). EventDataStoreArn *string `min:"3" type:"string"` + // If Lake query federation is enabled, provides the ARN of the federation role + // used to access the resources for the federated event data store. + FederationRoleArn *string `min:"3" type:"string"` + + // Indicates the Lake query federation (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-federation.html) + // status. The status is ENABLED if Lake query federation is enabled, or DISABLED + // if Lake query federation is disabled. You cannot delete an event data store + // if the FederationStatus is ENABLED. + FederationStatus *string `type:"string" enum:"FederationStatus"` + // Specifies the KMS key ID that encrypts the events delivered by CloudTrail. // The value is a fully specified ARN to a KMS key in the following format. // @@ -10970,6 +11693,18 @@ func (s *GetEventDataStoreOutput) SetEventDataStoreArn(v string) *GetEventDataSt return s } +// SetFederationRoleArn sets the FederationRoleArn field's value. +func (s *GetEventDataStoreOutput) SetFederationRoleArn(v string) *GetEventDataStoreOutput { + s.FederationRoleArn = &v + return s +} + +// SetFederationStatus sets the FederationStatus field's value. +func (s *GetEventDataStoreOutput) SetFederationStatus(v string) *GetEventDataStoreOutput { + s.FederationStatus = &v + return s +} + // SetKmsKeyId sets the KmsKeyId field's value. func (s *GetEventDataStoreOutput) SetKmsKeyId(v string) *GetEventDataStoreOutput { s.KmsKeyId = &v @@ -19925,6 +20660,16 @@ type UpdateEventDataStoreOutput struct { // The ARN of the event data store. EventDataStoreArn *string `min:"3" type:"string"` + // If Lake query federation is enabled, provides the ARN of the federation role + // used to access the resources for the federated event data store. + FederationRoleArn *string `min:"3" type:"string"` + + // Indicates the Lake query federation (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-federation.html) + // status. The status is ENABLED if Lake query federation is enabled, or DISABLED + // if Lake query federation is disabled. You cannot delete an event data store + // if the FederationStatus is ENABLED. + FederationStatus *string `type:"string" enum:"FederationStatus"` + // Specifies the KMS key ID that encrypts the events delivered by CloudTrail. // The value is a fully specified ARN to a KMS key in the following format. // @@ -19998,6 +20743,18 @@ func (s *UpdateEventDataStoreOutput) SetEventDataStoreArn(v string) *UpdateEvent return s } +// SetFederationRoleArn sets the FederationRoleArn field's value. +func (s *UpdateEventDataStoreOutput) SetFederationRoleArn(v string) *UpdateEventDataStoreOutput { + s.FederationRoleArn = &v + return s +} + +// SetFederationStatus sets the FederationStatus field's value. +func (s *UpdateEventDataStoreOutput) SetFederationStatus(v string) *UpdateEventDataStoreOutput { + s.FederationStatus = &v + return s +} + // SetKmsKeyId sets the KmsKeyId field's value. func (s *UpdateEventDataStoreOutput) SetKmsKeyId(v string) *UpdateEventDataStoreOutput { s.KmsKeyId = &v @@ -20535,6 +21292,30 @@ func EventDataStoreStatus_Values() []string { } } +const ( + // FederationStatusEnabling is a FederationStatus enum value + FederationStatusEnabling = "ENABLING" + + // FederationStatusEnabled is a FederationStatus enum value + FederationStatusEnabled = "ENABLED" + + // FederationStatusDisabling is a FederationStatus enum value + FederationStatusDisabling = "DISABLING" + + // FederationStatusDisabled is a FederationStatus enum value + FederationStatusDisabled = "DISABLED" +) + +// FederationStatus_Values returns all elements of the FederationStatus enum +func FederationStatus_Values() []string { + return []string{ + FederationStatusEnabling, + FederationStatusEnabled, + FederationStatusDisabling, + FederationStatusDisabled, + } +} + const ( // ImportFailureStatusFailed is a ImportFailureStatus enum value ImportFailureStatusFailed = "FAILED" diff --git a/service/cloudtrail/cloudtrailiface/interface.go b/service/cloudtrail/cloudtrailiface/interface.go index 0d4f6b14132..3a73e04ef2c 100644 --- a/service/cloudtrail/cloudtrailiface/interface.go +++ b/service/cloudtrail/cloudtrailiface/interface.go @@ -108,6 +108,14 @@ type CloudTrailAPI interface { DescribeTrailsWithContext(aws.Context, *cloudtrail.DescribeTrailsInput, ...request.Option) (*cloudtrail.DescribeTrailsOutput, error) DescribeTrailsRequest(*cloudtrail.DescribeTrailsInput) (*request.Request, *cloudtrail.DescribeTrailsOutput) + DisableFederation(*cloudtrail.DisableFederationInput) (*cloudtrail.DisableFederationOutput, error) + DisableFederationWithContext(aws.Context, *cloudtrail.DisableFederationInput, ...request.Option) (*cloudtrail.DisableFederationOutput, error) + DisableFederationRequest(*cloudtrail.DisableFederationInput) (*request.Request, *cloudtrail.DisableFederationOutput) + + EnableFederation(*cloudtrail.EnableFederationInput) (*cloudtrail.EnableFederationOutput, error) + EnableFederationWithContext(aws.Context, *cloudtrail.EnableFederationInput, ...request.Option) (*cloudtrail.EnableFederationOutput, error) + EnableFederationRequest(*cloudtrail.EnableFederationInput) (*request.Request, *cloudtrail.EnableFederationOutput) + GetChannel(*cloudtrail.GetChannelInput) (*cloudtrail.GetChannelOutput, error) GetChannelWithContext(aws.Context, *cloudtrail.GetChannelInput, ...request.Option) (*cloudtrail.GetChannelOutput, error) GetChannelRequest(*cloudtrail.GetChannelInput) (*request.Request, *cloudtrail.GetChannelOutput) diff --git a/service/cloudtrail/errors.go b/service/cloudtrail/errors.go index fe3f76cf21d..a0a453086eb 100644 --- a/service/cloudtrail/errors.go +++ b/service/cloudtrail/errors.go @@ -21,6 +21,12 @@ const ( // The following is the format of a channel ARN: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890 ErrCodeARNInvalidException = "CloudTrailARNInvalidException" + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + // ErrCodeAccessNotEnabledException for service response error code // "CloudTrailAccessNotEnabledException". // @@ -111,6 +117,14 @@ const ( // Cannot set a CloudWatch Logs delivery for this Region. ErrCodeCloudWatchLogsDeliveryUnavailableException = "CloudWatchLogsDeliveryUnavailableException" + // ErrCodeConcurrentModificationException for service response error code + // "ConcurrentModificationException". + // + // You are trying to update a resource when another request is in progress. + // Allow sufficient wait time for the previous request to complete, then retry + // your request. + ErrCodeConcurrentModificationException = "ConcurrentModificationException" + // ErrCodeConflictException for service response error code // "ConflictException". // @@ -141,6 +155,14 @@ const ( // An event data store with that name already exists. ErrCodeEventDataStoreAlreadyExistsException = "EventDataStoreAlreadyExistsException" + // ErrCodeEventDataStoreFederationEnabledException for service response error code + // "EventDataStoreFederationEnabledException". + // + // You cannot delete the event data store because Lake query federation is enabled. + // To delete the event data store, run the DisableFederation operation to disable + // Lake query federation on the event data store. + ErrCodeEventDataStoreFederationEnabledException = "EventDataStoreFederationEnabledException" + // ErrCodeEventDataStoreHasOngoingImportException for service response error code // "EventDataStoreHasOngoingImportException". // @@ -618,6 +640,7 @@ const ( var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "CloudTrailARNInvalidException": newErrorARNInvalidException, + "AccessDeniedException": newErrorAccessDeniedException, "CloudTrailAccessNotEnabledException": newErrorAccessNotEnabledException, "AccountHasOngoingImportException": newErrorAccountHasOngoingImportException, "AccountNotFoundException": newErrorAccountNotFoundException, @@ -631,10 +654,12 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "ChannelNotFoundException": newErrorChannelNotFoundException, "CloudTrailInvalidClientTokenIdException": newErrorCloudTrailInvalidClientTokenIdException, "CloudWatchLogsDeliveryUnavailableException": newErrorCloudWatchLogsDeliveryUnavailableException, + "ConcurrentModificationException": newErrorConcurrentModificationException, "ConflictException": newErrorConflictException, "DelegatedAdminAccountLimitExceededException": newErrorDelegatedAdminAccountLimitExceededException, "EventDataStoreARNInvalidException": newErrorEventDataStoreARNInvalidException, "EventDataStoreAlreadyExistsException": newErrorEventDataStoreAlreadyExistsException, + "EventDataStoreFederationEnabledException": newErrorEventDataStoreFederationEnabledException, "EventDataStoreHasOngoingImportException": newErrorEventDataStoreHasOngoingImportException, "EventDataStoreMaxLimitExceededException": newErrorEventDataStoreMaxLimitExceededException, "EventDataStoreNotFoundException": newErrorEventDataStoreNotFoundException, diff --git a/service/cloudwatchlogs/api.go b/service/cloudwatchlogs/api.go index 3016b7fd3b7..c45f577f924 100644 --- a/service/cloudwatchlogs/api.go +++ b/service/cloudwatchlogs/api.go @@ -283,8 +283,7 @@ func (c *CloudWatchLogs) CreateDeliveryRequest(input *CreateDeliveryInput) (req // // Only some Amazon Web Services services support being configured as a delivery // source using this operation. These services are listed as Supported [V2 Permissions] -// in the table at Enabling logging from Amazon Web Services services. (https://docs.aws.amazon.com/ -// AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-vended-logs-permissions) +// in the table at Enabling logging from Amazon Web Services services. (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html) // // A delivery destination can represent a log group in CloudWatch Logs, an Amazon // S3 bucket, or a delivery stream in Kinesis Data Firehose. @@ -484,6 +483,125 @@ func (c *CloudWatchLogs) CreateExportTaskWithContext(ctx aws.Context, input *Cre return out, req.Send() } +const opCreateLogAnomalyDetector = "CreateLogAnomalyDetector" + +// CreateLogAnomalyDetectorRequest generates a "aws/request.Request" representing the +// client's request for the CreateLogAnomalyDetector 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 CreateLogAnomalyDetector for more information on using the CreateLogAnomalyDetector +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateLogAnomalyDetectorRequest method. +// req, resp := client.CreateLogAnomalyDetectorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/CreateLogAnomalyDetector +func (c *CloudWatchLogs) CreateLogAnomalyDetectorRequest(input *CreateLogAnomalyDetectorInput) (req *request.Request, output *CreateLogAnomalyDetectorOutput) { + op := &request.Operation{ + Name: opCreateLogAnomalyDetector, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateLogAnomalyDetectorInput{} + } + + output = &CreateLogAnomalyDetectorOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateLogAnomalyDetector API operation for Amazon CloudWatch Logs. +// +// Creates an anomaly detector that regularly scans one or more log groups and +// look for patterns and anomalies in the logs. +// +// An anomaly detector can help surface issues by automatically discovering +// anomalies in your log event traffic. An anomaly detector uses machine learning +// algorithms to scan log events and find patterns. A pattern is a shared text +// structure that recurs among your log fields. Patterns provide a useful tool +// for analyzing large sets of logs because a large number of log events can +// often be compressed into a few patterns. +// +// The anomaly detector uses pattern recognition to find anomalies, which are +// unusual log events. It uses the evaluationFrequency to compare current log +// events and patterns with trained baselines. +// +// Fields within a pattern are called tokens. Fields that vary within a pattern, +// such as a request ID or timestamp, are referred to as dynamic tokens and +// represented by <*>. +// +// The following is an example of a pattern: +// +// [INFO] Request time: <*> ms +// +// This pattern represents log events like [INFO] Request time: 327 ms and other +// similar log events that differ only by the number, in this csse 327. When +// the pattern is displayed, the different numbers are replaced by <*> +// +// Any parts of log events that are masked as sensitive data are not scanned +// for anomalies. For more information about masking sensitive data, see Help +// protect sensitive log data with masking (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Logs's +// API operation CreateLogAnomalyDetector for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// A parameter is specified incorrectly. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ServiceUnavailableException +// The service cannot complete the request. +// +// - OperationAbortedException +// Multiple concurrent requests to update the same resource were in conflict. +// +// - LimitExceededException +// You have reached the maximum number of resources that can be created. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/CreateLogAnomalyDetector +func (c *CloudWatchLogs) CreateLogAnomalyDetector(input *CreateLogAnomalyDetectorInput) (*CreateLogAnomalyDetectorOutput, error) { + req, out := c.CreateLogAnomalyDetectorRequest(input) + return out, req.Send() +} + +// CreateLogAnomalyDetectorWithContext is the same as CreateLogAnomalyDetector with the addition of +// the ability to pass a context and additional request options. +// +// See CreateLogAnomalyDetector for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchLogs) CreateLogAnomalyDetectorWithContext(ctx aws.Context, input *CreateLogAnomalyDetectorInput, opts ...request.Option) (*CreateLogAnomalyDetectorOutput, error) { + req, out := c.CreateLogAnomalyDetectorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateLogGroup = "CreateLogGroup" // CreateLogGroupRequest generates a "aws/request.Request" representing the @@ -1373,6 +1491,95 @@ func (c *CloudWatchLogs) DeleteDestinationWithContext(ctx aws.Context, input *De return out, req.Send() } +const opDeleteLogAnomalyDetector = "DeleteLogAnomalyDetector" + +// DeleteLogAnomalyDetectorRequest generates a "aws/request.Request" representing the +// client's request for the DeleteLogAnomalyDetector 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 DeleteLogAnomalyDetector for more information on using the DeleteLogAnomalyDetector +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteLogAnomalyDetectorRequest method. +// req, resp := client.DeleteLogAnomalyDetectorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteLogAnomalyDetector +func (c *CloudWatchLogs) DeleteLogAnomalyDetectorRequest(input *DeleteLogAnomalyDetectorInput) (req *request.Request, output *DeleteLogAnomalyDetectorOutput) { + op := &request.Operation{ + Name: opDeleteLogAnomalyDetector, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteLogAnomalyDetectorInput{} + } + + output = &DeleteLogAnomalyDetectorOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteLogAnomalyDetector API operation for Amazon CloudWatch Logs. +// +// Deletes the specified CloudWatch Logs anomaly detector. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CloudWatch Logs's +// API operation DeleteLogAnomalyDetector for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// A parameter is specified incorrectly. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ServiceUnavailableException +// The service cannot complete the request. +// +// - OperationAbortedException +// Multiple concurrent requests to update the same resource were in conflict. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteLogAnomalyDetector +func (c *CloudWatchLogs) DeleteLogAnomalyDetector(input *DeleteLogAnomalyDetectorInput) (*DeleteLogAnomalyDetectorOutput, error) { + req, out := c.DeleteLogAnomalyDetectorRequest(input) + return out, req.Send() +} + +// DeleteLogAnomalyDetectorWithContext is the same as DeleteLogAnomalyDetector with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteLogAnomalyDetector for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchLogs) DeleteLogAnomalyDetectorWithContext(ctx aws.Context, input *DeleteLogAnomalyDetectorInput, opts ...request.Option) (*DeleteLogAnomalyDetectorOutput, error) { + req, out := c.DeleteLogAnomalyDetectorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteLogGroup = "DeleteLogGroup" // DeleteLogGroupRequest generates a "aws/request.Request" representing the @@ -4336,6 +4543,94 @@ func (c *CloudWatchLogs) GetDeliverySourceWithContext(ctx aws.Context, input *Ge return out, req.Send() } +const opGetLogAnomalyDetector = "GetLogAnomalyDetector" + +// GetLogAnomalyDetectorRequest generates a "aws/request.Request" representing the +// client's request for the GetLogAnomalyDetector 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 GetLogAnomalyDetector for more information on using the GetLogAnomalyDetector +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetLogAnomalyDetectorRequest method. +// req, resp := client.GetLogAnomalyDetectorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/GetLogAnomalyDetector +func (c *CloudWatchLogs) GetLogAnomalyDetectorRequest(input *GetLogAnomalyDetectorInput) (req *request.Request, output *GetLogAnomalyDetectorOutput) { + op := &request.Operation{ + Name: opGetLogAnomalyDetector, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetLogAnomalyDetectorInput{} + } + + output = &GetLogAnomalyDetectorOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetLogAnomalyDetector API operation for Amazon CloudWatch Logs. +// +// Retrieves information about the log anomaly detector that you specify. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CloudWatch Logs's +// API operation GetLogAnomalyDetector for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// A parameter is specified incorrectly. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ServiceUnavailableException +// The service cannot complete the request. +// +// - OperationAbortedException +// Multiple concurrent requests to update the same resource were in conflict. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/GetLogAnomalyDetector +func (c *CloudWatchLogs) GetLogAnomalyDetector(input *GetLogAnomalyDetectorInput) (*GetLogAnomalyDetectorOutput, error) { + req, out := c.GetLogAnomalyDetectorRequest(input) + return out, req.Send() +} + +// GetLogAnomalyDetectorWithContext is the same as GetLogAnomalyDetector with the addition of +// the ability to pass a context and additional request options. +// +// See GetLogAnomalyDetector for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchLogs) GetLogAnomalyDetectorWithContext(ctx aws.Context, input *GetLogAnomalyDetectorInput, opts ...request.Option) (*GetLogAnomalyDetectorOutput, error) { + req, out := c.GetLogAnomalyDetectorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetLogEvents = "GetLogEvents" // GetLogEventsRequest generates a "aws/request.Request" representing the @@ -4796,58 +5091,65 @@ func (c *CloudWatchLogs) GetQueryResultsWithContext(ctx aws.Context, input *GetQ return out, req.Send() } -const opListTagsForResource = "ListTagsForResource" +const opListAnomalies = "ListAnomalies" -// ListTagsForResourceRequest generates a "aws/request.Request" representing the -// client's request for the ListTagsForResource operation. The "output" return +// ListAnomaliesRequest generates a "aws/request.Request" representing the +// client's request for the ListAnomalies 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 +// See ListAnomalies for more information on using the ListAnomalies // API call, and error handling. // // This method is useful when you want to 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) +// // Example sending a request using the ListAnomaliesRequest method. +// req, resp := client.ListAnomaliesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListTagsForResource -func (c *CloudWatchLogs) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListAnomalies +func (c *CloudWatchLogs) ListAnomaliesRequest(input *ListAnomaliesInput) (req *request.Request, output *ListAnomaliesOutput) { op := &request.Operation{ - Name: opListTagsForResource, + Name: opListAnomalies, HTTPMethod: "POST", HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "limit", + TruncationToken: "", + }, } if input == nil { - input = &ListTagsForResourceInput{} + input = &ListAnomaliesInput{} } - output = &ListTagsForResourceOutput{} + output = &ListAnomaliesOutput{} req = c.newRequest(op, input, output) return } -// ListTagsForResource API operation for Amazon CloudWatch Logs. +// ListAnomalies API operation for Amazon CloudWatch Logs. // -// Displays the tags associated with a CloudWatch Logs resource. Currently, -// log groups and destinations support tagging. +// Returns a list of anomalies that log anomaly detectors have found. For details +// about the structure format of each anomaly object that is returned, see the +// example in this section. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 CloudWatch Logs's -// API operation ListTagsForResource for usage and error information. +// API operation ListAnomalies for usage and error information. // // Returned Error Types: // @@ -4860,40 +5162,327 @@ func (c *CloudWatchLogs) ListTagsForResourceRequest(input *ListTagsForResourceIn // - ServiceUnavailableException // The service cannot complete the request. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListTagsForResource -func (c *CloudWatchLogs) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +// - OperationAbortedException +// Multiple concurrent requests to update the same resource were in conflict. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListAnomalies +func (c *CloudWatchLogs) ListAnomalies(input *ListAnomaliesInput) (*ListAnomaliesOutput, error) { + req, out := c.ListAnomaliesRequest(input) return out, req.Send() } -// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// ListAnomaliesWithContext is the same as ListAnomalies 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. +// See ListAnomalies for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CloudWatchLogs) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +func (c *CloudWatchLogs) ListAnomaliesWithContext(ctx aws.Context, input *ListAnomaliesInput, opts ...request.Option) (*ListAnomaliesOutput, error) { + req, out := c.ListAnomaliesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opListTagsLogGroup = "ListTagsLogGroup" - -// ListTagsLogGroupRequest generates a "aws/request.Request" representing the -// client's request for the ListTagsLogGroup operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. +// ListAnomaliesPages iterates over the pages of a ListAnomalies operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. // -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. +// See ListAnomalies method for more information on how to use this operation. // -// See ListTagsLogGroup for more information on using the ListTagsLogGroup -// API call, and error handling. +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListAnomalies operation. +// pageNum := 0 +// err := client.ListAnomaliesPages(params, +// func(page *cloudwatchlogs.ListAnomaliesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CloudWatchLogs) ListAnomaliesPages(input *ListAnomaliesInput, fn func(*ListAnomaliesOutput, bool) bool) error { + return c.ListAnomaliesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListAnomaliesPagesWithContext same as ListAnomaliesPages 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 *CloudWatchLogs) ListAnomaliesPagesWithContext(ctx aws.Context, input *ListAnomaliesInput, fn func(*ListAnomaliesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + EndPageOnSameToken: true, + NewRequest: func() (*request.Request, error) { + var inCpy *ListAnomaliesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAnomaliesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListAnomaliesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListLogAnomalyDetectors = "ListLogAnomalyDetectors" + +// ListLogAnomalyDetectorsRequest generates a "aws/request.Request" representing the +// client's request for the ListLogAnomalyDetectors 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 ListLogAnomalyDetectors for more information on using the ListLogAnomalyDetectors +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListLogAnomalyDetectorsRequest method. +// req, resp := client.ListLogAnomalyDetectorsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListLogAnomalyDetectors +func (c *CloudWatchLogs) ListLogAnomalyDetectorsRequest(input *ListLogAnomalyDetectorsInput) (req *request.Request, output *ListLogAnomalyDetectorsOutput) { + op := &request.Operation{ + Name: opListLogAnomalyDetectors, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "limit", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListLogAnomalyDetectorsInput{} + } + + output = &ListLogAnomalyDetectorsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListLogAnomalyDetectors API operation for Amazon CloudWatch Logs. +// +// Retrieves a list of the log anomaly detectors in the account. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Logs's +// API operation ListLogAnomalyDetectors for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// A parameter is specified incorrectly. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ServiceUnavailableException +// The service cannot complete the request. +// +// - OperationAbortedException +// Multiple concurrent requests to update the same resource were in conflict. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListLogAnomalyDetectors +func (c *CloudWatchLogs) ListLogAnomalyDetectors(input *ListLogAnomalyDetectorsInput) (*ListLogAnomalyDetectorsOutput, error) { + req, out := c.ListLogAnomalyDetectorsRequest(input) + return out, req.Send() +} + +// ListLogAnomalyDetectorsWithContext is the same as ListLogAnomalyDetectors with the addition of +// the ability to pass a context and additional request options. +// +// See ListLogAnomalyDetectors for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchLogs) ListLogAnomalyDetectorsWithContext(ctx aws.Context, input *ListLogAnomalyDetectorsInput, opts ...request.Option) (*ListLogAnomalyDetectorsOutput, error) { + req, out := c.ListLogAnomalyDetectorsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListLogAnomalyDetectorsPages iterates over the pages of a ListLogAnomalyDetectors operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListLogAnomalyDetectors 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 ListLogAnomalyDetectors operation. +// pageNum := 0 +// err := client.ListLogAnomalyDetectorsPages(params, +// func(page *cloudwatchlogs.ListLogAnomalyDetectorsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CloudWatchLogs) ListLogAnomalyDetectorsPages(input *ListLogAnomalyDetectorsInput, fn func(*ListLogAnomalyDetectorsOutput, bool) bool) error { + return c.ListLogAnomalyDetectorsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListLogAnomalyDetectorsPagesWithContext same as ListLogAnomalyDetectorsPages 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 *CloudWatchLogs) ListLogAnomalyDetectorsPagesWithContext(ctx aws.Context, input *ListLogAnomalyDetectorsInput, fn func(*ListLogAnomalyDetectorsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + EndPageOnSameToken: true, + NewRequest: func() (*request.Request, error) { + var inCpy *ListLogAnomalyDetectorsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListLogAnomalyDetectorsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListLogAnomalyDetectorsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListTagsForResource +func (c *CloudWatchLogs) 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 CloudWatch Logs. +// +// Displays the tags associated with a CloudWatch Logs resource. Currently, +// log groups and destinations support tagging. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CloudWatch Logs's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// A parameter is specified incorrectly. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ServiceUnavailableException +// The service cannot complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListTagsForResource +func (c *CloudWatchLogs) 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 *CloudWatchLogs) 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 opListTagsLogGroup = "ListTagsLogGroup" + +// ListTagsLogGroupRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsLogGroup 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 ListTagsLogGroup for more information on using the ListTagsLogGroup +// API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. @@ -5292,8 +5881,7 @@ func (c *CloudWatchLogs) PutDeliveryDestinationRequest(input *PutDeliveryDestina // // Only some Amazon Web Services services support being configured as a delivery // source. These services are listed as Supported [V2 Permissions] in the table -// at Enabling logging from Amazon Web Services services. (https://docs.aws.amazon.com/ -// AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-vended-logs-permissions) +// at Enabling logging from Amazon Web Services services. (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html) // // If you use this operation to update an existing delivery destination, all // the current delivery destination parameters are overwritten with the new @@ -5413,8 +6001,7 @@ func (c *CloudWatchLogs) PutDeliveryDestinationPolicyRequest(input *PutDeliveryD // // Only some Amazon Web Services services support being configured as a delivery // source. These services are listed as Supported [V2 Permissions] in the table -// at Enabling logging from Amazon Web Services services. (https://docs.aws.amazon.com/ -// AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-vended-logs-permissions) +// at Enabling logging from Amazon Web Services services. (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html) // // The contents of the policy must include two statements. One statement enables // general logs delivery, and the other allows delivery to the chosen destination. @@ -5537,8 +6124,7 @@ func (c *CloudWatchLogs) PutDeliverySourceRequest(input *PutDeliverySourceInput) // // Only some Amazon Web Services services support being configured as a delivery // source. These services are listed as Supported [V2 Permissions] in the table -// at Enabling logging from Amazon Web Services services. (https://docs.aws.amazon.com/ -// AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-vended-logs-permissions) +// at Enabling logging from Amazon Web Services services. (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html) // // If you use this operation to update an existing delivery source, all the // current delivery source parameters are overwritten with the new parameter @@ -7141,15 +7727,205 @@ func (c *CloudWatchLogs) UntagResourceWithContext(ctx aws.Context, input *UntagR return out, req.Send() } -// You don't have sufficient permissions to perform this action. -type AccessDeniedException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} +const opUpdateAnomaly = "UpdateAnomaly" -// String returns the string representation. +// UpdateAnomalyRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAnomaly 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 UpdateAnomaly for more information on using the UpdateAnomaly +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateAnomalyRequest method. +// req, resp := client.UpdateAnomalyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/UpdateAnomaly +func (c *CloudWatchLogs) UpdateAnomalyRequest(input *UpdateAnomalyInput) (req *request.Request, output *UpdateAnomalyOutput) { + op := &request.Operation{ + Name: opUpdateAnomaly, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateAnomalyInput{} + } + + output = &UpdateAnomalyOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateAnomaly API operation for Amazon CloudWatch Logs. +// +// Use this operation to suppress anomaly detection for a specified anomaly +// or pattern. If you suppress an anomaly, CloudWatch Logs won’t report new +// occurrences of that anomaly and won't update that anomaly with new data. +// If you suppress a pattern, CloudWatch Logs won’t report any anomalies related +// to that pattern. +// +// You must specify either anomalyId or patternId, but you can't specify both +// parameters in the same operation. +// +// If you have previously used this operation to suppress detection of a pattern +// or anomaly, you can use it again to cause CloudWatch Logs to end the suppression. +// To do this, use this operation and specify the anomaly or pattern to stop +// suppressing, and omit the suppressionType and suppressionPeriod 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 +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Logs's +// API operation UpdateAnomaly for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// A parameter is specified incorrectly. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ServiceUnavailableException +// The service cannot complete the request. +// +// - OperationAbortedException +// Multiple concurrent requests to update the same resource were in conflict. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/UpdateAnomaly +func (c *CloudWatchLogs) UpdateAnomaly(input *UpdateAnomalyInput) (*UpdateAnomalyOutput, error) { + req, out := c.UpdateAnomalyRequest(input) + return out, req.Send() +} + +// UpdateAnomalyWithContext is the same as UpdateAnomaly with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateAnomaly for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchLogs) UpdateAnomalyWithContext(ctx aws.Context, input *UpdateAnomalyInput, opts ...request.Option) (*UpdateAnomalyOutput, error) { + req, out := c.UpdateAnomalyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateLogAnomalyDetector = "UpdateLogAnomalyDetector" + +// UpdateLogAnomalyDetectorRequest generates a "aws/request.Request" representing the +// client's request for the UpdateLogAnomalyDetector 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 UpdateLogAnomalyDetector for more information on using the UpdateLogAnomalyDetector +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateLogAnomalyDetectorRequest method. +// req, resp := client.UpdateLogAnomalyDetectorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/UpdateLogAnomalyDetector +func (c *CloudWatchLogs) UpdateLogAnomalyDetectorRequest(input *UpdateLogAnomalyDetectorInput) (req *request.Request, output *UpdateLogAnomalyDetectorOutput) { + op := &request.Operation{ + Name: opUpdateLogAnomalyDetector, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateLogAnomalyDetectorInput{} + } + + output = &UpdateLogAnomalyDetectorOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateLogAnomalyDetector API operation for Amazon CloudWatch Logs. +// +// Updates an existing log anomaly detector. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CloudWatch Logs's +// API operation UpdateLogAnomalyDetector for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// A parameter is specified incorrectly. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// - ServiceUnavailableException +// The service cannot complete the request. +// +// - OperationAbortedException +// Multiple concurrent requests to update the same resource were in conflict. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/UpdateLogAnomalyDetector +func (c *CloudWatchLogs) UpdateLogAnomalyDetector(input *UpdateLogAnomalyDetectorInput) (*UpdateLogAnomalyDetectorOutput, error) { + req, out := c.UpdateLogAnomalyDetectorRequest(input) + return out, req.Send() +} + +// UpdateLogAnomalyDetectorWithContext is the same as UpdateLogAnomalyDetector with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateLogAnomalyDetector for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CloudWatchLogs) UpdateLogAnomalyDetectorWithContext(ctx aws.Context, input *UpdateLogAnomalyDetectorInput, opts ...request.Option) (*UpdateLogAnomalyDetectorOutput, error) { + req, out := c.UpdateLogAnomalyDetectorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// You don't have sufficient permissions to perform this action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the @@ -7284,6 +8060,373 @@ func (s *AccountPolicy) SetScope(v string) *AccountPolicy { return s } +// This structure represents one anomaly that has been found by a logs anomaly +// detector. +// +// For more information about patterns and anomalies, see CreateLogAnomalyDetector +// (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogAnomalyDetector.html). +type Anomaly struct { + _ struct{} `type:"structure"` + + // Specifies whether this anomaly is still ongoing. + // + // Active is a required field + Active *bool `locationName:"active" type:"boolean" required:"true"` + + // The ARN of the anomaly detector that identified this anomaly. + // + // AnomalyDetectorArn is a required field + AnomalyDetectorArn *string `locationName:"anomalyDetectorArn" min:"1" type:"string" required:"true"` + + // The unique ID that CloudWatch Logs assigned to this anomaly. + // + // AnomalyId is a required field + AnomalyId *string `locationName:"anomalyId" min:"36" type:"string" required:"true"` + + // A human-readable description of the anomaly. This description is generated + // by CloudWatch Logs. + // + // Description is a required field + Description *string `locationName:"description" min:"1" type:"string" required:"true"` + + // The date and time when the anomaly detector first saw this anomaly. It is + // specified as epoch time, which is the number of seconds since January 1, + // 1970, 00:00:00 UTC. + // + // FirstSeen is a required field + FirstSeen *int64 `locationName:"firstSeen" type:"long" required:"true"` + + // A map showing times when the anomaly detector ran, and the number of occurrences + // of this anomaly that were detected at each of those runs. The times are specified + // in epoch time, which is the number of seconds since January 1, 1970, 00:00:00 + // UTC. + // + // Histogram is a required field + Histogram map[string]*int64 `locationName:"histogram" type:"map" required:"true"` + + // If this anomaly is suppressed, this field is true if the suppression is because + // the pattern is suppressed. If false, then only this particular anomaly is + // suppressed. + IsPatternLevelSuppression *bool `locationName:"isPatternLevelSuppression" type:"boolean"` + + // The date and time when the anomaly detector most recently saw this anomaly. + // It is specified as epoch time, which is the number of seconds since January + // 1, 1970, 00:00:00 UTC. + // + // LastSeen is a required field + LastSeen *int64 `locationName:"lastSeen" type:"long" required:"true"` + + // An array of ARNS of the log groups that contained log events considered to + // be part of this anomaly. + // + // LogGroupArnList is a required field + LogGroupArnList []*string `locationName:"logGroupArnList" type:"list" required:"true"` + + // An array of sample log event messages that are considered to be part of this + // anomaly. + // + // LogSamples is a required field + LogSamples []*string `locationName:"logSamples" type:"list" required:"true"` + + // The ID of the pattern used to help identify this anomaly. + // + // PatternId is a required field + PatternId *string `locationName:"patternId" min:"32" type:"string" required:"true"` + + // The pattern used to help identify this anomaly, in regular expression format. + PatternRegex *string `locationName:"patternRegex" min:"1" type:"string"` + + // The pattern used to help identify this anomaly, in string format. + // + // PatternString is a required field + PatternString *string `locationName:"patternString" min:"1" type:"string" required:"true"` + + // An array of structures where each structure contains information about one + // token that makes up the pattern. + // + // PatternTokens is a required field + PatternTokens []*PatternToken `locationName:"patternTokens" type:"list" required:"true"` + + // The priority level of this anomaly, as determined by CloudWatch Logs. Priority + // is computed based on log severity labels such as FATAL and ERROR and the + // amount of deviation from the baseline. Possible values are HIGH, MEDIUM, + // and LOW. + Priority *string `locationName:"priority" min:"1" type:"string"` + + // Indicates the current state of this anomaly. If it is still being treated + // as an anomaly, the value is Active. If you have suppressed this anomaly by + // using the UpdateAnomaly (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UpdateAnomaly.html) + // operation, the value is Suppressed. If this behavior is now considered to + // be normal, the value is Baseline. + // + // State is a required field + State *string `locationName:"state" type:"string" required:"true" enum:"State"` + + // Indicates whether this anomaly is currently suppressed. To suppress an anomaly, + // use UpdateAnomaly (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UpdateAnomaly.html). + Suppressed *bool `locationName:"suppressed" type:"boolean"` + + // If the anomaly is suppressed, this indicates when it was suppressed. + SuppressedDate *int64 `locationName:"suppressedDate" type:"long"` + + // If the anomaly is suppressed, this indicates when the suppression will end. + // If this value is 0, the anomaly was suppressed with no expiration, with the + // INFINITE value. + SuppressedUntil *int64 `locationName:"suppressedUntil" type:"long"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Anomaly) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Anomaly) GoString() string { + return s.String() +} + +// SetActive sets the Active field's value. +func (s *Anomaly) SetActive(v bool) *Anomaly { + s.Active = &v + return s +} + +// SetAnomalyDetectorArn sets the AnomalyDetectorArn field's value. +func (s *Anomaly) SetAnomalyDetectorArn(v string) *Anomaly { + s.AnomalyDetectorArn = &v + return s +} + +// SetAnomalyId sets the AnomalyId field's value. +func (s *Anomaly) SetAnomalyId(v string) *Anomaly { + s.AnomalyId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *Anomaly) SetDescription(v string) *Anomaly { + s.Description = &v + return s +} + +// SetFirstSeen sets the FirstSeen field's value. +func (s *Anomaly) SetFirstSeen(v int64) *Anomaly { + s.FirstSeen = &v + return s +} + +// SetHistogram sets the Histogram field's value. +func (s *Anomaly) SetHistogram(v map[string]*int64) *Anomaly { + s.Histogram = v + return s +} + +// SetIsPatternLevelSuppression sets the IsPatternLevelSuppression field's value. +func (s *Anomaly) SetIsPatternLevelSuppression(v bool) *Anomaly { + s.IsPatternLevelSuppression = &v + return s +} + +// SetLastSeen sets the LastSeen field's value. +func (s *Anomaly) SetLastSeen(v int64) *Anomaly { + s.LastSeen = &v + return s +} + +// SetLogGroupArnList sets the LogGroupArnList field's value. +func (s *Anomaly) SetLogGroupArnList(v []*string) *Anomaly { + s.LogGroupArnList = v + return s +} + +// SetLogSamples sets the LogSamples field's value. +func (s *Anomaly) SetLogSamples(v []*string) *Anomaly { + s.LogSamples = v + return s +} + +// SetPatternId sets the PatternId field's value. +func (s *Anomaly) SetPatternId(v string) *Anomaly { + s.PatternId = &v + return s +} + +// SetPatternRegex sets the PatternRegex field's value. +func (s *Anomaly) SetPatternRegex(v string) *Anomaly { + s.PatternRegex = &v + return s +} + +// SetPatternString sets the PatternString field's value. +func (s *Anomaly) SetPatternString(v string) *Anomaly { + s.PatternString = &v + return s +} + +// SetPatternTokens sets the PatternTokens field's value. +func (s *Anomaly) SetPatternTokens(v []*PatternToken) *Anomaly { + s.PatternTokens = v + return s +} + +// SetPriority sets the Priority field's value. +func (s *Anomaly) SetPriority(v string) *Anomaly { + s.Priority = &v + return s +} + +// SetState sets the State field's value. +func (s *Anomaly) SetState(v string) *Anomaly { + s.State = &v + return s +} + +// SetSuppressed sets the Suppressed field's value. +func (s *Anomaly) SetSuppressed(v bool) *Anomaly { + s.Suppressed = &v + return s +} + +// SetSuppressedDate sets the SuppressedDate field's value. +func (s *Anomaly) SetSuppressedDate(v int64) *Anomaly { + s.SuppressedDate = &v + return s +} + +// SetSuppressedUntil sets the SuppressedUntil field's value. +func (s *Anomaly) SetSuppressedUntil(v int64) *Anomaly { + s.SuppressedUntil = &v + return s +} + +// Contains information about one anomaly detector in the account. +type AnomalyDetector struct { + _ struct{} `type:"structure"` + + // The ARN of the anomaly detector. + AnomalyDetectorArn *string `locationName:"anomalyDetectorArn" min:"1" type:"string"` + + // Specifies the current status of the anomaly detector. To pause an anomaly + // detector, use the enabled parameter in the UpdateLogAnomalyDetector (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UpdateLogAnomalyDetector.html) + // operation. + AnomalyDetectorStatus *string `locationName:"anomalyDetectorStatus" type:"string" enum:"AnomalyDetectorStatus"` + + // The number of days used as the life cycle of anomalies. After this time, + // anomalies are automatically baselined and the anomaly detector model will + // treat new occurrences of similar event as normal. + AnomalyVisibilityTime *int64 `locationName:"anomalyVisibilityTime" min:"7" type:"long"` + + // The date and time when this anomaly detector was created. + CreationTimeStamp *int64 `locationName:"creationTimeStamp" type:"long"` + + // The name of the anomaly detector. + DetectorName *string `locationName:"detectorName" min:"1" type:"string"` + + // Specifies how often the anomaly detector runs and look for anomalies. + EvaluationFrequency *string `locationName:"evaluationFrequency" type:"string" enum:"EvaluationFrequency"` + + // A symbolic description of how CloudWatch Logs should interpret the data in + // each log event. For example, a log event can contain timestamps, IP addresses, + // strings, and so on. You use the filter pattern to specify what to look for + // in the log event message. + FilterPattern *string `locationName:"filterPattern" type:"string"` + + // The ID of the KMS key assigned to this anomaly detector, if any. + KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + + // The date and time when this anomaly detector was most recently modified. + LastModifiedTimeStamp *int64 `locationName:"lastModifiedTimeStamp" type:"long"` + + // A list of the ARNs of the log groups that this anomaly detector watches. + LogGroupArnList []*string `locationName:"logGroupArnList" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AnomalyDetector) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AnomalyDetector) GoString() string { + return s.String() +} + +// SetAnomalyDetectorArn sets the AnomalyDetectorArn field's value. +func (s *AnomalyDetector) SetAnomalyDetectorArn(v string) *AnomalyDetector { + s.AnomalyDetectorArn = &v + return s +} + +// SetAnomalyDetectorStatus sets the AnomalyDetectorStatus field's value. +func (s *AnomalyDetector) SetAnomalyDetectorStatus(v string) *AnomalyDetector { + s.AnomalyDetectorStatus = &v + return s +} + +// SetAnomalyVisibilityTime sets the AnomalyVisibilityTime field's value. +func (s *AnomalyDetector) SetAnomalyVisibilityTime(v int64) *AnomalyDetector { + s.AnomalyVisibilityTime = &v + return s +} + +// SetCreationTimeStamp sets the CreationTimeStamp field's value. +func (s *AnomalyDetector) SetCreationTimeStamp(v int64) *AnomalyDetector { + s.CreationTimeStamp = &v + return s +} + +// SetDetectorName sets the DetectorName field's value. +func (s *AnomalyDetector) SetDetectorName(v string) *AnomalyDetector { + s.DetectorName = &v + return s +} + +// SetEvaluationFrequency sets the EvaluationFrequency field's value. +func (s *AnomalyDetector) SetEvaluationFrequency(v string) *AnomalyDetector { + s.EvaluationFrequency = &v + return s +} + +// SetFilterPattern sets the FilterPattern field's value. +func (s *AnomalyDetector) SetFilterPattern(v string) *AnomalyDetector { + s.FilterPattern = &v + return s +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *AnomalyDetector) SetKmsKeyId(v string) *AnomalyDetector { + s.KmsKeyId = &v + return s +} + +// SetLastModifiedTimeStamp sets the LastModifiedTimeStamp field's value. +func (s *AnomalyDetector) SetLastModifiedTimeStamp(v int64) *AnomalyDetector { + s.LastModifiedTimeStamp = &v + return s +} + +// SetLogGroupArnList sets the LogGroupArnList field's value. +func (s *AnomalyDetector) SetLogGroupArnList(v []*string) *AnomalyDetector { + s.LogGroupArnList = v + return s +} + type AssociateKmsKeyInput struct { _ struct{} `type:"structure"` @@ -7670,15 +8813,188 @@ type CreateExportTaskInput struct { // The name of the export task. TaskName *string `locationName:"taskName" min:"1" type:"string"` - // The end time of the range for the request, expressed as the number of milliseconds - // after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time - // are not exported. + // The end time of the range for the request, expressed as the number of milliseconds + // after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time + // are not exported. + // + // You must specify a time that is not earlier than when this log group was + // created. + // + // To is a required field + To *int64 `locationName:"to" type:"long" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateExportTaskInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateExportTaskInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateExportTaskInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateExportTaskInput"} + if s.Destination == nil { + invalidParams.Add(request.NewErrParamRequired("Destination")) + } + if s.Destination != nil && len(*s.Destination) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Destination", 1)) + } + if s.From == nil { + invalidParams.Add(request.NewErrParamRequired("From")) + } + if s.LogGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("LogGroupName")) + } + if s.LogGroupName != nil && len(*s.LogGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1)) + } + if s.LogStreamNamePrefix != nil && len(*s.LogStreamNamePrefix) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LogStreamNamePrefix", 1)) + } + if s.TaskName != nil && len(*s.TaskName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TaskName", 1)) + } + if s.To == nil { + invalidParams.Add(request.NewErrParamRequired("To")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestination sets the Destination field's value. +func (s *CreateExportTaskInput) SetDestination(v string) *CreateExportTaskInput { + s.Destination = &v + return s +} + +// SetDestinationPrefix sets the DestinationPrefix field's value. +func (s *CreateExportTaskInput) SetDestinationPrefix(v string) *CreateExportTaskInput { + s.DestinationPrefix = &v + return s +} + +// SetFrom sets the From field's value. +func (s *CreateExportTaskInput) SetFrom(v int64) *CreateExportTaskInput { + s.From = &v + return s +} + +// SetLogGroupName sets the LogGroupName field's value. +func (s *CreateExportTaskInput) SetLogGroupName(v string) *CreateExportTaskInput { + s.LogGroupName = &v + return s +} + +// SetLogStreamNamePrefix sets the LogStreamNamePrefix field's value. +func (s *CreateExportTaskInput) SetLogStreamNamePrefix(v string) *CreateExportTaskInput { + s.LogStreamNamePrefix = &v + return s +} + +// SetTaskName sets the TaskName field's value. +func (s *CreateExportTaskInput) SetTaskName(v string) *CreateExportTaskInput { + s.TaskName = &v + return s +} + +// SetTo sets the To field's value. +func (s *CreateExportTaskInput) SetTo(v int64) *CreateExportTaskInput { + s.To = &v + return s +} + +type CreateExportTaskOutput struct { + _ struct{} `type:"structure"` + + // The ID of the export task. + TaskId *string `locationName:"taskId" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateExportTaskOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateExportTaskOutput) GoString() string { + return s.String() +} + +// SetTaskId sets the TaskId field's value. +func (s *CreateExportTaskOutput) SetTaskId(v string) *CreateExportTaskOutput { + s.TaskId = &v + return s +} + +type CreateLogAnomalyDetectorInput struct { + _ struct{} `type:"structure"` + + // The number of days to have visibility on an anomaly. After this time period + // has elapsed for an anomaly, it will be automatically baselined and the anomaly + // detector will treat new occurrences of a similar anomaly as normal. Therefore, + // if you do not correct the cause of an anomaly during the time period specified + // in anomalyVisibilityTime, it will be considered normal going forward and + // will not be detected as an anomaly. + AnomalyVisibilityTime *int64 `locationName:"anomalyVisibilityTime" min:"7" type:"long"` + + // A name for this anomaly detector. + DetectorName *string `locationName:"detectorName" min:"1" type:"string"` + + // Specifies how often the anomaly detector is to run and look for anomalies. + // Set this value according to the frequency that the log group receives new + // logs. For example, if the log group receives new log events every 10 minutes, + // then 15 minutes might be a good setting for evaluationFrequency . + EvaluationFrequency *string `locationName:"evaluationFrequency" type:"string" enum:"EvaluationFrequency"` + + // You can use this parameter to limit the anomaly detection model to examine + // only log events that match the pattern you specify here. For more information, + // see Filter and Pattern Syntax (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + FilterPattern *string `locationName:"filterPattern" type:"string"` + + // Optionally assigns a KMS key to secure this anomaly detector and its findings. + // If a key is assigned, the anomalies found and the model used by this detector + // are encrypted at rest with the key. If a key is assigned to an anomaly detector, + // a user must have permissions for both this key and for the anomaly detector + // to retrieve information about the anomalies that it finds. + // + // For more information about using a KMS key and to see the required IAM policy, + // see Use a KMS key with an anomaly detector (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/LogsAnomalyDetection-KMS.html). + KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + + // An array containing the ARNs of the log groups that this anomaly detector + // will watch. You must specify at least one ARN. // - // You must specify a time that is not earlier than when this log group was - // created. + // LogGroupArnList is a required field + LogGroupArnList []*string `locationName:"logGroupArnList" type:"list" required:"true"` + + // An optional list of key-value pairs to associate with the resource. // - // To is a required field - To *int64 `locationName:"to" type:"long" required:"true"` + // For more information about tagging, see Tagging Amazon Web Services resources + // (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` } // String returns the string representation. @@ -7686,7 +9002,7 @@ type CreateExportTaskInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateExportTaskInput) String() string { +func (s CreateLogAnomalyDetectorInput) String() string { return awsutil.Prettify(s) } @@ -7695,36 +9011,24 @@ func (s CreateExportTaskInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateExportTaskInput) GoString() string { +func (s CreateLogAnomalyDetectorInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateExportTaskInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateExportTaskInput"} - if s.Destination == nil { - invalidParams.Add(request.NewErrParamRequired("Destination")) - } - if s.Destination != nil && len(*s.Destination) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Destination", 1)) - } - if s.From == nil { - invalidParams.Add(request.NewErrParamRequired("From")) - } - if s.LogGroupName == nil { - invalidParams.Add(request.NewErrParamRequired("LogGroupName")) - } - if s.LogGroupName != nil && len(*s.LogGroupName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1)) +func (s *CreateLogAnomalyDetectorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateLogAnomalyDetectorInput"} + if s.AnomalyVisibilityTime != nil && *s.AnomalyVisibilityTime < 7 { + invalidParams.Add(request.NewErrParamMinValue("AnomalyVisibilityTime", 7)) } - if s.LogStreamNamePrefix != nil && len(*s.LogStreamNamePrefix) < 1 { - invalidParams.Add(request.NewErrParamMinLen("LogStreamNamePrefix", 1)) + if s.DetectorName != nil && len(*s.DetectorName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DetectorName", 1)) } - if s.TaskName != nil && len(*s.TaskName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TaskName", 1)) + if s.LogGroupArnList == nil { + invalidParams.Add(request.NewErrParamRequired("LogGroupArnList")) } - if s.To == nil { - invalidParams.Add(request.NewErrParamRequired("To")) + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) } if invalidParams.Len() > 0 { @@ -7733,53 +9037,53 @@ func (s *CreateExportTaskInput) Validate() error { return nil } -// SetDestination sets the Destination field's value. -func (s *CreateExportTaskInput) SetDestination(v string) *CreateExportTaskInput { - s.Destination = &v +// SetAnomalyVisibilityTime sets the AnomalyVisibilityTime field's value. +func (s *CreateLogAnomalyDetectorInput) SetAnomalyVisibilityTime(v int64) *CreateLogAnomalyDetectorInput { + s.AnomalyVisibilityTime = &v return s } -// SetDestinationPrefix sets the DestinationPrefix field's value. -func (s *CreateExportTaskInput) SetDestinationPrefix(v string) *CreateExportTaskInput { - s.DestinationPrefix = &v +// SetDetectorName sets the DetectorName field's value. +func (s *CreateLogAnomalyDetectorInput) SetDetectorName(v string) *CreateLogAnomalyDetectorInput { + s.DetectorName = &v return s } -// SetFrom sets the From field's value. -func (s *CreateExportTaskInput) SetFrom(v int64) *CreateExportTaskInput { - s.From = &v +// SetEvaluationFrequency sets the EvaluationFrequency field's value. +func (s *CreateLogAnomalyDetectorInput) SetEvaluationFrequency(v string) *CreateLogAnomalyDetectorInput { + s.EvaluationFrequency = &v return s } -// SetLogGroupName sets the LogGroupName field's value. -func (s *CreateExportTaskInput) SetLogGroupName(v string) *CreateExportTaskInput { - s.LogGroupName = &v +// SetFilterPattern sets the FilterPattern field's value. +func (s *CreateLogAnomalyDetectorInput) SetFilterPattern(v string) *CreateLogAnomalyDetectorInput { + s.FilterPattern = &v return s } -// SetLogStreamNamePrefix sets the LogStreamNamePrefix field's value. -func (s *CreateExportTaskInput) SetLogStreamNamePrefix(v string) *CreateExportTaskInput { - s.LogStreamNamePrefix = &v +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *CreateLogAnomalyDetectorInput) SetKmsKeyId(v string) *CreateLogAnomalyDetectorInput { + s.KmsKeyId = &v return s } -// SetTaskName sets the TaskName field's value. -func (s *CreateExportTaskInput) SetTaskName(v string) *CreateExportTaskInput { - s.TaskName = &v +// SetLogGroupArnList sets the LogGroupArnList field's value. +func (s *CreateLogAnomalyDetectorInput) SetLogGroupArnList(v []*string) *CreateLogAnomalyDetectorInput { + s.LogGroupArnList = v return s } -// SetTo sets the To field's value. -func (s *CreateExportTaskInput) SetTo(v int64) *CreateExportTaskInput { - s.To = &v +// SetTags sets the Tags field's value. +func (s *CreateLogAnomalyDetectorInput) SetTags(v map[string]*string) *CreateLogAnomalyDetectorInput { + s.Tags = v return s } -type CreateExportTaskOutput struct { +type CreateLogAnomalyDetectorOutput struct { _ struct{} `type:"structure"` - // The ID of the export task. - TaskId *string `locationName:"taskId" min:"1" type:"string"` + // The ARN of the log anomaly detector that you just created. + AnomalyDetectorArn *string `locationName:"anomalyDetectorArn" min:"1" type:"string"` } // String returns the string representation. @@ -7787,7 +9091,7 @@ type CreateExportTaskOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateExportTaskOutput) String() string { +func (s CreateLogAnomalyDetectorOutput) String() string { return awsutil.Prettify(s) } @@ -7796,13 +9100,13 @@ func (s CreateExportTaskOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateExportTaskOutput) GoString() string { +func (s CreateLogAnomalyDetectorOutput) GoString() string { return s.String() } -// SetTaskId sets the TaskId field's value. -func (s *CreateExportTaskOutput) SetTaskId(v string) *CreateExportTaskOutput { - s.TaskId = &v +// SetAnomalyDetectorArn sets the AnomalyDetectorArn field's value. +func (s *CreateLogAnomalyDetectorOutput) SetAnomalyDetectorArn(v string) *CreateLogAnomalyDetectorOutput { + s.AnomalyDetectorArn = &v return s } @@ -7813,7 +9117,20 @@ type CreateLogGroupInput struct { // data. For more information, see Amazon Resource Names (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms). KmsKeyId *string `locationName:"kmsKeyId" type:"string"` - // The name of the log group. + // Use this parameter to specify the log group class for this log group. There + // are two classes: + // + // * The Standard log class supports all CloudWatch Logs features. + // + // * The Infrequent Access log class supports a subset of CloudWatch Logs + // features and incurs lower costs. + // + // If you omit this parameter, the default of STANDARD is used. + // + // For details about the features supported by each class, see Log classes (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) + LogGroupClass *string `locationName:"logGroupClass" type:"string" enum:"LogGroupClass"` + + // A name for the log group. // // LogGroupName is a required field LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"` @@ -7874,6 +9191,12 @@ func (s *CreateLogGroupInput) SetKmsKeyId(v string) *CreateLogGroupInput { return s } +// SetLogGroupClass sets the LogGroupClass field's value. +func (s *CreateLogGroupInput) SetLogGroupClass(v string) *CreateLogGroupInput { + s.LogGroupClass = &v + return s +} + // SetLogGroupName sets the LogGroupName field's value. func (s *CreateLogGroupInput) SetLogGroupName(v string) *CreateLogGroupInput { s.LogGroupName = &v @@ -8579,6 +9902,79 @@ func (s DeleteDestinationOutput) GoString() string { return s.String() } +type DeleteLogAnomalyDetectorInput struct { + _ struct{} `type:"structure"` + + // The ARN of the anomaly detector to delete. You can find the ARNs of log anomaly + // detectors in your account by using the ListLogAnomalyDetectors (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListLogAnomalyDetectors.html) + // operation. + // + // AnomalyDetectorArn is a required field + AnomalyDetectorArn *string `locationName:"anomalyDetectorArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLogAnomalyDetectorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLogAnomalyDetectorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteLogAnomalyDetectorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteLogAnomalyDetectorInput"} + if s.AnomalyDetectorArn == nil { + invalidParams.Add(request.NewErrParamRequired("AnomalyDetectorArn")) + } + if s.AnomalyDetectorArn != nil && len(*s.AnomalyDetectorArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AnomalyDetectorArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnomalyDetectorArn sets the AnomalyDetectorArn field's value. +func (s *DeleteLogAnomalyDetectorInput) SetAnomalyDetectorArn(v string) *DeleteLogAnomalyDetectorInput { + s.AnomalyDetectorArn = &v + return s +} + +type DeleteLogAnomalyDetectorOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLogAnomalyDetectorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLogAnomalyDetectorOutput) GoString() string { + return s.String() +} + type DeleteLogGroupInput struct { _ struct{} `type:"structure"` @@ -9205,8 +10601,8 @@ func (s *Delivery) SetTags(v map[string]*string) *Delivery { // This structure contains information about one delivery destination in your // account. A delivery destination is an Amazon Web Services resource that represents -// an shared id="AWS"/> service that logs can be sent to. CloudWatch Logs, Amazon -// S3, are supported as Kinesis Data Firehose delivery destinations. +// an Amazon Web Services service that logs can be sent to. CloudWatch Logs, +// Amazon S3, are supported as Kinesis Data Firehose delivery destinations. // // To configure logs delivery between a supported Amazon Web Services service // and a destination, you must do the following: @@ -9364,8 +10760,7 @@ func (s *DeliveryDestinationConfiguration) SetDestinationResourceArn(v string) * // // Only some Amazon Web Services services support being configured as a delivery // source. These services are listed as Supported [V2 Permissions] in the table -// at Enabling logging from Amazon Web Services services. (https://docs.aws.amazon.com/ -// AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-vended-logs-permissions) +// at Enabling logging from Amazon Web Services services. (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html) // // To configure logs delivery between a supported Amazon Web Services service // and a destination, you must do the following: @@ -10126,6 +11521,16 @@ type DescribeLogGroupsInput struct { // is up to 50 items. Limit *int64 `locationName:"limit" min:"1" type:"integer"` + // Specifies the log group class for this log group. There are two classes: + // + // * The Standard log class supports all CloudWatch Logs features. + // + // * The Infrequent Access log class supports a subset of CloudWatch Logs + // features and incurs lower costs. + // + // For details about the features supported by each class, see Log classes (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) + LogGroupClass *string `locationName:"logGroupClass" type:"string" enum:"LogGroupClass"` + // If you specify a string for this parameter, the operation returns only log // groups that have names that match the string based on a case-sensitive substring // search. For example, if you specify Foo, log groups named FooBar, aws/Foo, @@ -10204,6 +11609,12 @@ func (s *DescribeLogGroupsInput) SetLimit(v int64) *DescribeLogGroupsInput { return s } +// SetLogGroupClass sets the LogGroupClass field's value. +func (s *DescribeLogGroupsInput) SetLogGroupClass(v string) *DescribeLogGroupsInput { + s.LogGroupClass = &v + return s +} + // SetLogGroupNamePattern sets the LogGroupNamePattern field's value. func (s *DescribeLogGroupsInput) SetLogGroupNamePattern(v string) *DescribeLogGroupsInput { s.LogGroupNamePattern = &v @@ -12111,31 +13522,197 @@ func (s *GetDeliverySourceInput) SetName(v string) *GetDeliverySourceInput { type GetDeliverySourceOutput struct { _ struct{} `type:"structure"` - // A structure containing information about the delivery source. - DeliverySource *DeliverySource `locationName:"deliverySource" type:"structure"` + // A structure containing information about the delivery source. + DeliverySource *DeliverySource `locationName:"deliverySource" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetDeliverySourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetDeliverySourceOutput) GoString() string { + return s.String() +} + +// SetDeliverySource sets the DeliverySource field's value. +func (s *GetDeliverySourceOutput) SetDeliverySource(v *DeliverySource) *GetDeliverySourceOutput { + s.DeliverySource = v + return s +} + +type GetLogAnomalyDetectorInput struct { + _ struct{} `type:"structure"` + + // The ARN of the anomaly detector to retrieve information about. You can find + // the ARNs of log anomaly detectors in your account by using the ListLogAnomalyDetectors + // (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListLogAnomalyDetectors.html) + // operation. + // + // AnomalyDetectorArn is a required field + AnomalyDetectorArn *string `locationName:"anomalyDetectorArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetLogAnomalyDetectorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetLogAnomalyDetectorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetLogAnomalyDetectorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetLogAnomalyDetectorInput"} + if s.AnomalyDetectorArn == nil { + invalidParams.Add(request.NewErrParamRequired("AnomalyDetectorArn")) + } + if s.AnomalyDetectorArn != nil && len(*s.AnomalyDetectorArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AnomalyDetectorArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnomalyDetectorArn sets the AnomalyDetectorArn field's value. +func (s *GetLogAnomalyDetectorInput) SetAnomalyDetectorArn(v string) *GetLogAnomalyDetectorInput { + s.AnomalyDetectorArn = &v + return s +} + +type GetLogAnomalyDetectorOutput struct { + _ struct{} `type:"structure"` + + // Specifies whether the anomaly detector is currently active. To change its + // status, use the enabled parameter in the UpdateLogAnomalyDetector (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UpdateLogAnomalyDetector.html) + // operation. + AnomalyDetectorStatus *string `locationName:"anomalyDetectorStatus" type:"string" enum:"AnomalyDetectorStatus"` + + // The number of days used as the life cycle of anomalies. After this time, + // anomalies are automatically baselined and the anomaly detector model will + // treat new occurrences of similar event as normal. + AnomalyVisibilityTime *int64 `locationName:"anomalyVisibilityTime" min:"7" type:"long"` + + // The date and time when this anomaly detector was created. + CreationTimeStamp *int64 `locationName:"creationTimeStamp" type:"long"` + + // The name of the log anomaly detector + DetectorName *string `locationName:"detectorName" min:"1" type:"string"` + + // Specifies how often the anomaly detector runs and look for anomalies. Set + // this value according to the frequency that the log group receives new logs. + // For example, if the log group receives new log events every 10 minutes, then + // setting evaluationFrequency to FIFTEEN_MIN might be appropriate. + EvaluationFrequency *string `locationName:"evaluationFrequency" type:"string" enum:"EvaluationFrequency"` + + // A symbolic description of how CloudWatch Logs should interpret the data in + // each log event. For example, a log event can contain timestamps, IP addresses, + // strings, and so on. You use the filter pattern to specify what to look for + // in the log event message. + FilterPattern *string `locationName:"filterPattern" type:"string"` + + // The ID of the KMS key assigned to this anomaly detector, if any. + KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + + // The date and time when this anomaly detector was most recently modified. + LastModifiedTimeStamp *int64 `locationName:"lastModifiedTimeStamp" type:"long"` + + // An array of structures, where each structure contains the ARN of a log group + // associated with this anomaly detector. + LogGroupArnList []*string `locationName:"logGroupArnList" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetLogAnomalyDetectorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetLogAnomalyDetectorOutput) GoString() string { + return s.String() +} + +// SetAnomalyDetectorStatus sets the AnomalyDetectorStatus field's value. +func (s *GetLogAnomalyDetectorOutput) SetAnomalyDetectorStatus(v string) *GetLogAnomalyDetectorOutput { + s.AnomalyDetectorStatus = &v + return s +} + +// SetAnomalyVisibilityTime sets the AnomalyVisibilityTime field's value. +func (s *GetLogAnomalyDetectorOutput) SetAnomalyVisibilityTime(v int64) *GetLogAnomalyDetectorOutput { + s.AnomalyVisibilityTime = &v + return s +} + +// SetCreationTimeStamp sets the CreationTimeStamp field's value. +func (s *GetLogAnomalyDetectorOutput) SetCreationTimeStamp(v int64) *GetLogAnomalyDetectorOutput { + s.CreationTimeStamp = &v + return s +} + +// SetDetectorName sets the DetectorName field's value. +func (s *GetLogAnomalyDetectorOutput) SetDetectorName(v string) *GetLogAnomalyDetectorOutput { + s.DetectorName = &v + return s +} + +// SetEvaluationFrequency sets the EvaluationFrequency field's value. +func (s *GetLogAnomalyDetectorOutput) SetEvaluationFrequency(v string) *GetLogAnomalyDetectorOutput { + s.EvaluationFrequency = &v + return s +} + +// SetFilterPattern sets the FilterPattern field's value. +func (s *GetLogAnomalyDetectorOutput) SetFilterPattern(v string) *GetLogAnomalyDetectorOutput { + s.FilterPattern = &v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetDeliverySourceOutput) String() string { - return awsutil.Prettify(s) +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *GetLogAnomalyDetectorOutput) SetKmsKeyId(v string) *GetLogAnomalyDetectorOutput { + s.KmsKeyId = &v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetDeliverySourceOutput) GoString() string { - return s.String() +// SetLastModifiedTimeStamp sets the LastModifiedTimeStamp field's value. +func (s *GetLogAnomalyDetectorOutput) SetLastModifiedTimeStamp(v int64) *GetLogAnomalyDetectorOutput { + s.LastModifiedTimeStamp = &v + return s } -// SetDeliverySource sets the DeliverySource field's value. -func (s *GetDeliverySourceOutput) SetDeliverySource(v *DeliverySource) *GetDeliverySourceOutput { - s.DeliverySource = v +// SetLogGroupArnList sets the LogGroupArnList field's value. +func (s *GetLogAnomalyDetectorOutput) SetLogGroupArnList(v []*string) *GetLogAnomalyDetectorOutput { + s.LogGroupArnList = v return s } @@ -12998,6 +14575,242 @@ func (s *LimitExceededException) RequestID() string { return s.RespMetadata.RequestID } +type ListAnomaliesInput struct { + _ struct{} `type:"structure"` + + // Use this to optionally limit the results to only the anomalies found by a + // certain anomaly detector. + AnomalyDetectorArn *string `locationName:"anomalyDetectorArn" min:"1" type:"string"` + + // The maximum number of items to return. If you don't specify a value, the + // default maximum value of 50 items is used. + Limit *int64 `locationName:"limit" min:"1" type:"integer"` + + // The token for the next set of items to return. The token expires after 24 + // hours. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // You can specify this parameter if you want to the operation to return only + // anomalies that are currently either suppressed or unsuppressed. + SuppressionState *string `locationName:"suppressionState" type:"string" enum:"SuppressionState"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListAnomaliesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListAnomaliesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAnomaliesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAnomaliesInput"} + if s.AnomalyDetectorArn != nil && len(*s.AnomalyDetectorArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AnomalyDetectorArn", 1)) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnomalyDetectorArn sets the AnomalyDetectorArn field's value. +func (s *ListAnomaliesInput) SetAnomalyDetectorArn(v string) *ListAnomaliesInput { + s.AnomalyDetectorArn = &v + return s +} + +// SetLimit sets the Limit field's value. +func (s *ListAnomaliesInput) SetLimit(v int64) *ListAnomaliesInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAnomaliesInput) SetNextToken(v string) *ListAnomaliesInput { + s.NextToken = &v + return s +} + +// SetSuppressionState sets the SuppressionState field's value. +func (s *ListAnomaliesInput) SetSuppressionState(v string) *ListAnomaliesInput { + s.SuppressionState = &v + return s +} + +type ListAnomaliesOutput struct { + _ struct{} `type:"structure"` + + // An array of structures, where each structure contains information about one + // anomaly that a log anomaly detector has found. + Anomalies []*Anomaly `locationName:"anomalies" type:"list"` + + // The token for the next set of items to return. The token expires after 24 + // hours. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListAnomaliesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListAnomaliesOutput) GoString() string { + return s.String() +} + +// SetAnomalies sets the Anomalies field's value. +func (s *ListAnomaliesOutput) SetAnomalies(v []*Anomaly) *ListAnomaliesOutput { + s.Anomalies = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAnomaliesOutput) SetNextToken(v string) *ListAnomaliesOutput { + s.NextToken = &v + return s +} + +type ListLogAnomalyDetectorsInput struct { + _ struct{} `type:"structure"` + + // Use this to optionally filter the results to only include anomaly detectors + // that are associated with the specified log group. + FilterLogGroupArn *string `locationName:"filterLogGroupArn" min:"1" type:"string"` + + // The maximum number of items to return. If you don't specify a value, the + // default maximum value of 50 items is used. + Limit *int64 `locationName:"limit" min:"1" type:"integer"` + + // The token for the next set of items to return. The token expires after 24 + // hours. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListLogAnomalyDetectorsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListLogAnomalyDetectorsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListLogAnomalyDetectorsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListLogAnomalyDetectorsInput"} + if s.FilterLogGroupArn != nil && len(*s.FilterLogGroupArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FilterLogGroupArn", 1)) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilterLogGroupArn sets the FilterLogGroupArn field's value. +func (s *ListLogAnomalyDetectorsInput) SetFilterLogGroupArn(v string) *ListLogAnomalyDetectorsInput { + s.FilterLogGroupArn = &v + return s +} + +// SetLimit sets the Limit field's value. +func (s *ListLogAnomalyDetectorsInput) SetLimit(v int64) *ListLogAnomalyDetectorsInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListLogAnomalyDetectorsInput) SetNextToken(v string) *ListLogAnomalyDetectorsInput { + s.NextToken = &v + return s +} + +type ListLogAnomalyDetectorsOutput struct { + _ struct{} `type:"structure"` + + // An array of structures, where each structure in the array contains information + // about one anomaly detector. + AnomalyDetectors []*AnomalyDetector `locationName:"anomalyDetectors" type:"list"` + + // The token for the next set of items to return. The token expires after 24 + // hours. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListLogAnomalyDetectorsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListLogAnomalyDetectorsOutput) GoString() string { + return s.String() +} + +// SetAnomalyDetectors sets the AnomalyDetectors field's value. +func (s *ListLogAnomalyDetectorsOutput) SetAnomalyDetectors(v []*AnomalyDetector) *ListLogAnomalyDetectorsOutput { + s.AnomalyDetectors = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListLogAnomalyDetectorsOutput) SetNextToken(v string) *ListLogAnomalyDetectorsOutput { + s.NextToken = &v + return s +} + type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -13190,6 +15003,16 @@ type LogGroup struct { // data. KmsKeyId *string `locationName:"kmsKeyId" type:"string"` + // This specifies the log group class for this log group. There are two classes: + // + // * The Standard log class supports all CloudWatch Logs features. + // + // * The Infrequent Access log class supports a subset of CloudWatch Logs + // features and incurs lower costs. + // + // For details about the features supported by each class, see Log classes (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) + LogGroupClass *string `locationName:"logGroupClass" type:"string" enum:"LogGroupClass"` + // The name of the log group. LogGroupName *string `locationName:"logGroupName" min:"1" type:"string"` @@ -13256,6 +15079,12 @@ func (s *LogGroup) SetKmsKeyId(v string) *LogGroup { return s } +// SetLogGroupClass sets the LogGroupClass field's value. +func (s *LogGroup) SetLogGroupClass(v string) *LogGroup { + s.LogGroupClass = &v + return s +} + // SetLogGroupName sets the LogGroupName field's value. func (s *LogGroup) SetLogGroupName(v string) *LogGroup { s.LogGroupName = &v @@ -13851,21 +15680,88 @@ func (s OutputLogEvent) GoString() string { return s.String() } -// SetIngestionTime sets the IngestionTime field's value. -func (s *OutputLogEvent) SetIngestionTime(v int64) *OutputLogEvent { - s.IngestionTime = &v +// SetIngestionTime sets the IngestionTime field's value. +func (s *OutputLogEvent) SetIngestionTime(v int64) *OutputLogEvent { + s.IngestionTime = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *OutputLogEvent) SetMessage(v string) *OutputLogEvent { + s.Message = &v + return s +} + +// SetTimestamp sets the Timestamp field's value. +func (s *OutputLogEvent) SetTimestamp(v int64) *OutputLogEvent { + s.Timestamp = &v + return s +} + +// A tructures that contains information about one pattern token related to +// an anomaly. +// +// For more information about patterns and tokens, see CreateLogAnomalyDetector +// (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogAnomalyDetector.html). +type PatternToken struct { + _ struct{} `type:"structure"` + + // For a dynamic token, this indicates where in the pattern that this token + // appears, related to other dynamic tokens. The dynamic token that appears + // first has a value of 1, the one that appears second is 2, and so on. + DynamicTokenPosition *int64 `locationName:"dynamicTokenPosition" type:"integer"` + + // Contains the values found for a dynamic token, and the number of times each + // value was found. + Enumerations map[string]*int64 `locationName:"enumerations" type:"map"` + + // Specifies whether this is a dynamic token. + IsDynamic *bool `locationName:"isDynamic" type:"boolean"` + + // The string represented by this token. If this is a dynamic token, the value + // will be <*> + TokenString *string `locationName:"tokenString" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PatternToken) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PatternToken) GoString() string { + return s.String() +} + +// SetDynamicTokenPosition sets the DynamicTokenPosition field's value. +func (s *PatternToken) SetDynamicTokenPosition(v int64) *PatternToken { + s.DynamicTokenPosition = &v + return s +} + +// SetEnumerations sets the Enumerations field's value. +func (s *PatternToken) SetEnumerations(v map[string]*int64) *PatternToken { + s.Enumerations = v return s } -// SetMessage sets the Message field's value. -func (s *OutputLogEvent) SetMessage(v string) *OutputLogEvent { - s.Message = &v +// SetIsDynamic sets the IsDynamic field's value. +func (s *PatternToken) SetIsDynamic(v bool) *PatternToken { + s.IsDynamic = &v return s } -// SetTimestamp sets the Timestamp field's value. -func (s *OutputLogEvent) SetTimestamp(v int64) *OutputLogEvent { - s.Timestamp = &v +// SetTokenString sets the TokenString field's value. +func (s *PatternToken) SetTokenString(v string) *PatternToken { + s.TokenString = &v return s } @@ -16625,6 +18521,49 @@ func (s *SubscriptionFilter) SetRoleArn(v string) *SubscriptionFilter { return s } +// If you are suppressing an anomaly temporariliy, this structure defines how +// long the suppression period is to be. +type SuppressionPeriod struct { + _ struct{} `type:"structure"` + + // Specifies whether the value of value is in seconds, minutes, or hours. + SuppressionUnit *string `locationName:"suppressionUnit" type:"string" enum:"SuppressionUnit"` + + // Specifies the number of seconds, minutes or hours to suppress this anomaly. + // There is no maximum. + Value *int64 `locationName:"value" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SuppressionPeriod) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SuppressionPeriod) GoString() string { + return s.String() +} + +// SetSuppressionUnit sets the SuppressionUnit field's value. +func (s *SuppressionPeriod) SetSuppressionUnit(v string) *SuppressionPeriod { + s.SuppressionUnit = &v + return s +} + +// SetValue sets the Value field's value. +func (s *SuppressionPeriod) SetValue(v int64) *SuppressionPeriod { + s.Value = &v + return s +} + // Deprecated: Please use the generic tagging API model TagResourceRequest type TagLogGroupInput struct { _ struct{} `deprecated:"true" type:"structure"` @@ -17283,6 +19222,251 @@ func (s UntagResourceOutput) GoString() string { return s.String() } +type UpdateAnomalyInput struct { + _ struct{} `type:"structure"` + + // The ARN of the anomaly detector that this operation is to act on. + // + // AnomalyDetectorArn is a required field + AnomalyDetectorArn *string `locationName:"anomalyDetectorArn" min:"1" type:"string" required:"true"` + + // If you are suppressing or unsuppressing an anomaly, specify its unique ID + // here. You can find anomaly IDs by using the ListAnomalies (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListAnomalies.html) + // operation. + AnomalyId *string `locationName:"anomalyId" min:"36" type:"string"` + + // If you are suppressing or unsuppressing an pattern, specify its unique ID + // here. You can find pattern IDs by using the ListAnomalies (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListAnomalies.html) + // operation. + PatternId *string `locationName:"patternId" min:"32" type:"string"` + + // If you are temporarily suppressing an anomaly or pattern, use this structure + // to specify how long the suppression is to last. + SuppressionPeriod *SuppressionPeriod `locationName:"suppressionPeriod" type:"structure"` + + // Use this to specify whether the suppression to be temporary or infinite. + // If you specify LIMITED, you must also specify a suppressionPeriod. If you + // specify INFINITE, any value for suppressionPeriod is ignored. + SuppressionType *string `locationName:"suppressionType" type:"string" enum:"SuppressionType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateAnomalyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateAnomalyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateAnomalyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateAnomalyInput"} + if s.AnomalyDetectorArn == nil { + invalidParams.Add(request.NewErrParamRequired("AnomalyDetectorArn")) + } + if s.AnomalyDetectorArn != nil && len(*s.AnomalyDetectorArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AnomalyDetectorArn", 1)) + } + if s.AnomalyId != nil && len(*s.AnomalyId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("AnomalyId", 36)) + } + if s.PatternId != nil && len(*s.PatternId) < 32 { + invalidParams.Add(request.NewErrParamMinLen("PatternId", 32)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnomalyDetectorArn sets the AnomalyDetectorArn field's value. +func (s *UpdateAnomalyInput) SetAnomalyDetectorArn(v string) *UpdateAnomalyInput { + s.AnomalyDetectorArn = &v + return s +} + +// SetAnomalyId sets the AnomalyId field's value. +func (s *UpdateAnomalyInput) SetAnomalyId(v string) *UpdateAnomalyInput { + s.AnomalyId = &v + return s +} + +// SetPatternId sets the PatternId field's value. +func (s *UpdateAnomalyInput) SetPatternId(v string) *UpdateAnomalyInput { + s.PatternId = &v + return s +} + +// SetSuppressionPeriod sets the SuppressionPeriod field's value. +func (s *UpdateAnomalyInput) SetSuppressionPeriod(v *SuppressionPeriod) *UpdateAnomalyInput { + s.SuppressionPeriod = v + return s +} + +// SetSuppressionType sets the SuppressionType field's value. +func (s *UpdateAnomalyInput) SetSuppressionType(v string) *UpdateAnomalyInput { + s.SuppressionType = &v + return s +} + +type UpdateAnomalyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateAnomalyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateAnomalyOutput) GoString() string { + return s.String() +} + +type UpdateLogAnomalyDetectorInput struct { + _ struct{} `type:"structure"` + + // The ARN of the anomaly detector that you want to update. + // + // AnomalyDetectorArn is a required field + AnomalyDetectorArn *string `locationName:"anomalyDetectorArn" min:"1" type:"string" required:"true"` + + // The number of days to use as the life cycle of anomalies. After this time, + // anomalies are automatically baselined and the anomaly detector model will + // treat new occurrences of similar event as normal. Therefore, if you do not + // correct the cause of an anomaly during this time, it will be considered normal + // going forward and will not be detected. + AnomalyVisibilityTime *int64 `locationName:"anomalyVisibilityTime" min:"7" type:"long"` + + // Use this parameter to pause or restart the anomaly detector. + // + // Enabled is a required field + Enabled *bool `locationName:"enabled" type:"boolean" required:"true"` + + // Specifies how often the anomaly detector runs and look for anomalies. Set + // this value according to the frequency that the log group receives new logs. + // For example, if the log group receives new log events every 10 minutes, then + // setting evaluationFrequency to FIFTEEN_MIN might be appropriate. + EvaluationFrequency *string `locationName:"evaluationFrequency" type:"string" enum:"EvaluationFrequency"` + + // A symbolic description of how CloudWatch Logs should interpret the data in + // each log event. For example, a log event can contain timestamps, IP addresses, + // strings, and so on. You use the filter pattern to specify what to look for + // in the log event message. + FilterPattern *string `locationName:"filterPattern" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateLogAnomalyDetectorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateLogAnomalyDetectorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateLogAnomalyDetectorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateLogAnomalyDetectorInput"} + if s.AnomalyDetectorArn == nil { + invalidParams.Add(request.NewErrParamRequired("AnomalyDetectorArn")) + } + if s.AnomalyDetectorArn != nil && len(*s.AnomalyDetectorArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AnomalyDetectorArn", 1)) + } + if s.AnomalyVisibilityTime != nil && *s.AnomalyVisibilityTime < 7 { + invalidParams.Add(request.NewErrParamMinValue("AnomalyVisibilityTime", 7)) + } + if s.Enabled == nil { + invalidParams.Add(request.NewErrParamRequired("Enabled")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnomalyDetectorArn sets the AnomalyDetectorArn field's value. +func (s *UpdateLogAnomalyDetectorInput) SetAnomalyDetectorArn(v string) *UpdateLogAnomalyDetectorInput { + s.AnomalyDetectorArn = &v + return s +} + +// SetAnomalyVisibilityTime sets the AnomalyVisibilityTime field's value. +func (s *UpdateLogAnomalyDetectorInput) SetAnomalyVisibilityTime(v int64) *UpdateLogAnomalyDetectorInput { + s.AnomalyVisibilityTime = &v + return s +} + +// SetEnabled sets the Enabled field's value. +func (s *UpdateLogAnomalyDetectorInput) SetEnabled(v bool) *UpdateLogAnomalyDetectorInput { + s.Enabled = &v + return s +} + +// SetEvaluationFrequency sets the EvaluationFrequency field's value. +func (s *UpdateLogAnomalyDetectorInput) SetEvaluationFrequency(v string) *UpdateLogAnomalyDetectorInput { + s.EvaluationFrequency = &v + return s +} + +// SetFilterPattern sets the FilterPattern field's value. +func (s *UpdateLogAnomalyDetectorInput) SetFilterPattern(v string) *UpdateLogAnomalyDetectorInput { + s.FilterPattern = &v + return s +} + +type UpdateLogAnomalyDetectorOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateLogAnomalyDetectorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateLogAnomalyDetectorOutput) GoString() string { + return s.String() +} + // One of the parameters for the request is not valid. type ValidationException struct { _ struct{} `type:"structure"` @@ -17347,6 +19531,38 @@ func (s *ValidationException) RequestID() string { return s.RespMetadata.RequestID } +const ( + // AnomalyDetectorStatusInitializing is a AnomalyDetectorStatus enum value + AnomalyDetectorStatusInitializing = "INITIALIZING" + + // AnomalyDetectorStatusTraining is a AnomalyDetectorStatus enum value + AnomalyDetectorStatusTraining = "TRAINING" + + // AnomalyDetectorStatusAnalyzing is a AnomalyDetectorStatus enum value + AnomalyDetectorStatusAnalyzing = "ANALYZING" + + // AnomalyDetectorStatusFailed is a AnomalyDetectorStatus enum value + AnomalyDetectorStatusFailed = "FAILED" + + // AnomalyDetectorStatusDeleted is a AnomalyDetectorStatus enum value + AnomalyDetectorStatusDeleted = "DELETED" + + // AnomalyDetectorStatusPaused is a AnomalyDetectorStatus enum value + AnomalyDetectorStatusPaused = "PAUSED" +) + +// AnomalyDetectorStatus_Values returns all elements of the AnomalyDetectorStatus enum +func AnomalyDetectorStatus_Values() []string { + return []string{ + AnomalyDetectorStatusInitializing, + AnomalyDetectorStatusTraining, + AnomalyDetectorStatusAnalyzing, + AnomalyDetectorStatusFailed, + AnomalyDetectorStatusDeleted, + AnomalyDetectorStatusPaused, + } +} + const ( // DataProtectionStatusActivated is a DataProtectionStatus enum value DataProtectionStatusActivated = "ACTIVATED" @@ -17409,6 +19625,38 @@ func Distribution_Values() []string { } } +const ( + // EvaluationFrequencyOneMin is a EvaluationFrequency enum value + EvaluationFrequencyOneMin = "ONE_MIN" + + // EvaluationFrequencyFiveMin is a EvaluationFrequency enum value + EvaluationFrequencyFiveMin = "FIVE_MIN" + + // EvaluationFrequencyTenMin is a EvaluationFrequency enum value + EvaluationFrequencyTenMin = "TEN_MIN" + + // EvaluationFrequencyFifteenMin is a EvaluationFrequency enum value + EvaluationFrequencyFifteenMin = "FIFTEEN_MIN" + + // EvaluationFrequencyThirtyMin is a EvaluationFrequency enum value + EvaluationFrequencyThirtyMin = "THIRTY_MIN" + + // EvaluationFrequencyOneHour is a EvaluationFrequency enum value + EvaluationFrequencyOneHour = "ONE_HOUR" +) + +// EvaluationFrequency_Values returns all elements of the EvaluationFrequency enum +func EvaluationFrequency_Values() []string { + return []string{ + EvaluationFrequencyOneMin, + EvaluationFrequencyFiveMin, + EvaluationFrequencyTenMin, + EvaluationFrequencyFifteenMin, + EvaluationFrequencyThirtyMin, + EvaluationFrequencyOneHour, + } +} + const ( // ExportTaskStatusCodeCancelled is a ExportTaskStatusCode enum value ExportTaskStatusCodeCancelled = "CANCELLED" @@ -17453,6 +19701,22 @@ func InheritedProperty_Values() []string { } } +const ( + // LogGroupClassStandard is a LogGroupClass enum value + LogGroupClassStandard = "STANDARD" + + // LogGroupClassInfrequentAccess is a LogGroupClass enum value + LogGroupClassInfrequentAccess = "INFREQUENT_ACCESS" +) + +// LogGroupClass_Values returns all elements of the LogGroupClass enum +func LogGroupClass_Values() []string { + return []string{ + LogGroupClassStandard, + LogGroupClassInfrequentAccess, + } +} + const ( // OrderByLogStreamName is a OrderBy enum value OrderByLogStreamName = "LogStreamName" @@ -17672,3 +19936,75 @@ func StandardUnit_Values() []string { StandardUnitNone, } } + +const ( + // StateActive is a State enum value + StateActive = "Active" + + // StateSuppressed is a State enum value + StateSuppressed = "Suppressed" + + // StateBaseline is a State enum value + StateBaseline = "Baseline" +) + +// State_Values returns all elements of the State enum +func State_Values() []string { + return []string{ + StateActive, + StateSuppressed, + StateBaseline, + } +} + +const ( + // SuppressionStateSuppressed is a SuppressionState enum value + SuppressionStateSuppressed = "SUPPRESSED" + + // SuppressionStateUnsuppressed is a SuppressionState enum value + SuppressionStateUnsuppressed = "UNSUPPRESSED" +) + +// SuppressionState_Values returns all elements of the SuppressionState enum +func SuppressionState_Values() []string { + return []string{ + SuppressionStateSuppressed, + SuppressionStateUnsuppressed, + } +} + +const ( + // SuppressionTypeLimited is a SuppressionType enum value + SuppressionTypeLimited = "LIMITED" + + // SuppressionTypeInfinite is a SuppressionType enum value + SuppressionTypeInfinite = "INFINITE" +) + +// SuppressionType_Values returns all elements of the SuppressionType enum +func SuppressionType_Values() []string { + return []string{ + SuppressionTypeLimited, + SuppressionTypeInfinite, + } +} + +const ( + // SuppressionUnitSeconds is a SuppressionUnit enum value + SuppressionUnitSeconds = "SECONDS" + + // SuppressionUnitMinutes is a SuppressionUnit enum value + SuppressionUnitMinutes = "MINUTES" + + // SuppressionUnitHours is a SuppressionUnit enum value + SuppressionUnitHours = "HOURS" +) + +// SuppressionUnit_Values returns all elements of the SuppressionUnit enum +func SuppressionUnit_Values() []string { + return []string{ + SuppressionUnitSeconds, + SuppressionUnitMinutes, + SuppressionUnitHours, + } +} diff --git a/service/cloudwatchlogs/cloudwatchlogsiface/interface.go b/service/cloudwatchlogs/cloudwatchlogsiface/interface.go index 7cf534b497a..8632a596754 100644 --- a/service/cloudwatchlogs/cloudwatchlogsiface/interface.go +++ b/service/cloudwatchlogs/cloudwatchlogsiface/interface.go @@ -76,6 +76,10 @@ type CloudWatchLogsAPI interface { CreateExportTaskWithContext(aws.Context, *cloudwatchlogs.CreateExportTaskInput, ...request.Option) (*cloudwatchlogs.CreateExportTaskOutput, error) CreateExportTaskRequest(*cloudwatchlogs.CreateExportTaskInput) (*request.Request, *cloudwatchlogs.CreateExportTaskOutput) + CreateLogAnomalyDetector(*cloudwatchlogs.CreateLogAnomalyDetectorInput) (*cloudwatchlogs.CreateLogAnomalyDetectorOutput, error) + CreateLogAnomalyDetectorWithContext(aws.Context, *cloudwatchlogs.CreateLogAnomalyDetectorInput, ...request.Option) (*cloudwatchlogs.CreateLogAnomalyDetectorOutput, error) + CreateLogAnomalyDetectorRequest(*cloudwatchlogs.CreateLogAnomalyDetectorInput) (*request.Request, *cloudwatchlogs.CreateLogAnomalyDetectorOutput) + CreateLogGroup(*cloudwatchlogs.CreateLogGroupInput) (*cloudwatchlogs.CreateLogGroupOutput, error) CreateLogGroupWithContext(aws.Context, *cloudwatchlogs.CreateLogGroupInput, ...request.Option) (*cloudwatchlogs.CreateLogGroupOutput, error) CreateLogGroupRequest(*cloudwatchlogs.CreateLogGroupInput) (*request.Request, *cloudwatchlogs.CreateLogGroupOutput) @@ -112,6 +116,10 @@ type CloudWatchLogsAPI interface { DeleteDestinationWithContext(aws.Context, *cloudwatchlogs.DeleteDestinationInput, ...request.Option) (*cloudwatchlogs.DeleteDestinationOutput, error) DeleteDestinationRequest(*cloudwatchlogs.DeleteDestinationInput) (*request.Request, *cloudwatchlogs.DeleteDestinationOutput) + DeleteLogAnomalyDetector(*cloudwatchlogs.DeleteLogAnomalyDetectorInput) (*cloudwatchlogs.DeleteLogAnomalyDetectorOutput, error) + DeleteLogAnomalyDetectorWithContext(aws.Context, *cloudwatchlogs.DeleteLogAnomalyDetectorInput, ...request.Option) (*cloudwatchlogs.DeleteLogAnomalyDetectorOutput, error) + DeleteLogAnomalyDetectorRequest(*cloudwatchlogs.DeleteLogAnomalyDetectorInput) (*request.Request, *cloudwatchlogs.DeleteLogAnomalyDetectorOutput) + DeleteLogGroup(*cloudwatchlogs.DeleteLogGroupInput) (*cloudwatchlogs.DeleteLogGroupOutput, error) DeleteLogGroupWithContext(aws.Context, *cloudwatchlogs.DeleteLogGroupInput, ...request.Option) (*cloudwatchlogs.DeleteLogGroupOutput, error) DeleteLogGroupRequest(*cloudwatchlogs.DeleteLogGroupInput) (*request.Request, *cloudwatchlogs.DeleteLogGroupOutput) @@ -247,6 +255,10 @@ type CloudWatchLogsAPI interface { GetDeliverySourceWithContext(aws.Context, *cloudwatchlogs.GetDeliverySourceInput, ...request.Option) (*cloudwatchlogs.GetDeliverySourceOutput, error) GetDeliverySourceRequest(*cloudwatchlogs.GetDeliverySourceInput) (*request.Request, *cloudwatchlogs.GetDeliverySourceOutput) + GetLogAnomalyDetector(*cloudwatchlogs.GetLogAnomalyDetectorInput) (*cloudwatchlogs.GetLogAnomalyDetectorOutput, error) + GetLogAnomalyDetectorWithContext(aws.Context, *cloudwatchlogs.GetLogAnomalyDetectorInput, ...request.Option) (*cloudwatchlogs.GetLogAnomalyDetectorOutput, error) + GetLogAnomalyDetectorRequest(*cloudwatchlogs.GetLogAnomalyDetectorInput) (*request.Request, *cloudwatchlogs.GetLogAnomalyDetectorOutput) + GetLogEvents(*cloudwatchlogs.GetLogEventsInput) (*cloudwatchlogs.GetLogEventsOutput, error) GetLogEventsWithContext(aws.Context, *cloudwatchlogs.GetLogEventsInput, ...request.Option) (*cloudwatchlogs.GetLogEventsOutput, error) GetLogEventsRequest(*cloudwatchlogs.GetLogEventsInput) (*request.Request, *cloudwatchlogs.GetLogEventsOutput) @@ -266,6 +278,20 @@ type CloudWatchLogsAPI interface { GetQueryResultsWithContext(aws.Context, *cloudwatchlogs.GetQueryResultsInput, ...request.Option) (*cloudwatchlogs.GetQueryResultsOutput, error) GetQueryResultsRequest(*cloudwatchlogs.GetQueryResultsInput) (*request.Request, *cloudwatchlogs.GetQueryResultsOutput) + ListAnomalies(*cloudwatchlogs.ListAnomaliesInput) (*cloudwatchlogs.ListAnomaliesOutput, error) + ListAnomaliesWithContext(aws.Context, *cloudwatchlogs.ListAnomaliesInput, ...request.Option) (*cloudwatchlogs.ListAnomaliesOutput, error) + ListAnomaliesRequest(*cloudwatchlogs.ListAnomaliesInput) (*request.Request, *cloudwatchlogs.ListAnomaliesOutput) + + ListAnomaliesPages(*cloudwatchlogs.ListAnomaliesInput, func(*cloudwatchlogs.ListAnomaliesOutput, bool) bool) error + ListAnomaliesPagesWithContext(aws.Context, *cloudwatchlogs.ListAnomaliesInput, func(*cloudwatchlogs.ListAnomaliesOutput, bool) bool, ...request.Option) error + + ListLogAnomalyDetectors(*cloudwatchlogs.ListLogAnomalyDetectorsInput) (*cloudwatchlogs.ListLogAnomalyDetectorsOutput, error) + ListLogAnomalyDetectorsWithContext(aws.Context, *cloudwatchlogs.ListLogAnomalyDetectorsInput, ...request.Option) (*cloudwatchlogs.ListLogAnomalyDetectorsOutput, error) + ListLogAnomalyDetectorsRequest(*cloudwatchlogs.ListLogAnomalyDetectorsInput) (*request.Request, *cloudwatchlogs.ListLogAnomalyDetectorsOutput) + + ListLogAnomalyDetectorsPages(*cloudwatchlogs.ListLogAnomalyDetectorsInput, func(*cloudwatchlogs.ListLogAnomalyDetectorsOutput, bool) bool) error + ListLogAnomalyDetectorsPagesWithContext(aws.Context, *cloudwatchlogs.ListLogAnomalyDetectorsInput, func(*cloudwatchlogs.ListLogAnomalyDetectorsOutput, bool) bool, ...request.Option) error + ListTagsForResource(*cloudwatchlogs.ListTagsForResourceInput) (*cloudwatchlogs.ListTagsForResourceOutput, error) ListTagsForResourceWithContext(aws.Context, *cloudwatchlogs.ListTagsForResourceInput, ...request.Option) (*cloudwatchlogs.ListTagsForResourceOutput, error) ListTagsForResourceRequest(*cloudwatchlogs.ListTagsForResourceInput) (*request.Request, *cloudwatchlogs.ListTagsForResourceOutput) @@ -353,6 +379,14 @@ type CloudWatchLogsAPI interface { UntagResource(*cloudwatchlogs.UntagResourceInput) (*cloudwatchlogs.UntagResourceOutput, error) UntagResourceWithContext(aws.Context, *cloudwatchlogs.UntagResourceInput, ...request.Option) (*cloudwatchlogs.UntagResourceOutput, error) UntagResourceRequest(*cloudwatchlogs.UntagResourceInput) (*request.Request, *cloudwatchlogs.UntagResourceOutput) + + UpdateAnomaly(*cloudwatchlogs.UpdateAnomalyInput) (*cloudwatchlogs.UpdateAnomalyOutput, error) + UpdateAnomalyWithContext(aws.Context, *cloudwatchlogs.UpdateAnomalyInput, ...request.Option) (*cloudwatchlogs.UpdateAnomalyOutput, error) + UpdateAnomalyRequest(*cloudwatchlogs.UpdateAnomalyInput) (*request.Request, *cloudwatchlogs.UpdateAnomalyOutput) + + UpdateLogAnomalyDetector(*cloudwatchlogs.UpdateLogAnomalyDetectorInput) (*cloudwatchlogs.UpdateLogAnomalyDetectorOutput, error) + UpdateLogAnomalyDetectorWithContext(aws.Context, *cloudwatchlogs.UpdateLogAnomalyDetectorInput, ...request.Option) (*cloudwatchlogs.UpdateLogAnomalyDetectorOutput, error) + UpdateLogAnomalyDetectorRequest(*cloudwatchlogs.UpdateLogAnomalyDetectorInput) (*request.Request, *cloudwatchlogs.UpdateLogAnomalyDetectorOutput) } var _ CloudWatchLogsAPI = (*cloudwatchlogs.CloudWatchLogs)(nil) diff --git a/service/codestarconnections/api.go b/service/codestarconnections/api.go index fc50ce46ea6..c26f48c13b1 100644 --- a/service/codestarconnections/api.go +++ b/service/codestarconnections/api.go @@ -4,6 +4,7 @@ package codestarconnections import ( "fmt" + "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awsutil" @@ -184,6 +185,207 @@ func (c *CodeStarConnections) CreateHostWithContext(ctx aws.Context, input *Crea return out, req.Send() } +const opCreateRepositoryLink = "CreateRepositoryLink" + +// CreateRepositoryLinkRequest generates a "aws/request.Request" representing the +// client's request for the CreateRepositoryLink 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 CreateRepositoryLink for more information on using the CreateRepositoryLink +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateRepositoryLinkRequest method. +// req, resp := client.CreateRepositoryLinkRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/CreateRepositoryLink +func (c *CodeStarConnections) CreateRepositoryLinkRequest(input *CreateRepositoryLinkInput) (req *request.Request, output *CreateRepositoryLinkOutput) { + op := &request.Operation{ + Name: opCreateRepositoryLink, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateRepositoryLinkInput{} + } + + output = &CreateRepositoryLinkOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateRepositoryLink API operation for AWS CodeStar connections. +// +// Creates a link to a specified external Git repository. A repository link +// allows Git sync to monitor and sync changes to files in a specified Git repository. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's +// API operation CreateRepositoryLink for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ConcurrentModificationException +// Exception thrown as a result of concurrent modification to an application. +// For example, two individuals attempting to edit the same application at the +// same time. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// +// - LimitExceededException +// Exceeded the maximum limit for connections. +// +// - ResourceAlreadyExistsException +// Unable to create resource. Resource already exists. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/CreateRepositoryLink +func (c *CodeStarConnections) CreateRepositoryLink(input *CreateRepositoryLinkInput) (*CreateRepositoryLinkOutput, error) { + req, out := c.CreateRepositoryLinkRequest(input) + return out, req.Send() +} + +// CreateRepositoryLinkWithContext is the same as CreateRepositoryLink with the addition of +// the ability to pass a context and additional request options. +// +// See CreateRepositoryLink for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) CreateRepositoryLinkWithContext(ctx aws.Context, input *CreateRepositoryLinkInput, opts ...request.Option) (*CreateRepositoryLinkOutput, error) { + req, out := c.CreateRepositoryLinkRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateSyncConfiguration = "CreateSyncConfiguration" + +// CreateSyncConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the CreateSyncConfiguration 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 CreateSyncConfiguration for more information on using the CreateSyncConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateSyncConfigurationRequest method. +// req, resp := client.CreateSyncConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/CreateSyncConfiguration +func (c *CodeStarConnections) CreateSyncConfigurationRequest(input *CreateSyncConfigurationInput) (req *request.Request, output *CreateSyncConfigurationOutput) { + op := &request.Operation{ + Name: opCreateSyncConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateSyncConfigurationInput{} + } + + output = &CreateSyncConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateSyncConfiguration API operation for AWS CodeStar connections. +// +// Creates a sync configuration which allows Amazon Web Services to sync content +// from a Git repository to update a specified Amazon Web Services resource. +// Parameters for the sync configuration are determined by the sync type. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS CodeStar connections's +// API operation CreateSyncConfiguration for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ConcurrentModificationException +// Exception thrown as a result of concurrent modification to an application. +// For example, two individuals attempting to edit the same application at the +// same time. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// +// - LimitExceededException +// Exceeded the maximum limit for connections. +// +// - ResourceAlreadyExistsException +// Unable to create resource. Resource already exists. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/CreateSyncConfiguration +func (c *CodeStarConnections) CreateSyncConfiguration(input *CreateSyncConfigurationInput) (*CreateSyncConfigurationOutput, error) { + req, out := c.CreateSyncConfigurationRequest(input) + return out, req.Send() +} + +// CreateSyncConfigurationWithContext is the same as CreateSyncConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See CreateSyncConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) CreateSyncConfigurationWithContext(ctx aws.Context, input *CreateSyncConfigurationInput, opts ...request.Option) (*CreateSyncConfigurationOutput, error) { + req, out := c.CreateSyncConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteConnection = "DeleteConnection" // DeleteConnectionRequest generates a "aws/request.Request" representing the @@ -350,773 +552,4780 @@ func (c *CodeStarConnections) DeleteHostWithContext(ctx aws.Context, input *Dele return out, req.Send() } -const opGetConnection = "GetConnection" +const opDeleteRepositoryLink = "DeleteRepositoryLink" -// GetConnectionRequest generates a "aws/request.Request" representing the -// client's request for the GetConnection operation. The "output" return +// DeleteRepositoryLinkRequest generates a "aws/request.Request" representing the +// client's request for the DeleteRepositoryLink 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 GetConnection for more information on using the GetConnection +// See DeleteRepositoryLink for more information on using the DeleteRepositoryLink // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetConnectionRequest method. -// req, resp := client.GetConnectionRequest(params) +// // Example sending a request using the DeleteRepositoryLinkRequest method. +// req, resp := client.DeleteRepositoryLinkRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetConnection -func (c *CodeStarConnections) GetConnectionRequest(input *GetConnectionInput) (req *request.Request, output *GetConnectionOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/DeleteRepositoryLink +func (c *CodeStarConnections) DeleteRepositoryLinkRequest(input *DeleteRepositoryLinkInput) (req *request.Request, output *DeleteRepositoryLinkOutput) { op := &request.Operation{ - Name: opGetConnection, + Name: opDeleteRepositoryLink, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetConnectionInput{} + input = &DeleteRepositoryLinkInput{} } - output = &GetConnectionOutput{} + output = &DeleteRepositoryLinkOutput{} req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// GetConnection API operation for AWS CodeStar connections. +// DeleteRepositoryLink API operation for AWS CodeStar connections. // -// Returns the connection ARN and details such as status, owner, and provider -// type. +// Deletes the association between your connection and a specified external +// Git repository. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's -// API operation GetConnection for usage and error information. +// API operation DeleteRepositoryLink for usage and error information. // // Returned Error Types: // +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ConcurrentModificationException +// Exception thrown as a result of concurrent modification to an application. +// For example, two individuals attempting to edit the same application at the +// same time. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// +// - SyncConfigurationStillExistsException +// Unable to continue. The sync blocker still exists. +// // - ResourceNotFoundException // Resource not found. Verify the connection resource ARN and try again. // -// - ResourceUnavailableException -// Resource not found. Verify the ARN for the host resource and try again. +// - ThrottlingException +// The request was denied due to request throttling. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetConnection -func (c *CodeStarConnections) GetConnection(input *GetConnectionInput) (*GetConnectionOutput, error) { - req, out := c.GetConnectionRequest(input) +// - UnsupportedProviderTypeException +// The specified provider type is not supported for connections. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/DeleteRepositoryLink +func (c *CodeStarConnections) DeleteRepositoryLink(input *DeleteRepositoryLinkInput) (*DeleteRepositoryLinkOutput, error) { + req, out := c.DeleteRepositoryLinkRequest(input) return out, req.Send() } -// GetConnectionWithContext is the same as GetConnection with the addition of +// DeleteRepositoryLinkWithContext is the same as DeleteRepositoryLink with the addition of // the ability to pass a context and additional request options. // -// See GetConnection for details on how to use this API operation. +// See DeleteRepositoryLink for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CodeStarConnections) GetConnectionWithContext(ctx aws.Context, input *GetConnectionInput, opts ...request.Option) (*GetConnectionOutput, error) { - req, out := c.GetConnectionRequest(input) +func (c *CodeStarConnections) DeleteRepositoryLinkWithContext(ctx aws.Context, input *DeleteRepositoryLinkInput, opts ...request.Option) (*DeleteRepositoryLinkOutput, error) { + req, out := c.DeleteRepositoryLinkRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetHost = "GetHost" +const opDeleteSyncConfiguration = "DeleteSyncConfiguration" -// GetHostRequest generates a "aws/request.Request" representing the -// client's request for the GetHost operation. The "output" return +// DeleteSyncConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteSyncConfiguration 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 GetHost for more information on using the GetHost +// See DeleteSyncConfiguration for more information on using the DeleteSyncConfiguration // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetHostRequest method. -// req, resp := client.GetHostRequest(params) +// // Example sending a request using the DeleteSyncConfigurationRequest method. +// req, resp := client.DeleteSyncConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetHost -func (c *CodeStarConnections) GetHostRequest(input *GetHostInput) (req *request.Request, output *GetHostOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/DeleteSyncConfiguration +func (c *CodeStarConnections) DeleteSyncConfigurationRequest(input *DeleteSyncConfigurationInput) (req *request.Request, output *DeleteSyncConfigurationOutput) { op := &request.Operation{ - Name: opGetHost, + Name: opDeleteSyncConfiguration, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &GetHostInput{} + input = &DeleteSyncConfigurationInput{} } - output = &GetHostOutput{} + output = &DeleteSyncConfigurationOutput{} req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// GetHost API operation for AWS CodeStar connections. +// DeleteSyncConfiguration API operation for AWS CodeStar connections. // -// Returns the host ARN and details such as status, provider type, endpoint, -// and, if applicable, the VPC configuration. +// Deletes the sync configuration for a specified repository and connection. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS CodeStar connections's -// API operation GetHost for usage and error information. +// API operation DeleteSyncConfiguration for usage and error information. // // Returned Error Types: // -// - ResourceNotFoundException -// Resource not found. Verify the connection resource ARN and try again. +// - AccessDeniedException +// You do not have sufficient access to perform this action. // -// - ResourceUnavailableException -// Resource not found. Verify the ARN for the host resource and try again. +// - ConcurrentModificationException +// Exception thrown as a result of concurrent modification to an application. +// For example, two individuals attempting to edit the same application at the +// same time. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetHost -func (c *CodeStarConnections) GetHost(input *GetHostInput) (*GetHostOutput, error) { - req, out := c.GetHostRequest(input) +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// +// - LimitExceededException +// Exceeded the maximum limit for connections. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/DeleteSyncConfiguration +func (c *CodeStarConnections) DeleteSyncConfiguration(input *DeleteSyncConfigurationInput) (*DeleteSyncConfigurationOutput, error) { + req, out := c.DeleteSyncConfigurationRequest(input) return out, req.Send() } -// GetHostWithContext is the same as GetHost with the addition of +// DeleteSyncConfigurationWithContext is the same as DeleteSyncConfiguration with the addition of // the ability to pass a context and additional request options. // -// See GetHost for details on how to use this API operation. +// See DeleteSyncConfiguration for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CodeStarConnections) GetHostWithContext(ctx aws.Context, input *GetHostInput, opts ...request.Option) (*GetHostOutput, error) { - req, out := c.GetHostRequest(input) +func (c *CodeStarConnections) DeleteSyncConfigurationWithContext(ctx aws.Context, input *DeleteSyncConfigurationInput, opts ...request.Option) (*DeleteSyncConfigurationOutput, error) { + req, out := c.DeleteSyncConfigurationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opListConnections = "ListConnections" +const opGetConnection = "GetConnection" -// ListConnectionsRequest generates a "aws/request.Request" representing the -// client's request for the ListConnections operation. The "output" return +// GetConnectionRequest generates a "aws/request.Request" representing the +// client's request for the GetConnection 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 ListConnections for more information on using the ListConnections +// See GetConnection for more information on using the GetConnection // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ListConnectionsRequest method. -// req, resp := client.ListConnectionsRequest(params) +// // Example sending a request using the GetConnectionRequest method. +// req, resp := client.GetConnectionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListConnections -func (c *CodeStarConnections) ListConnectionsRequest(input *ListConnectionsInput) (req *request.Request, output *ListConnectionsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetConnection +func (c *CodeStarConnections) GetConnectionRequest(input *GetConnectionInput) (req *request.Request, output *GetConnectionOutput) { op := &request.Operation{ - Name: opListConnections, + Name: opGetConnection, HTTPMethod: "POST", HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, } if input == nil { - input = &ListConnectionsInput{} + input = &GetConnectionInput{} } - output = &ListConnectionsOutput{} + output = &GetConnectionOutput{} req = c.newRequest(op, input, output) return } -// ListConnections API operation for AWS CodeStar connections. +// GetConnection API operation for AWS CodeStar connections. // -// Lists the connections associated with your account. +// Returns the connection ARN and details such as status, owner, and provider +// type. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS CodeStar connections's -// API operation ListConnections for usage and error information. +// API operation GetConnection for usage and error information. // // Returned Error Types: +// // - ResourceNotFoundException // Resource not found. Verify the connection resource ARN and try again. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListConnections -func (c *CodeStarConnections) ListConnections(input *ListConnectionsInput) (*ListConnectionsOutput, error) { - req, out := c.ListConnectionsRequest(input) +// - ResourceUnavailableException +// Resource not found. Verify the ARN for the host resource and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetConnection +func (c *CodeStarConnections) GetConnection(input *GetConnectionInput) (*GetConnectionOutput, error) { + req, out := c.GetConnectionRequest(input) return out, req.Send() } -// ListConnectionsWithContext is the same as ListConnections with the addition of +// GetConnectionWithContext is the same as GetConnection with the addition of // the ability to pass a context and additional request options. // -// See ListConnections for details on how to use this API operation. +// See GetConnection for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CodeStarConnections) ListConnectionsWithContext(ctx aws.Context, input *ListConnectionsInput, opts ...request.Option) (*ListConnectionsOutput, error) { - req, out := c.ListConnectionsRequest(input) +func (c *CodeStarConnections) GetConnectionWithContext(ctx aws.Context, input *GetConnectionInput, opts ...request.Option) (*GetConnectionOutput, error) { + req, out := c.GetConnectionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListConnectionsPages iterates over the pages of a ListConnections operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListConnections 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 ListConnections operation. -// pageNum := 0 -// err := client.ListConnectionsPages(params, -// func(page *codestarconnections.ListConnectionsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -func (c *CodeStarConnections) ListConnectionsPages(input *ListConnectionsInput, fn func(*ListConnectionsOutput, bool) bool) error { - return c.ListConnectionsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListConnectionsPagesWithContext same as ListConnectionsPages 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 *CodeStarConnections) ListConnectionsPagesWithContext(ctx aws.Context, input *ListConnectionsInput, fn func(*ListConnectionsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListConnectionsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListConnectionsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListConnectionsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListHosts = "ListHosts" - -// ListHostsRequest generates a "aws/request.Request" representing the -// client's request for the ListHosts operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. +const opGetHost = "GetHost" + +// GetHostRequest generates a "aws/request.Request" representing the +// client's request for the GetHost 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 ListHosts for more information on using the ListHosts +// See GetHost for more information on using the GetHost // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ListHostsRequest method. -// req, resp := client.ListHostsRequest(params) +// // Example sending a request using the GetHostRequest method. +// req, resp := client.GetHostRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListHosts -func (c *CodeStarConnections) ListHostsRequest(input *ListHostsInput) (req *request.Request, output *ListHostsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetHost +func (c *CodeStarConnections) GetHostRequest(input *GetHostInput) (req *request.Request, output *GetHostOutput) { op := &request.Operation{ - Name: opListHosts, + Name: opGetHost, HTTPMethod: "POST", HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, } if input == nil { - input = &ListHostsInput{} + input = &GetHostInput{} } - output = &ListHostsOutput{} + output = &GetHostOutput{} req = c.newRequest(op, input, output) return } -// ListHosts API operation for AWS CodeStar connections. +// GetHost API operation for AWS CodeStar connections. // -// Lists the hosts associated with your account. +// Returns the host ARN and details such as status, provider type, endpoint, +// and, if applicable, the VPC configuration. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's -// API operation ListHosts for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListHosts -func (c *CodeStarConnections) ListHosts(input *ListHostsInput) (*ListHostsOutput, error) { - req, out := c.ListHostsRequest(input) +// API operation GetHost for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// - ResourceUnavailableException +// Resource not found. Verify the ARN for the host resource and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetHost +func (c *CodeStarConnections) GetHost(input *GetHostInput) (*GetHostOutput, error) { + req, out := c.GetHostRequest(input) return out, req.Send() } -// ListHostsWithContext is the same as ListHosts with the addition of +// GetHostWithContext is the same as GetHost with the addition of // the ability to pass a context and additional request options. // -// See ListHosts for details on how to use this API operation. +// See GetHost for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CodeStarConnections) ListHostsWithContext(ctx aws.Context, input *ListHostsInput, opts ...request.Option) (*ListHostsOutput, error) { - req, out := c.ListHostsRequest(input) +func (c *CodeStarConnections) GetHostWithContext(ctx aws.Context, input *GetHostInput, opts ...request.Option) (*GetHostOutput, error) { + req, out := c.GetHostRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListHostsPages iterates over the pages of a ListHosts operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListHosts 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 ListHosts operation. -// pageNum := 0 -// err := client.ListHostsPages(params, -// func(page *codestarconnections.ListHostsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -func (c *CodeStarConnections) ListHostsPages(input *ListHostsInput, fn func(*ListHostsOutput, bool) bool) error { - return c.ListHostsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListHostsPagesWithContext same as ListHostsPages 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 *CodeStarConnections) ListHostsPagesWithContext(ctx aws.Context, input *ListHostsInput, fn func(*ListHostsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListHostsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListHostsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListHostsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListTagsForResource = "ListTagsForResource" +const opGetRepositoryLink = "GetRepositoryLink" -// ListTagsForResourceRequest generates a "aws/request.Request" representing the -// client's request for the ListTagsForResource operation. The "output" return +// GetRepositoryLinkRequest generates a "aws/request.Request" representing the +// client's request for the GetRepositoryLink 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 +// See GetRepositoryLink for more information on using the GetRepositoryLink // API call, and error handling. // // This method is useful when you want to 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) +// // Example sending a request using the GetRepositoryLinkRequest method. +// req, resp := client.GetRepositoryLinkRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListTagsForResource -func (c *CodeStarConnections) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetRepositoryLink +func (c *CodeStarConnections) GetRepositoryLinkRequest(input *GetRepositoryLinkInput) (req *request.Request, output *GetRepositoryLinkOutput) { op := &request.Operation{ - Name: opListTagsForResource, + Name: opGetRepositoryLink, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &ListTagsForResourceInput{} + input = &GetRepositoryLinkInput{} } - output = &ListTagsForResourceOutput{} + output = &GetRepositoryLinkOutput{} req = c.newRequest(op, input, output) return } -// ListTagsForResource API operation for AWS CodeStar connections. +// GetRepositoryLink API operation for AWS CodeStar connections. // -// Gets the set of key-value pairs (metadata) that are used to manage the resource. +// Returns details about a repository link. A repository link allows Git sync +// to monitor and sync changes from files in a specified Git repository. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's -// API operation ListTagsForResource for usage and error information. +// API operation GetRepositoryLink for usage and error information. // // Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ConcurrentModificationException +// Exception thrown as a result of concurrent modification to an application. +// For example, two individuals attempting to edit the same application at the +// same time. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// // - ResourceNotFoundException // Resource not found. Verify the connection resource ARN and try again. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListTagsForResource -func (c *CodeStarConnections) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetRepositoryLink +func (c *CodeStarConnections) GetRepositoryLink(input *GetRepositoryLinkInput) (*GetRepositoryLinkOutput, error) { + req, out := c.GetRepositoryLinkRequest(input) return out, req.Send() } -// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// GetRepositoryLinkWithContext is the same as GetRepositoryLink 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. +// See GetRepositoryLink for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CodeStarConnections) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +func (c *CodeStarConnections) GetRepositoryLinkWithContext(ctx aws.Context, input *GetRepositoryLinkInput, opts ...request.Option) (*GetRepositoryLinkOutput, error) { + req, out := c.GetRepositoryLinkRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opTagResource = "TagResource" +const opGetRepositorySyncStatus = "GetRepositorySyncStatus" -// TagResourceRequest generates a "aws/request.Request" representing the -// client's request for the TagResource operation. The "output" return +// GetRepositorySyncStatusRequest generates a "aws/request.Request" representing the +// client's request for the GetRepositorySyncStatus 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 +// See GetRepositorySyncStatus for more information on using the GetRepositorySyncStatus // API call, and error handling. // // This method is useful when you want to 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) +// // Example sending a request using the GetRepositorySyncStatusRequest method. +// req, resp := client.GetRepositorySyncStatusRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/TagResource -func (c *CodeStarConnections) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetRepositorySyncStatus +func (c *CodeStarConnections) GetRepositorySyncStatusRequest(input *GetRepositorySyncStatusInput) (req *request.Request, output *GetRepositorySyncStatusOutput) { op := &request.Operation{ - Name: opTagResource, + Name: opGetRepositorySyncStatus, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &TagResourceInput{} + input = &GetRepositorySyncStatusInput{} } - output = &TagResourceOutput{} + output = &GetRepositorySyncStatusOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// TagResource API operation for AWS CodeStar connections. +// GetRepositorySyncStatus API operation for AWS CodeStar connections. // -// Adds to or modifies the tags of the given resource. Tags are metadata that -// can be used to manage a resource. +// Returns details about the sync status for a repository. A repository sync +// uses Git sync to push and pull changes from your remote repository. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's -// API operation TagResource for usage and error information. +// API operation GetRepositorySyncStatus for usage and error information. // // Returned Error Types: // +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// // - ResourceNotFoundException // Resource not found. Verify the connection resource ARN and try again. // -// - LimitExceededException -// Exceeded the maximum limit for connections. +// - ThrottlingException +// The request was denied due to request throttling. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/TagResource -func (c *CodeStarConnections) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { - req, out := c.TagResourceRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetRepositorySyncStatus +func (c *CodeStarConnections) GetRepositorySyncStatus(input *GetRepositorySyncStatusInput) (*GetRepositorySyncStatusOutput, error) { + req, out := c.GetRepositorySyncStatusRequest(input) return out, req.Send() } -// TagResourceWithContext is the same as TagResource with the addition of +// GetRepositorySyncStatusWithContext is the same as GetRepositorySyncStatus 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. +// See GetRepositorySyncStatus for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CodeStarConnections) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { - req, out := c.TagResourceRequest(input) +func (c *CodeStarConnections) GetRepositorySyncStatusWithContext(ctx aws.Context, input *GetRepositorySyncStatusInput, opts ...request.Option) (*GetRepositorySyncStatusOutput, error) { + req, out := c.GetRepositorySyncStatusRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opUntagResource = "UntagResource" +const opGetResourceSyncStatus = "GetResourceSyncStatus" -// UntagResourceRequest generates a "aws/request.Request" representing the -// client's request for the UntagResource operation. The "output" return +// GetResourceSyncStatusRequest generates a "aws/request.Request" representing the +// client's request for the GetResourceSyncStatus 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 +// See GetResourceSyncStatus for more information on using the GetResourceSyncStatus // API call, and error handling. // // This method is useful when you want to 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) +// // Example sending a request using the GetResourceSyncStatusRequest method. +// req, resp := client.GetResourceSyncStatusRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UntagResource -func (c *CodeStarConnections) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetResourceSyncStatus +func (c *CodeStarConnections) GetResourceSyncStatusRequest(input *GetResourceSyncStatusInput) (req *request.Request, output *GetResourceSyncStatusOutput) { op := &request.Operation{ - Name: opUntagResource, + Name: opGetResourceSyncStatus, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &UntagResourceInput{} + input = &GetResourceSyncStatusInput{} } - output = &UntagResourceOutput{} + output = &GetResourceSyncStatusOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// UntagResource API operation for AWS CodeStar connections. +// GetResourceSyncStatus API operation for AWS CodeStar connections. // -// Removes tags from an Amazon Web Services resource. +// Returns the status of the sync with the Git repository for a specific Amazon +// Web Services 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 CodeStar connections's -// API operation UntagResource for usage and error information. +// API operation GetResourceSyncStatus for usage and error information. // // Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// // - ResourceNotFoundException // Resource not found. Verify the connection resource ARN and try again. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UntagResource -func (c *CodeStarConnections) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { - req, out := c.UntagResourceRequest(input) +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetResourceSyncStatus +func (c *CodeStarConnections) GetResourceSyncStatus(input *GetResourceSyncStatusInput) (*GetResourceSyncStatusOutput, error) { + req, out := c.GetResourceSyncStatusRequest(input) return out, req.Send() } -// UntagResourceWithContext is the same as UntagResource with the addition of +// GetResourceSyncStatusWithContext is the same as GetResourceSyncStatus 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. +// See GetResourceSyncStatus for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CodeStarConnections) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { - req, out := c.UntagResourceRequest(input) +func (c *CodeStarConnections) GetResourceSyncStatusWithContext(ctx aws.Context, input *GetResourceSyncStatusInput, opts ...request.Option) (*GetResourceSyncStatusOutput, error) { + req, out := c.GetResourceSyncStatusRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opUpdateHost = "UpdateHost" +const opGetSyncBlockerSummary = "GetSyncBlockerSummary" -// UpdateHostRequest generates a "aws/request.Request" representing the -// client's request for the UpdateHost operation. The "output" return +// GetSyncBlockerSummaryRequest generates a "aws/request.Request" representing the +// client's request for the GetSyncBlockerSummary 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 UpdateHost for more information on using the UpdateHost +// See GetSyncBlockerSummary for more information on using the GetSyncBlockerSummary // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the UpdateHostRequest method. -// req, resp := client.UpdateHostRequest(params) +// // Example sending a request using the GetSyncBlockerSummaryRequest method. +// req, resp := client.GetSyncBlockerSummaryRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UpdateHost -func (c *CodeStarConnections) UpdateHostRequest(input *UpdateHostInput) (req *request.Request, output *UpdateHostOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetSyncBlockerSummary +func (c *CodeStarConnections) GetSyncBlockerSummaryRequest(input *GetSyncBlockerSummaryInput) (req *request.Request, output *GetSyncBlockerSummaryOutput) { op := &request.Operation{ - Name: opUpdateHost, + Name: opGetSyncBlockerSummary, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &UpdateHostInput{} + input = &GetSyncBlockerSummaryInput{} } - output = &UpdateHostOutput{} + output = &GetSyncBlockerSummaryOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// UpdateHost API operation for AWS CodeStar connections. +// GetSyncBlockerSummary API operation for AWS CodeStar connections. // -// Updates a specified host with the provided configurations. +// Returns a list of the most recent sync blockers. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's -// API operation UpdateHost for usage and error information. +// API operation GetSyncBlockerSummary for usage and error information. // // Returned Error Types: // -// - ConflictException -// Two conflicting operations have been made on the same resource. +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. // // - ResourceNotFoundException // Resource not found. Verify the connection resource ARN and try again. // -// - ResourceUnavailableException -// Resource not found. Verify the ARN for the host resource and try again. +// - ThrottlingException +// The request was denied due to request throttling. // -// - UnsupportedOperationException -// The operation is not supported. Check the connection status and try again. +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetSyncBlockerSummary +func (c *CodeStarConnections) GetSyncBlockerSummary(input *GetSyncBlockerSummaryInput) (*GetSyncBlockerSummaryOutput, error) { + req, out := c.GetSyncBlockerSummaryRequest(input) + return out, req.Send() +} + +// GetSyncBlockerSummaryWithContext is the same as GetSyncBlockerSummary with the addition of +// the ability to pass a context and additional request options. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UpdateHost -func (c *CodeStarConnections) UpdateHost(input *UpdateHostInput) (*UpdateHostOutput, error) { - req, out := c.UpdateHostRequest(input) +// See GetSyncBlockerSummary for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) GetSyncBlockerSummaryWithContext(ctx aws.Context, input *GetSyncBlockerSummaryInput, opts ...request.Option) (*GetSyncBlockerSummaryOutput, error) { + req, out := c.GetSyncBlockerSummaryRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) return out, req.Send() } -// UpdateHostWithContext is the same as UpdateHost with the addition of +const opGetSyncConfiguration = "GetSyncConfiguration" + +// GetSyncConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetSyncConfiguration 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 GetSyncConfiguration for more information on using the GetSyncConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetSyncConfigurationRequest method. +// req, resp := client.GetSyncConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetSyncConfiguration +func (c *CodeStarConnections) GetSyncConfigurationRequest(input *GetSyncConfigurationInput) (req *request.Request, output *GetSyncConfigurationOutput) { + op := &request.Operation{ + Name: opGetSyncConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetSyncConfigurationInput{} + } + + output = &GetSyncConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetSyncConfiguration API operation for AWS CodeStar connections. +// +// Returns details about a sync configuration, including the sync type and resource +// name. A sync configuration allows the configuration to sync (push and pull) +// changes from the remote repository for a specified branch in a Git repository. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's +// API operation GetSyncConfiguration for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/GetSyncConfiguration +func (c *CodeStarConnections) GetSyncConfiguration(input *GetSyncConfigurationInput) (*GetSyncConfigurationOutput, error) { + req, out := c.GetSyncConfigurationRequest(input) + return out, req.Send() +} + +// GetSyncConfigurationWithContext is the same as GetSyncConfiguration with the addition of // the ability to pass a context and additional request options. // -// See UpdateHost for details on how to use this API operation. +// See GetSyncConfiguration for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *CodeStarConnections) UpdateHostWithContext(ctx aws.Context, input *UpdateHostInput, opts ...request.Option) (*UpdateHostOutput, error) { - req, out := c.UpdateHostRequest(input) +func (c *CodeStarConnections) GetSyncConfigurationWithContext(ctx aws.Context, input *GetSyncConfigurationInput, opts ...request.Option) (*GetSyncConfigurationOutput, error) { + req, out := c.GetSyncConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListConnections = "ListConnections" + +// ListConnectionsRequest generates a "aws/request.Request" representing the +// client's request for the ListConnections 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 ListConnections for more information on using the ListConnections +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListConnectionsRequest method. +// req, resp := client.ListConnectionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListConnections +func (c *CodeStarConnections) ListConnectionsRequest(input *ListConnectionsInput) (req *request.Request, output *ListConnectionsOutput) { + op := &request.Operation{ + Name: opListConnections, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListConnectionsInput{} + } + + output = &ListConnectionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListConnections API operation for AWS CodeStar connections. +// +// Lists the connections associated with your 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 AWS CodeStar connections's +// API operation ListConnections for usage and error information. +// +// Returned Error Types: +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListConnections +func (c *CodeStarConnections) ListConnections(input *ListConnectionsInput) (*ListConnectionsOutput, error) { + req, out := c.ListConnectionsRequest(input) + return out, req.Send() +} + +// ListConnectionsWithContext is the same as ListConnections with the addition of +// the ability to pass a context and additional request options. +// +// See ListConnections for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) ListConnectionsWithContext(ctx aws.Context, input *ListConnectionsInput, opts ...request.Option) (*ListConnectionsOutput, error) { + req, out := c.ListConnectionsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// Two conflicting operations have been made on the same resource. -type ConflictException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +// ListConnectionsPages iterates over the pages of a ListConnections operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListConnections 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 ListConnections operation. +// pageNum := 0 +// err := client.ListConnectionsPages(params, +// func(page *codestarconnections.ListConnectionsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CodeStarConnections) ListConnectionsPages(input *ListConnectionsInput, fn func(*ListConnectionsOutput, bool) bool) error { + return c.ListConnectionsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListConnectionsPagesWithContext same as ListConnectionsPages 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 *CodeStarConnections) ListConnectionsPagesWithContext(ctx aws.Context, input *ListConnectionsInput, fn func(*ListConnectionsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListConnectionsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListConnectionsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListConnectionsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListHosts = "ListHosts" + +// ListHostsRequest generates a "aws/request.Request" representing the +// client's request for the ListHosts 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 ListHosts for more information on using the ListHosts +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListHostsRequest method. +// req, resp := client.ListHostsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListHosts +func (c *CodeStarConnections) ListHostsRequest(input *ListHostsInput) (req *request.Request, output *ListHostsOutput) { + op := &request.Operation{ + Name: opListHosts, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListHostsInput{} + } + + output = &ListHostsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListHosts API operation for AWS CodeStar connections. +// +// Lists the hosts associated with your 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 AWS CodeStar connections's +// API operation ListHosts for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListHosts +func (c *CodeStarConnections) ListHosts(input *ListHostsInput) (*ListHostsOutput, error) { + req, out := c.ListHostsRequest(input) + return out, req.Send() +} + +// ListHostsWithContext is the same as ListHosts with the addition of +// the ability to pass a context and additional request options. +// +// See ListHosts for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) ListHostsWithContext(ctx aws.Context, input *ListHostsInput, opts ...request.Option) (*ListHostsOutput, error) { + req, out := c.ListHostsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListHostsPages iterates over the pages of a ListHosts operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListHosts 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 ListHosts operation. +// pageNum := 0 +// err := client.ListHostsPages(params, +// func(page *codestarconnections.ListHostsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CodeStarConnections) ListHostsPages(input *ListHostsInput, fn func(*ListHostsOutput, bool) bool) error { + return c.ListHostsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListHostsPagesWithContext same as ListHostsPages 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 *CodeStarConnections) ListHostsPagesWithContext(ctx aws.Context, input *ListHostsInput, fn func(*ListHostsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListHostsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListHostsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListHostsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListRepositoryLinks = "ListRepositoryLinks" + +// ListRepositoryLinksRequest generates a "aws/request.Request" representing the +// client's request for the ListRepositoryLinks 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 ListRepositoryLinks for more information on using the ListRepositoryLinks +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListRepositoryLinksRequest method. +// req, resp := client.ListRepositoryLinksRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListRepositoryLinks +func (c *CodeStarConnections) ListRepositoryLinksRequest(input *ListRepositoryLinksInput) (req *request.Request, output *ListRepositoryLinksOutput) { + op := &request.Operation{ + Name: opListRepositoryLinks, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListRepositoryLinksInput{} + } + + output = &ListRepositoryLinksOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListRepositoryLinks API operation for AWS CodeStar connections. +// +// Lists the repository links created for connections in your 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 AWS CodeStar connections's +// API operation ListRepositoryLinks for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ConcurrentModificationException +// Exception thrown as a result of concurrent modification to an application. +// For example, two individuals attempting to edit the same application at the +// same time. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListRepositoryLinks +func (c *CodeStarConnections) ListRepositoryLinks(input *ListRepositoryLinksInput) (*ListRepositoryLinksOutput, error) { + req, out := c.ListRepositoryLinksRequest(input) + return out, req.Send() +} + +// ListRepositoryLinksWithContext is the same as ListRepositoryLinks with the addition of +// the ability to pass a context and additional request options. +// +// See ListRepositoryLinks for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) ListRepositoryLinksWithContext(ctx aws.Context, input *ListRepositoryLinksInput, opts ...request.Option) (*ListRepositoryLinksOutput, error) { + req, out := c.ListRepositoryLinksRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListRepositoryLinksPages iterates over the pages of a ListRepositoryLinks operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListRepositoryLinks 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 ListRepositoryLinks operation. +// pageNum := 0 +// err := client.ListRepositoryLinksPages(params, +// func(page *codestarconnections.ListRepositoryLinksOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CodeStarConnections) ListRepositoryLinksPages(input *ListRepositoryLinksInput, fn func(*ListRepositoryLinksOutput, bool) bool) error { + return c.ListRepositoryLinksPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListRepositoryLinksPagesWithContext same as ListRepositoryLinksPages 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 *CodeStarConnections) ListRepositoryLinksPagesWithContext(ctx aws.Context, input *ListRepositoryLinksInput, fn func(*ListRepositoryLinksOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListRepositoryLinksInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListRepositoryLinksRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListRepositoryLinksOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListRepositorySyncDefinitions = "ListRepositorySyncDefinitions" + +// ListRepositorySyncDefinitionsRequest generates a "aws/request.Request" representing the +// client's request for the ListRepositorySyncDefinitions 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 ListRepositorySyncDefinitions for more information on using the ListRepositorySyncDefinitions +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListRepositorySyncDefinitionsRequest method. +// req, resp := client.ListRepositorySyncDefinitionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListRepositorySyncDefinitions +func (c *CodeStarConnections) ListRepositorySyncDefinitionsRequest(input *ListRepositorySyncDefinitionsInput) (req *request.Request, output *ListRepositorySyncDefinitionsOutput) { + op := &request.Operation{ + Name: opListRepositorySyncDefinitions, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListRepositorySyncDefinitionsInput{} + } + + output = &ListRepositorySyncDefinitionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListRepositorySyncDefinitions API operation for AWS CodeStar connections. +// +// Lists the repository sync definitions for repository links in your 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 AWS CodeStar connections's +// API operation ListRepositorySyncDefinitions for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListRepositorySyncDefinitions +func (c *CodeStarConnections) ListRepositorySyncDefinitions(input *ListRepositorySyncDefinitionsInput) (*ListRepositorySyncDefinitionsOutput, error) { + req, out := c.ListRepositorySyncDefinitionsRequest(input) + return out, req.Send() +} + +// ListRepositorySyncDefinitionsWithContext is the same as ListRepositorySyncDefinitions with the addition of +// the ability to pass a context and additional request options. +// +// See ListRepositorySyncDefinitions for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) ListRepositorySyncDefinitionsWithContext(ctx aws.Context, input *ListRepositorySyncDefinitionsInput, opts ...request.Option) (*ListRepositorySyncDefinitionsOutput, error) { + req, out := c.ListRepositorySyncDefinitionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListSyncConfigurations = "ListSyncConfigurations" + +// ListSyncConfigurationsRequest generates a "aws/request.Request" representing the +// client's request for the ListSyncConfigurations 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 ListSyncConfigurations for more information on using the ListSyncConfigurations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListSyncConfigurationsRequest method. +// req, resp := client.ListSyncConfigurationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListSyncConfigurations +func (c *CodeStarConnections) ListSyncConfigurationsRequest(input *ListSyncConfigurationsInput) (req *request.Request, output *ListSyncConfigurationsOutput) { + op := &request.Operation{ + Name: opListSyncConfigurations, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListSyncConfigurationsInput{} + } + + output = &ListSyncConfigurationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListSyncConfigurations API operation for AWS CodeStar connections. +// +// Returns a list of sync configurations for a specified repository. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's +// API operation ListSyncConfigurations for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListSyncConfigurations +func (c *CodeStarConnections) ListSyncConfigurations(input *ListSyncConfigurationsInput) (*ListSyncConfigurationsOutput, error) { + req, out := c.ListSyncConfigurationsRequest(input) + return out, req.Send() +} + +// ListSyncConfigurationsWithContext is the same as ListSyncConfigurations with the addition of +// the ability to pass a context and additional request options. +// +// See ListSyncConfigurations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) ListSyncConfigurationsWithContext(ctx aws.Context, input *ListSyncConfigurationsInput, opts ...request.Option) (*ListSyncConfigurationsOutput, error) { + req, out := c.ListSyncConfigurationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListSyncConfigurationsPages iterates over the pages of a ListSyncConfigurations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListSyncConfigurations 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 ListSyncConfigurations operation. +// pageNum := 0 +// err := client.ListSyncConfigurationsPages(params, +// func(page *codestarconnections.ListSyncConfigurationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CodeStarConnections) ListSyncConfigurationsPages(input *ListSyncConfigurationsInput, fn func(*ListSyncConfigurationsOutput, bool) bool) error { + return c.ListSyncConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListSyncConfigurationsPagesWithContext same as ListSyncConfigurationsPages 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 *CodeStarConnections) ListSyncConfigurationsPagesWithContext(ctx aws.Context, input *ListSyncConfigurationsInput, fn func(*ListSyncConfigurationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListSyncConfigurationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListSyncConfigurationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListSyncConfigurationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListTagsForResource +func (c *CodeStarConnections) 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 AWS CodeStar connections. +// +// Gets the set of key-value pairs (metadata) that are used to manage the 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 CodeStar connections's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/ListTagsForResource +func (c *CodeStarConnections) 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 *CodeStarConnections) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/TagResource +func (c *CodeStarConnections) 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 AWS CodeStar connections. +// +// Adds to or modifies the tags of the given resource. Tags are metadata that +// can be used to manage 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 CodeStar connections's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// - LimitExceededException +// Exceeded the maximum limit for connections. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/TagResource +func (c *CodeStarConnections) 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 *CodeStarConnections) 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/codestar-connections-2019-12-01/UntagResource +func (c *CodeStarConnections) 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 AWS CodeStar connections. +// +// Removes tags from an Amazon Web Services 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 CodeStar connections's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UntagResource +func (c *CodeStarConnections) 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 *CodeStarConnections) 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 opUpdateHost = "UpdateHost" + +// UpdateHostRequest generates a "aws/request.Request" representing the +// client's request for the UpdateHost 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 UpdateHost for more information on using the UpdateHost +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateHostRequest method. +// req, resp := client.UpdateHostRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UpdateHost +func (c *CodeStarConnections) UpdateHostRequest(input *UpdateHostInput) (req *request.Request, output *UpdateHostOutput) { + op := &request.Operation{ + Name: opUpdateHost, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateHostInput{} + } + + output = &UpdateHostOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateHost API operation for AWS CodeStar connections. +// +// Updates a specified host with the provided configurations. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's +// API operation UpdateHost for usage and error information. +// +// Returned Error Types: +// +// - ConflictException +// Two conflicting operations have been made on the same resource. +// +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// - ResourceUnavailableException +// Resource not found. Verify the ARN for the host resource and try again. +// +// - UnsupportedOperationException +// The operation is not supported. Check the connection status and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UpdateHost +func (c *CodeStarConnections) UpdateHost(input *UpdateHostInput) (*UpdateHostOutput, error) { + req, out := c.UpdateHostRequest(input) + return out, req.Send() +} + +// UpdateHostWithContext is the same as UpdateHost with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateHost for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) UpdateHostWithContext(ctx aws.Context, input *UpdateHostInput, opts ...request.Option) (*UpdateHostOutput, error) { + req, out := c.UpdateHostRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateRepositoryLink = "UpdateRepositoryLink" + +// UpdateRepositoryLinkRequest generates a "aws/request.Request" representing the +// client's request for the UpdateRepositoryLink 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 UpdateRepositoryLink for more information on using the UpdateRepositoryLink +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateRepositoryLinkRequest method. +// req, resp := client.UpdateRepositoryLinkRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UpdateRepositoryLink +func (c *CodeStarConnections) UpdateRepositoryLinkRequest(input *UpdateRepositoryLinkInput) (req *request.Request, output *UpdateRepositoryLinkOutput) { + op := &request.Operation{ + Name: opUpdateRepositoryLink, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateRepositoryLinkInput{} + } + + output = &UpdateRepositoryLinkOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateRepositoryLink API operation for AWS CodeStar connections. +// +// Updates the association between your connection and a specified external +// Git repository. A repository link allows Git sync to monitor and sync changes +// to files in a specified Git repository. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's +// API operation UpdateRepositoryLink for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ConditionalCheckFailedException +// The conditional check failed. Try again later. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - UpdateOutOfSyncException +// The update is out of sync. Try syncing again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UpdateRepositoryLink +func (c *CodeStarConnections) UpdateRepositoryLink(input *UpdateRepositoryLinkInput) (*UpdateRepositoryLinkOutput, error) { + req, out := c.UpdateRepositoryLinkRequest(input) + return out, req.Send() +} + +// UpdateRepositoryLinkWithContext is the same as UpdateRepositoryLink with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateRepositoryLink for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) UpdateRepositoryLinkWithContext(ctx aws.Context, input *UpdateRepositoryLinkInput, opts ...request.Option) (*UpdateRepositoryLinkOutput, error) { + req, out := c.UpdateRepositoryLinkRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateSyncBlocker = "UpdateSyncBlocker" + +// UpdateSyncBlockerRequest generates a "aws/request.Request" representing the +// client's request for the UpdateSyncBlocker 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 UpdateSyncBlocker for more information on using the UpdateSyncBlocker +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateSyncBlockerRequest method. +// req, resp := client.UpdateSyncBlockerRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UpdateSyncBlocker +func (c *CodeStarConnections) UpdateSyncBlockerRequest(input *UpdateSyncBlockerInput) (req *request.Request, output *UpdateSyncBlockerOutput) { + op := &request.Operation{ + Name: opUpdateSyncBlocker, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateSyncBlockerInput{} + } + + output = &UpdateSyncBlockerOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateSyncBlocker API operation for AWS CodeStar connections. +// +// Allows you to update the status of a sync blocker, resolving the blocker +// and allowing syncing to continue. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's +// API operation UpdateSyncBlocker for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// - RetryLatestCommitFailedException +// Retrying the latest commit failed. Try again later. +// +// - SyncBlockerDoesNotExistException +// Unable to continue. The sync blocker does not exist. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UpdateSyncBlocker +func (c *CodeStarConnections) UpdateSyncBlocker(input *UpdateSyncBlockerInput) (*UpdateSyncBlockerOutput, error) { + req, out := c.UpdateSyncBlockerRequest(input) + return out, req.Send() +} + +// UpdateSyncBlockerWithContext is the same as UpdateSyncBlocker with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateSyncBlocker for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) UpdateSyncBlockerWithContext(ctx aws.Context, input *UpdateSyncBlockerInput, opts ...request.Option) (*UpdateSyncBlockerOutput, error) { + req, out := c.UpdateSyncBlockerRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateSyncConfiguration = "UpdateSyncConfiguration" + +// UpdateSyncConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the UpdateSyncConfiguration 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 UpdateSyncConfiguration for more information on using the UpdateSyncConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateSyncConfigurationRequest method. +// req, resp := client.UpdateSyncConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UpdateSyncConfiguration +func (c *CodeStarConnections) UpdateSyncConfigurationRequest(input *UpdateSyncConfigurationInput) (req *request.Request, output *UpdateSyncConfigurationOutput) { + op := &request.Operation{ + Name: opUpdateSyncConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateSyncConfigurationInput{} + } + + output = &UpdateSyncConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateSyncConfiguration API operation for AWS CodeStar connections. +// +// Updates the sync configuration for your connection and a specified external +// Git repository. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 CodeStar connections's +// API operation UpdateSyncConfiguration for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ConcurrentModificationException +// Exception thrown as a result of concurrent modification to an application. +// For example, two individuals attempting to edit the same application at the +// same time. +// +// - InternalServerException +// Received an internal server exception. Try again later. +// +// - InvalidInputException +// The input is not valid. Verify that the action is typed correctly. +// +// - ResourceNotFoundException +// Resource not found. Verify the connection resource ARN and try again. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - UpdateOutOfSyncException +// The update is out of sync. Try syncing again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/codestar-connections-2019-12-01/UpdateSyncConfiguration +func (c *CodeStarConnections) UpdateSyncConfiguration(input *UpdateSyncConfigurationInput) (*UpdateSyncConfigurationOutput, error) { + req, out := c.UpdateSyncConfigurationRequest(input) + return out, req.Send() +} + +// UpdateSyncConfigurationWithContext is the same as UpdateSyncConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateSyncConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CodeStarConnections) UpdateSyncConfigurationWithContext(ctx aws.Context, input *UpdateSyncConfigurationInput, opts ...request.Option) (*UpdateSyncConfigurationOutput, error) { + req, out := c.UpdateSyncConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// You do not have sufficient access to perform this action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Exception thrown as a result of concurrent modification to an application. +// For example, two individuals attempting to edit the same application at the +// same time. +type ConcurrentModificationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConcurrentModificationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConcurrentModificationException) GoString() string { + return s.String() +} + +func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error { + return &ConcurrentModificationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConcurrentModificationException) Code() string { + return "ConcurrentModificationException" +} + +// Message returns the exception's message. +func (s *ConcurrentModificationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConcurrentModificationException) OrigErr() error { + return nil +} + +func (s *ConcurrentModificationException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConcurrentModificationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConcurrentModificationException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The conditional check failed. Try again later. +type ConditionalCheckFailedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConditionalCheckFailedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConditionalCheckFailedException) GoString() string { + return s.String() +} + +func newErrorConditionalCheckFailedException(v protocol.ResponseMetadata) error { + return &ConditionalCheckFailedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConditionalCheckFailedException) Code() string { + return "ConditionalCheckFailedException" +} + +// Message returns the exception's message. +func (s *ConditionalCheckFailedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConditionalCheckFailedException) OrigErr() error { + return nil +} + +func (s *ConditionalCheckFailedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConditionalCheckFailedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConditionalCheckFailedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Two conflicting operations have been made on the same resource. +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConflictException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConflictException) GoString() string { + return s.String() +} + +func newErrorConflictException(v protocol.ResponseMetadata) error { + return &ConflictException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConflictException) Code() string { + return "ConflictException" +} + +// Message returns the exception's message. +func (s *ConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConflictException) OrigErr() error { + return nil +} + +func (s *ConflictException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConflictException) RequestID() string { + return s.RespMetadata.RequestID +} + +// A resource that is used to connect third-party source providers with services +// like CodePipeline. +// +// Note: A connection created through CloudFormation, the CLI, or the SDK is +// in `PENDING` status by default. You can make its status `AVAILABLE` by updating +// the connection in the console. +type Connection struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the connection. The ARN is used as the + // connection reference when the connection is shared between Amazon Web Services. + // + // The ARN is never reused if the connection is deleted. + ConnectionArn *string `type:"string"` + + // The name of the connection. Connection names must be unique in an Amazon + // Web Services account. + ConnectionName *string `min:"1" type:"string"` + + // The current status of the connection. + ConnectionStatus *string `type:"string" enum:"ConnectionStatus"` + + // The Amazon Resource Name (ARN) of the host associated with the connection. + HostArn *string `type:"string"` + + // The identifier of the external provider where your third-party code repository + // is configured. For Bitbucket, this is the account ID of the owner of the + // Bitbucket repository. + OwnerAccountId *string `min:"12" type:"string"` + + // The name of the external provider where your third-party code repository + // is configured. + ProviderType *string `type:"string" enum:"ProviderType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Connection) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Connection) GoString() string { + return s.String() +} + +// SetConnectionArn sets the ConnectionArn field's value. +func (s *Connection) SetConnectionArn(v string) *Connection { + s.ConnectionArn = &v + return s +} + +// SetConnectionName sets the ConnectionName field's value. +func (s *Connection) SetConnectionName(v string) *Connection { + s.ConnectionName = &v + return s +} + +// SetConnectionStatus sets the ConnectionStatus field's value. +func (s *Connection) SetConnectionStatus(v string) *Connection { + s.ConnectionStatus = &v + return s +} + +// SetHostArn sets the HostArn field's value. +func (s *Connection) SetHostArn(v string) *Connection { + s.HostArn = &v + return s +} + +// SetOwnerAccountId sets the OwnerAccountId field's value. +func (s *Connection) SetOwnerAccountId(v string) *Connection { + s.OwnerAccountId = &v + return s +} + +// SetProviderType sets the ProviderType field's value. +func (s *Connection) SetProviderType(v string) *Connection { + s.ProviderType = &v + return s +} + +type CreateConnectionInput struct { + _ struct{} `type:"structure"` + + // The name of the connection to be created. + // + // ConnectionName is a required field + ConnectionName *string `min:"1" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the host associated with the connection + // to be created. + HostArn *string `type:"string"` + + // The name of the external provider where your third-party code repository + // is configured. + ProviderType *string `type:"string" enum:"ProviderType"` + + // The key-value pair to use when tagging the resource. + Tags []*Tag `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateConnectionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateConnectionInput) 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.ConnectionName == nil { + invalidParams.Add(request.NewErrParamRequired("ConnectionName")) + } + if s.ConnectionName != nil && len(*s.ConnectionName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ConnectionName", 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 + } + return nil +} + +// SetConnectionName sets the ConnectionName field's value. +func (s *CreateConnectionInput) SetConnectionName(v string) *CreateConnectionInput { + s.ConnectionName = &v + return s +} + +// SetHostArn sets the HostArn field's value. +func (s *CreateConnectionInput) SetHostArn(v string) *CreateConnectionInput { + s.HostArn = &v + return s +} + +// SetProviderType sets the ProviderType field's value. +func (s *CreateConnectionInput) SetProviderType(v string) *CreateConnectionInput { + s.ProviderType = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateConnectionInput) SetTags(v []*Tag) *CreateConnectionInput { + s.Tags = v + return s +} + +type CreateConnectionOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the connection to be created. The ARN is + // used as the connection reference when the connection is shared between Amazon + // Web Services services. + // + // The ARN is never reused if the connection is deleted. + // + // ConnectionArn is a required field + ConnectionArn *string `type:"string" required:"true"` + + // Specifies the tags applied to the resource. + Tags []*Tag `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateConnectionOutput) GoString() string { + return s.String() +} + +// SetConnectionArn sets the ConnectionArn field's value. +func (s *CreateConnectionOutput) SetConnectionArn(v string) *CreateConnectionOutput { + s.ConnectionArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateConnectionOutput) SetTags(v []*Tag) *CreateConnectionOutput { + s.Tags = v + return s +} + +type CreateHostInput struct { + _ struct{} `type:"structure"` + + // The name of the host to be created. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The endpoint of the infrastructure to be represented by the host after it + // is created. + // + // ProviderEndpoint is a required field + ProviderEndpoint *string `min:"1" type:"string" required:"true"` + + // The name of the installed provider to be associated with your connection. + // The host resource represents the infrastructure where your provider type + // is installed. The valid provider type is GitHub Enterprise Server. + // + // ProviderType is a required field + ProviderType *string `type:"string" required:"true" enum:"ProviderType"` + + // Tags for the host to be created. + Tags []*Tag `type:"list"` + + // The VPC configuration to be provisioned for the host. A VPC must be configured + // and the infrastructure to be represented by the host must already be connected + // to the VPC. + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateHostInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateHostInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateHostInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateHostInput"} + 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.ProviderEndpoint == nil { + invalidParams.Add(request.NewErrParamRequired("ProviderEndpoint")) + } + if s.ProviderEndpoint != nil && len(*s.ProviderEndpoint) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProviderEndpoint", 1)) + } + if s.ProviderType == nil { + invalidParams.Add(request.NewErrParamRequired("ProviderType")) + } + 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.VpcConfiguration != nil { + if err := s.VpcConfiguration.Validate(); err != nil { + invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *CreateHostInput) SetName(v string) *CreateHostInput { + s.Name = &v + return s +} + +// SetProviderEndpoint sets the ProviderEndpoint field's value. +func (s *CreateHostInput) SetProviderEndpoint(v string) *CreateHostInput { + s.ProviderEndpoint = &v + return s +} + +// SetProviderType sets the ProviderType field's value. +func (s *CreateHostInput) SetProviderType(v string) *CreateHostInput { + s.ProviderType = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateHostInput) SetTags(v []*Tag) *CreateHostInput { + s.Tags = v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *CreateHostInput) SetVpcConfiguration(v *VpcConfiguration) *CreateHostInput { + s.VpcConfiguration = v + return s +} + +type CreateHostOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the host to be created. + HostArn *string `type:"string"` + + // Tags for the created host. + Tags []*Tag `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateHostOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateHostOutput) GoString() string { + return s.String() +} + +// SetHostArn sets the HostArn field's value. +func (s *CreateHostOutput) SetHostArn(v string) *CreateHostOutput { + s.HostArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateHostOutput) SetTags(v []*Tag) *CreateHostOutput { + s.Tags = v + return s +} + +type CreateRepositoryLinkInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the connection to be associated with the + // repository link. + // + // ConnectionArn is a required field + ConnectionArn *string `type:"string" required:"true"` + + // The Amazon Resource Name (ARN) encryption key for the repository to be associated + // with the repository link. + EncryptionKeyArn *string `min:"1" type:"string"` + + // The owner ID for the repository associated with a specific sync configuration, + // such as the owner ID in GitHub. + // + // OwnerId is a required field + OwnerId *string `min:"1" type:"string" required:"true"` + + // The name of the repository to be associated with the repository link. + // + // RepositoryName is a required field + RepositoryName *string `min:"1" type:"string" required:"true"` + + // The tags for the repository to be associated with the repository link. + Tags []*Tag `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateRepositoryLinkInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateRepositoryLinkInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateRepositoryLinkInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateRepositoryLinkInput"} + if s.ConnectionArn == nil { + invalidParams.Add(request.NewErrParamRequired("ConnectionArn")) + } + if s.EncryptionKeyArn != nil && len(*s.EncryptionKeyArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EncryptionKeyArn", 1)) + } + if s.OwnerId == nil { + invalidParams.Add(request.NewErrParamRequired("OwnerId")) + } + if s.OwnerId != nil && len(*s.OwnerId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("OwnerId", 1)) + } + 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.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 +} + +// SetConnectionArn sets the ConnectionArn field's value. +func (s *CreateRepositoryLinkInput) SetConnectionArn(v string) *CreateRepositoryLinkInput { + s.ConnectionArn = &v + return s +} + +// SetEncryptionKeyArn sets the EncryptionKeyArn field's value. +func (s *CreateRepositoryLinkInput) SetEncryptionKeyArn(v string) *CreateRepositoryLinkInput { + s.EncryptionKeyArn = &v + return s +} + +// SetOwnerId sets the OwnerId field's value. +func (s *CreateRepositoryLinkInput) SetOwnerId(v string) *CreateRepositoryLinkInput { + s.OwnerId = &v + return s +} + +// SetRepositoryName sets the RepositoryName field's value. +func (s *CreateRepositoryLinkInput) SetRepositoryName(v string) *CreateRepositoryLinkInput { + s.RepositoryName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateRepositoryLinkInput) SetTags(v []*Tag) *CreateRepositoryLinkInput { + s.Tags = v + return s +} + +type CreateRepositoryLinkOutput struct { + _ struct{} `type:"structure"` + + // The returned information about the created repository link. + // + // RepositoryLinkInfo is a required field + RepositoryLinkInfo *RepositoryLinkInfo `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateRepositoryLinkOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateRepositoryLinkOutput) GoString() string { + return s.String() +} + +// SetRepositoryLinkInfo sets the RepositoryLinkInfo field's value. +func (s *CreateRepositoryLinkOutput) SetRepositoryLinkInfo(v *RepositoryLinkInfo) *CreateRepositoryLinkOutput { + s.RepositoryLinkInfo = v + return s +} + +type CreateSyncConfigurationInput struct { + _ struct{} `type:"structure"` + + // The branch in the repository from which changes will be synced. + // + // Branch is a required field + Branch *string `min:"1" type:"string" required:"true"` + + // The file name of the configuration file that manages syncing between the + // connection and the repository. This configuration file is stored in the repository. + // + // ConfigFile is a required field + ConfigFile *string `type:"string" required:"true"` + + // The ID of the repository link created for the connection. A repository link + // allows Git sync to monitor and sync changes to files in a specified Git repository. + // + // RepositoryLinkId is a required field + RepositoryLinkId *string `type:"string" required:"true"` + + // The name of the Amazon Web Services resource (for example, a CloudFormation + // stack in the case of CFN_STACK_SYNC) that will be synchronized from the linked + // repository. + // + // ResourceName is a required field + ResourceName *string `min:"1" type:"string" required:"true"` + + // The ARN of the IAM role that grants permission for Amazon Web Services to + // use Git sync to update a given Amazon Web Services resource on your behalf. + // + // RoleArn is a required field + RoleArn *string `min:"1" type:"string" required:"true"` + + // The type of sync configuration. + // + // SyncType is a required field + SyncType *string `type:"string" required:"true" enum:"SyncConfigurationType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateSyncConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateSyncConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateSyncConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateSyncConfigurationInput"} + if s.Branch == nil { + invalidParams.Add(request.NewErrParamRequired("Branch")) + } + if s.Branch != nil && len(*s.Branch) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Branch", 1)) + } + if s.ConfigFile == nil { + invalidParams.Add(request.NewErrParamRequired("ConfigFile")) + } + if s.RepositoryLinkId == nil { + invalidParams.Add(request.NewErrParamRequired("RepositoryLinkId")) + } + if s.ResourceName == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceName")) + } + if s.ResourceName != nil && len(*s.ResourceName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceName", 1)) + } + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) + } + if s.SyncType == nil { + invalidParams.Add(request.NewErrParamRequired("SyncType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBranch sets the Branch field's value. +func (s *CreateSyncConfigurationInput) SetBranch(v string) *CreateSyncConfigurationInput { + s.Branch = &v + return s +} + +// SetConfigFile sets the ConfigFile field's value. +func (s *CreateSyncConfigurationInput) SetConfigFile(v string) *CreateSyncConfigurationInput { + s.ConfigFile = &v + return s +} + +// SetRepositoryLinkId sets the RepositoryLinkId field's value. +func (s *CreateSyncConfigurationInput) SetRepositoryLinkId(v string) *CreateSyncConfigurationInput { + s.RepositoryLinkId = &v + return s +} + +// SetResourceName sets the ResourceName field's value. +func (s *CreateSyncConfigurationInput) SetResourceName(v string) *CreateSyncConfigurationInput { + s.ResourceName = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *CreateSyncConfigurationInput) SetRoleArn(v string) *CreateSyncConfigurationInput { + s.RoleArn = &v + return s +} + +// SetSyncType sets the SyncType field's value. +func (s *CreateSyncConfigurationInput) SetSyncType(v string) *CreateSyncConfigurationInput { + s.SyncType = &v + return s +} + +type CreateSyncConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The created sync configuration for the connection. A sync configuration allows + // Amazon Web Services to sync content from a Git repository to update a specified + // Amazon Web Services resource. + // + // SyncConfiguration is a required field + SyncConfiguration *SyncConfiguration `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateSyncConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateSyncConfigurationOutput) GoString() string { + return s.String() +} + +// SetSyncConfiguration sets the SyncConfiguration field's value. +func (s *CreateSyncConfigurationOutput) SetSyncConfiguration(v *SyncConfiguration) *CreateSyncConfigurationOutput { + s.SyncConfiguration = v + return s +} + +type DeleteConnectionInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the connection to be deleted. + // + // The ARN is never reused if the connection is deleted. + // + // ConnectionArn is a required field + ConnectionArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteConnectionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteConnectionInput) 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"} + if s.ConnectionArn == nil { + invalidParams.Add(request.NewErrParamRequired("ConnectionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConnectionArn sets the ConnectionArn field's value. +func (s *DeleteConnectionInput) SetConnectionArn(v string) *DeleteConnectionInput { + s.ConnectionArn = &v + return s +} + +type DeleteConnectionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteConnectionOutput) GoString() string { + return s.String() +} + +type DeleteHostInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the host to be deleted. + // + // HostArn is a required field + HostArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteHostInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteHostInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteHostInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteHostInput"} + if s.HostArn == nil { + invalidParams.Add(request.NewErrParamRequired("HostArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetHostArn sets the HostArn field's value. +func (s *DeleteHostInput) SetHostArn(v string) *DeleteHostInput { + s.HostArn = &v + return s +} + +type DeleteHostOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteHostOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteHostOutput) GoString() string { + return s.String() +} + +type DeleteRepositoryLinkInput struct { + _ struct{} `type:"structure"` + + // The ID of the repository link to be deleted. + // + // RepositoryLinkId is a required field + RepositoryLinkId *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteRepositoryLinkInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteRepositoryLinkInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteRepositoryLinkInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteRepositoryLinkInput"} + if s.RepositoryLinkId == nil { + invalidParams.Add(request.NewErrParamRequired("RepositoryLinkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRepositoryLinkId sets the RepositoryLinkId field's value. +func (s *DeleteRepositoryLinkInput) SetRepositoryLinkId(v string) *DeleteRepositoryLinkInput { + s.RepositoryLinkId = &v + return s +} + +type DeleteRepositoryLinkOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteRepositoryLinkOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteRepositoryLinkOutput) GoString() string { + return s.String() +} + +type DeleteSyncConfigurationInput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon Web Services resource associated with the sync configuration + // to be deleted. + // + // ResourceName is a required field + ResourceName *string `min:"1" type:"string" required:"true"` + + // The type of sync configuration to be deleted. + // + // SyncType is a required field + SyncType *string `type:"string" required:"true" enum:"SyncConfigurationType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSyncConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSyncConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteSyncConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteSyncConfigurationInput"} + if s.ResourceName == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceName")) + } + if s.ResourceName != nil && len(*s.ResourceName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceName", 1)) + } + if s.SyncType == nil { + invalidParams.Add(request.NewErrParamRequired("SyncType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceName sets the ResourceName field's value. +func (s *DeleteSyncConfigurationInput) SetResourceName(v string) *DeleteSyncConfigurationInput { + s.ResourceName = &v + return s +} + +// SetSyncType sets the SyncType field's value. +func (s *DeleteSyncConfigurationInput) SetSyncType(v string) *DeleteSyncConfigurationInput { + s.SyncType = &v + return s +} + +type DeleteSyncConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSyncConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSyncConfigurationOutput) GoString() string { + return s.String() +} + +type GetConnectionInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of a connection. + // + // ConnectionArn is a required field + ConnectionArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetConnectionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetConnectionInput) 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"} + if s.ConnectionArn == nil { + invalidParams.Add(request.NewErrParamRequired("ConnectionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConnectionArn sets the ConnectionArn field's value. +func (s *GetConnectionInput) SetConnectionArn(v string) *GetConnectionInput { + s.ConnectionArn = &v + return s +} + +type GetConnectionOutput struct { + _ struct{} `type:"structure"` + + // The connection details, such as status, owner, and provider type. + Connection *Connection `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetConnectionOutput) GoString() string { + return s.String() +} + +// SetConnection sets the Connection field's value. +func (s *GetConnectionOutput) SetConnection(v *Connection) *GetConnectionOutput { + s.Connection = v + return s +} + +type GetHostInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the requested host. + // + // HostArn is a required field + HostArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetHostInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetHostInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetHostInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetHostInput"} + if s.HostArn == nil { + invalidParams.Add(request.NewErrParamRequired("HostArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetHostArn sets the HostArn field's value. +func (s *GetHostInput) SetHostArn(v string) *GetHostInput { + s.HostArn = &v + return s +} + +type GetHostOutput struct { + _ struct{} `type:"structure"` + + // The name of the requested host. + Name *string `min:"1" type:"string"` + + // The endpoint of the infrastructure represented by the requested host. + ProviderEndpoint *string `min:"1" type:"string"` + + // The provider type of the requested host, such as GitHub Enterprise Server. + ProviderType *string `type:"string" enum:"ProviderType"` + + // The status of the requested host. + Status *string `min:"1" type:"string"` + + // The VPC configuration of the requested host. + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetHostOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetHostOutput) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *GetHostOutput) SetName(v string) *GetHostOutput { + s.Name = &v + return s +} + +// SetProviderEndpoint sets the ProviderEndpoint field's value. +func (s *GetHostOutput) SetProviderEndpoint(v string) *GetHostOutput { + s.ProviderEndpoint = &v + return s +} + +// SetProviderType sets the ProviderType field's value. +func (s *GetHostOutput) SetProviderType(v string) *GetHostOutput { + s.ProviderType = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GetHostOutput) SetStatus(v string) *GetHostOutput { + s.Status = &v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *GetHostOutput) SetVpcConfiguration(v *VpcConfiguration) *GetHostOutput { + s.VpcConfiguration = v + return s +} + +type GetRepositoryLinkInput struct { + _ struct{} `type:"structure"` + + // The ID of the repository link to get. + // + // RepositoryLinkId is a required field + RepositoryLinkId *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRepositoryLinkInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRepositoryLinkInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetRepositoryLinkInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetRepositoryLinkInput"} + if s.RepositoryLinkId == nil { + invalidParams.Add(request.NewErrParamRequired("RepositoryLinkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRepositoryLinkId sets the RepositoryLinkId field's value. +func (s *GetRepositoryLinkInput) SetRepositoryLinkId(v string) *GetRepositoryLinkInput { + s.RepositoryLinkId = &v + return s +} + +type GetRepositoryLinkOutput struct { + _ struct{} `type:"structure"` + + // The information returned for a specified repository link. + // + // RepositoryLinkInfo is a required field + RepositoryLinkInfo *RepositoryLinkInfo `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRepositoryLinkOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRepositoryLinkOutput) GoString() string { + return s.String() +} + +// SetRepositoryLinkInfo sets the RepositoryLinkInfo field's value. +func (s *GetRepositoryLinkOutput) SetRepositoryLinkInfo(v *RepositoryLinkInfo) *GetRepositoryLinkOutput { + s.RepositoryLinkInfo = v + return s +} + +type GetRepositorySyncStatusInput struct { + _ struct{} `type:"structure"` + + // The branch of the repository link for the requested repository sync status. + // + // Branch is a required field + Branch *string `min:"1" type:"string" required:"true"` + + // The repository link ID for the requested repository sync status. + // + // RepositoryLinkId is a required field + RepositoryLinkId *string `type:"string" required:"true"` + + // The sync type of the requested sync status. + // + // SyncType is a required field + SyncType *string `type:"string" required:"true" enum:"SyncConfigurationType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRepositorySyncStatusInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRepositorySyncStatusInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetRepositorySyncStatusInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetRepositorySyncStatusInput"} + if s.Branch == nil { + invalidParams.Add(request.NewErrParamRequired("Branch")) + } + if s.Branch != nil && len(*s.Branch) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Branch", 1)) + } + if s.RepositoryLinkId == nil { + invalidParams.Add(request.NewErrParamRequired("RepositoryLinkId")) + } + if s.SyncType == nil { + invalidParams.Add(request.NewErrParamRequired("SyncType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBranch sets the Branch field's value. +func (s *GetRepositorySyncStatusInput) SetBranch(v string) *GetRepositorySyncStatusInput { + s.Branch = &v + return s +} + +// SetRepositoryLinkId sets the RepositoryLinkId field's value. +func (s *GetRepositorySyncStatusInput) SetRepositoryLinkId(v string) *GetRepositorySyncStatusInput { + s.RepositoryLinkId = &v + return s +} + +// SetSyncType sets the SyncType field's value. +func (s *GetRepositorySyncStatusInput) SetSyncType(v string) *GetRepositorySyncStatusInput { + s.SyncType = &v + return s +} + +type GetRepositorySyncStatusOutput struct { + _ struct{} `type:"structure"` + + // The status of the latest sync returned for a specified repository and branch. + // + // LatestSync is a required field + LatestSync *RepositorySyncAttempt `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRepositorySyncStatusOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRepositorySyncStatusOutput) GoString() string { + return s.String() +} + +// SetLatestSync sets the LatestSync field's value. +func (s *GetRepositorySyncStatusOutput) SetLatestSync(v *RepositorySyncAttempt) *GetRepositorySyncStatusOutput { + s.LatestSync = v + return s +} + +type GetResourceSyncStatusInput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon Web Services resource for the sync status with the + // Git repository. + // + // ResourceName is a required field + ResourceName *string `min:"1" type:"string" required:"true"` + + // The sync type for the sync status with the Git repository. + // + // SyncType is a required field + SyncType *string `type:"string" required:"true" enum:"SyncConfigurationType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceSyncStatusInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceSyncStatusInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetResourceSyncStatusInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetResourceSyncStatusInput"} + if s.ResourceName == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceName")) + } + if s.ResourceName != nil && len(*s.ResourceName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceName", 1)) + } + if s.SyncType == nil { + invalidParams.Add(request.NewErrParamRequired("SyncType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceName sets the ResourceName field's value. +func (s *GetResourceSyncStatusInput) SetResourceName(v string) *GetResourceSyncStatusInput { + s.ResourceName = &v + return s +} + +// SetSyncType sets the SyncType field's value. +func (s *GetResourceSyncStatusInput) SetSyncType(v string) *GetResourceSyncStatusInput { + s.SyncType = &v + return s +} + +type GetResourceSyncStatusOutput struct { + _ struct{} `type:"structure"` + + // The desired state of the Amazon Web Services resource for the sync status + // with the Git repository. + DesiredState *Revision `type:"structure"` + + // The latest successful sync for the sync status with the Git repository. + LatestSuccessfulSync *ResourceSyncAttempt `type:"structure"` + + // The latest sync for the sync status with the Git repository, whether successful + // or not. + // + // LatestSync is a required field + LatestSync *ResourceSyncAttempt `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceSyncStatusOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetResourceSyncStatusOutput) GoString() string { + return s.String() +} + +// SetDesiredState sets the DesiredState field's value. +func (s *GetResourceSyncStatusOutput) SetDesiredState(v *Revision) *GetResourceSyncStatusOutput { + s.DesiredState = v + return s +} + +// SetLatestSuccessfulSync sets the LatestSuccessfulSync field's value. +func (s *GetResourceSyncStatusOutput) SetLatestSuccessfulSync(v *ResourceSyncAttempt) *GetResourceSyncStatusOutput { + s.LatestSuccessfulSync = v + return s +} + +// SetLatestSync sets the LatestSync field's value. +func (s *GetResourceSyncStatusOutput) SetLatestSync(v *ResourceSyncAttempt) *GetResourceSyncStatusOutput { + s.LatestSync = v + return s +} + +type GetSyncBlockerSummaryInput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon Web Services resource currently blocked from automatically + // being synced from a Git repository. + // + // ResourceName is a required field + ResourceName *string `min:"1" type:"string" required:"true"` + + // The sync type for the sync blocker summary. + // + // SyncType is a required field + SyncType *string `type:"string" required:"true" enum:"SyncConfigurationType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSyncBlockerSummaryInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSyncBlockerSummaryInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSyncBlockerSummaryInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetSyncBlockerSummaryInput"} + if s.ResourceName == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceName")) + } + if s.ResourceName != nil && len(*s.ResourceName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceName", 1)) + } + if s.SyncType == nil { + invalidParams.Add(request.NewErrParamRequired("SyncType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceName sets the ResourceName field's value. +func (s *GetSyncBlockerSummaryInput) SetResourceName(v string) *GetSyncBlockerSummaryInput { + s.ResourceName = &v + return s +} + +// SetSyncType sets the SyncType field's value. +func (s *GetSyncBlockerSummaryInput) SetSyncType(v string) *GetSyncBlockerSummaryInput { + s.SyncType = &v + return s +} + +type GetSyncBlockerSummaryOutput struct { + _ struct{} `type:"structure"` + + // The list of sync blockers for a specified resource. + // + // SyncBlockerSummary is a required field + SyncBlockerSummary *SyncBlockerSummary `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSyncBlockerSummaryOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSyncBlockerSummaryOutput) GoString() string { + return s.String() +} + +// SetSyncBlockerSummary sets the SyncBlockerSummary field's value. +func (s *GetSyncBlockerSummaryOutput) SetSyncBlockerSummary(v *SyncBlockerSummary) *GetSyncBlockerSummaryOutput { + s.SyncBlockerSummary = v + return s +} + +type GetSyncConfigurationInput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon Web Services resource for the sync configuration for + // which you want to retrieve information. + // + // ResourceName is a required field + ResourceName *string `min:"1" type:"string" required:"true"` + + // The sync type for the sync configuration for which you want to retrieve information. + // + // SyncType is a required field + SyncType *string `type:"string" required:"true" enum:"SyncConfigurationType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSyncConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSyncConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSyncConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetSyncConfigurationInput"} + if s.ResourceName == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceName")) + } + if s.ResourceName != nil && len(*s.ResourceName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceName", 1)) + } + if s.SyncType == nil { + invalidParams.Add(request.NewErrParamRequired("SyncType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceName sets the ResourceName field's value. +func (s *GetSyncConfigurationInput) SetResourceName(v string) *GetSyncConfigurationInput { + s.ResourceName = &v + return s +} + +// SetSyncType sets the SyncType field's value. +func (s *GetSyncConfigurationInput) SetSyncType(v string) *GetSyncConfigurationInput { + s.SyncType = &v + return s +} + +type GetSyncConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The details about the sync configuration for which you want to retrieve information. + // + // SyncConfiguration is a required field + SyncConfiguration *SyncConfiguration `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSyncConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSyncConfigurationOutput) GoString() string { + return s.String() +} + +// SetSyncConfiguration sets the SyncConfiguration field's value. +func (s *GetSyncConfigurationOutput) SetSyncConfiguration(v *SyncConfiguration) *GetSyncConfigurationOutput { + s.SyncConfiguration = v + return s +} + +// A resource that represents the infrastructure where a third-party provider +// is installed. The host is used when you create connections to an installed +// third-party provider type, such as GitHub Enterprise Server. You create one +// host for all connections to that provider. +// +// A host created through the CLI or the SDK is in `PENDING` status by default. +// You can make its status `AVAILABLE` by setting up the host in the console. +type Host struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the host. + HostArn *string `type:"string"` + + // The name of the host. + Name *string `min:"1" type:"string"` + + // The endpoint of the infrastructure where your provider type is installed. + ProviderEndpoint *string `min:"1" type:"string"` + + // The name of the installed provider to be associated with your connection. + // The host resource represents the infrastructure where your provider type + // is installed. The valid provider type is GitHub Enterprise Server. + ProviderType *string `type:"string" enum:"ProviderType"` + + // The status of the host, such as PENDING, AVAILABLE, VPC_CONFIG_DELETING, + // VPC_CONFIG_INITIALIZING, and VPC_CONFIG_FAILED_INITIALIZATION. + Status *string `min:"1" type:"string"` + + // The status description for the host. + StatusMessage *string `type:"string"` + + // The VPC configuration provisioned for the host. + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Host) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Host) GoString() string { + return s.String() +} + +// SetHostArn sets the HostArn field's value. +func (s *Host) SetHostArn(v string) *Host { + s.HostArn = &v + return s +} + +// SetName sets the Name field's value. +func (s *Host) SetName(v string) *Host { + s.Name = &v + return s +} + +// SetProviderEndpoint sets the ProviderEndpoint field's value. +func (s *Host) SetProviderEndpoint(v string) *Host { + s.ProviderEndpoint = &v + return s +} + +// SetProviderType sets the ProviderType field's value. +func (s *Host) SetProviderType(v string) *Host { + s.ProviderType = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *Host) SetStatus(v string) *Host { + s.Status = &v + return s +} + +// SetStatusMessage sets the StatusMessage field's value. +func (s *Host) SetStatusMessage(v string) *Host { + s.StatusMessage = &v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *Host) SetVpcConfiguration(v *VpcConfiguration) *Host { + s.VpcConfiguration = v + return s +} + +// Received an internal server exception. Try again later. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The input is not valid. Verify that the action is typed correctly. +type InvalidInputException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidInputException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidInputException) GoString() string { + return s.String() +} + +func newErrorInvalidInputException(v protocol.ResponseMetadata) error { + return &InvalidInputException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InvalidInputException) Code() string { + return "InvalidInputException" +} + +// Message returns the exception's message. +func (s *InvalidInputException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InvalidInputException) OrigErr() error { + return nil +} + +func (s *InvalidInputException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InvalidInputException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InvalidInputException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Exceeded the maximum limit for connections. +type LimitExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LimitExceededException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LimitExceededException) GoString() string { + return s.String() +} + +func newErrorLimitExceededException(v protocol.ResponseMetadata) error { + return &LimitExceededException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *LimitExceededException) Code() string { + return "LimitExceededException" +} + +// Message returns the exception's message. +func (s *LimitExceededException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *LimitExceededException) OrigErr() error { + return nil +} + +func (s *LimitExceededException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *LimitExceededException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *LimitExceededException) RequestID() string { + return s.RespMetadata.RequestID +} + +type ListConnectionsInput struct { + _ struct{} `type:"structure"` + + // Filters the list of connections to those associated with a specified host. + HostArnFilter *string `type:"string"` + + // The maximum number of results to return in a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `type:"integer"` + + // The token that was returned from the previous ListConnections call, which + // can be used to return the next set of connections in the list. + NextToken *string `min:"1" type:"string"` + + // Filters the list of connections to those associated with a specified provider, + // such as Bitbucket. + ProviderTypeFilter *string `type:"string" enum:"ProviderType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListConnectionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListConnectionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListConnectionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListConnectionsInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetHostArnFilter sets the HostArnFilter field's value. +func (s *ListConnectionsInput) SetHostArnFilter(v string) *ListConnectionsInput { + s.HostArnFilter = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListConnectionsInput) SetMaxResults(v int64) *ListConnectionsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListConnectionsInput) SetNextToken(v string) *ListConnectionsInput { + s.NextToken = &v + return s +} + +// SetProviderTypeFilter sets the ProviderTypeFilter field's value. +func (s *ListConnectionsInput) SetProviderTypeFilter(v string) *ListConnectionsInput { + s.ProviderTypeFilter = &v + return s +} + +type ListConnectionsOutput struct { + _ struct{} `type:"structure"` + + // A list of connections and the details for each connection, such as status, + // owner, and provider type. + Connections []*Connection `type:"list"` + + // A token that can be used in the next ListConnections call. To view all items + // in the list, continue to call this operation with each subsequent token until + // no more nextToken values are returned. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListConnectionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListConnectionsOutput) GoString() string { + return s.String() +} + +// SetConnections sets the Connections field's value. +func (s *ListConnectionsOutput) SetConnections(v []*Connection) *ListConnectionsOutput { + s.Connections = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListConnectionsOutput) SetNextToken(v string) *ListConnectionsOutput { + s.NextToken = &v + return s +} + +type ListHostsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return in a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `type:"integer"` + + // The token that was returned from the previous ListHosts call, which can be + // used to return the next set of hosts in the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListHostsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListHostsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListHostsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListHostsInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListHostsInput) SetMaxResults(v int64) *ListHostsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListHostsInput) SetNextToken(v string) *ListHostsInput { + s.NextToken = &v + return s +} + +type ListHostsOutput struct { + _ struct{} `type:"structure"` + + // A list of hosts and the details for each host, such as status, endpoint, + // and provider type. + Hosts []*Host `type:"list"` + + // A token that can be used in the next ListHosts call. To view all items in + // the list, continue to call this operation with each subsequent token until + // no more nextToken values are returned. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListHostsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListHostsOutput) GoString() string { + return s.String() +} + +// SetHosts sets the Hosts field's value. +func (s *ListHostsOutput) SetHosts(v []*Host) *ListHostsOutput { + s.Hosts = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListHostsOutput) SetNextToken(v string) *ListHostsOutput { + s.NextToken = &v + return s +} + +type ListRepositoryLinksInput struct { + _ struct{} `type:"structure"` + + // A non-zero, non-negative integer used to limit the number of returned results. + MaxResults *int64 `type:"integer"` + + // An enumeration token that, when provided in a request, returns the next batch + // of the results. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRepositoryLinksInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRepositoryLinksInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListRepositoryLinksInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListRepositoryLinksInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListRepositoryLinksInput) SetMaxResults(v int64) *ListRepositoryLinksInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRepositoryLinksInput) SetNextToken(v string) *ListRepositoryLinksInput { + s.NextToken = &v + return s +} + +type ListRepositoryLinksOutput struct { + _ struct{} `type:"structure"` + + // An enumeration token that allows the operation to batch the results of the + // operation. + NextToken *string `min:"1" type:"string"` + + // Lists the repository links called by the list repository links operation. + // + // RepositoryLinks is a required field + RepositoryLinks []*RepositoryLinkInfo `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRepositoryLinksOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRepositoryLinksOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRepositoryLinksOutput) SetNextToken(v string) *ListRepositoryLinksOutput { + s.NextToken = &v + return s +} + +// SetRepositoryLinks sets the RepositoryLinks field's value. +func (s *ListRepositoryLinksOutput) SetRepositoryLinks(v []*RepositoryLinkInfo) *ListRepositoryLinksOutput { + s.RepositoryLinks = v + return s +} + +type ListRepositorySyncDefinitionsInput struct { + _ struct{} `type:"structure"` + + // The ID of the repository link for the sync definition for which you want + // to retrieve information. + // + // RepositoryLinkId is a required field + RepositoryLinkId *string `type:"string" required:"true"` + + // The sync type of the repository link for the the sync definition for which + // you want to retrieve information. + // + // SyncType is a required field + SyncType *string `type:"string" required:"true" enum:"SyncConfigurationType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRepositorySyncDefinitionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRepositorySyncDefinitionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListRepositorySyncDefinitionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListRepositorySyncDefinitionsInput"} + if s.RepositoryLinkId == nil { + invalidParams.Add(request.NewErrParamRequired("RepositoryLinkId")) + } + if s.SyncType == nil { + invalidParams.Add(request.NewErrParamRequired("SyncType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRepositoryLinkId sets the RepositoryLinkId field's value. +func (s *ListRepositorySyncDefinitionsInput) SetRepositoryLinkId(v string) *ListRepositorySyncDefinitionsInput { + s.RepositoryLinkId = &v + return s +} + +// SetSyncType sets the SyncType field's value. +func (s *ListRepositorySyncDefinitionsInput) SetSyncType(v string) *ListRepositorySyncDefinitionsInput { + s.SyncType = &v + return s +} + +type ListRepositorySyncDefinitionsOutput struct { + _ struct{} `type:"structure"` + + // An enumeration token that, when provided in a request, returns the next batch + // of the results. + NextToken *string `min:"1" type:"string"` + + // The list of repository sync definitions returned by the request. A RepositorySyncDefinition + // is a mapping from a repository branch to all the Amazon Web Services resources + // that are being synced from that branch. + // + // RepositorySyncDefinitions is a required field + RepositorySyncDefinitions []*RepositorySyncDefinition `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRepositorySyncDefinitionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRepositorySyncDefinitionsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRepositorySyncDefinitionsOutput) SetNextToken(v string) *ListRepositorySyncDefinitionsOutput { + s.NextToken = &v + return s +} + +// SetRepositorySyncDefinitions sets the RepositorySyncDefinitions field's value. +func (s *ListRepositorySyncDefinitionsOutput) SetRepositorySyncDefinitions(v []*RepositorySyncDefinition) *ListRepositorySyncDefinitionsOutput { + s.RepositorySyncDefinitions = v + return s +} - Message_ *string `locationName:"Message" type:"string"` +type ListSyncConfigurationsInput struct { + _ struct{} `type:"structure"` + + // A non-zero, non-negative integer used to limit the number of returned results. + MaxResults *int64 `type:"integer"` + + // An enumeration token that allows the operation to batch the results of the + // operation. + NextToken *string `min:"1" type:"string"` + + // The ID of the repository link for the requested list of sync configurations. + // + // RepositoryLinkId is a required field + RepositoryLinkId *string `type:"string" required:"true"` + + // The sync type for the requested list of sync configurations. + // + // SyncType is a required field + SyncType *string `type:"string" required:"true" enum:"SyncConfigurationType"` } // String returns the string representation. @@ -1124,7 +5333,7 @@ type ConflictException struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ConflictException) String() string { +func (s ListSyncConfigurationsInput) String() string { return awsutil.Prettify(s) } @@ -1133,81 +5342,104 @@ func (s ConflictException) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ConflictException) GoString() string { +func (s ListSyncConfigurationsInput) GoString() string { return s.String() } -func newErrorConflictException(v protocol.ResponseMetadata) error { - return &ConflictException{ - RespMetadata: v, +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListSyncConfigurationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListSyncConfigurationsInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.RepositoryLinkId == nil { + invalidParams.Add(request.NewErrParamRequired("RepositoryLinkId")) + } + if s.SyncType == nil { + invalidParams.Add(request.NewErrParamRequired("SyncType")) } -} - -// Code returns the exception type name. -func (s *ConflictException) Code() string { - return "ConflictException" -} -// Message returns the exception's message. -func (s *ConflictException) Message() string { - if s.Message_ != nil { - return *s.Message_ + if invalidParams.Len() > 0 { + return invalidParams } - return "" + return nil } -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ConflictException) OrigErr() error { - return nil +// SetMaxResults sets the MaxResults field's value. +func (s *ListSyncConfigurationsInput) SetMaxResults(v int64) *ListSyncConfigurationsInput { + s.MaxResults = &v + return s } -func (s *ConflictException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +// SetNextToken sets the NextToken field's value. +func (s *ListSyncConfigurationsInput) SetNextToken(v string) *ListSyncConfigurationsInput { + s.NextToken = &v + return s } -// Status code returns the HTTP status code for the request's response error. -func (s *ConflictException) StatusCode() int { - return s.RespMetadata.StatusCode +// SetRepositoryLinkId sets the RepositoryLinkId field's value. +func (s *ListSyncConfigurationsInput) SetRepositoryLinkId(v string) *ListSyncConfigurationsInput { + s.RepositoryLinkId = &v + return s } -// RequestID returns the service's response RequestID for request. -func (s *ConflictException) RequestID() string { - return s.RespMetadata.RequestID +// SetSyncType sets the SyncType field's value. +func (s *ListSyncConfigurationsInput) SetSyncType(v string) *ListSyncConfigurationsInput { + s.SyncType = &v + return s } -// A resource that is used to connect third-party source providers with services -// like CodePipeline. -// -// Note: A connection created through CloudFormation, the CLI, or the SDK is -// in `PENDING` status by default. You can make its status `AVAILABLE` by updating -// the connection in the console. -type Connection struct { +type ListSyncConfigurationsOutput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the connection. The ARN is used as the - // connection reference when the connection is shared between Amazon Web Services. + // An enumeration token that allows the operation to batch the next results + // of the operation. + NextToken *string `min:"1" type:"string"` + + // The list of repository sync definitions returned by the request. // - // The ARN is never reused if the connection is deleted. - ConnectionArn *string `type:"string"` + // SyncConfigurations is a required field + SyncConfigurations []*SyncConfiguration `type:"list" required:"true"` +} - // The name of the connection. Connection names must be unique in an Amazon - // Web Services account. - ConnectionName *string `min:"1" type:"string"` +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSyncConfigurationsOutput) String() string { + return awsutil.Prettify(s) +} - // The current status of the connection. - ConnectionStatus *string `type:"string" enum:"ConnectionStatus"` +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSyncConfigurationsOutput) GoString() string { + return s.String() +} - // The Amazon Resource Name (ARN) of the host associated with the connection. - HostArn *string `type:"string"` +// SetNextToken sets the NextToken field's value. +func (s *ListSyncConfigurationsOutput) SetNextToken(v string) *ListSyncConfigurationsOutput { + s.NextToken = &v + return s +} - // The identifier of the external provider where your third-party code repository - // is configured. For Bitbucket, this is the account ID of the owner of the - // Bitbucket repository. - OwnerAccountId *string `min:"12" type:"string"` +// SetSyncConfigurations sets the SyncConfigurations field's value. +func (s *ListSyncConfigurationsOutput) SetSyncConfigurations(v []*SyncConfiguration) *ListSyncConfigurationsOutput { + s.SyncConfigurations = v + return s +} - // The name of the external provider where your third-party code repository - // is configured. - ProviderType *string `type:"string" enum:"ProviderType"` +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource for which you want to get + // information about tags, if any. + // + // ResourceArn is a required field + ResourceArn *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -1215,7 +5447,7 @@ type Connection struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Connection) String() string { +func (s ListTagsForResourceInput) String() string { return awsutil.Prettify(s) } @@ -1224,64 +5456,104 @@ func (s Connection) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Connection) GoString() string { +func (s ListTagsForResourceInput) GoString() string { return s.String() } -// SetConnectionArn sets the ConnectionArn field's value. -func (s *Connection) SetConnectionArn(v string) *Connection { - s.ConnectionArn = &v - return s +// 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 } -// SetConnectionName sets the ConnectionName field's value. -func (s *Connection) SetConnectionName(v string) *Connection { - s.ConnectionName = &v +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v return s } -// SetConnectionStatus sets the ConnectionStatus field's value. -func (s *Connection) SetConnectionStatus(v string) *Connection { - s.ConnectionStatus = &v - return s +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // A list of tag key and value pairs associated with the specified resource. + Tags []*Tag `type:"list"` } -// SetHostArn sets the HostArn field's value. -func (s *Connection) SetHostArn(v string) *Connection { - s.HostArn = &v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) } -// SetOwnerAccountId sets the OwnerAccountId field's value. -func (s *Connection) SetOwnerAccountId(v string) *Connection { - s.OwnerAccountId = &v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) GoString() string { + return s.String() } -// SetProviderType sets the ProviderType field's value. -func (s *Connection) SetProviderType(v string) *Connection { - s.ProviderType = &v +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput { + s.Tags = v return s } -type CreateConnectionInput struct { +// Information about the repository link resource, such as the repository link +// ARN, the associated connection ARN, encryption key ARN, and owner ID. +type RepositoryLinkInfo struct { _ struct{} `type:"structure"` - // The name of the connection to be created. + // The Amazon Resource Name (ARN) of the connection associated with the repository + // link. // - // ConnectionName is a required field - ConnectionName *string `min:"1" type:"string" required:"true"` + // ConnectionArn is a required field + ConnectionArn *string `type:"string" required:"true"` - // The Amazon Resource Name (ARN) of the host associated with the connection - // to be created. - HostArn *string `type:"string"` + // The Amazon Resource Name (ARN) of the encryption key for the repository associated + // with the repository link. + EncryptionKeyArn *string `min:"1" type:"string"` - // The name of the external provider where your third-party code repository - // is configured. - ProviderType *string `type:"string" enum:"ProviderType"` + // The owner ID for the repository associated with the repository link, such + // as the owner ID in GitHub. + // + // OwnerId is a required field + OwnerId *string `min:"1" type:"string" required:"true"` - // The key-value pair to use when tagging the resource. - Tags []*Tag `type:"list"` + // The provider type for the connection, such as GitHub, associated with the + // repository link. + // + // ProviderType is a required field + ProviderType *string `type:"string" required:"true" enum:"ProviderType"` + + // The Amazon Resource Name (ARN) of the repository link. + // + // RepositoryLinkArn is a required field + RepositoryLinkArn *string `type:"string" required:"true"` + + // The ID of the repository link. + // + // RepositoryLinkId is a required field + RepositoryLinkId *string `type:"string" required:"true"` + + // The name of the repository associated with the repository link. + // + // RepositoryName is a required field + RepositoryName *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -1289,7 +5561,7 @@ type CreateConnectionInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateConnectionInput) String() string { +func (s RepositoryLinkInfo) String() string { return awsutil.Prettify(s) } @@ -1298,74 +5570,83 @@ func (s CreateConnectionInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateConnectionInput) GoString() string { +func (s RepositoryLinkInfo) 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.ConnectionName == nil { - invalidParams.Add(request.NewErrParamRequired("ConnectionName")) - } - if s.ConnectionName != nil && len(*s.ConnectionName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ConnectionName", 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 - } - return nil +// SetConnectionArn sets the ConnectionArn field's value. +func (s *RepositoryLinkInfo) SetConnectionArn(v string) *RepositoryLinkInfo { + s.ConnectionArn = &v + return s } -// SetConnectionName sets the ConnectionName field's value. -func (s *CreateConnectionInput) SetConnectionName(v string) *CreateConnectionInput { - s.ConnectionName = &v +// SetEncryptionKeyArn sets the EncryptionKeyArn field's value. +func (s *RepositoryLinkInfo) SetEncryptionKeyArn(v string) *RepositoryLinkInfo { + s.EncryptionKeyArn = &v return s } -// SetHostArn sets the HostArn field's value. -func (s *CreateConnectionInput) SetHostArn(v string) *CreateConnectionInput { - s.HostArn = &v +// SetOwnerId sets the OwnerId field's value. +func (s *RepositoryLinkInfo) SetOwnerId(v string) *RepositoryLinkInfo { + s.OwnerId = &v return s } // SetProviderType sets the ProviderType field's value. -func (s *CreateConnectionInput) SetProviderType(v string) *CreateConnectionInput { +func (s *RepositoryLinkInfo) SetProviderType(v string) *RepositoryLinkInfo { s.ProviderType = &v return s } -// SetTags sets the Tags field's value. -func (s *CreateConnectionInput) SetTags(v []*Tag) *CreateConnectionInput { - s.Tags = v +// SetRepositoryLinkArn sets the RepositoryLinkArn field's value. +func (s *RepositoryLinkInfo) SetRepositoryLinkArn(v string) *RepositoryLinkInfo { + s.RepositoryLinkArn = &v return s } -type CreateConnectionOutput struct { - _ struct{} `type:"structure"` +// SetRepositoryLinkId sets the RepositoryLinkId field's value. +func (s *RepositoryLinkInfo) SetRepositoryLinkId(v string) *RepositoryLinkInfo { + s.RepositoryLinkId = &v + return s +} - // The Amazon Resource Name (ARN) of the connection to be created. The ARN is - // used as the connection reference when the connection is shared between Amazon - // Web Services services. +// SetRepositoryName sets the RepositoryName field's value. +func (s *RepositoryLinkInfo) SetRepositoryName(v string) *RepositoryLinkInfo { + s.RepositoryName = &v + return s +} + +// Information about a repository sync attempt for a repository with a sync +// configuration. +type RepositorySyncAttempt struct { + _ struct{} `type:"structure"` + + // The events associated with a specific sync attempt. // - // The ARN is never reused if the connection is deleted. + // Events is a required field + Events []*RepositorySyncEvent `type:"list" required:"true"` + + // The start time of a specific sync attempt. // - // ConnectionArn is a required field - ConnectionArn *string `type:"string" required:"true"` + // StartedAt is a required field + StartedAt *time.Time `type:"timestamp" required:"true"` - // Specifies the tags applied to the resource. - Tags []*Tag `type:"list"` + // The status of a specific sync attempt. The following are valid statuses: + // + // * INITIATED - A repository sync attempt has been created and will begin + // soon. + // + // * IN_PROGRESS - A repository sync attempt has started and work is being + // done to reconcile the branch. + // + // * SUCCEEDED - The repository sync attempt has completed successfully. + // + // * FAILED - The repository sync attempt has failed. + // + // * QUEUED - The repository sync attempt didn't execute and was queued. + // + // Status is a required field + Status *string `type:"string" required:"true" enum:"RepositorySyncStatus"` } // String returns the string representation. @@ -1373,7 +5654,7 @@ type CreateConnectionOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateConnectionOutput) String() string { +func (s RepositorySyncAttempt) String() string { return awsutil.Prettify(s) } @@ -1382,49 +5663,53 @@ func (s CreateConnectionOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateConnectionOutput) GoString() string { +func (s RepositorySyncAttempt) GoString() string { return s.String() } -// SetConnectionArn sets the ConnectionArn field's value. -func (s *CreateConnectionOutput) SetConnectionArn(v string) *CreateConnectionOutput { - s.ConnectionArn = &v +// SetEvents sets the Events field's value. +func (s *RepositorySyncAttempt) SetEvents(v []*RepositorySyncEvent) *RepositorySyncAttempt { + s.Events = v return s } -// SetTags sets the Tags field's value. -func (s *CreateConnectionOutput) SetTags(v []*Tag) *CreateConnectionOutput { - s.Tags = v +// SetStartedAt sets the StartedAt field's value. +func (s *RepositorySyncAttempt) SetStartedAt(v time.Time) *RepositorySyncAttempt { + s.StartedAt = &v return s } -type CreateHostInput struct { +// SetStatus sets the Status field's value. +func (s *RepositorySyncAttempt) SetStatus(v string) *RepositorySyncAttempt { + s.Status = &v + return s +} + +// The definition for a repository with a sync configuration. +type RepositorySyncDefinition struct { _ struct{} `type:"structure"` - // The name of the host to be created. + // The branch specified for a repository sync definition. // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` + // Branch is a required field + Branch *string `min:"1" type:"string" required:"true"` - // The endpoint of the infrastructure to be represented by the host after it - // is created. + // The configuration file for a repository sync definition. This value comes + // from creating or updating the config-file field of a sync-configuration. // - // ProviderEndpoint is a required field - ProviderEndpoint *string `min:"1" type:"string" required:"true"` + // Directory is a required field + Directory *string `type:"string" required:"true"` - // The name of the installed provider to be associated with your connection. - // The host resource represents the infrastructure where your provider type - // is installed. The valid provider type is GitHub Enterprise Server. + // The parent resource specified for a repository sync definition. // - // ProviderType is a required field - ProviderType *string `type:"string" required:"true" enum:"ProviderType"` + // Parent is a required field + Parent *string `type:"string" required:"true"` - Tags []*Tag `type:"list"` - - // The VPC configuration to be provisioned for the host. A VPC must be configured - // and the infrastructure to be represented by the host must already be connected - // to the VPC. - VpcConfiguration *VpcConfiguration `type:"structure"` + // The target resource specified for a repository sync definition. In some cases, + // such as CFN_STACK_SYNC, the parent and target resource are the same. + // + // Target is a required field + Target *string `type:"string" required:"true"` } // String returns the string representation. @@ -1432,7 +5717,7 @@ type CreateHostInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateHostInput) String() string { +func (s RepositorySyncDefinition) String() string { return awsutil.Prettify(s) } @@ -1441,87 +5726,55 @@ func (s CreateHostInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateHostInput) GoString() string { +func (s RepositorySyncDefinition) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateHostInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateHostInput"} - 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.ProviderEndpoint == nil { - invalidParams.Add(request.NewErrParamRequired("ProviderEndpoint")) - } - if s.ProviderEndpoint != nil && len(*s.ProviderEndpoint) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ProviderEndpoint", 1)) - } - if s.ProviderType == nil { - invalidParams.Add(request.NewErrParamRequired("ProviderType")) - } - 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.VpcConfiguration != nil { - if err := s.VpcConfiguration.Validate(); err != nil { - invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetName sets the Name field's value. -func (s *CreateHostInput) SetName(v string) *CreateHostInput { - s.Name = &v - return s -} - -// SetProviderEndpoint sets the ProviderEndpoint field's value. -func (s *CreateHostInput) SetProviderEndpoint(v string) *CreateHostInput { - s.ProviderEndpoint = &v +// SetBranch sets the Branch field's value. +func (s *RepositorySyncDefinition) SetBranch(v string) *RepositorySyncDefinition { + s.Branch = &v return s } -// SetProviderType sets the ProviderType field's value. -func (s *CreateHostInput) SetProviderType(v string) *CreateHostInput { - s.ProviderType = &v +// SetDirectory sets the Directory field's value. +func (s *RepositorySyncDefinition) SetDirectory(v string) *RepositorySyncDefinition { + s.Directory = &v return s } -// SetTags sets the Tags field's value. -func (s *CreateHostInput) SetTags(v []*Tag) *CreateHostInput { - s.Tags = v +// SetParent sets the Parent field's value. +func (s *RepositorySyncDefinition) SetParent(v string) *RepositorySyncDefinition { + s.Parent = &v return s } -// SetVpcConfiguration sets the VpcConfiguration field's value. -func (s *CreateHostInput) SetVpcConfiguration(v *VpcConfiguration) *CreateHostInput { - s.VpcConfiguration = v +// SetTarget sets the Target field's value. +func (s *RepositorySyncDefinition) SetTarget(v string) *RepositorySyncDefinition { + s.Target = &v return s } -type CreateHostOutput struct { +// Information about a repository sync event. +type RepositorySyncEvent struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the host to be created. - HostArn *string `type:"string"` + // A description of a repository sync event. + // + // Event is a required field + Event *string `type:"string" required:"true"` - Tags []*Tag `type:"list"` + // The ID for a repository sync event. + ExternalId *string `type:"string"` + + // The time that a repository sync event occurred. + // + // Time is a required field + Time *time.Time `type:"timestamp" required:"true"` + + // The event type for a repository sync event. + // + // Type is a required field + Type *string `type:"string" required:"true"` } // String returns the string representation. @@ -1529,7 +5782,7 @@ type CreateHostOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateHostOutput) String() string { +func (s RepositorySyncEvent) String() string { return awsutil.Prettify(s) } @@ -1538,31 +5791,40 @@ func (s CreateHostOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateHostOutput) GoString() string { +func (s RepositorySyncEvent) GoString() string { return s.String() } -// SetHostArn sets the HostArn field's value. -func (s *CreateHostOutput) SetHostArn(v string) *CreateHostOutput { - s.HostArn = &v +// SetEvent sets the Event field's value. +func (s *RepositorySyncEvent) SetEvent(v string) *RepositorySyncEvent { + s.Event = &v return s } -// SetTags sets the Tags field's value. -func (s *CreateHostOutput) SetTags(v []*Tag) *CreateHostOutput { - s.Tags = v +// SetExternalId sets the ExternalId field's value. +func (s *RepositorySyncEvent) SetExternalId(v string) *RepositorySyncEvent { + s.ExternalId = &v return s } -type DeleteConnectionInput struct { - _ struct{} `type:"structure"` +// SetTime sets the Time field's value. +func (s *RepositorySyncEvent) SetTime(v time.Time) *RepositorySyncEvent { + s.Time = &v + return s +} - // The Amazon Resource Name (ARN) of the connection to be deleted. - // - // The ARN is never reused if the connection is deleted. - // - // ConnectionArn is a required field - ConnectionArn *string `type:"string" required:"true"` +// SetType sets the Type field's value. +func (s *RepositorySyncEvent) SetType(v string) *RepositorySyncEvent { + s.Type = &v + return s +} + +// Unable to create resource. Resource already exists. +type ResourceAlreadyExistsException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation. @@ -1570,7 +5832,7 @@ type DeleteConnectionInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteConnectionInput) String() string { +func (s ResourceAlreadyExistsException) String() string { return awsutil.Prettify(s) } @@ -1579,58 +5841,54 @@ func (s DeleteConnectionInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteConnectionInput) GoString() string { +func (s ResourceAlreadyExistsException) 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"} - if s.ConnectionArn == nil { - invalidParams.Add(request.NewErrParamRequired("ConnectionArn")) +func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error { + return &ResourceAlreadyExistsException{ + RespMetadata: v, } +} - if invalidParams.Len() > 0 { - return invalidParams +// Code returns the exception type name. +func (s *ResourceAlreadyExistsException) Code() string { + return "ResourceAlreadyExistsException" +} + +// Message returns the exception's message. +func (s *ResourceAlreadyExistsException) Message() string { + if s.Message_ != nil { + return *s.Message_ } - return nil + return "" } -// SetConnectionArn sets the ConnectionArn field's value. -func (s *DeleteConnectionInput) SetConnectionArn(v string) *DeleteConnectionInput { - s.ConnectionArn = &v - return s +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceAlreadyExistsException) OrigErr() error { + return nil } -type DeleteConnectionOutput struct { - _ struct{} `type:"structure"` +func (s *ResourceAlreadyExistsException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s DeleteConnectionOutput) String() string { - return awsutil.Prettify(s) +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceAlreadyExistsException) StatusCode() int { + return s.RespMetadata.StatusCode } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s DeleteConnectionOutput) GoString() string { - return s.String() +// RequestID returns the service's response RequestID for request. +func (s *ResourceAlreadyExistsException) RequestID() string { + return s.RespMetadata.RequestID } -type DeleteHostInput struct { - _ struct{} `type:"structure"` +// Resource not found. Verify the connection resource ARN and try again. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - // The Amazon Resource Name (ARN) of the host to be deleted. - // - // HostArn is a required field - HostArn *string `type:"string" required:"true"` + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation. @@ -1638,7 +5896,7 @@ type DeleteHostInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteHostInput) String() string { +func (s ResourceNotFoundException) String() string { return awsutil.Prettify(s) } @@ -1647,31 +5905,93 @@ func (s DeleteHostInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteHostInput) GoString() string { +func (s ResourceNotFoundException) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteHostInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteHostInput"} - if s.HostArn == nil { - invalidParams.Add(request.NewErrParamRequired("HostArn")) +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, } +} - if invalidParams.Len() > 0 { - return invalidParams +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { return nil } -// SetHostArn sets the HostArn field's value. -func (s *DeleteHostInput) SetHostArn(v string) *DeleteHostInput { - s.HostArn = &v - return s +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID } -type DeleteHostOutput struct { - _ struct{} `type:"structure"` +// Information about a resource sync attempt. +type ResourceSyncAttempt struct { + _ struct{} `type:"structure"` + + // The events related to a resource sync attempt. + // + // Events is a required field + Events []*ResourceSyncEvent `type:"list" required:"true"` + + // The current state of the resource as defined in the resource's config-file + // in the linked repository. + // + // InitialRevision is a required field + InitialRevision *Revision `type:"structure" required:"true"` + + // The start time for a resource sync attempt. + // + // StartedAt is a required field + StartedAt *time.Time `type:"timestamp" required:"true"` + + // The status for a resource sync attempt. The follow are valid statuses: + // + // * SYNC-INITIATED - A resource sync attempt has been created and will begin + // soon. + // + // * SYNCING - Syncing has started and work is being done to reconcile state. + // + // * SYNCED - Syncing has completed successfully. + // + // * SYNC_FAILED - A resource sync attempt has failed. + // + // Status is a required field + Status *string `type:"string" required:"true" enum:"ResourceSyncStatus"` + + // The name of the Amazon Web Services resource that is attempted to be synchronized. + // + // Target is a required field + Target *string `type:"string" required:"true"` + + // The desired state of the resource as defined in the resource's config-file + // in the linked repository. Git sync attempts to update the resource to this + // state. + // + // TargetRevision is a required field + TargetRevision *Revision `type:"structure" required:"true"` } // String returns the string representation. @@ -1679,7 +5999,7 @@ type DeleteHostOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteHostOutput) String() string { +func (s ResourceSyncAttempt) String() string { return awsutil.Prettify(s) } @@ -1688,17 +6008,68 @@ func (s DeleteHostOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteHostOutput) GoString() string { +func (s ResourceSyncAttempt) GoString() string { return s.String() } -type GetConnectionInput struct { +// SetEvents sets the Events field's value. +func (s *ResourceSyncAttempt) SetEvents(v []*ResourceSyncEvent) *ResourceSyncAttempt { + s.Events = v + return s +} + +// SetInitialRevision sets the InitialRevision field's value. +func (s *ResourceSyncAttempt) SetInitialRevision(v *Revision) *ResourceSyncAttempt { + s.InitialRevision = v + return s +} + +// SetStartedAt sets the StartedAt field's value. +func (s *ResourceSyncAttempt) SetStartedAt(v time.Time) *ResourceSyncAttempt { + s.StartedAt = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *ResourceSyncAttempt) SetStatus(v string) *ResourceSyncAttempt { + s.Status = &v + return s +} + +// SetTarget sets the Target field's value. +func (s *ResourceSyncAttempt) SetTarget(v string) *ResourceSyncAttempt { + s.Target = &v + return s +} + +// SetTargetRevision sets the TargetRevision field's value. +func (s *ResourceSyncAttempt) SetTargetRevision(v *Revision) *ResourceSyncAttempt { + s.TargetRevision = v + return s +} + +// Information about a resource sync event for the resource associated with +// a sync configuration. +type ResourceSyncEvent struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of a connection. + // The event for a resource sync event. // - // ConnectionArn is a required field - ConnectionArn *string `type:"string" required:"true"` + // Event is a required field + Event *string `type:"string" required:"true"` + + // The ID for a resource sync event. + ExternalId *string `type:"string"` + + // The time that a resource sync event occurred. + // + // Time is a required field + Time *time.Time `type:"timestamp" required:"true"` + + // The type of resource sync event. + // + // Type is a required field + Type *string `type:"string" required:"true"` } // String returns the string representation. @@ -1706,7 +6077,7 @@ type GetConnectionInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetConnectionInput) String() string { +func (s ResourceSyncEvent) String() string { return awsutil.Prettify(s) } @@ -1715,34 +6086,40 @@ func (s GetConnectionInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetConnectionInput) GoString() string { +func (s ResourceSyncEvent) 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"} - if s.ConnectionArn == nil { - invalidParams.Add(request.NewErrParamRequired("ConnectionArn")) - } +// SetEvent sets the Event field's value. +func (s *ResourceSyncEvent) SetEvent(v string) *ResourceSyncEvent { + s.Event = &v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetExternalId sets the ExternalId field's value. +func (s *ResourceSyncEvent) SetExternalId(v string) *ResourceSyncEvent { + s.ExternalId = &v + return s } -// SetConnectionArn sets the ConnectionArn field's value. -func (s *GetConnectionInput) SetConnectionArn(v string) *GetConnectionInput { - s.ConnectionArn = &v +// SetTime sets the Time field's value. +func (s *ResourceSyncEvent) SetTime(v time.Time) *ResourceSyncEvent { + s.Time = &v return s } -type GetConnectionOutput struct { - _ struct{} `type:"structure"` +// SetType sets the Type field's value. +func (s *ResourceSyncEvent) SetType(v string) *ResourceSyncEvent { + s.Type = &v + return s +} - // The connection details, such as status, owner, and provider type. - Connection *Connection `type:"structure"` +// Resource not found. Verify the ARN for the host resource and try again. +type ResourceUnavailableException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation. @@ -1750,7 +6127,7 @@ type GetConnectionOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetConnectionOutput) String() string { +func (s ResourceUnavailableException) String() string { return awsutil.Prettify(s) } @@ -1759,23 +6136,54 @@ func (s GetConnectionOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetConnectionOutput) GoString() string { +func (s ResourceUnavailableException) GoString() string { return s.String() } -// SetConnection sets the Connection field's value. -func (s *GetConnectionOutput) SetConnection(v *Connection) *GetConnectionOutput { - s.Connection = v - return s +func newErrorResourceUnavailableException(v protocol.ResponseMetadata) error { + return &ResourceUnavailableException{ + RespMetadata: v, + } } -type GetHostInput struct { - _ struct{} `type:"structure"` +// Code returns the exception type name. +func (s *ResourceUnavailableException) Code() string { + return "ResourceUnavailableException" +} - // The Amazon Resource Name (ARN) of the requested host. - // - // HostArn is a required field - HostArn *string `type:"string" required:"true"` +// Message returns the exception's message. +func (s *ResourceUnavailableException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceUnavailableException) OrigErr() error { + return nil +} + +func (s *ResourceUnavailableException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceUnavailableException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceUnavailableException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Retrying the latest commit failed. Try again later. +type RetryLatestCommitFailedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation. @@ -1783,7 +6191,7 @@ type GetHostInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetHostInput) String() string { +func (s RetryLatestCommitFailedException) String() string { return awsutil.Prettify(s) } @@ -1792,46 +6200,83 @@ func (s GetHostInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetHostInput) GoString() string { +func (s RetryLatestCommitFailedException) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetHostInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetHostInput"} - if s.HostArn == nil { - invalidParams.Add(request.NewErrParamRequired("HostArn")) +func newErrorRetryLatestCommitFailedException(v protocol.ResponseMetadata) error { + return &RetryLatestCommitFailedException{ + RespMetadata: v, } +} - if invalidParams.Len() > 0 { - return invalidParams +// Code returns the exception type name. +func (s *RetryLatestCommitFailedException) Code() string { + return "RetryLatestCommitFailedException" +} + +// Message returns the exception's message. +func (s *RetryLatestCommitFailedException) Message() string { + if s.Message_ != nil { + return *s.Message_ } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *RetryLatestCommitFailedException) OrigErr() error { return nil } -// SetHostArn sets the HostArn field's value. -func (s *GetHostInput) SetHostArn(v string) *GetHostInput { - s.HostArn = &v - return s +func (s *RetryLatestCommitFailedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } -type GetHostOutput struct { +// Status code returns the HTTP status code for the request's response error. +func (s *RetryLatestCommitFailedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *RetryLatestCommitFailedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Information about the revision for a specific sync event, such as the branch, +// owner ID, and name of the repository. +type Revision struct { _ struct{} `type:"structure"` - // The name of the requested host. - Name *string `min:"1" type:"string"` + // The branch name for a specific revision. + // + // Branch is a required field + Branch *string `min:"1" type:"string" required:"true"` - // The endpoint of the infrastructure represented by the requested host. - ProviderEndpoint *string `min:"1" type:"string"` + // The directory, if any, for a specific revision. + // + // Directory is a required field + Directory *string `type:"string" required:"true"` - // The provider type of the requested host, such as GitHub Enterprise Server. - ProviderType *string `type:"string" enum:"ProviderType"` + // The owner ID for a specific revision, such as the GitHub owner ID for a GitHub + // repository. + // + // OwnerId is a required field + OwnerId *string `min:"1" type:"string" required:"true"` - // The status of the requested host. - Status *string `min:"1" type:"string"` + // The provider type for a revision, such as GitHub. + // + // ProviderType is a required field + ProviderType *string `type:"string" required:"true" enum:"ProviderType"` - // The VPC configuration of the requested host. - VpcConfiguration *VpcConfiguration `type:"structure"` + // The repository name for a specific revision. + // + // RepositoryName is a required field + RepositoryName *string `min:"1" type:"string" required:"true"` + + // The SHA, such as the commit ID, for a specific revision. + // + // Sha is a required field + Sha *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -1839,7 +6284,7 @@ type GetHostOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetHostOutput) String() string { +func (s Revision) String() string { return awsutil.Prettify(s) } @@ -1848,73 +6293,83 @@ func (s GetHostOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetHostOutput) GoString() string { +func (s Revision) GoString() string { return s.String() } -// SetName sets the Name field's value. -func (s *GetHostOutput) SetName(v string) *GetHostOutput { - s.Name = &v +// SetBranch sets the Branch field's value. +func (s *Revision) SetBranch(v string) *Revision { + s.Branch = &v return s } -// SetProviderEndpoint sets the ProviderEndpoint field's value. -func (s *GetHostOutput) SetProviderEndpoint(v string) *GetHostOutput { - s.ProviderEndpoint = &v +// SetDirectory sets the Directory field's value. +func (s *Revision) SetDirectory(v string) *Revision { + s.Directory = &v + return s +} + +// SetOwnerId sets the OwnerId field's value. +func (s *Revision) SetOwnerId(v string) *Revision { + s.OwnerId = &v return s } // SetProviderType sets the ProviderType field's value. -func (s *GetHostOutput) SetProviderType(v string) *GetHostOutput { +func (s *Revision) SetProviderType(v string) *Revision { s.ProviderType = &v return s } -// SetStatus sets the Status field's value. -func (s *GetHostOutput) SetStatus(v string) *GetHostOutput { - s.Status = &v +// SetRepositoryName sets the RepositoryName field's value. +func (s *Revision) SetRepositoryName(v string) *Revision { + s.RepositoryName = &v return s } -// SetVpcConfiguration sets the VpcConfiguration field's value. -func (s *GetHostOutput) SetVpcConfiguration(v *VpcConfiguration) *GetHostOutput { - s.VpcConfiguration = v +// SetSha sets the Sha field's value. +func (s *Revision) SetSha(v string) *Revision { + s.Sha = &v return s } -// A resource that represents the infrastructure where a third-party provider -// is installed. The host is used when you create connections to an installed -// third-party provider type, such as GitHub Enterprise Server. You create one -// host for all connections to that provider. -// -// A host created through the CLI or the SDK is in `PENDING` status by default. -// You can make its status `AVAILABLE` by setting up the host in the console. -type Host struct { +// Information about a blocker for a sync event. +type SyncBlocker struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the host. - HostArn *string `type:"string"` + // The contexts for a specific sync blocker. + Contexts []*SyncBlockerContext `type:"list"` - // The name of the host. - Name *string `min:"1" type:"string"` + // The creation time for a specific sync blocker. + // + // CreatedAt is a required field + CreatedAt *time.Time `type:"timestamp" required:"true"` - // The endpoint of the infrastructure where your provider type is installed. - ProviderEndpoint *string `min:"1" type:"string"` + // The provided reason for a specific sync blocker. + // + // CreatedReason is a required field + CreatedReason *string `type:"string" required:"true"` - // The name of the installed provider to be associated with your connection. - // The host resource represents the infrastructure where your provider type - // is installed. The valid provider type is GitHub Enterprise Server. - ProviderType *string `type:"string" enum:"ProviderType"` + // The ID for a specific sync blocker. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` - // The status of the host, such as PENDING, AVAILABLE, VPC_CONFIG_DELETING, - // VPC_CONFIG_INITIALIZING, and VPC_CONFIG_FAILED_INITIALIZATION. - Status *string `min:"1" type:"string"` + // The time that a specific sync blocker was resolved. + ResolvedAt *time.Time `type:"timestamp"` - // The status description for the host. - StatusMessage *string `type:"string"` + // The resolved reason for a specific sync blocker. + ResolvedReason *string `min:"1" type:"string"` - // The VPC configuration provisioned for the host. - VpcConfiguration *VpcConfiguration `type:"structure"` + // The status for a specific sync blocker. + // + // Status is a required field + Status *string `type:"string" required:"true" enum:"BlockerStatus"` + + // The sync blocker type. + // + // Type is a required field + Type *string `type:"string" required:"true" enum:"BlockerType"` } // String returns the string representation. @@ -1922,7 +6377,7 @@ type Host struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Host) String() string { +func (s SyncBlocker) String() string { return awsutil.Prettify(s) } @@ -1931,54 +6386,105 @@ func (s Host) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Host) GoString() string { +func (s SyncBlocker) GoString() string { return s.String() } -// SetHostArn sets the HostArn field's value. -func (s *Host) SetHostArn(v string) *Host { - s.HostArn = &v +// SetContexts sets the Contexts field's value. +func (s *SyncBlocker) SetContexts(v []*SyncBlockerContext) *SyncBlocker { + s.Contexts = v return s } -// SetName sets the Name field's value. -func (s *Host) SetName(v string) *Host { - s.Name = &v +// SetCreatedAt sets the CreatedAt field's value. +func (s *SyncBlocker) SetCreatedAt(v time.Time) *SyncBlocker { + s.CreatedAt = &v return s } -// SetProviderEndpoint sets the ProviderEndpoint field's value. -func (s *Host) SetProviderEndpoint(v string) *Host { - s.ProviderEndpoint = &v +// SetCreatedReason sets the CreatedReason field's value. +func (s *SyncBlocker) SetCreatedReason(v string) *SyncBlocker { + s.CreatedReason = &v + return s +} + +// SetId sets the Id field's value. +func (s *SyncBlocker) SetId(v string) *SyncBlocker { + s.Id = &v + return s +} + +// SetResolvedAt sets the ResolvedAt field's value. +func (s *SyncBlocker) SetResolvedAt(v time.Time) *SyncBlocker { + s.ResolvedAt = &v return s } -// SetProviderType sets the ProviderType field's value. -func (s *Host) SetProviderType(v string) *Host { - s.ProviderType = &v - return s +// SetResolvedReason sets the ResolvedReason field's value. +func (s *SyncBlocker) SetResolvedReason(v string) *SyncBlocker { + s.ResolvedReason = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *SyncBlocker) SetStatus(v string) *SyncBlocker { + s.Status = &v + return s +} + +// SetType sets the Type field's value. +func (s *SyncBlocker) SetType(v string) *SyncBlocker { + s.Type = &v + return s +} + +// The context for a specific sync blocker. +type SyncBlockerContext struct { + _ struct{} `type:"structure"` + + // The key provided for a context key-value pair for a specific sync blocker. + // + // Key is a required field + Key *string `type:"string" required:"true"` + + // The value provided for a context key-value pair for a specific sync blocker. + // + // Value is a required field + Value *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SyncBlockerContext) String() string { + return awsutil.Prettify(s) } -// SetStatus sets the Status field's value. -func (s *Host) SetStatus(v string) *Host { - s.Status = &v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SyncBlockerContext) GoString() string { + return s.String() } -// SetStatusMessage sets the StatusMessage field's value. -func (s *Host) SetStatusMessage(v string) *Host { - s.StatusMessage = &v +// SetKey sets the Key field's value. +func (s *SyncBlockerContext) SetKey(v string) *SyncBlockerContext { + s.Key = &v return s } -// SetVpcConfiguration sets the VpcConfiguration field's value. -func (s *Host) SetVpcConfiguration(v *VpcConfiguration) *Host { - s.VpcConfiguration = v +// SetValue sets the Value field's value. +func (s *SyncBlockerContext) SetValue(v string) *SyncBlockerContext { + s.Value = &v return s } -// Exceeded the maximum limit for connections. -type LimitExceededException struct { +// Unable to continue. The sync blocker does not exist. +type SyncBlockerDoesNotExistException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -1990,7 +6496,7 @@ type LimitExceededException struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LimitExceededException) String() string { +func (s SyncBlockerDoesNotExistException) String() string { return awsutil.Prettify(s) } @@ -1999,23 +6505,23 @@ func (s LimitExceededException) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LimitExceededException) GoString() string { +func (s SyncBlockerDoesNotExistException) GoString() string { return s.String() } -func newErrorLimitExceededException(v protocol.ResponseMetadata) error { - return &LimitExceededException{ +func newErrorSyncBlockerDoesNotExistException(v protocol.ResponseMetadata) error { + return &SyncBlockerDoesNotExistException{ RespMetadata: v, } } // Code returns the exception type name. -func (s *LimitExceededException) Code() string { - return "LimitExceededException" +func (s *SyncBlockerDoesNotExistException) Code() string { + return "SyncBlockerDoesNotExistException" } // Message returns the exception's message. -func (s *LimitExceededException) Message() string { +func (s *SyncBlockerDoesNotExistException) Message() string { if s.Message_ != nil { return *s.Message_ } @@ -2023,41 +6529,38 @@ func (s *LimitExceededException) Message() string { } // OrigErr always returns nil, satisfies awserr.Error interface. -func (s *LimitExceededException) OrigErr() error { +func (s *SyncBlockerDoesNotExistException) OrigErr() error { return nil } -func (s *LimitExceededException) Error() string { +func (s *SyncBlockerDoesNotExistException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. -func (s *LimitExceededException) StatusCode() int { +func (s *SyncBlockerDoesNotExistException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. -func (s *LimitExceededException) RequestID() string { +func (s *SyncBlockerDoesNotExistException) RequestID() string { return s.RespMetadata.RequestID } -type ListConnectionsInput struct { +// A summary for sync blockers. +type SyncBlockerSummary struct { _ struct{} `type:"structure"` - // Filters the list of connections to those associated with a specified host. - HostArnFilter *string `type:"string"` - - // The maximum number of results to return in a single call. To retrieve the - // remaining results, make another call with the returned nextToken value. - MaxResults *int64 `type:"integer"` + // The latest events for a sync blocker summary. + LatestBlockers []*SyncBlocker `type:"list"` - // The token that was returned from the previous ListConnections call, which - // can be used to return the next set of connections in the list. - NextToken *string `min:"1" type:"string"` + // The parent resource name for a sync blocker summary. + ParentResourceName *string `min:"1" type:"string"` - // Filters the list of connections to those associated with a specified provider, - // such as Bitbucket. - ProviderTypeFilter *string `type:"string" enum:"ProviderType"` + // The resource name for sync blocker summary. + // + // ResourceName is a required field + ResourceName *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -2065,7 +6568,7 @@ type ListConnectionsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListConnectionsInput) String() string { +func (s SyncBlockerSummary) String() string { return awsutil.Prettify(s) } @@ -2074,58 +6577,80 @@ func (s ListConnectionsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListConnectionsInput) GoString() string { +func (s SyncBlockerSummary) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListConnectionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListConnectionsInput"} - if s.NextToken != nil && len(*s.NextToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetHostArnFilter sets the HostArnFilter field's value. -func (s *ListConnectionsInput) SetHostArnFilter(v string) *ListConnectionsInput { - s.HostArnFilter = &v +// SetLatestBlockers sets the LatestBlockers field's value. +func (s *SyncBlockerSummary) SetLatestBlockers(v []*SyncBlocker) *SyncBlockerSummary { + s.LatestBlockers = v return s } -// SetMaxResults sets the MaxResults field's value. -func (s *ListConnectionsInput) SetMaxResults(v int64) *ListConnectionsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListConnectionsInput) SetNextToken(v string) *ListConnectionsInput { - s.NextToken = &v +// SetParentResourceName sets the ParentResourceName field's value. +func (s *SyncBlockerSummary) SetParentResourceName(v string) *SyncBlockerSummary { + s.ParentResourceName = &v return s } -// SetProviderTypeFilter sets the ProviderTypeFilter field's value. -func (s *ListConnectionsInput) SetProviderTypeFilter(v string) *ListConnectionsInput { - s.ProviderTypeFilter = &v +// SetResourceName sets the ResourceName field's value. +func (s *SyncBlockerSummary) SetResourceName(v string) *SyncBlockerSummary { + s.ResourceName = &v return s } -type ListConnectionsOutput struct { +// Information, such as repository, branch, provider, and resource names for +// a specific sync configuration. +type SyncConfiguration struct { _ struct{} `type:"structure"` - // A list of connections and the details for each connection, such as status, - // owner, and provider type. - Connections []*Connection `type:"list"` + // The branch associated with a specific sync configuration. + // + // Branch is a required field + Branch *string `min:"1" type:"string" required:"true"` - // A token that can be used in the next ListConnections call. To view all items - // in the list, continue to call this operation with each subsequent token until - // no more nextToken values are returned. - NextToken *string `min:"1" type:"string"` + // The file path to the configuration file associated with a specific sync configuration. + // The path should point to an actual file in the sync configurations linked + // repository. + ConfigFile *string `type:"string"` + + // The owner ID for the repository associated with a specific sync configuration, + // such as the owner ID in GitHub. + // + // OwnerId is a required field + OwnerId *string `min:"1" type:"string" required:"true"` + + // The connection provider type associated with a specific sync configuration, + // such as GitHub. + // + // ProviderType is a required field + ProviderType *string `type:"string" required:"true" enum:"ProviderType"` + + // The ID of the repository link associated with a specific sync configuration. + // + // RepositoryLinkId is a required field + RepositoryLinkId *string `type:"string" required:"true"` + + // The name of the repository associated with a specific sync configuration. + // + // RepositoryName is a required field + RepositoryName *string `min:"1" type:"string" required:"true"` + + // The name of the connection resource associated with a specific sync configuration. + // + // ResourceName is a required field + ResourceName *string `min:"1" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the IAM role associated with a specific + // sync configuration. + // + // RoleArn is a required field + RoleArn *string `min:"1" type:"string" required:"true"` + + // The type of sync for a specific sync configuration. + // + // SyncType is a required field + SyncType *string `type:"string" required:"true" enum:"SyncConfigurationType"` } // String returns the string representation. @@ -2133,7 +6658,7 @@ type ListConnectionsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListConnectionsOutput) String() string { +func (s SyncConfiguration) String() string { return awsutil.Prettify(s) } @@ -2142,32 +6667,70 @@ func (s ListConnectionsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListConnectionsOutput) GoString() string { +func (s SyncConfiguration) GoString() string { return s.String() } -// SetConnections sets the Connections field's value. -func (s *ListConnectionsOutput) SetConnections(v []*Connection) *ListConnectionsOutput { - s.Connections = v +// SetBranch sets the Branch field's value. +func (s *SyncConfiguration) SetBranch(v string) *SyncConfiguration { + s.Branch = &v return s } -// SetNextToken sets the NextToken field's value. -func (s *ListConnectionsOutput) SetNextToken(v string) *ListConnectionsOutput { - s.NextToken = &v +// SetConfigFile sets the ConfigFile field's value. +func (s *SyncConfiguration) SetConfigFile(v string) *SyncConfiguration { + s.ConfigFile = &v return s } -type ListHostsInput struct { - _ struct{} `type:"structure"` +// SetOwnerId sets the OwnerId field's value. +func (s *SyncConfiguration) SetOwnerId(v string) *SyncConfiguration { + s.OwnerId = &v + return s +} - // The maximum number of results to return in a single call. To retrieve the - // remaining results, make another call with the returned nextToken value. - MaxResults *int64 `type:"integer"` +// SetProviderType sets the ProviderType field's value. +func (s *SyncConfiguration) SetProviderType(v string) *SyncConfiguration { + s.ProviderType = &v + return s +} - // The token that was returned from the previous ListHosts call, which can be - // used to return the next set of hosts in the list. - NextToken *string `min:"1" type:"string"` +// SetRepositoryLinkId sets the RepositoryLinkId field's value. +func (s *SyncConfiguration) SetRepositoryLinkId(v string) *SyncConfiguration { + s.RepositoryLinkId = &v + return s +} + +// SetRepositoryName sets the RepositoryName field's value. +func (s *SyncConfiguration) SetRepositoryName(v string) *SyncConfiguration { + s.RepositoryName = &v + return s +} + +// SetResourceName sets the ResourceName field's value. +func (s *SyncConfiguration) SetResourceName(v string) *SyncConfiguration { + s.ResourceName = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *SyncConfiguration) SetRoleArn(v string) *SyncConfiguration { + s.RoleArn = &v + return s +} + +// SetSyncType sets the SyncType field's value. +func (s *SyncConfiguration) SetSyncType(v string) *SyncConfiguration { + s.SyncType = &v + return s +} + +// Unable to continue. The sync blocker still exists. +type SyncConfigurationStillExistsException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation. @@ -2175,7 +6738,7 @@ type ListHostsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListHostsInput) String() string { +func (s SyncConfigurationStillExistsException) String() string { return awsutil.Prettify(s) } @@ -2184,46 +6747,64 @@ func (s ListHostsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListHostsInput) GoString() string { +func (s SyncConfigurationStillExistsException) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListHostsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListHostsInput"} - if s.NextToken != nil && len(*s.NextToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) +func newErrorSyncConfigurationStillExistsException(v protocol.ResponseMetadata) error { + return &SyncConfigurationStillExistsException{ + RespMetadata: v, } +} - if invalidParams.Len() > 0 { - return invalidParams +// Code returns the exception type name. +func (s *SyncConfigurationStillExistsException) Code() string { + return "SyncConfigurationStillExistsException" +} + +// Message returns the exception's message. +func (s *SyncConfigurationStillExistsException) Message() string { + if s.Message_ != nil { + return *s.Message_ } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *SyncConfigurationStillExistsException) OrigErr() error { return nil } -// SetMaxResults sets the MaxResults field's value. -func (s *ListHostsInput) SetMaxResults(v int64) *ListHostsInput { - s.MaxResults = &v - return s +func (s *SyncConfigurationStillExistsException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } -// SetNextToken sets the NextToken field's value. -func (s *ListHostsInput) SetNextToken(v string) *ListHostsInput { - s.NextToken = &v - return s +// Status code returns the HTTP status code for the request's response error. +func (s *SyncConfigurationStillExistsException) StatusCode() int { + return s.RespMetadata.StatusCode } -type ListHostsOutput struct { +// RequestID returns the service's response RequestID for request. +func (s *SyncConfigurationStillExistsException) RequestID() string { + return s.RespMetadata.RequestID +} + +// A tag is a key-value pair that is used to manage the resource. +// +// This tag is available for use by Amazon Web Services services that support +// tags. +type Tag struct { _ struct{} `type:"structure"` - // A list of hosts and the details for each host, such as status, endpoint, - // and provider type. - Hosts []*Host `type:"list"` + // The tag's key. + // + // Key is a required field + Key *string `min:"1" type:"string" required:"true"` - // A token that can be used in the next ListHosts call. To view all items in - // the list, continue to call this operation with each subsequent token until - // no more nextToken values are returned. - NextToken *string `min:"1" type:"string"` + // The tag's value. + // + // Value is a required field + Value *string `type:"string" required:"true"` } // String returns the string representation. @@ -2231,7 +6812,7 @@ type ListHostsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListHostsOutput) String() string { +func (s Tag) String() string { return awsutil.Prettify(s) } @@ -2240,30 +6821,54 @@ func (s ListHostsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListHostsOutput) GoString() string { +func (s Tag) GoString() string { return s.String() } -// SetHosts sets the Hosts field's value. -func (s *ListHostsOutput) SetHosts(v []*Host) *ListHostsOutput { - s.Hosts = v +// 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 { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *Tag) SetKey(v string) *Tag { + s.Key = &v return s } -// SetNextToken sets the NextToken field's value. -func (s *ListHostsOutput) SetNextToken(v string) *ListHostsOutput { - s.NextToken = &v +// SetValue sets the Value field's value. +func (s *Tag) SetValue(v string) *Tag { + s.Value = &v return s } -type ListTagsForResourceInput struct { +type TagResourceInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the resource for which you want to get - // information about tags, if any. + // The Amazon Resource Name (ARN) of the resource to which you want to add or + // update tags. // // ResourceArn is a required field ResourceArn *string `min:"1" type:"string" required:"true"` + + // The tags you want to modify or add to the resource. + // + // Tags is a required field + Tags []*Tag `type:"list" required:"true"` } // String returns the string representation. @@ -2271,7 +6876,7 @@ type ListTagsForResourceInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListTagsForResourceInput) String() string { +func (s TagResourceInput) String() string { return awsutil.Prettify(s) } @@ -2280,19 +6885,32 @@ func (s ListTagsForResourceInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListTagsForResourceInput) GoString() string { +func (s TagResourceInput) 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"} +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 @@ -2301,16 +6919,45 @@ func (s *ListTagsForResourceInput) Validate() error { } // SetResourceArn sets the ResourceArn field's value. -func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { +func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { s.ResourceArn = &v return s } -type ListTagsForResourceOutput struct { +// 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"` +} - // A list of tag key and value pairs associated with the specified resource. - Tags []*Tag `type:"list"` +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) GoString() string { + return s.String() +} + +// The request was denied due to request throttling. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation. @@ -2318,7 +6965,7 @@ type ListTagsForResourceOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListTagsForResourceOutput) String() string { +func (s ThrottlingException) String() string { return awsutil.Prettify(s) } @@ -2327,18 +6974,50 @@ func (s ListTagsForResourceOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListTagsForResourceOutput) GoString() string { +func (s ThrottlingException) GoString() string { return s.String() } -// SetTags sets the Tags field's value. -func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput { - s.Tags = v - return s +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } } -// Resource not found. Verify the connection resource ARN and try again. -type ResourceNotFoundException struct { +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The operation is not supported. Check the connection status and try again. +type UnsupportedOperationException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -2350,7 +7029,7 @@ type ResourceNotFoundException struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ResourceNotFoundException) String() string { +func (s UnsupportedOperationException) String() string { return awsutil.Prettify(s) } @@ -2359,23 +7038,23 @@ func (s ResourceNotFoundException) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ResourceNotFoundException) GoString() string { +func (s UnsupportedOperationException) GoString() string { return s.String() } -func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { - return &ResourceNotFoundException{ +func newErrorUnsupportedOperationException(v protocol.ResponseMetadata) error { + return &UnsupportedOperationException{ RespMetadata: v, } } // Code returns the exception type name. -func (s *ResourceNotFoundException) Code() string { - return "ResourceNotFoundException" +func (s *UnsupportedOperationException) Code() string { + return "UnsupportedOperationException" } // Message returns the exception's message. -func (s *ResourceNotFoundException) Message() string { +func (s *UnsupportedOperationException) Message() string { if s.Message_ != nil { return *s.Message_ } @@ -2383,26 +7062,26 @@ func (s *ResourceNotFoundException) Message() string { } // OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceNotFoundException) OrigErr() error { +func (s *UnsupportedOperationException) OrigErr() error { return nil } -func (s *ResourceNotFoundException) Error() string { +func (s *UnsupportedOperationException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. -func (s *ResourceNotFoundException) StatusCode() int { +func (s *UnsupportedOperationException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. -func (s *ResourceNotFoundException) RequestID() string { +func (s *UnsupportedOperationException) RequestID() string { return s.RespMetadata.RequestID } -// Resource not found. Verify the ARN for the host resource and try again. -type ResourceUnavailableException struct { +// The specified provider type is not supported for connections. +type UnsupportedProviderTypeException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -2414,7 +7093,7 @@ type ResourceUnavailableException struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ResourceUnavailableException) String() string { +func (s UnsupportedProviderTypeException) String() string { return awsutil.Prettify(s) } @@ -2423,23 +7102,23 @@ func (s ResourceUnavailableException) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ResourceUnavailableException) GoString() string { +func (s UnsupportedProviderTypeException) GoString() string { return s.String() } -func newErrorResourceUnavailableException(v protocol.ResponseMetadata) error { - return &ResourceUnavailableException{ +func newErrorUnsupportedProviderTypeException(v protocol.ResponseMetadata) error { + return &UnsupportedProviderTypeException{ RespMetadata: v, } } // Code returns the exception type name. -func (s *ResourceUnavailableException) Code() string { - return "ResourceUnavailableException" +func (s *UnsupportedProviderTypeException) Code() string { + return "UnsupportedProviderTypeException" } // Message returns the exception's message. -func (s *ResourceUnavailableException) Message() string { +func (s *UnsupportedProviderTypeException) Message() string { if s.Message_ != nil { return *s.Message_ } @@ -2447,40 +7126,36 @@ func (s *ResourceUnavailableException) Message() string { } // OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceUnavailableException) OrigErr() error { +func (s *UnsupportedProviderTypeException) OrigErr() error { return nil } -func (s *ResourceUnavailableException) Error() string { +func (s *UnsupportedProviderTypeException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. -func (s *ResourceUnavailableException) StatusCode() int { +func (s *UnsupportedProviderTypeException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. -func (s *ResourceUnavailableException) RequestID() string { +func (s *UnsupportedProviderTypeException) RequestID() string { return s.RespMetadata.RequestID } -// A tag is a key-value pair that is used to manage the resource. -// -// This tag is available for use by Amazon Web Services services that support -// tags. -type Tag struct { +type UntagResourceInput struct { _ struct{} `type:"structure"` - // The tag's key. + // The Amazon Resource Name (ARN) of the resource to remove tags from. // - // Key is a required field - Key *string `min:"1" type:"string" required:"true"` + // ResourceArn is a required field + ResourceArn *string `min:"1" type:"string" required:"true"` - // The tag's value. + // The list of keys for the tags to be removed from the resource. // - // Value is a required field - Value *string `type:"string" required:"true"` + // TagKeys is a required field + TagKeys []*string `type:"list" required:"true"` } // String returns the string representation. @@ -2488,7 +7163,7 @@ type Tag struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Tag) String() string { +func (s UntagResourceInput) String() string { return awsutil.Prettify(s) } @@ -2497,21 +7172,21 @@ func (s Tag) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Tag) GoString() string { +func (s UntagResourceInput) 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 { - invalidParams.Add(request.NewErrParamRequired("Key")) +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) } - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) } if invalidParams.Len() > 0 { @@ -2520,31 +7195,55 @@ func (s *Tag) Validate() error { return nil } -// SetKey sets the Key field's value. -func (s *Tag) SetKey(v string) *Tag { - s.Key = &v +// SetResourceArn sets the ResourceArn field's value. +func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { + s.ResourceArn = &v return s } -// SetValue sets the Value field's value. -func (s *Tag) SetValue(v string) *Tag { - s.Value = &v +// SetTagKeys sets the TagKeys field's value. +func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { + s.TagKeys = v return s } -type TagResourceInput struct { +type UntagResourceOutput struct { _ struct{} `type:"structure"` +} - // The Amazon Resource Name (ARN) of the resource to which you want to add or - // update tags. - // - // ResourceArn is a required field - ResourceArn *string `min:"1" type:"string" required:"true"` +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} - // The tags you want to modify or add to the resource. +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) GoString() string { + return s.String() +} + +type UpdateHostInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the host to be updated. // - // Tags is a required field - Tags []*Tag `type:"list" required:"true"` + // HostArn is a required field + HostArn *string `type:"string" required:"true"` + + // The URL or endpoint of the host to be updated. + ProviderEndpoint *string `min:"1" type:"string"` + + // The VPC configuration of the host to be updated. A VPC must be configured + // and the infrastructure to be represented by the host must already be connected + // to the VPC. + VpcConfiguration *VpcConfiguration `type:"structure"` } // String returns the string representation. @@ -2552,7 +7251,7 @@ type TagResourceInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s TagResourceInput) String() string { +func (s UpdateHostInput) String() string { return awsutil.Prettify(s) } @@ -2561,30 +7260,22 @@ func (s TagResourceInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s TagResourceInput) GoString() string { +func (s UpdateHostInput) 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)) +func (s *UpdateHostInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateHostInput"} + if s.HostArn == nil { + invalidParams.Add(request.NewErrParamRequired("HostArn")) } - if s.Tags == nil { - invalidParams.Add(request.NewErrParamRequired("Tags")) + if s.ProviderEndpoint != nil && len(*s.ProviderEndpoint) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProviderEndpoint", 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 s.VpcConfiguration != nil { + if err := s.VpcConfiguration.Validate(); err != nil { + invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams)) } } @@ -2594,19 +7285,25 @@ func (s *TagResourceInput) Validate() error { return nil } -// SetResourceArn sets the ResourceArn field's value. -func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { - s.ResourceArn = &v +// SetHostArn sets the HostArn field's value. +func (s *UpdateHostInput) SetHostArn(v string) *UpdateHostInput { + s.HostArn = &v + return s +} + +// SetProviderEndpoint sets the ProviderEndpoint field's value. +func (s *UpdateHostInput) SetProviderEndpoint(v string) *UpdateHostInput { + s.ProviderEndpoint = &v return s } -// SetTags sets the Tags field's value. -func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput { - s.Tags = v +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *UpdateHostInput) SetVpcConfiguration(v *VpcConfiguration) *UpdateHostInput { + s.VpcConfiguration = v return s } -type TagResourceOutput struct { +type UpdateHostOutput struct { _ struct{} `type:"structure"` } @@ -2615,7 +7312,7 @@ type TagResourceOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s TagResourceOutput) String() string { +func (s UpdateHostOutput) String() string { return awsutil.Prettify(s) } @@ -2624,12 +7321,12 @@ func (s TagResourceOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s TagResourceOutput) GoString() string { +func (s UpdateHostOutput) GoString() string { return s.String() } -// The operation is not supported. Check the connection status and try again. -type UnsupportedOperationException struct { +// The update is out of sync. Try syncing again. +type UpdateOutOfSyncException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -2641,7 +7338,7 @@ type UnsupportedOperationException struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s UnsupportedOperationException) String() string { +func (s UpdateOutOfSyncException) String() string { return awsutil.Prettify(s) } @@ -2650,23 +7347,23 @@ func (s UnsupportedOperationException) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s UnsupportedOperationException) GoString() string { +func (s UpdateOutOfSyncException) GoString() string { return s.String() } -func newErrorUnsupportedOperationException(v protocol.ResponseMetadata) error { - return &UnsupportedOperationException{ +func newErrorUpdateOutOfSyncException(v protocol.ResponseMetadata) error { + return &UpdateOutOfSyncException{ RespMetadata: v, } } // Code returns the exception type name. -func (s *UnsupportedOperationException) Code() string { - return "UnsupportedOperationException" +func (s *UpdateOutOfSyncException) Code() string { + return "UpdateOutOfSyncException" } // Message returns the exception's message. -func (s *UnsupportedOperationException) Message() string { +func (s *UpdateOutOfSyncException) Message() string { if s.Message_ != nil { return *s.Message_ } @@ -2674,36 +7371,101 @@ func (s *UnsupportedOperationException) Message() string { } // OrigErr always returns nil, satisfies awserr.Error interface. -func (s *UnsupportedOperationException) OrigErr() error { +func (s *UpdateOutOfSyncException) OrigErr() error { return nil } -func (s *UnsupportedOperationException) Error() string { +func (s *UpdateOutOfSyncException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. -func (s *UnsupportedOperationException) StatusCode() int { +func (s *UpdateOutOfSyncException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. -func (s *UnsupportedOperationException) RequestID() string { +func (s *UpdateOutOfSyncException) RequestID() string { return s.RespMetadata.RequestID } -type UntagResourceInput struct { +type UpdateRepositoryLinkInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the resource to remove tags from. + // The Amazon Resource Name (ARN) of the connection for the repository link + // to be updated. The updated connection ARN must have the same providerType + // (such as GitHub) as the original connection ARN for the repo link. + ConnectionArn *string `type:"string"` + + // The Amazon Resource Name (ARN) of the encryption key for the repository link + // to be updated. + EncryptionKeyArn *string `min:"1" type:"string"` + + // The ID of the repository link to be updated. // - // ResourceArn is a required field - ResourceArn *string `min:"1" type:"string" required:"true"` + // RepositoryLinkId is a required field + RepositoryLinkId *string `type:"string" required:"true"` +} - // The list of keys for the tags to be removed from the resource. +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateRepositoryLinkInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateRepositoryLinkInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateRepositoryLinkInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateRepositoryLinkInput"} + if s.EncryptionKeyArn != nil && len(*s.EncryptionKeyArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EncryptionKeyArn", 1)) + } + if s.RepositoryLinkId == nil { + invalidParams.Add(request.NewErrParamRequired("RepositoryLinkId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConnectionArn sets the ConnectionArn field's value. +func (s *UpdateRepositoryLinkInput) SetConnectionArn(v string) *UpdateRepositoryLinkInput { + s.ConnectionArn = &v + return s +} + +// SetEncryptionKeyArn sets the EncryptionKeyArn field's value. +func (s *UpdateRepositoryLinkInput) SetEncryptionKeyArn(v string) *UpdateRepositoryLinkInput { + s.EncryptionKeyArn = &v + return s +} + +// SetRepositoryLinkId sets the RepositoryLinkId field's value. +func (s *UpdateRepositoryLinkInput) SetRepositoryLinkId(v string) *UpdateRepositoryLinkInput { + s.RepositoryLinkId = &v + return s +} + +type UpdateRepositoryLinkOutput struct { + _ struct{} `type:"structure"` + + // Information about the repository link to be updated. // - // TagKeys is a required field - TagKeys []*string `type:"list" required:"true"` + // RepositoryLinkInfo is a required field + RepositoryLinkInfo *RepositoryLinkInfo `type:"structure" required:"true"` } // String returns the string representation. @@ -2711,7 +7473,7 @@ type UntagResourceInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s UntagResourceInput) String() string { +func (s UpdateRepositoryLinkOutput) String() string { return awsutil.Prettify(s) } @@ -2720,21 +7482,81 @@ func (s UntagResourceInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s UntagResourceInput) GoString() string { +func (s UpdateRepositoryLinkOutput) GoString() string { + return s.String() +} + +// SetRepositoryLinkInfo sets the RepositoryLinkInfo field's value. +func (s *UpdateRepositoryLinkOutput) SetRepositoryLinkInfo(v *RepositoryLinkInfo) *UpdateRepositoryLinkOutput { + s.RepositoryLinkInfo = v + return s +} + +type UpdateSyncBlockerInput struct { + _ struct{} `type:"structure"` + + // The ID of the sync blocker to be updated. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The reason for resolving the sync blocker. + // + // ResolvedReason is a required field + ResolvedReason *string `min:"1" type:"string" required:"true"` + + // The name of the resource for the sync blocker to be updated. + // + // ResourceName is a required field + ResourceName *string `min:"1" type:"string" required:"true"` + + // The sync type of the sync blocker to be updated. + // + // SyncType is a required field + SyncType *string `type:"string" required:"true" enum:"SyncConfigurationType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSyncBlockerInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSyncBlockerInput) 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")) +func (s *UpdateSyncBlockerInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateSyncBlockerInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) } - if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) } - if s.TagKeys == nil { - invalidParams.Add(request.NewErrParamRequired("TagKeys")) + if s.ResolvedReason == nil { + invalidParams.Add(request.NewErrParamRequired("ResolvedReason")) + } + if s.ResolvedReason != nil && len(*s.ResolvedReason) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResolvedReason", 1)) + } + if s.ResourceName == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceName")) + } + if s.ResourceName != nil && len(*s.ResourceName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceName", 1)) + } + if s.SyncType == nil { + invalidParams.Add(request.NewErrParamRequired("SyncType")) } if invalidParams.Len() > 0 { @@ -2743,20 +7565,45 @@ func (s *UntagResourceInput) Validate() error { return nil } -// SetResourceArn sets the ResourceArn field's value. -func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { - s.ResourceArn = &v +// SetId sets the Id field's value. +func (s *UpdateSyncBlockerInput) SetId(v string) *UpdateSyncBlockerInput { + s.Id = &v return s } -// SetTagKeys sets the TagKeys field's value. -func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { - s.TagKeys = v +// SetResolvedReason sets the ResolvedReason field's value. +func (s *UpdateSyncBlockerInput) SetResolvedReason(v string) *UpdateSyncBlockerInput { + s.ResolvedReason = &v return s } -type UntagResourceOutput struct { +// SetResourceName sets the ResourceName field's value. +func (s *UpdateSyncBlockerInput) SetResourceName(v string) *UpdateSyncBlockerInput { + s.ResourceName = &v + return s +} + +// SetSyncType sets the SyncType field's value. +func (s *UpdateSyncBlockerInput) SetSyncType(v string) *UpdateSyncBlockerInput { + s.SyncType = &v + return s +} + +type UpdateSyncBlockerOutput struct { _ struct{} `type:"structure"` + + // The parent resource name for the sync blocker. + ParentResourceName *string `min:"1" type:"string"` + + // The resource name for the sync blocker. + // + // ResourceName is a required field + ResourceName *string `min:"1" type:"string" required:"true"` + + // Information about the sync blocker to be updated. + // + // SyncBlocker is a required field + SyncBlocker *SyncBlocker `type:"structure" required:"true"` } // String returns the string representation. @@ -2764,7 +7611,7 @@ type UntagResourceOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s UntagResourceOutput) String() string { +func (s UpdateSyncBlockerOutput) String() string { return awsutil.Prettify(s) } @@ -2773,25 +7620,53 @@ func (s UntagResourceOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s UntagResourceOutput) GoString() string { +func (s UpdateSyncBlockerOutput) GoString() string { return s.String() } -type UpdateHostInput struct { +// SetParentResourceName sets the ParentResourceName field's value. +func (s *UpdateSyncBlockerOutput) SetParentResourceName(v string) *UpdateSyncBlockerOutput { + s.ParentResourceName = &v + return s +} + +// SetResourceName sets the ResourceName field's value. +func (s *UpdateSyncBlockerOutput) SetResourceName(v string) *UpdateSyncBlockerOutput { + s.ResourceName = &v + return s +} + +// SetSyncBlocker sets the SyncBlocker field's value. +func (s *UpdateSyncBlockerOutput) SetSyncBlocker(v *SyncBlocker) *UpdateSyncBlockerOutput { + s.SyncBlocker = v + return s +} + +type UpdateSyncConfigurationInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the host to be updated. + // The branch for the sync configuration to be updated. + Branch *string `min:"1" type:"string"` + + // The configuration file for the sync configuration to be updated. + ConfigFile *string `type:"string"` + + // The ID of the repository link for the sync configuration to be updated. + RepositoryLinkId *string `type:"string"` + + // The name of the Amazon Web Services resource for the sync configuration to + // be updated. // - // HostArn is a required field - HostArn *string `type:"string" required:"true"` + // ResourceName is a required field + ResourceName *string `min:"1" type:"string" required:"true"` - // The URL or endpoint of the host to be updated. - ProviderEndpoint *string `min:"1" type:"string"` + // The ARN of the IAM role for the sync configuration to be updated. + RoleArn *string `min:"1" type:"string"` - // The VPC configuration of the host to be updated. A VPC must be configured - // and the infrastructure to be represented by the host must already be connected - // to the VPC. - VpcConfiguration *VpcConfiguration `type:"structure"` + // The sync type for the sync configuration to be updated. + // + // SyncType is a required field + SyncType *string `type:"string" required:"true" enum:"SyncConfigurationType"` } // String returns the string representation. @@ -2799,7 +7674,7 @@ type UpdateHostInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s UpdateHostInput) String() string { +func (s UpdateSyncConfigurationInput) String() string { return awsutil.Prettify(s) } @@ -2808,23 +7683,27 @@ func (s UpdateHostInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s UpdateHostInput) GoString() string { +func (s UpdateSyncConfigurationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateHostInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateHostInput"} - if s.HostArn == nil { - invalidParams.Add(request.NewErrParamRequired("HostArn")) +func (s *UpdateSyncConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateSyncConfigurationInput"} + if s.Branch != nil && len(*s.Branch) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Branch", 1)) } - if s.ProviderEndpoint != nil && len(*s.ProviderEndpoint) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ProviderEndpoint", 1)) + if s.ResourceName == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceName")) } - if s.VpcConfiguration != nil { - if err := s.VpcConfiguration.Validate(); err != nil { - invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams)) - } + if s.ResourceName != nil && len(*s.ResourceName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceName", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) + } + if s.SyncType == nil { + invalidParams.Add(request.NewErrParamRequired("SyncType")) } if invalidParams.Len() > 0 { @@ -2833,26 +7712,49 @@ func (s *UpdateHostInput) Validate() error { return nil } -// SetHostArn sets the HostArn field's value. -func (s *UpdateHostInput) SetHostArn(v string) *UpdateHostInput { - s.HostArn = &v +// SetBranch sets the Branch field's value. +func (s *UpdateSyncConfigurationInput) SetBranch(v string) *UpdateSyncConfigurationInput { + s.Branch = &v return s } -// SetProviderEndpoint sets the ProviderEndpoint field's value. -func (s *UpdateHostInput) SetProviderEndpoint(v string) *UpdateHostInput { - s.ProviderEndpoint = &v +// SetConfigFile sets the ConfigFile field's value. +func (s *UpdateSyncConfigurationInput) SetConfigFile(v string) *UpdateSyncConfigurationInput { + s.ConfigFile = &v return s } -// SetVpcConfiguration sets the VpcConfiguration field's value. -func (s *UpdateHostInput) SetVpcConfiguration(v *VpcConfiguration) *UpdateHostInput { - s.VpcConfiguration = v +// SetRepositoryLinkId sets the RepositoryLinkId field's value. +func (s *UpdateSyncConfigurationInput) SetRepositoryLinkId(v string) *UpdateSyncConfigurationInput { + s.RepositoryLinkId = &v return s } -type UpdateHostOutput struct { +// SetResourceName sets the ResourceName field's value. +func (s *UpdateSyncConfigurationInput) SetResourceName(v string) *UpdateSyncConfigurationInput { + s.ResourceName = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *UpdateSyncConfigurationInput) SetRoleArn(v string) *UpdateSyncConfigurationInput { + s.RoleArn = &v + return s +} + +// SetSyncType sets the SyncType field's value. +func (s *UpdateSyncConfigurationInput) SetSyncType(v string) *UpdateSyncConfigurationInput { + s.SyncType = &v + return s +} + +type UpdateSyncConfigurationOutput struct { _ struct{} `type:"structure"` + + // The information returned for the sync configuration to be updated. + // + // SyncConfiguration is a required field + SyncConfiguration *SyncConfiguration `type:"structure" required:"true"` } // String returns the string representation. @@ -2860,7 +7762,7 @@ type UpdateHostOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s UpdateHostOutput) String() string { +func (s UpdateSyncConfigurationOutput) String() string { return awsutil.Prettify(s) } @@ -2869,10 +7771,16 @@ func (s UpdateHostOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s UpdateHostOutput) GoString() string { +func (s UpdateSyncConfigurationOutput) GoString() string { return s.String() } +// SetSyncConfiguration sets the SyncConfiguration field's value. +func (s *UpdateSyncConfigurationOutput) SetSyncConfiguration(v *SyncConfiguration) *UpdateSyncConfigurationOutput { + s.SyncConfiguration = v + return s +} + // The VPC configuration provisioned for the host. type VpcConfiguration struct { _ struct{} `type:"structure"` @@ -2973,6 +7881,34 @@ func (s *VpcConfiguration) SetVpcId(v string) *VpcConfiguration { return s } +const ( + // BlockerStatusActive is a BlockerStatus enum value + BlockerStatusActive = "ACTIVE" + + // BlockerStatusResolved is a BlockerStatus enum value + BlockerStatusResolved = "RESOLVED" +) + +// BlockerStatus_Values returns all elements of the BlockerStatus enum +func BlockerStatus_Values() []string { + return []string{ + BlockerStatusActive, + BlockerStatusResolved, + } +} + +const ( + // BlockerTypeAutomated is a BlockerType enum value + BlockerTypeAutomated = "AUTOMATED" +) + +// BlockerType_Values returns all elements of the BlockerType enum +func BlockerType_Values() []string { + return []string{ + BlockerTypeAutomated, + } +} + const ( // ConnectionStatusPending is a ConnectionStatus enum value ConnectionStatusPending = "PENDING" @@ -3016,3 +7952,67 @@ func ProviderType_Values() []string { ProviderTypeGitLab, } } + +const ( + // RepositorySyncStatusFailed is a RepositorySyncStatus enum value + RepositorySyncStatusFailed = "FAILED" + + // RepositorySyncStatusInitiated is a RepositorySyncStatus enum value + RepositorySyncStatusInitiated = "INITIATED" + + // RepositorySyncStatusInProgress is a RepositorySyncStatus enum value + RepositorySyncStatusInProgress = "IN_PROGRESS" + + // RepositorySyncStatusSucceeded is a RepositorySyncStatus enum value + RepositorySyncStatusSucceeded = "SUCCEEDED" + + // RepositorySyncStatusQueued is a RepositorySyncStatus enum value + RepositorySyncStatusQueued = "QUEUED" +) + +// RepositorySyncStatus_Values returns all elements of the RepositorySyncStatus enum +func RepositorySyncStatus_Values() []string { + return []string{ + RepositorySyncStatusFailed, + RepositorySyncStatusInitiated, + RepositorySyncStatusInProgress, + RepositorySyncStatusSucceeded, + RepositorySyncStatusQueued, + } +} + +const ( + // ResourceSyncStatusFailed is a ResourceSyncStatus enum value + ResourceSyncStatusFailed = "FAILED" + + // ResourceSyncStatusInitiated is a ResourceSyncStatus enum value + ResourceSyncStatusInitiated = "INITIATED" + + // ResourceSyncStatusInProgress is a ResourceSyncStatus enum value + ResourceSyncStatusInProgress = "IN_PROGRESS" + + // ResourceSyncStatusSucceeded is a ResourceSyncStatus enum value + ResourceSyncStatusSucceeded = "SUCCEEDED" +) + +// ResourceSyncStatus_Values returns all elements of the ResourceSyncStatus enum +func ResourceSyncStatus_Values() []string { + return []string{ + ResourceSyncStatusFailed, + ResourceSyncStatusInitiated, + ResourceSyncStatusInProgress, + ResourceSyncStatusSucceeded, + } +} + +const ( + // SyncConfigurationTypeCfnStackSync is a SyncConfigurationType enum value + SyncConfigurationTypeCfnStackSync = "CFN_STACK_SYNC" +) + +// SyncConfigurationType_Values returns all elements of the SyncConfigurationType enum +func SyncConfigurationType_Values() []string { + return []string{ + SyncConfigurationTypeCfnStackSync, + } +} diff --git a/service/codestarconnections/codestarconnectionsiface/interface.go b/service/codestarconnections/codestarconnectionsiface/interface.go index 902cf7e5142..fd26f3fd334 100644 --- a/service/codestarconnections/codestarconnectionsiface/interface.go +++ b/service/codestarconnections/codestarconnectionsiface/interface.go @@ -68,6 +68,14 @@ type CodeStarConnectionsAPI interface { CreateHostWithContext(aws.Context, *codestarconnections.CreateHostInput, ...request.Option) (*codestarconnections.CreateHostOutput, error) CreateHostRequest(*codestarconnections.CreateHostInput) (*request.Request, *codestarconnections.CreateHostOutput) + CreateRepositoryLink(*codestarconnections.CreateRepositoryLinkInput) (*codestarconnections.CreateRepositoryLinkOutput, error) + CreateRepositoryLinkWithContext(aws.Context, *codestarconnections.CreateRepositoryLinkInput, ...request.Option) (*codestarconnections.CreateRepositoryLinkOutput, error) + CreateRepositoryLinkRequest(*codestarconnections.CreateRepositoryLinkInput) (*request.Request, *codestarconnections.CreateRepositoryLinkOutput) + + CreateSyncConfiguration(*codestarconnections.CreateSyncConfigurationInput) (*codestarconnections.CreateSyncConfigurationOutput, error) + CreateSyncConfigurationWithContext(aws.Context, *codestarconnections.CreateSyncConfigurationInput, ...request.Option) (*codestarconnections.CreateSyncConfigurationOutput, error) + CreateSyncConfigurationRequest(*codestarconnections.CreateSyncConfigurationInput) (*request.Request, *codestarconnections.CreateSyncConfigurationOutput) + DeleteConnection(*codestarconnections.DeleteConnectionInput) (*codestarconnections.DeleteConnectionOutput, error) DeleteConnectionWithContext(aws.Context, *codestarconnections.DeleteConnectionInput, ...request.Option) (*codestarconnections.DeleteConnectionOutput, error) DeleteConnectionRequest(*codestarconnections.DeleteConnectionInput) (*request.Request, *codestarconnections.DeleteConnectionOutput) @@ -76,6 +84,14 @@ type CodeStarConnectionsAPI interface { DeleteHostWithContext(aws.Context, *codestarconnections.DeleteHostInput, ...request.Option) (*codestarconnections.DeleteHostOutput, error) DeleteHostRequest(*codestarconnections.DeleteHostInput) (*request.Request, *codestarconnections.DeleteHostOutput) + DeleteRepositoryLink(*codestarconnections.DeleteRepositoryLinkInput) (*codestarconnections.DeleteRepositoryLinkOutput, error) + DeleteRepositoryLinkWithContext(aws.Context, *codestarconnections.DeleteRepositoryLinkInput, ...request.Option) (*codestarconnections.DeleteRepositoryLinkOutput, error) + DeleteRepositoryLinkRequest(*codestarconnections.DeleteRepositoryLinkInput) (*request.Request, *codestarconnections.DeleteRepositoryLinkOutput) + + DeleteSyncConfiguration(*codestarconnections.DeleteSyncConfigurationInput) (*codestarconnections.DeleteSyncConfigurationOutput, error) + DeleteSyncConfigurationWithContext(aws.Context, *codestarconnections.DeleteSyncConfigurationInput, ...request.Option) (*codestarconnections.DeleteSyncConfigurationOutput, error) + DeleteSyncConfigurationRequest(*codestarconnections.DeleteSyncConfigurationInput) (*request.Request, *codestarconnections.DeleteSyncConfigurationOutput) + GetConnection(*codestarconnections.GetConnectionInput) (*codestarconnections.GetConnectionOutput, error) GetConnectionWithContext(aws.Context, *codestarconnections.GetConnectionInput, ...request.Option) (*codestarconnections.GetConnectionOutput, error) GetConnectionRequest(*codestarconnections.GetConnectionInput) (*request.Request, *codestarconnections.GetConnectionOutput) @@ -84,6 +100,26 @@ type CodeStarConnectionsAPI interface { GetHostWithContext(aws.Context, *codestarconnections.GetHostInput, ...request.Option) (*codestarconnections.GetHostOutput, error) GetHostRequest(*codestarconnections.GetHostInput) (*request.Request, *codestarconnections.GetHostOutput) + GetRepositoryLink(*codestarconnections.GetRepositoryLinkInput) (*codestarconnections.GetRepositoryLinkOutput, error) + GetRepositoryLinkWithContext(aws.Context, *codestarconnections.GetRepositoryLinkInput, ...request.Option) (*codestarconnections.GetRepositoryLinkOutput, error) + GetRepositoryLinkRequest(*codestarconnections.GetRepositoryLinkInput) (*request.Request, *codestarconnections.GetRepositoryLinkOutput) + + GetRepositorySyncStatus(*codestarconnections.GetRepositorySyncStatusInput) (*codestarconnections.GetRepositorySyncStatusOutput, error) + GetRepositorySyncStatusWithContext(aws.Context, *codestarconnections.GetRepositorySyncStatusInput, ...request.Option) (*codestarconnections.GetRepositorySyncStatusOutput, error) + GetRepositorySyncStatusRequest(*codestarconnections.GetRepositorySyncStatusInput) (*request.Request, *codestarconnections.GetRepositorySyncStatusOutput) + + GetResourceSyncStatus(*codestarconnections.GetResourceSyncStatusInput) (*codestarconnections.GetResourceSyncStatusOutput, error) + GetResourceSyncStatusWithContext(aws.Context, *codestarconnections.GetResourceSyncStatusInput, ...request.Option) (*codestarconnections.GetResourceSyncStatusOutput, error) + GetResourceSyncStatusRequest(*codestarconnections.GetResourceSyncStatusInput) (*request.Request, *codestarconnections.GetResourceSyncStatusOutput) + + GetSyncBlockerSummary(*codestarconnections.GetSyncBlockerSummaryInput) (*codestarconnections.GetSyncBlockerSummaryOutput, error) + GetSyncBlockerSummaryWithContext(aws.Context, *codestarconnections.GetSyncBlockerSummaryInput, ...request.Option) (*codestarconnections.GetSyncBlockerSummaryOutput, error) + GetSyncBlockerSummaryRequest(*codestarconnections.GetSyncBlockerSummaryInput) (*request.Request, *codestarconnections.GetSyncBlockerSummaryOutput) + + GetSyncConfiguration(*codestarconnections.GetSyncConfigurationInput) (*codestarconnections.GetSyncConfigurationOutput, error) + GetSyncConfigurationWithContext(aws.Context, *codestarconnections.GetSyncConfigurationInput, ...request.Option) (*codestarconnections.GetSyncConfigurationOutput, error) + GetSyncConfigurationRequest(*codestarconnections.GetSyncConfigurationInput) (*request.Request, *codestarconnections.GetSyncConfigurationOutput) + ListConnections(*codestarconnections.ListConnectionsInput) (*codestarconnections.ListConnectionsOutput, error) ListConnectionsWithContext(aws.Context, *codestarconnections.ListConnectionsInput, ...request.Option) (*codestarconnections.ListConnectionsOutput, error) ListConnectionsRequest(*codestarconnections.ListConnectionsInput) (*request.Request, *codestarconnections.ListConnectionsOutput) @@ -98,6 +134,24 @@ type CodeStarConnectionsAPI interface { ListHostsPages(*codestarconnections.ListHostsInput, func(*codestarconnections.ListHostsOutput, bool) bool) error ListHostsPagesWithContext(aws.Context, *codestarconnections.ListHostsInput, func(*codestarconnections.ListHostsOutput, bool) bool, ...request.Option) error + ListRepositoryLinks(*codestarconnections.ListRepositoryLinksInput) (*codestarconnections.ListRepositoryLinksOutput, error) + ListRepositoryLinksWithContext(aws.Context, *codestarconnections.ListRepositoryLinksInput, ...request.Option) (*codestarconnections.ListRepositoryLinksOutput, error) + ListRepositoryLinksRequest(*codestarconnections.ListRepositoryLinksInput) (*request.Request, *codestarconnections.ListRepositoryLinksOutput) + + ListRepositoryLinksPages(*codestarconnections.ListRepositoryLinksInput, func(*codestarconnections.ListRepositoryLinksOutput, bool) bool) error + ListRepositoryLinksPagesWithContext(aws.Context, *codestarconnections.ListRepositoryLinksInput, func(*codestarconnections.ListRepositoryLinksOutput, bool) bool, ...request.Option) error + + ListRepositorySyncDefinitions(*codestarconnections.ListRepositorySyncDefinitionsInput) (*codestarconnections.ListRepositorySyncDefinitionsOutput, error) + ListRepositorySyncDefinitionsWithContext(aws.Context, *codestarconnections.ListRepositorySyncDefinitionsInput, ...request.Option) (*codestarconnections.ListRepositorySyncDefinitionsOutput, error) + ListRepositorySyncDefinitionsRequest(*codestarconnections.ListRepositorySyncDefinitionsInput) (*request.Request, *codestarconnections.ListRepositorySyncDefinitionsOutput) + + ListSyncConfigurations(*codestarconnections.ListSyncConfigurationsInput) (*codestarconnections.ListSyncConfigurationsOutput, error) + ListSyncConfigurationsWithContext(aws.Context, *codestarconnections.ListSyncConfigurationsInput, ...request.Option) (*codestarconnections.ListSyncConfigurationsOutput, error) + ListSyncConfigurationsRequest(*codestarconnections.ListSyncConfigurationsInput) (*request.Request, *codestarconnections.ListSyncConfigurationsOutput) + + ListSyncConfigurationsPages(*codestarconnections.ListSyncConfigurationsInput, func(*codestarconnections.ListSyncConfigurationsOutput, bool) bool) error + ListSyncConfigurationsPagesWithContext(aws.Context, *codestarconnections.ListSyncConfigurationsInput, func(*codestarconnections.ListSyncConfigurationsOutput, bool) bool, ...request.Option) error + ListTagsForResource(*codestarconnections.ListTagsForResourceInput) (*codestarconnections.ListTagsForResourceOutput, error) ListTagsForResourceWithContext(aws.Context, *codestarconnections.ListTagsForResourceInput, ...request.Option) (*codestarconnections.ListTagsForResourceOutput, error) ListTagsForResourceRequest(*codestarconnections.ListTagsForResourceInput) (*request.Request, *codestarconnections.ListTagsForResourceOutput) @@ -113,6 +167,18 @@ type CodeStarConnectionsAPI interface { UpdateHost(*codestarconnections.UpdateHostInput) (*codestarconnections.UpdateHostOutput, error) UpdateHostWithContext(aws.Context, *codestarconnections.UpdateHostInput, ...request.Option) (*codestarconnections.UpdateHostOutput, error) UpdateHostRequest(*codestarconnections.UpdateHostInput) (*request.Request, *codestarconnections.UpdateHostOutput) + + UpdateRepositoryLink(*codestarconnections.UpdateRepositoryLinkInput) (*codestarconnections.UpdateRepositoryLinkOutput, error) + UpdateRepositoryLinkWithContext(aws.Context, *codestarconnections.UpdateRepositoryLinkInput, ...request.Option) (*codestarconnections.UpdateRepositoryLinkOutput, error) + UpdateRepositoryLinkRequest(*codestarconnections.UpdateRepositoryLinkInput) (*request.Request, *codestarconnections.UpdateRepositoryLinkOutput) + + UpdateSyncBlocker(*codestarconnections.UpdateSyncBlockerInput) (*codestarconnections.UpdateSyncBlockerOutput, error) + UpdateSyncBlockerWithContext(aws.Context, *codestarconnections.UpdateSyncBlockerInput, ...request.Option) (*codestarconnections.UpdateSyncBlockerOutput, error) + UpdateSyncBlockerRequest(*codestarconnections.UpdateSyncBlockerInput) (*request.Request, *codestarconnections.UpdateSyncBlockerOutput) + + UpdateSyncConfiguration(*codestarconnections.UpdateSyncConfigurationInput) (*codestarconnections.UpdateSyncConfigurationOutput, error) + UpdateSyncConfigurationWithContext(aws.Context, *codestarconnections.UpdateSyncConfigurationInput, ...request.Option) (*codestarconnections.UpdateSyncConfigurationOutput, error) + UpdateSyncConfigurationRequest(*codestarconnections.UpdateSyncConfigurationInput) (*request.Request, *codestarconnections.UpdateSyncConfigurationOutput) } var _ CodeStarConnectionsAPI = (*codestarconnections.CodeStarConnections)(nil) diff --git a/service/codestarconnections/errors.go b/service/codestarconnections/errors.go index e29878b6028..270e0c07c32 100644 --- a/service/codestarconnections/errors.go +++ b/service/codestarconnections/errors.go @@ -8,18 +8,56 @@ import ( const ( + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConcurrentModificationException for service response error code + // "ConcurrentModificationException". + // + // Exception thrown as a result of concurrent modification to an application. + // For example, two individuals attempting to edit the same application at the + // same time. + ErrCodeConcurrentModificationException = "ConcurrentModificationException" + + // ErrCodeConditionalCheckFailedException for service response error code + // "ConditionalCheckFailedException". + // + // The conditional check failed. Try again later. + ErrCodeConditionalCheckFailedException = "ConditionalCheckFailedException" + // ErrCodeConflictException for service response error code // "ConflictException". // // Two conflicting operations have been made on the same resource. ErrCodeConflictException = "ConflictException" + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // Received an internal server exception. Try again later. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeInvalidInputException for service response error code + // "InvalidInputException". + // + // The input is not valid. Verify that the action is typed correctly. + ErrCodeInvalidInputException = "InvalidInputException" + // ErrCodeLimitExceededException for service response error code // "LimitExceededException". // // Exceeded the maximum limit for connections. ErrCodeLimitExceededException = "LimitExceededException" + // ErrCodeResourceAlreadyExistsException for service response error code + // "ResourceAlreadyExistsException". + // + // Unable to create resource. Resource already exists. + ErrCodeResourceAlreadyExistsException = "ResourceAlreadyExistsException" + // ErrCodeResourceNotFoundException for service response error code // "ResourceNotFoundException". // @@ -32,17 +70,65 @@ const ( // Resource not found. Verify the ARN for the host resource and try again. ErrCodeResourceUnavailableException = "ResourceUnavailableException" + // ErrCodeRetryLatestCommitFailedException for service response error code + // "RetryLatestCommitFailedException". + // + // Retrying the latest commit failed. Try again later. + ErrCodeRetryLatestCommitFailedException = "RetryLatestCommitFailedException" + + // ErrCodeSyncBlockerDoesNotExistException for service response error code + // "SyncBlockerDoesNotExistException". + // + // Unable to continue. The sync blocker does not exist. + ErrCodeSyncBlockerDoesNotExistException = "SyncBlockerDoesNotExistException" + + // ErrCodeSyncConfigurationStillExistsException for service response error code + // "SyncConfigurationStillExistsException". + // + // Unable to continue. The sync blocker still exists. + ErrCodeSyncConfigurationStillExistsException = "SyncConfigurationStillExistsException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + // ErrCodeUnsupportedOperationException for service response error code // "UnsupportedOperationException". // // The operation is not supported. Check the connection status and try again. ErrCodeUnsupportedOperationException = "UnsupportedOperationException" + + // ErrCodeUnsupportedProviderTypeException for service response error code + // "UnsupportedProviderTypeException". + // + // The specified provider type is not supported for connections. + ErrCodeUnsupportedProviderTypeException = "UnsupportedProviderTypeException" + + // ErrCodeUpdateOutOfSyncException for service response error code + // "UpdateOutOfSyncException". + // + // The update is out of sync. Try syncing again. + ErrCodeUpdateOutOfSyncException = "UpdateOutOfSyncException" ) var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ - "ConflictException": newErrorConflictException, - "LimitExceededException": newErrorLimitExceededException, - "ResourceNotFoundException": newErrorResourceNotFoundException, - "ResourceUnavailableException": newErrorResourceUnavailableException, - "UnsupportedOperationException": newErrorUnsupportedOperationException, + "AccessDeniedException": newErrorAccessDeniedException, + "ConcurrentModificationException": newErrorConcurrentModificationException, + "ConditionalCheckFailedException": newErrorConditionalCheckFailedException, + "ConflictException": newErrorConflictException, + "InternalServerException": newErrorInternalServerException, + "InvalidInputException": newErrorInvalidInputException, + "LimitExceededException": newErrorLimitExceededException, + "ResourceAlreadyExistsException": newErrorResourceAlreadyExistsException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ResourceUnavailableException": newErrorResourceUnavailableException, + "RetryLatestCommitFailedException": newErrorRetryLatestCommitFailedException, + "SyncBlockerDoesNotExistException": newErrorSyncBlockerDoesNotExistException, + "SyncConfigurationStillExistsException": newErrorSyncConfigurationStillExistsException, + "ThrottlingException": newErrorThrottlingException, + "UnsupportedOperationException": newErrorUnsupportedOperationException, + "UnsupportedProviderTypeException": newErrorUnsupportedProviderTypeException, + "UpdateOutOfSyncException": newErrorUpdateOutOfSyncException, } diff --git a/service/computeoptimizer/api.go b/service/computeoptimizer/api.go index fad34e0938d..49eda8f53ab 100644 --- a/service/computeoptimizer/api.go +++ b/service/computeoptimizer/api.go @@ -2942,6 +2942,49 @@ func (s *AutoScalingGroupConfiguration) SetMinSize(v int64) *AutoScalingGroupCon return s } +// An object that describes the estimated monthly savings possible by adopting +// Compute Optimizer’s Auto Scaling group recommendations. This is based on +// the Savings Plans and Reserved Instances discounts. +type AutoScalingGroupEstimatedMonthlySavings struct { + _ struct{} `type:"structure"` + + // The currency of the estimated monthly savings. + Currency *string `locationName:"currency" type:"string" enum:"Currency"` + + // The value of the estimated monthly savings. + Value *float64 `locationName:"value" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AutoScalingGroupEstimatedMonthlySavings) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AutoScalingGroupEstimatedMonthlySavings) GoString() string { + return s.String() +} + +// SetCurrency sets the Currency field's value. +func (s *AutoScalingGroupEstimatedMonthlySavings) SetCurrency(v string) *AutoScalingGroupEstimatedMonthlySavings { + s.Currency = &v + return s +} + +// SetValue sets the Value field's value. +func (s *AutoScalingGroupEstimatedMonthlySavings) SetValue(v float64) *AutoScalingGroupEstimatedMonthlySavings { + s.Value = &v + return s +} + // Describes an Auto Scaling group recommendation. type AutoScalingGroupRecommendation struct { _ struct{} `type:"structure"` @@ -3181,6 +3224,12 @@ type AutoScalingGroupRecommendationOption struct { // recommendation option. Savings opportunity includes the estimated monthly // savings amount and percentage. SavingsOpportunity *SavingsOpportunity `locationName:"savingsOpportunity" type:"structure"` + + // An object that describes the savings opportunity for the Auto Scaling group + // recommendation option that includes Savings Plans and Reserved Instances + // discounts. Savings opportunity includes the estimated monthly savings and + // percentage. + SavingsOpportunityAfterDiscounts *AutoScalingGroupSavingsOpportunityAfterDiscounts `locationName:"savingsOpportunityAfterDiscounts" type:"structure"` } // String returns the string representation. @@ -3243,6 +3292,61 @@ func (s *AutoScalingGroupRecommendationOption) SetSavingsOpportunity(v *SavingsO return s } +// SetSavingsOpportunityAfterDiscounts sets the SavingsOpportunityAfterDiscounts field's value. +func (s *AutoScalingGroupRecommendationOption) SetSavingsOpportunityAfterDiscounts(v *AutoScalingGroupSavingsOpportunityAfterDiscounts) *AutoScalingGroupRecommendationOption { + s.SavingsOpportunityAfterDiscounts = v + return s +} + +// Describes the savings opportunity for Auto Scaling group recommendations +// after applying the Savings Plans and Reserved Instances discounts. +// +// Savings opportunity represents the estimated monthly savings you can achieve +// by implementing Compute Optimizer recommendations. +type AutoScalingGroupSavingsOpportunityAfterDiscounts struct { + _ struct{} `type:"structure"` + + // An object that describes the estimated monthly savings possible by adopting + // Compute Optimizer’s Auto Scaling group recommendations. This is based on + // the Savings Plans and Reserved Instances pricing discounts. + EstimatedMonthlySavings *AutoScalingGroupEstimatedMonthlySavings `locationName:"estimatedMonthlySavings" type:"structure"` + + // The estimated monthly savings possible as a percentage of monthly cost after + // applying the Savings Plans and Reserved Instances discounts. This saving + // can be achieved by adopting Compute Optimizer’s Auto Scaling group recommendations. + SavingsOpportunityPercentage *float64 `locationName:"savingsOpportunityPercentage" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AutoScalingGroupSavingsOpportunityAfterDiscounts) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AutoScalingGroupSavingsOpportunityAfterDiscounts) GoString() string { + return s.String() +} + +// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. +func (s *AutoScalingGroupSavingsOpportunityAfterDiscounts) SetEstimatedMonthlySavings(v *AutoScalingGroupEstimatedMonthlySavings) *AutoScalingGroupSavingsOpportunityAfterDiscounts { + s.EstimatedMonthlySavings = v + return s +} + +// SetSavingsOpportunityPercentage sets the SavingsOpportunityPercentage field's value. +func (s *AutoScalingGroupSavingsOpportunityAfterDiscounts) SetSavingsOpportunityPercentage(v float64) *AutoScalingGroupSavingsOpportunityAfterDiscounts { + s.SavingsOpportunityPercentage = &v + return s +} + // Describes the container configurations within the tasks of your Amazon ECS // service. type ContainerConfiguration struct { @@ -3409,6 +3513,49 @@ func (s *CurrentPerformanceRiskRatings) SetVeryLow(v int64) *CurrentPerformanceR return s } +// Defines the various metric parameters that can be customized, such as threshold +// and headroom. +type CustomizableMetricParameters struct { + _ struct{} `type:"structure"` + + // The headroom threshold value in percentage used for the specified metric + // parameter. + Headroom *string `locationName:"headroom" type:"string" enum:"CustomizableMetricHeadroom"` + + // The threshold value used for the specified metric parameter. + Threshold *string `locationName:"threshold" type:"string" enum:"CustomizableMetricThreshold"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CustomizableMetricParameters) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CustomizableMetricParameters) GoString() string { + return s.String() +} + +// SetHeadroom sets the Headroom field's value. +func (s *CustomizableMetricParameters) SetHeadroom(v string) *CustomizableMetricParameters { + s.Headroom = &v + return s +} + +// SetThreshold sets the Threshold field's value. +func (s *CustomizableMetricParameters) SetThreshold(v string) *CustomizableMetricParameters { + s.Threshold = &v + return s +} + type DeleteRecommendationPreferencesInput struct { _ struct{} `type:"structure"` @@ -3622,6 +3769,82 @@ func (s *DescribeRecommendationExportJobsOutput) SetRecommendationExportJobs(v [ return s } +// Describes the effective recommendation preferences for Amazon EBS volumes. +type EBSEffectiveRecommendationPreferences struct { + _ struct{} `type:"structure"` + + // Describes the savings estimation mode preference applied for calculating + // savings opportunity for Amazon EBS volumes. + SavingsEstimationMode *EBSSavingsEstimationMode `locationName:"savingsEstimationMode" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EBSEffectiveRecommendationPreferences) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EBSEffectiveRecommendationPreferences) GoString() string { + return s.String() +} + +// SetSavingsEstimationMode sets the SavingsEstimationMode field's value. +func (s *EBSEffectiveRecommendationPreferences) SetSavingsEstimationMode(v *EBSSavingsEstimationMode) *EBSEffectiveRecommendationPreferences { + s.SavingsEstimationMode = v + return s +} + +// An object that describes the estimated monthly savings possible by adopting +// Compute Optimizer’s Amazon EBS volume recommendations. This includes any +// applicable discounts. +type EBSEstimatedMonthlySavings struct { + _ struct{} `type:"structure"` + + // The currency of the estimated monthly savings. + Currency *string `locationName:"currency" type:"string" enum:"Currency"` + + // The value of the estimated monthly savings. + Value *float64 `locationName:"value" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EBSEstimatedMonthlySavings) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EBSEstimatedMonthlySavings) GoString() string { + return s.String() +} + +// SetCurrency sets the Currency field's value. +func (s *EBSEstimatedMonthlySavings) SetCurrency(v string) *EBSEstimatedMonthlySavings { + s.Currency = &v + return s +} + +// SetValue sets the Value field's value. +func (s *EBSEstimatedMonthlySavings) SetValue(v float64) *EBSEstimatedMonthlySavings { + s.Value = &v + return s +} + // Describes a filter that returns a more specific list of Amazon Elastic Block // Store (Amazon EBS) volume recommendations. Use this filter with the GetEBSVolumeRecommendations // action. @@ -3690,6 +3913,86 @@ func (s *EBSFilter) SetValues(v []*string) *EBSFilter { return s } +// Describes the savings estimation mode used for calculating savings opportunity +// for Amazon EBS volumes. +type EBSSavingsEstimationMode struct { + _ struct{} `type:"structure"` + + // Describes the source for calculating the savings opportunity for Amazon EBS + // volumes. + Source *string `locationName:"source" type:"string" enum:"EBSSavingsEstimationModeSource"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EBSSavingsEstimationMode) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EBSSavingsEstimationMode) GoString() string { + return s.String() +} + +// SetSource sets the Source field's value. +func (s *EBSSavingsEstimationMode) SetSource(v string) *EBSSavingsEstimationMode { + s.Source = &v + return s +} + +// Describes the savings opportunity for Amazon EBS volume recommendations after +// applying specific discounts. +type EBSSavingsOpportunityAfterDiscounts struct { + _ struct{} `type:"structure"` + + // The estimated monthly savings possible as a percentage of monthly cost by + // adopting Compute Optimizer’s Amazon EBS volume recommendations. This saving + // includes any applicable discounts. + EstimatedMonthlySavings *EBSEstimatedMonthlySavings `locationName:"estimatedMonthlySavings" type:"structure"` + + // The estimated monthly savings possible as a percentage of monthly cost after + // applying the specific discounts. This saving can be achieved by adopting + // Compute Optimizer’s Amazon EBS volume recommendations. + SavingsOpportunityPercentage *float64 `locationName:"savingsOpportunityPercentage" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EBSSavingsOpportunityAfterDiscounts) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EBSSavingsOpportunityAfterDiscounts) GoString() string { + return s.String() +} + +// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. +func (s *EBSSavingsOpportunityAfterDiscounts) SetEstimatedMonthlySavings(v *EBSEstimatedMonthlySavings) *EBSSavingsOpportunityAfterDiscounts { + s.EstimatedMonthlySavings = v + return s +} + +// SetSavingsOpportunityPercentage sets the SavingsOpportunityPercentage field's value. +func (s *EBSSavingsOpportunityAfterDiscounts) SetSavingsOpportunityPercentage(v float64) *EBSSavingsOpportunityAfterDiscounts { + s.SavingsOpportunityPercentage = &v + return s +} + // Describes a utilization metric of an Amazon Elastic Block Store (Amazon EBS) // volume. // @@ -3771,6 +4074,166 @@ func (s *EBSUtilizationMetric) SetValue(v float64) *EBSUtilizationMetric { return s } +// Describes the effective recommendation preferences for Amazon ECS services. +type ECSEffectiveRecommendationPreferences struct { + _ struct{} `type:"structure"` + + // Describes the savings estimation mode preference applied for calculating + // savings opportunity for Amazon ECS services. + SavingsEstimationMode *ECSSavingsEstimationMode `locationName:"savingsEstimationMode" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ECSEffectiveRecommendationPreferences) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ECSEffectiveRecommendationPreferences) GoString() string { + return s.String() +} + +// SetSavingsEstimationMode sets the SavingsEstimationMode field's value. +func (s *ECSEffectiveRecommendationPreferences) SetSavingsEstimationMode(v *ECSSavingsEstimationMode) *ECSEffectiveRecommendationPreferences { + s.SavingsEstimationMode = v + return s +} + +// Describes the estimated monthly savings possible for Amazon ECS services +// by adopting Compute Optimizer recommendations. This is based on Amazon ECS +// service pricing after applying Savings Plans discounts. +type ECSEstimatedMonthlySavings struct { + _ struct{} `type:"structure"` + + // The currency of the estimated monthly savings. + Currency *string `locationName:"currency" type:"string" enum:"Currency"` + + // The value of the estimated monthly savings for Amazon ECS services. + Value *float64 `locationName:"value" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ECSEstimatedMonthlySavings) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ECSEstimatedMonthlySavings) GoString() string { + return s.String() +} + +// SetCurrency sets the Currency field's value. +func (s *ECSEstimatedMonthlySavings) SetCurrency(v string) *ECSEstimatedMonthlySavings { + s.Currency = &v + return s +} + +// SetValue sets the Value field's value. +func (s *ECSEstimatedMonthlySavings) SetValue(v float64) *ECSEstimatedMonthlySavings { + s.Value = &v + return s +} + +// Describes the savings estimation mode used for calculating savings opportunity +// for Amazon ECS services. +type ECSSavingsEstimationMode struct { + _ struct{} `type:"structure"` + + // Describes the source for calculating the savings opportunity for Amazon ECS + // services. + Source *string `locationName:"source" type:"string" enum:"ECSSavingsEstimationModeSource"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ECSSavingsEstimationMode) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ECSSavingsEstimationMode) GoString() string { + return s.String() +} + +// SetSource sets the Source field's value. +func (s *ECSSavingsEstimationMode) SetSource(v string) *ECSSavingsEstimationMode { + s.Source = &v + return s +} + +// Describes the savings opportunity for Amazon ECS service recommendations +// after applying Savings Plans discounts. +// +// Savings opportunity represents the estimated monthly savings after applying +// Savings Plans discounts. You can achieve this by implementing a given Compute +// Optimizer recommendation. +type ECSSavingsOpportunityAfterDiscounts struct { + _ struct{} `type:"structure"` + + // The estimated monthly savings possible by adopting Compute Optimizer’s + // Amazon ECS service recommendations. This includes any applicable Savings + // Plans discounts. + EstimatedMonthlySavings *ECSEstimatedMonthlySavings `locationName:"estimatedMonthlySavings" type:"structure"` + + // The estimated monthly savings possible as a percentage of monthly cost by + // adopting Compute Optimizer’s Amazon ECS service recommendations. This includes + // any applicable Savings Plans discounts. + SavingsOpportunityPercentage *float64 `locationName:"savingsOpportunityPercentage" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ECSSavingsOpportunityAfterDiscounts) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ECSSavingsOpportunityAfterDiscounts) GoString() string { + return s.String() +} + +// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. +func (s *ECSSavingsOpportunityAfterDiscounts) SetEstimatedMonthlySavings(v *ECSEstimatedMonthlySavings) *ECSSavingsOpportunityAfterDiscounts { + s.EstimatedMonthlySavings = v + return s +} + +// SetSavingsOpportunityPercentage sets the SavingsOpportunityPercentage field's value. +func (s *ECSSavingsOpportunityAfterDiscounts) SetSavingsOpportunityPercentage(v float64) *ECSSavingsOpportunityAfterDiscounts { + s.SavingsOpportunityPercentage = &v + return s +} + // Describes the projected metrics of an Amazon ECS service recommendation option. // // To determine the performance difference between your current Amazon ECS service @@ -3941,6 +4404,9 @@ type ECSServiceRecommendation struct { // The configuration of the current Amazon ECS service. CurrentServiceConfiguration *ServiceConfiguration `locationName:"currentServiceConfiguration" type:"structure"` + // Describes the effective recommendation preferences for Amazon ECS services. + EffectiveRecommendationPreferences *ECSEffectiveRecommendationPreferences `locationName:"effectiveRecommendationPreferences" type:"structure"` + // The finding classification of an Amazon ECS service. // // Findings for Amazon ECS services include: @@ -4049,6 +4515,12 @@ func (s *ECSServiceRecommendation) SetCurrentServiceConfiguration(v *ServiceConf return s } +// SetEffectiveRecommendationPreferences sets the EffectiveRecommendationPreferences field's value. +func (s *ECSServiceRecommendation) SetEffectiveRecommendationPreferences(v *ECSEffectiveRecommendationPreferences) *ECSServiceRecommendation { + s.EffectiveRecommendationPreferences = v + return s +} + // SetFinding sets the Finding field's value. func (s *ECSServiceRecommendation) SetFinding(v string) *ECSServiceRecommendation { s.Finding = &v @@ -4208,6 +4680,14 @@ type ECSServiceRecommendationOption struct { // and Optimizing your cost with Rightsizing Recommendations (https://docs.aws.amazon.com/cost-management/latest/userguide/ce-rightsizing.html) // in the Cost Management User Guide. SavingsOpportunity *SavingsOpportunity `locationName:"savingsOpportunity" type:"structure"` + + // Describes the savings opportunity for Amazon ECS service recommendations + // or for the recommendation option. + // + // Savings opportunity represents the estimated monthly savings after applying + // Savings Plans discounts. You can achieve this by implementing a given Compute + // Optimizer recommendation. + SavingsOpportunityAfterDiscounts *ECSSavingsOpportunityAfterDiscounts `locationName:"savingsOpportunityAfterDiscounts" type:"structure"` } // String returns the string representation. @@ -4258,6 +4738,12 @@ func (s *ECSServiceRecommendationOption) SetSavingsOpportunity(v *SavingsOpportu return s } +// SetSavingsOpportunityAfterDiscounts sets the SavingsOpportunityAfterDiscounts field's value. +func (s *ECSServiceRecommendationOption) SetSavingsOpportunityAfterDiscounts(v *ECSSavingsOpportunityAfterDiscounts) *ECSServiceRecommendationOption { + s.SavingsOpportunityAfterDiscounts = v + return s +} + // Describes the projected metrics of an Amazon ECS service recommendation option. // // To determine the performance difference between your current Amazon ECS service @@ -4384,6 +4870,70 @@ func (s *ECSServiceUtilizationMetric) SetValue(v float64) *ECSServiceUtilization return s } +// Describes the effective preferred resources that Compute Optimizer considers +// as rightsizing recommendation candidates. +// +// Compute Optimizer only supports Amazon EC2 instance types. +type EffectivePreferredResource struct { + _ struct{} `type:"structure"` + + // The expanded version of your preferred resource's include list. + EffectiveIncludeList []*string `locationName:"effectiveIncludeList" type:"list"` + + // The list of preferred resources values that you want excluded from rightsizing + // recommendation candidates. + ExcludeList []*string `locationName:"excludeList" type:"list"` + + // The list of preferred resource values that you want considered as rightsizing + // recommendation candidates. + IncludeList []*string `locationName:"includeList" type:"list"` + + // The name of the preferred resource list. + Name *string `locationName:"name" type:"string" enum:"PreferredResourceName"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EffectivePreferredResource) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EffectivePreferredResource) GoString() string { + return s.String() +} + +// SetEffectiveIncludeList sets the EffectiveIncludeList field's value. +func (s *EffectivePreferredResource) SetEffectiveIncludeList(v []*string) *EffectivePreferredResource { + s.EffectiveIncludeList = v + return s +} + +// SetExcludeList sets the ExcludeList field's value. +func (s *EffectivePreferredResource) SetExcludeList(v []*string) *EffectivePreferredResource { + s.ExcludeList = v + return s +} + +// SetIncludeList sets the IncludeList field's value. +func (s *EffectivePreferredResource) SetIncludeList(v []*string) *EffectivePreferredResource { + s.IncludeList = v + return s +} + +// SetName sets the Name field's value. +func (s *EffectivePreferredResource) SetName(v string) *EffectivePreferredResource { + s.Name = &v + return s +} + // Describes the effective recommendation preferences for a resource. type EffectiveRecommendationPreferences struct { _ struct{} `type:"structure"` @@ -4430,6 +4980,24 @@ type EffectiveRecommendationPreferences struct { // recommendation refresh. A status of Inactive confirms that it's not yet applied // to recommendations. InferredWorkloadTypes *string `locationName:"inferredWorkloadTypes" type:"string" enum:"InferredWorkloadTypesPreference"` + + // The number of days the utilization metrics of the Amazon Web Services resource + // are analyzed. + LookBackPeriod *string `locationName:"lookBackPeriod" type:"string" enum:"LookBackPeriodPreference"` + + // The resource type values that are considered as candidates when generating + // rightsizing recommendations. + PreferredResources []*EffectivePreferredResource `locationName:"preferredResources" type:"list"` + + // Describes the savings estimation mode applied for calculating savings opportunity + // for a resource. + SavingsEstimationMode *InstanceSavingsEstimationMode `locationName:"savingsEstimationMode" type:"structure"` + + // The resource’s CPU utilization threshold preferences, such as threshold + // and headroom, that are used to generate rightsizing recommendations. + // + // This preference is only available for the Amazon EC2 instance resource type. + UtilizationPreferences []*UtilizationPreference `locationName:"utilizationPreferences" type:"list"` } // String returns the string representation. @@ -4468,9 +5036,33 @@ func (s *EffectiveRecommendationPreferences) SetExternalMetricsPreference(v *Ext return s } -// SetInferredWorkloadTypes sets the InferredWorkloadTypes field's value. -func (s *EffectiveRecommendationPreferences) SetInferredWorkloadTypes(v string) *EffectiveRecommendationPreferences { - s.InferredWorkloadTypes = &v +// SetInferredWorkloadTypes sets the InferredWorkloadTypes field's value. +func (s *EffectiveRecommendationPreferences) SetInferredWorkloadTypes(v string) *EffectiveRecommendationPreferences { + s.InferredWorkloadTypes = &v + return s +} + +// SetLookBackPeriod sets the LookBackPeriod field's value. +func (s *EffectiveRecommendationPreferences) SetLookBackPeriod(v string) *EffectiveRecommendationPreferences { + s.LookBackPeriod = &v + return s +} + +// SetPreferredResources sets the PreferredResources field's value. +func (s *EffectiveRecommendationPreferences) SetPreferredResources(v []*EffectivePreferredResource) *EffectiveRecommendationPreferences { + s.PreferredResources = v + return s +} + +// SetSavingsEstimationMode sets the SavingsEstimationMode field's value. +func (s *EffectiveRecommendationPreferences) SetSavingsEstimationMode(v *InstanceSavingsEstimationMode) *EffectiveRecommendationPreferences { + s.SavingsEstimationMode = v + return s +} + +// SetUtilizationPreferences sets the UtilizationPreferences field's value. +func (s *EffectiveRecommendationPreferences) SetUtilizationPreferences(v []*UtilizationPreference) *EffectiveRecommendationPreferences { + s.UtilizationPreferences = v return s } @@ -6815,6 +7407,38 @@ type GetEffectiveRecommendationPreferencesOutput struct { // For more information, see Enhanced infrastructure metrics (https://docs.aws.amazon.com/compute-optimizer/latest/ug/external-metrics-ingestion.html) // in the Compute Optimizer User Guide. ExternalMetricsPreference *ExternalMetricsPreference `locationName:"externalMetricsPreference" type:"structure"` + + // The number of days the utilization metrics of the Amazon Web Services resource + // are analyzed. + // + // To validate that the preference is applied to your last generated set of + // recommendations, review the effectiveRecommendationPreferences value in the + // response of the GetAutoScalingGroupRecommendations or GetEC2InstanceRecommendations + // actions. + LookBackPeriod *string `locationName:"lookBackPeriod" type:"string" enum:"LookBackPeriodPreference"` + + // The resource type values that are considered as candidates when generating + // rightsizing recommendations. This object resolves any wildcard expressions + // and returns the effective list of candidate resource type values. It also + // considers all applicable preferences that you set at the resource, account, + // and organization level. + // + // To validate that the preference is applied to your last generated set of + // recommendations, review the effectiveRecommendationPreferences value in the + // response of the GetAutoScalingGroupRecommendations or GetEC2InstanceRecommendations + // actions. + PreferredResources []*EffectivePreferredResource `locationName:"preferredResources" type:"list"` + + // The resource’s CPU utilization threshold preferences, such as threshold + // and headroom, that were used to generate rightsizing recommendations. It + // considers all applicable preferences that you set at the resource, account, + // and organization level. + // + // To validate that the preference is applied to your last generated set of + // recommendations, review the effectiveRecommendationPreferences value in the + // response of the GetAutoScalingGroupRecommendations or GetEC2InstanceRecommendations + // actions. + UtilizationPreferences []*UtilizationPreference `locationName:"utilizationPreferences" type:"list"` } // String returns the string representation. @@ -6847,6 +7471,24 @@ func (s *GetEffectiveRecommendationPreferencesOutput) SetExternalMetricsPreferen return s } +// SetLookBackPeriod sets the LookBackPeriod field's value. +func (s *GetEffectiveRecommendationPreferencesOutput) SetLookBackPeriod(v string) *GetEffectiveRecommendationPreferencesOutput { + s.LookBackPeriod = &v + return s +} + +// SetPreferredResources sets the PreferredResources field's value. +func (s *GetEffectiveRecommendationPreferencesOutput) SetPreferredResources(v []*EffectivePreferredResource) *GetEffectiveRecommendationPreferencesOutput { + s.PreferredResources = v + return s +} + +// SetUtilizationPreferences sets the UtilizationPreferences field's value. +func (s *GetEffectiveRecommendationPreferencesOutput) SetUtilizationPreferences(v []*UtilizationPreference) *GetEffectiveRecommendationPreferencesOutput { + s.UtilizationPreferences = v + return s +} + type GetEnrollmentStatusInput struct { _ struct{} `type:"structure"` } @@ -7729,6 +8371,49 @@ func (s *InferredWorkloadSaving) SetInferredWorkloadTypes(v []*string) *Inferred return s } +// An object that describes the estimated monthly savings possible by adopting +// Compute Optimizer’s Amazon EC2 instance recommendations. This is based +// on the Savings Plans and Reserved Instances pricing discounts. +type InstanceEstimatedMonthlySavings struct { + _ struct{} `type:"structure"` + + // The currency of the estimated monthly savings. + Currency *string `locationName:"currency" type:"string" enum:"Currency"` + + // The value of the estimated monthly savings. + Value *float64 `locationName:"value" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceEstimatedMonthlySavings) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceEstimatedMonthlySavings) GoString() string { + return s.String() +} + +// SetCurrency sets the Currency field's value. +func (s *InstanceEstimatedMonthlySavings) SetCurrency(v string) *InstanceEstimatedMonthlySavings { + s.Currency = &v + return s +} + +// SetValue sets the Value field's value. +func (s *InstanceEstimatedMonthlySavings) SetValue(v float64) *InstanceEstimatedMonthlySavings { + s.Value = &v + return s +} + // Describes an Amazon EC2 instance recommendation. type InstanceRecommendation struct { _ struct{} `type:"structure"` @@ -8212,6 +8897,11 @@ type InstanceRecommendationOption struct { // option. Savings opportunity includes the estimated monthly savings amount // and percentage. SavingsOpportunity *SavingsOpportunity `locationName:"savingsOpportunity" type:"structure"` + + // An object that describes the savings opportunity for the instance recommendation + // option that includes Savings Plans and Reserved Instances discounts. Savings + // opportunity includes the estimated monthly savings and percentage. + SavingsOpportunityAfterDiscounts *InstanceSavingsOpportunityAfterDiscounts `locationName:"savingsOpportunityAfterDiscounts" type:"structure"` } // String returns the string representation. @@ -8280,6 +8970,95 @@ func (s *InstanceRecommendationOption) SetSavingsOpportunity(v *SavingsOpportuni return s } +// SetSavingsOpportunityAfterDiscounts sets the SavingsOpportunityAfterDiscounts field's value. +func (s *InstanceRecommendationOption) SetSavingsOpportunityAfterDiscounts(v *InstanceSavingsOpportunityAfterDiscounts) *InstanceRecommendationOption { + s.SavingsOpportunityAfterDiscounts = v + return s +} + +// Describes the savings estimation mode used for calculating savings opportunity +// for Amazon EC2 instances. +type InstanceSavingsEstimationMode struct { + _ struct{} `type:"structure"` + + // Describes the source for calculating the savings opportunity for Amazon EC2 + // instances. + Source *string `locationName:"source" type:"string" enum:"InstanceSavingsEstimationModeSource"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceSavingsEstimationMode) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceSavingsEstimationMode) GoString() string { + return s.String() +} + +// SetSource sets the Source field's value. +func (s *InstanceSavingsEstimationMode) SetSource(v string) *InstanceSavingsEstimationMode { + s.Source = &v + return s +} + +// Describes the savings opportunity for instance recommendations after applying +// the Savings Plans and Reserved Instances discounts. +// +// Savings opportunity after discounts represents the estimated monthly savings +// you can achieve by implementing Compute Optimizer recommendations. +type InstanceSavingsOpportunityAfterDiscounts struct { + _ struct{} `type:"structure"` + + // An object that describes the estimated monthly savings possible by adopting + // Compute Optimizer’s Amazon EC2 instance recommendations. This is based + // on pricing after applying the Savings Plans and Reserved Instances discounts. + EstimatedMonthlySavings *InstanceEstimatedMonthlySavings `locationName:"estimatedMonthlySavings" type:"structure"` + + // The estimated monthly savings possible as a percentage of monthly cost after + // applying the Savings Plans and Reserved Instances discounts. This saving + // can be achieved by adopting Compute Optimizer’s EC2 instance recommendations. + SavingsOpportunityPercentage *float64 `locationName:"savingsOpportunityPercentage" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceSavingsOpportunityAfterDiscounts) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceSavingsOpportunityAfterDiscounts) GoString() string { + return s.String() +} + +// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. +func (s *InstanceSavingsOpportunityAfterDiscounts) SetEstimatedMonthlySavings(v *InstanceEstimatedMonthlySavings) *InstanceSavingsOpportunityAfterDiscounts { + s.EstimatedMonthlySavings = v + return s +} + +// SetSavingsOpportunityPercentage sets the SavingsOpportunityPercentage field's value. +func (s *InstanceSavingsOpportunityAfterDiscounts) SetSavingsOpportunityPercentage(v float64) *InstanceSavingsOpportunityAfterDiscounts { + s.SavingsOpportunityPercentage = &v + return s +} + // An internal error has occurred. Try your call again. type InternalServerException struct { _ struct{} `type:"structure"` @@ -8469,6 +9248,82 @@ func (s *JobFilter) SetValues(v []*string) *JobFilter { return s } +// Describes the effective recommendation preferences for Lambda functions. +type LambdaEffectiveRecommendationPreferences struct { + _ struct{} `type:"structure"` + + // Describes the savings estimation mode applied for calculating savings opportunity + // for Lambda functions. + SavingsEstimationMode *LambdaSavingsEstimationMode `locationName:"savingsEstimationMode" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaEffectiveRecommendationPreferences) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaEffectiveRecommendationPreferences) GoString() string { + return s.String() +} + +// SetSavingsEstimationMode sets the SavingsEstimationMode field's value. +func (s *LambdaEffectiveRecommendationPreferences) SetSavingsEstimationMode(v *LambdaSavingsEstimationMode) *LambdaEffectiveRecommendationPreferences { + s.SavingsEstimationMode = v + return s +} + +// Describes the estimated monthly savings possible for Lambda functions by +// adopting Compute Optimizer recommendations. This is based on Lambda functions +// pricing after applying Savings Plans discounts. +type LambdaEstimatedMonthlySavings struct { + _ struct{} `type:"structure"` + + // The currency of the estimated monthly savings. + Currency *string `locationName:"currency" type:"string" enum:"Currency"` + + // The value of the estimated monthly savings. + Value *float64 `locationName:"value" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaEstimatedMonthlySavings) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaEstimatedMonthlySavings) GoString() string { + return s.String() +} + +// SetCurrency sets the Currency field's value. +func (s *LambdaEstimatedMonthlySavings) SetCurrency(v string) *LambdaEstimatedMonthlySavings { + s.Currency = &v + return s +} + +// SetValue sets the Value field's value. +func (s *LambdaEstimatedMonthlySavings) SetValue(v float64) *LambdaEstimatedMonthlySavings { + s.Value = &v + return s +} + // Describes a projected utilization metric of an Lambda function recommendation // option. type LambdaFunctionMemoryProjectedMetric struct { @@ -8540,6 +9395,11 @@ type LambdaFunctionMemoryRecommendationOption struct { // recommendation option. Savings opportunity includes the estimated monthly // savings amount and percentage. SavingsOpportunity *SavingsOpportunity `locationName:"savingsOpportunity" type:"structure"` + + // An object that describes the savings opportunity for the Lambda recommendation + // option which includes Saving Plans discounts. Savings opportunity includes + // the estimated monthly savings and percentage. + SavingsOpportunityAfterDiscounts *LambdaSavingsOpportunityAfterDiscounts `locationName:"savingsOpportunityAfterDiscounts" type:"structure"` } // String returns the string representation. @@ -8584,6 +9444,12 @@ func (s *LambdaFunctionMemoryRecommendationOption) SetSavingsOpportunity(v *Savi return s } +// SetSavingsOpportunityAfterDiscounts sets the SavingsOpportunityAfterDiscounts field's value. +func (s *LambdaFunctionMemoryRecommendationOption) SetSavingsOpportunityAfterDiscounts(v *LambdaSavingsOpportunityAfterDiscounts) *LambdaFunctionMemoryRecommendationOption { + s.SavingsOpportunityAfterDiscounts = v + return s +} + // Describes an Lambda function recommendation. type LambdaFunctionRecommendation struct { _ struct{} `type:"structure"` @@ -8599,6 +9465,9 @@ type LambdaFunctionRecommendation struct { // function requires more memory. CurrentPerformanceRisk *string `locationName:"currentPerformanceRisk" type:"string" enum:"CurrentPerformanceRisk"` + // Describes the effective recommendation preferences for Lambda functions. + EffectiveRecommendationPreferences *LambdaEffectiveRecommendationPreferences `locationName:"effectiveRecommendationPreferences" type:"structure"` + // The finding classification of the function. // // Findings for functions include: @@ -8717,6 +9586,12 @@ func (s *LambdaFunctionRecommendation) SetCurrentPerformanceRisk(v string) *Lamb return s } +// SetEffectiveRecommendationPreferences sets the EffectiveRecommendationPreferences field's value. +func (s *LambdaFunctionRecommendation) SetEffectiveRecommendationPreferences(v *LambdaEffectiveRecommendationPreferences) *LambdaFunctionRecommendation { + s.EffectiveRecommendationPreferences = v + return s +} + // SetFinding sets the Finding field's value. func (s *LambdaFunctionRecommendation) SetFinding(v string) *LambdaFunctionRecommendation { s.Finding = &v @@ -8882,8 +9757,97 @@ type LambdaFunctionUtilizationMetric struct { // see the Amazon CloudWatch User Guide (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html). Statistic *string `locationName:"statistic" type:"string" enum:"LambdaFunctionMetricStatistic"` - // The value of the utilization metric. - Value *float64 `locationName:"value" type:"double"` + // The value of the utilization metric. + Value *float64 `locationName:"value" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaFunctionUtilizationMetric) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaFunctionUtilizationMetric) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *LambdaFunctionUtilizationMetric) SetName(v string) *LambdaFunctionUtilizationMetric { + s.Name = &v + return s +} + +// SetStatistic sets the Statistic field's value. +func (s *LambdaFunctionUtilizationMetric) SetStatistic(v string) *LambdaFunctionUtilizationMetric { + s.Statistic = &v + return s +} + +// SetValue sets the Value field's value. +func (s *LambdaFunctionUtilizationMetric) SetValue(v float64) *LambdaFunctionUtilizationMetric { + s.Value = &v + return s +} + +// Describes the savings estimation used for calculating savings opportunity +// for Lambda functions. +type LambdaSavingsEstimationMode struct { + _ struct{} `type:"structure"` + + // Describes the source for calculation of savings opportunity for Lambda functions. + Source *string `locationName:"source" type:"string" enum:"LambdaSavingsEstimationModeSource"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaSavingsEstimationMode) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaSavingsEstimationMode) GoString() string { + return s.String() +} + +// SetSource sets the Source field's value. +func (s *LambdaSavingsEstimationMode) SetSource(v string) *LambdaSavingsEstimationMode { + s.Source = &v + return s +} + +// Describes the savings opportunity for Lambda functions recommendations after +// applying Savings Plans discounts. +// +// Savings opportunity represents the estimated monthly savings after applying +// Savings Plans discounts. You can achieve this by implementing a given Compute +// Optimizer recommendation. +type LambdaSavingsOpportunityAfterDiscounts struct { + _ struct{} `type:"structure"` + + // The estimated monthly savings possible by adopting Compute Optimizer’s + // Lambda function recommendations. This includes any applicable Savings Plans + // discounts. + EstimatedMonthlySavings *LambdaEstimatedMonthlySavings `locationName:"estimatedMonthlySavings" type:"structure"` + + // The estimated monthly savings possible as a percentage of monthly cost by + // adopting Compute Optimizer’s Lambda function recommendations. This includes + // any applicable Savings Plans discounts. + SavingsOpportunityPercentage *float64 `locationName:"savingsOpportunityPercentage" type:"double"` } // String returns the string representation. @@ -8891,7 +9855,7 @@ type LambdaFunctionUtilizationMetric struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LambdaFunctionUtilizationMetric) String() string { +func (s LambdaSavingsOpportunityAfterDiscounts) String() string { return awsutil.Prettify(s) } @@ -8900,25 +9864,19 @@ func (s LambdaFunctionUtilizationMetric) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LambdaFunctionUtilizationMetric) GoString() string { +func (s LambdaSavingsOpportunityAfterDiscounts) GoString() string { return s.String() } -// SetName sets the Name field's value. -func (s *LambdaFunctionUtilizationMetric) SetName(v string) *LambdaFunctionUtilizationMetric { - s.Name = &v - return s -} - -// SetStatistic sets the Statistic field's value. -func (s *LambdaFunctionUtilizationMetric) SetStatistic(v string) *LambdaFunctionUtilizationMetric { - s.Statistic = &v +// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. +func (s *LambdaSavingsOpportunityAfterDiscounts) SetEstimatedMonthlySavings(v *LambdaEstimatedMonthlySavings) *LambdaSavingsOpportunityAfterDiscounts { + s.EstimatedMonthlySavings = v return s } -// SetValue sets the Value field's value. -func (s *LambdaFunctionUtilizationMetric) SetValue(v float64) *LambdaFunctionUtilizationMetric { - s.Value = &v +// SetSavingsOpportunityPercentage sets the SavingsOpportunityPercentage field's value. +func (s *LambdaSavingsOpportunityAfterDiscounts) SetSavingsOpportunityPercentage(v float64) *LambdaSavingsOpportunityAfterDiscounts { + s.SavingsOpportunityPercentage = &v return s } @@ -9585,6 +10543,74 @@ func (s *OptInRequiredException) RequestID() string { return s.RespMetadata.RequestID } +// The preference to control which resource type values are considered when +// generating rightsizing recommendations. You can specify this preference as +// a combination of include and exclude lists. You must specify either an includeList +// or excludeList. If the preference is an empty set of resource type values, +// an error occurs. For more information, see Rightsizing recommendation preferences +// (https://docs.aws.amazon.com/compute-optimizer/latest/ug/rightsizing-preferences.html) +// in the Compute Optimizer User Guide. +// +// - This preference is only available for the Amazon EC2 instance and Auto +// Scaling group resource types. +// +// - Compute Optimizer only supports the customization of Ec2InstanceTypes. +type PreferredResource struct { + _ struct{} `type:"structure"` + + // The preferred resource type values to exclude from the recommendation candidates. + // If this isn’t specified, all supported resources are included by default. + // You can specify up to 1000 values in this list. + ExcludeList []*string `locationName:"excludeList" type:"list"` + + // The preferred resource type values to include in the recommendation candidates. + // You can specify the exact resource type value, such as m5.large, or use wild + // card expressions, such as m5. If this isn’t specified, all supported resources + // are included by default. You can specify up to 1000 values in this list. + IncludeList []*string `locationName:"includeList" type:"list"` + + // The type of preferred resource to customize. + // + // Compute Optimizer only supports the customization of Ec2InstanceTypes. + Name *string `locationName:"name" type:"string" enum:"PreferredResourceName"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PreferredResource) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PreferredResource) GoString() string { + return s.String() +} + +// SetExcludeList sets the ExcludeList field's value. +func (s *PreferredResource) SetExcludeList(v []*string) *PreferredResource { + s.ExcludeList = v + return s +} + +// SetIncludeList sets the IncludeList field's value. +func (s *PreferredResource) SetIncludeList(v []*string) *PreferredResource { + s.IncludeList = v + return s +} + +// SetName sets the Name field's value. +func (s *PreferredResource) SetName(v string) *PreferredResource { + s.Name = &v + return s +} + // Describes a projected utilization metric of a recommendation option, such // as an Amazon EC2 instance. This represents the projected utilization of a // recommendation option had you used that resource during the analyzed period. @@ -9712,6 +10738,24 @@ type PutRecommendationPreferencesInput struct { // in the Compute Optimizer User Guide. InferredWorkloadTypes *string `locationName:"inferredWorkloadTypes" type:"string" enum:"InferredWorkloadTypesPreference"` + // The preference to control the number of days the utilization metrics of the + // Amazon Web Services resource are analyzed. When this preference isn't specified, + // we use the default value DAYS_14. + // + // You can only set this preference for the Amazon EC2 instance and Auto Scaling + // group resource types. + LookBackPeriod *string `locationName:"lookBackPeriod" type:"string" enum:"LookBackPeriodPreference"` + + // The preference to control which resource type values are considered when + // generating rightsizing recommendations. You can specify this preference as + // a combination of include and exclude lists. You must specify either an includeList + // or excludeList. If the preference is an empty set of resource type values, + // an error occurs. + // + // You can only set this preference for the Amazon EC2 instance and Auto Scaling + // group resource types. + PreferredResources []*PreferredResource `locationName:"preferredResources" type:"list"` + // The target resource type of the recommendation preference to create. // // The Ec2Instance option encompasses standalone instances and instances that @@ -9723,6 +10767,18 @@ type PutRecommendationPreferencesInput struct { // ResourceType is a required field ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"` + // The status of the savings estimation mode preference to create or update. + // + // Specify the AfterDiscounts status to activate the preference, or specify + // BeforeDiscounts to deactivate the preference. + // + // Only the account manager or delegated administrator of your organization + // can activate this preference. + // + // For more information, see Savings estimation mode (https://docs.aws.amazon.com/compute-optimizer/latest/ug/savings-estimation-mode.html) + // in the Compute Optimizer User Guide. + SavingsEstimationMode *string `locationName:"savingsEstimationMode" type:"string" enum:"SavingsEstimationMode"` + // An object that describes the scope of the recommendation preference to create. // // You can create recommendation preferences at the organization level (for @@ -9741,6 +10797,17 @@ type PutRecommendationPreferencesInput struct { // Scaling group. You can create recommendation preferences at the resource // level only for standalone instances. Scope *Scope `locationName:"scope" type:"structure"` + + // The preference to control the resource’s CPU utilization thresholds - threshold + // and headroom. When this preference isn't specified, we use the following + // default values: + // + // * P99_5 for threshold + // + // * PERCENT_17 for headroom + // + // You can only set this preference for the Amazon EC2 instance resource type. + UtilizationPreferences []*UtilizationPreference `locationName:"utilizationPreferences" type:"list"` } // String returns the string representation. @@ -9792,18 +10859,42 @@ func (s *PutRecommendationPreferencesInput) SetInferredWorkloadTypes(v string) * return s } +// SetLookBackPeriod sets the LookBackPeriod field's value. +func (s *PutRecommendationPreferencesInput) SetLookBackPeriod(v string) *PutRecommendationPreferencesInput { + s.LookBackPeriod = &v + return s +} + +// SetPreferredResources sets the PreferredResources field's value. +func (s *PutRecommendationPreferencesInput) SetPreferredResources(v []*PreferredResource) *PutRecommendationPreferencesInput { + s.PreferredResources = v + return s +} + // SetResourceType sets the ResourceType field's value. func (s *PutRecommendationPreferencesInput) SetResourceType(v string) *PutRecommendationPreferencesInput { s.ResourceType = &v return s } +// SetSavingsEstimationMode sets the SavingsEstimationMode field's value. +func (s *PutRecommendationPreferencesInput) SetSavingsEstimationMode(v string) *PutRecommendationPreferencesInput { + s.SavingsEstimationMode = &v + return s +} + // SetScope sets the Scope field's value. func (s *PutRecommendationPreferencesInput) SetScope(v *Scope) *PutRecommendationPreferencesInput { s.Scope = v return s } +// SetUtilizationPreferences sets the UtilizationPreferences field's value. +func (s *PutRecommendationPreferencesInput) SetUtilizationPreferences(v []*UtilizationPreference) *PutRecommendationPreferencesInput { + s.UtilizationPreferences = v + return s +} + type PutRecommendationPreferencesOutput struct { _ struct{} `type:"structure"` } @@ -10036,6 +11127,17 @@ type RecommendationPreferencesDetail struct { // confirms that the preference isn't yet applied to recommendations. InferredWorkloadTypes *string `locationName:"inferredWorkloadTypes" type:"string" enum:"InferredWorkloadTypesPreference"` + // The preference to control the number of days the utilization metrics of the + // Amazon Web Services resource are analyzed. If the preference isn’t set, + // this object is null. + LookBackPeriod *string `locationName:"lookBackPeriod" type:"string" enum:"LookBackPeriodPreference"` + + // The preference to control which resource type values are considered when + // generating rightsizing recommendations. This object resolves any wildcard + // expressions and returns the effective list of candidate resource type values. + // If the preference isn’t set, this object is null. + PreferredResources []*EffectivePreferredResource `locationName:"preferredResources" type:"list"` + // The target resource type of the recommendation preference to create. // // The Ec2Instance option encompasses standalone instances and instances that @@ -10043,6 +11145,12 @@ type RecommendationPreferencesDetail struct { // only instances that are part of an Auto Scaling group. ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"` + // Describes the savings estimation mode used for calculating savings opportunity. + // + // Only the account manager or delegated administrator of your organization + // can activate this preference. + SavingsEstimationMode *string `locationName:"savingsEstimationMode" type:"string" enum:"SavingsEstimationMode"` + // An object that describes the scope of the recommendation preference. // // Recommendation preferences can be created at the organization level (for @@ -10051,6 +11159,12 @@ type RecommendationPreferencesDetail struct { // (https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html) // in the Compute Optimizer User Guide. Scope *Scope `locationName:"scope" type:"structure"` + + // The preference to control the resource’s CPU utilization thresholds - threshold + // and headroom. If the preference isn’t set, this object is null. + // + // This preference is only available for the Amazon EC2 instance resource type. + UtilizationPreferences []*UtilizationPreference `locationName:"utilizationPreferences" type:"list"` } // String returns the string representation. @@ -10089,18 +11203,42 @@ func (s *RecommendationPreferencesDetail) SetInferredWorkloadTypes(v string) *Re return s } +// SetLookBackPeriod sets the LookBackPeriod field's value. +func (s *RecommendationPreferencesDetail) SetLookBackPeriod(v string) *RecommendationPreferencesDetail { + s.LookBackPeriod = &v + return s +} + +// SetPreferredResources sets the PreferredResources field's value. +func (s *RecommendationPreferencesDetail) SetPreferredResources(v []*EffectivePreferredResource) *RecommendationPreferencesDetail { + s.PreferredResources = v + return s +} + // SetResourceType sets the ResourceType field's value. func (s *RecommendationPreferencesDetail) SetResourceType(v string) *RecommendationPreferencesDetail { s.ResourceType = &v return s } +// SetSavingsEstimationMode sets the SavingsEstimationMode field's value. +func (s *RecommendationPreferencesDetail) SetSavingsEstimationMode(v string) *RecommendationPreferencesDetail { + s.SavingsEstimationMode = &v + return s +} + // SetScope sets the Scope field's value. func (s *RecommendationPreferencesDetail) SetScope(v *Scope) *RecommendationPreferencesDetail { s.Scope = v return s } +// SetUtilizationPreferences sets the UtilizationPreferences field's value. +func (s *RecommendationPreferencesDetail) SetUtilizationPreferences(v []*UtilizationPreference) *RecommendationPreferencesDetail { + s.UtilizationPreferences = v + return s +} + // Describes the source of a recommendation, such as an Amazon EC2 instance // or Auto Scaling group. type RecommendationSource struct { @@ -11162,6 +12300,52 @@ func (s *UtilizationMetric) SetValue(v float64) *UtilizationMetric { return s } +// The preference to control the resource’s CPU utilization thresholds - threshold +// and headroom. +// +// This preference is only available for the Amazon EC2 instance resource type. +type UtilizationPreference struct { + _ struct{} `type:"structure"` + + // The name of the resource utilization metric name to customize. + // + // Compute Optimizer only supports CpuUtilization. + MetricName *string `locationName:"metricName" type:"string" enum:"CustomizableMetricName"` + + // The parameters to set when customizing the resource utilization thresholds. + MetricParameters *CustomizableMetricParameters `locationName:"metricParameters" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UtilizationPreference) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UtilizationPreference) GoString() string { + return s.String() +} + +// SetMetricName sets the MetricName field's value. +func (s *UtilizationPreference) SetMetricName(v string) *UtilizationPreference { + s.MetricName = &v + return s +} + +// SetMetricParameters sets the MetricParameters field's value. +func (s *UtilizationPreference) SetMetricParameters(v *CustomizableMetricParameters) *UtilizationPreference { + s.MetricParameters = v + return s +} + // Describes the configuration of an Amazon Elastic Block Store (Amazon EBS) // volume. type VolumeConfiguration struct { @@ -11268,6 +12452,9 @@ type VolumeRecommendation struct { // have sufficient capacity. CurrentPerformanceRisk *string `locationName:"currentPerformanceRisk" type:"string" enum:"CurrentPerformanceRisk"` + // Describes the effective recommendation preferences for Amazon EBS volume. + EffectiveRecommendationPreferences *EBSEffectiveRecommendationPreferences `locationName:"effectiveRecommendationPreferences" type:"structure"` + // The finding classification of the volume. // // Findings for volumes include: @@ -11337,6 +12524,12 @@ func (s *VolumeRecommendation) SetCurrentPerformanceRisk(v string) *VolumeRecomm return s } +// SetEffectiveRecommendationPreferences sets the EffectiveRecommendationPreferences field's value. +func (s *VolumeRecommendation) SetEffectiveRecommendationPreferences(v *EBSEffectiveRecommendationPreferences) *VolumeRecommendation { + s.EffectiveRecommendationPreferences = v + return s +} + // SetFinding sets the Finding field's value. func (s *VolumeRecommendation) SetFinding(v string) *VolumeRecommendation { s.Finding = &v @@ -11408,6 +12601,11 @@ type VolumeRecommendationOption struct { // option. Savings opportunity includes the estimated monthly savings amount // and percentage. SavingsOpportunity *SavingsOpportunity `locationName:"savingsOpportunity" type:"structure"` + + // An object that describes the savings opportunity for the Amazon EBS volume + // recommendation option with specific discounts. Savings opportunity includes + // the estimated monthly savings and percentage. + SavingsOpportunityAfterDiscounts *EBSSavingsOpportunityAfterDiscounts `locationName:"savingsOpportunityAfterDiscounts" type:"structure"` } // String returns the string representation. @@ -11452,6 +12650,12 @@ func (s *VolumeRecommendationOption) SetSavingsOpportunity(v *SavingsOpportunity return s } +// SetSavingsOpportunityAfterDiscounts sets the SavingsOpportunityAfterDiscounts field's value. +func (s *VolumeRecommendationOption) SetSavingsOpportunityAfterDiscounts(v *EBSSavingsOpportunityAfterDiscounts) *VolumeRecommendationOption { + s.SavingsOpportunityAfterDiscounts = v + return s +} + const ( // AutoScalingConfigurationTargetTrackingScalingCpu is a AutoScalingConfiguration enum value AutoScalingConfigurationTargetTrackingScalingCpu = "TargetTrackingScalingCpu" @@ -11524,6 +12728,58 @@ func CurrentPerformanceRisk_Values() []string { } } +const ( + // CustomizableMetricHeadroomPercent30 is a CustomizableMetricHeadroom enum value + CustomizableMetricHeadroomPercent30 = "PERCENT_30" + + // CustomizableMetricHeadroomPercent20 is a CustomizableMetricHeadroom enum value + CustomizableMetricHeadroomPercent20 = "PERCENT_20" + + // CustomizableMetricHeadroomPercent0 is a CustomizableMetricHeadroom enum value + CustomizableMetricHeadroomPercent0 = "PERCENT_0" +) + +// CustomizableMetricHeadroom_Values returns all elements of the CustomizableMetricHeadroom enum +func CustomizableMetricHeadroom_Values() []string { + return []string{ + CustomizableMetricHeadroomPercent30, + CustomizableMetricHeadroomPercent20, + CustomizableMetricHeadroomPercent0, + } +} + +const ( + // CustomizableMetricNameCpuUtilization is a CustomizableMetricName enum value + CustomizableMetricNameCpuUtilization = "CpuUtilization" +) + +// CustomizableMetricName_Values returns all elements of the CustomizableMetricName enum +func CustomizableMetricName_Values() []string { + return []string{ + CustomizableMetricNameCpuUtilization, + } +} + +const ( + // CustomizableMetricThresholdP90 is a CustomizableMetricThreshold enum value + CustomizableMetricThresholdP90 = "P90" + + // CustomizableMetricThresholdP95 is a CustomizableMetricThreshold enum value + CustomizableMetricThresholdP95 = "P95" + + // CustomizableMetricThresholdP995 is a CustomizableMetricThreshold enum value + CustomizableMetricThresholdP995 = "P99_5" +) + +// CustomizableMetricThreshold_Values returns all elements of the CustomizableMetricThreshold enum +func CustomizableMetricThreshold_Values() []string { + return []string{ + CustomizableMetricThresholdP90, + CustomizableMetricThresholdP95, + CustomizableMetricThresholdP995, + } +} + const ( // EBSFilterNameFinding is a EBSFilterName enum value EBSFilterNameFinding = "Finding" @@ -11576,6 +12832,46 @@ func EBSMetricName_Values() []string { } } +const ( + // EBSSavingsEstimationModeSourcePublicPricing is a EBSSavingsEstimationModeSource enum value + EBSSavingsEstimationModeSourcePublicPricing = "PublicPricing" + + // EBSSavingsEstimationModeSourceCostExplorerRightsizing is a EBSSavingsEstimationModeSource enum value + EBSSavingsEstimationModeSourceCostExplorerRightsizing = "CostExplorerRightsizing" + + // EBSSavingsEstimationModeSourceCostOptimizationHub is a EBSSavingsEstimationModeSource enum value + EBSSavingsEstimationModeSourceCostOptimizationHub = "CostOptimizationHub" +) + +// EBSSavingsEstimationModeSource_Values returns all elements of the EBSSavingsEstimationModeSource enum +func EBSSavingsEstimationModeSource_Values() []string { + return []string{ + EBSSavingsEstimationModeSourcePublicPricing, + EBSSavingsEstimationModeSourceCostExplorerRightsizing, + EBSSavingsEstimationModeSourceCostOptimizationHub, + } +} + +const ( + // ECSSavingsEstimationModeSourcePublicPricing is a ECSSavingsEstimationModeSource enum value + ECSSavingsEstimationModeSourcePublicPricing = "PublicPricing" + + // ECSSavingsEstimationModeSourceCostExplorerRightsizing is a ECSSavingsEstimationModeSource enum value + ECSSavingsEstimationModeSourceCostExplorerRightsizing = "CostExplorerRightsizing" + + // ECSSavingsEstimationModeSourceCostOptimizationHub is a ECSSavingsEstimationModeSource enum value + ECSSavingsEstimationModeSourceCostOptimizationHub = "CostOptimizationHub" +) + +// ECSSavingsEstimationModeSource_Values returns all elements of the ECSSavingsEstimationModeSource enum +func ECSSavingsEstimationModeSource_Values() []string { + return []string{ + ECSSavingsEstimationModeSourcePublicPricing, + ECSSavingsEstimationModeSourceCostExplorerRightsizing, + ECSSavingsEstimationModeSourceCostOptimizationHub, + } +} + const ( // ECSServiceLaunchTypeEc2 is a ECSServiceLaunchType enum value ECSServiceLaunchTypeEc2 = "EC2" @@ -11892,6 +13188,24 @@ const ( // ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsGpuMemoryPercentageMaximum is a ExportableAutoScalingGroupField enum value ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsGpuMemoryPercentageMaximum = "RecommendationOptionsProjectedUtilizationMetricsGpuMemoryPercentageMaximum" + + // ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesSavingsEstimationMode is a ExportableAutoScalingGroupField enum value + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesSavingsEstimationMode = "EffectiveRecommendationPreferencesSavingsEstimationMode" + + // ExportableAutoScalingGroupFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage is a ExportableAutoScalingGroupField enum value + ExportableAutoScalingGroupFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage = "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage" + + // ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts is a ExportableAutoScalingGroupField enum value + ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts = "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts" + + // ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts is a ExportableAutoScalingGroupField enum value + ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts = "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" + + // ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesPreferredResources is a ExportableAutoScalingGroupField enum value + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesPreferredResources = "EffectiveRecommendationPreferencesPreferredResources" + + // ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesLookBackPeriod is a ExportableAutoScalingGroupField enum value + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesLookBackPeriod = "EffectiveRecommendationPreferencesLookBackPeriod" ) // ExportableAutoScalingGroupField_Values returns all elements of the ExportableAutoScalingGroupField enum @@ -11957,6 +13271,12 @@ func ExportableAutoScalingGroupField_Values() []string { ExportableAutoScalingGroupFieldUtilizationMetricsGpuMemoryPercentageMaximum, ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsGpuPercentageMaximum, ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsGpuMemoryPercentageMaximum, + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesSavingsEstimationMode, + ExportableAutoScalingGroupFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage, + ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts, + ExportableAutoScalingGroupFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts, + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesPreferredResources, + ExportableAutoScalingGroupFieldEffectiveRecommendationPreferencesLookBackPeriod, } } @@ -12032,6 +13352,18 @@ const ( // ExportableECSServiceFieldTags is a ExportableECSServiceField enum value ExportableECSServiceFieldTags = "Tags" + + // ExportableECSServiceFieldEffectiveRecommendationPreferencesSavingsEstimationMode is a ExportableECSServiceField enum value + ExportableECSServiceFieldEffectiveRecommendationPreferencesSavingsEstimationMode = "EffectiveRecommendationPreferencesSavingsEstimationMode" + + // ExportableECSServiceFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage is a ExportableECSServiceField enum value + ExportableECSServiceFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage = "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage" + + // ExportableECSServiceFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts is a ExportableECSServiceField enum value + ExportableECSServiceFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts = "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts" + + // ExportableECSServiceFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts is a ExportableECSServiceField enum value + ExportableECSServiceFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts = "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" ) // ExportableECSServiceField_Values returns all elements of the ExportableECSServiceField enum @@ -12061,6 +13393,10 @@ func ExportableECSServiceField_Values() []string { ExportableECSServiceFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum, ExportableECSServiceFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum, ExportableECSServiceFieldTags, + ExportableECSServiceFieldEffectiveRecommendationPreferencesSavingsEstimationMode, + ExportableECSServiceFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage, + ExportableECSServiceFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts, + ExportableECSServiceFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts, } } @@ -12256,6 +13592,27 @@ const ( // ExportableInstanceFieldIdle is a ExportableInstanceField enum value ExportableInstanceFieldIdle = "Idle" + + // ExportableInstanceFieldEffectiveRecommendationPreferencesPreferredResources is a ExportableInstanceField enum value + ExportableInstanceFieldEffectiveRecommendationPreferencesPreferredResources = "EffectiveRecommendationPreferencesPreferredResources" + + // ExportableInstanceFieldEffectiveRecommendationPreferencesLookBackPeriod is a ExportableInstanceField enum value + ExportableInstanceFieldEffectiveRecommendationPreferencesLookBackPeriod = "EffectiveRecommendationPreferencesLookBackPeriod" + + // ExportableInstanceFieldEffectiveRecommendationPreferencesUtilizationPreferences is a ExportableInstanceField enum value + ExportableInstanceFieldEffectiveRecommendationPreferencesUtilizationPreferences = "EffectiveRecommendationPreferencesUtilizationPreferences" + + // ExportableInstanceFieldEffectiveRecommendationPreferencesSavingsEstimationMode is a ExportableInstanceField enum value + ExportableInstanceFieldEffectiveRecommendationPreferencesSavingsEstimationMode = "EffectiveRecommendationPreferencesSavingsEstimationMode" + + // ExportableInstanceFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage is a ExportableInstanceField enum value + ExportableInstanceFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage = "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage" + + // ExportableInstanceFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts is a ExportableInstanceField enum value + ExportableInstanceFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts = "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts" + + // ExportableInstanceFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts is a ExportableInstanceField enum value + ExportableInstanceFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts = "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" ) // ExportableInstanceField_Values returns all elements of the ExportableInstanceField enum @@ -12325,6 +13682,13 @@ func ExportableInstanceField_Values() []string { ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsGpuPercentageMaximum, ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsGpuMemoryPercentageMaximum, ExportableInstanceFieldIdle, + ExportableInstanceFieldEffectiveRecommendationPreferencesPreferredResources, + ExportableInstanceFieldEffectiveRecommendationPreferencesLookBackPeriod, + ExportableInstanceFieldEffectiveRecommendationPreferencesUtilizationPreferences, + ExportableInstanceFieldEffectiveRecommendationPreferencesSavingsEstimationMode, + ExportableInstanceFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage, + ExportableInstanceFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts, + ExportableInstanceFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts, } } @@ -12409,6 +13773,18 @@ const ( // ExportableLambdaFunctionFieldTags is a ExportableLambdaFunctionField enum value ExportableLambdaFunctionFieldTags = "Tags" + + // ExportableLambdaFunctionFieldEffectiveRecommendationPreferencesSavingsEstimationMode is a ExportableLambdaFunctionField enum value + ExportableLambdaFunctionFieldEffectiveRecommendationPreferencesSavingsEstimationMode = "EffectiveRecommendationPreferencesSavingsEstimationMode" + + // ExportableLambdaFunctionFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage is a ExportableLambdaFunctionField enum value + ExportableLambdaFunctionFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage = "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage" + + // ExportableLambdaFunctionFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts is a ExportableLambdaFunctionField enum value + ExportableLambdaFunctionFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts = "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts" + + // ExportableLambdaFunctionFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts is a ExportableLambdaFunctionField enum value + ExportableLambdaFunctionFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts = "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" ) // ExportableLambdaFunctionField_Values returns all elements of the ExportableLambdaFunctionField enum @@ -12441,6 +13817,10 @@ func ExportableLambdaFunctionField_Values() []string { ExportableLambdaFunctionFieldRecommendationOptionsEstimatedMonthlySavingsCurrency, ExportableLambdaFunctionFieldRecommendationOptionsEstimatedMonthlySavingsValue, ExportableLambdaFunctionFieldTags, + ExportableLambdaFunctionFieldEffectiveRecommendationPreferencesSavingsEstimationMode, + ExportableLambdaFunctionFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage, + ExportableLambdaFunctionFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts, + ExportableLambdaFunctionFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts, } } @@ -12629,6 +14009,18 @@ const ( // ExportableVolumeFieldCurrentConfigurationRootVolume is a ExportableVolumeField enum value ExportableVolumeFieldCurrentConfigurationRootVolume = "CurrentConfigurationRootVolume" + + // ExportableVolumeFieldEffectiveRecommendationPreferencesSavingsEstimationMode is a ExportableVolumeField enum value + ExportableVolumeFieldEffectiveRecommendationPreferencesSavingsEstimationMode = "EffectiveRecommendationPreferencesSavingsEstimationMode" + + // ExportableVolumeFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage is a ExportableVolumeField enum value + ExportableVolumeFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage = "RecommendationOptionsSavingsOpportunityAfterDiscountsPercentage" + + // ExportableVolumeFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts is a ExportableVolumeField enum value + ExportableVolumeFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts = "RecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts" + + // ExportableVolumeFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts is a ExportableVolumeField enum value + ExportableVolumeFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts = "RecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts" ) // ExportableVolumeField_Values returns all elements of the ExportableVolumeField enum @@ -12665,6 +14057,10 @@ func ExportableVolumeField_Values() []string { ExportableVolumeFieldRootVolume, ExportableVolumeFieldTags, ExportableVolumeFieldCurrentConfigurationRootVolume, + ExportableVolumeFieldEffectiveRecommendationPreferencesSavingsEstimationMode, + ExportableVolumeFieldRecommendationOptionsSavingsOpportunityAfterDiscountsPercentage, + ExportableVolumeFieldRecommendationOptionsEstimatedMonthlySavingsCurrencyAfterDiscounts, + ExportableVolumeFieldRecommendationOptionsEstimatedMonthlySavingsValueAfterDiscounts, } } @@ -12980,6 +14376,26 @@ func InstanceRecommendationFindingReasonCode_Values() []string { } } +const ( + // InstanceSavingsEstimationModeSourcePublicPricing is a InstanceSavingsEstimationModeSource enum value + InstanceSavingsEstimationModeSourcePublicPricing = "PublicPricing" + + // InstanceSavingsEstimationModeSourceCostExplorerRightsizing is a InstanceSavingsEstimationModeSource enum value + InstanceSavingsEstimationModeSourceCostExplorerRightsizing = "CostExplorerRightsizing" + + // InstanceSavingsEstimationModeSourceCostOptimizationHub is a InstanceSavingsEstimationModeSource enum value + InstanceSavingsEstimationModeSourceCostOptimizationHub = "CostOptimizationHub" +) + +// InstanceSavingsEstimationModeSource_Values returns all elements of the InstanceSavingsEstimationModeSource enum +func InstanceSavingsEstimationModeSource_Values() []string { + return []string{ + InstanceSavingsEstimationModeSourcePublicPricing, + InstanceSavingsEstimationModeSourceCostExplorerRightsizing, + InstanceSavingsEstimationModeSourceCostOptimizationHub, + } +} + const ( // InstanceStatePending is a InstanceState enum value InstanceStatePending = "pending" @@ -13176,6 +14592,26 @@ func LambdaFunctionRecommendationFindingReasonCode_Values() []string { } } +const ( + // LambdaSavingsEstimationModeSourcePublicPricing is a LambdaSavingsEstimationModeSource enum value + LambdaSavingsEstimationModeSourcePublicPricing = "PublicPricing" + + // LambdaSavingsEstimationModeSourceCostExplorerRightsizing is a LambdaSavingsEstimationModeSource enum value + LambdaSavingsEstimationModeSourceCostExplorerRightsizing = "CostExplorerRightsizing" + + // LambdaSavingsEstimationModeSourceCostOptimizationHub is a LambdaSavingsEstimationModeSource enum value + LambdaSavingsEstimationModeSourceCostOptimizationHub = "CostOptimizationHub" +) + +// LambdaSavingsEstimationModeSource_Values returns all elements of the LambdaSavingsEstimationModeSource enum +func LambdaSavingsEstimationModeSource_Values() []string { + return []string{ + LambdaSavingsEstimationModeSourcePublicPricing, + LambdaSavingsEstimationModeSourceCostExplorerRightsizing, + LambdaSavingsEstimationModeSourceCostOptimizationHub, + } +} + const ( // LicenseEditionEnterprise is a LicenseEdition enum value LicenseEditionEnterprise = "Enterprise" @@ -13292,6 +14728,26 @@ func LicenseRecommendationFilterName_Values() []string { } } +const ( + // LookBackPeriodPreferenceDays14 is a LookBackPeriodPreference enum value + LookBackPeriodPreferenceDays14 = "DAYS_14" + + // LookBackPeriodPreferenceDays32 is a LookBackPeriodPreference enum value + LookBackPeriodPreferenceDays32 = "DAYS_32" + + // LookBackPeriodPreferenceDays93 is a LookBackPeriodPreference enum value + LookBackPeriodPreferenceDays93 = "DAYS_93" +) + +// LookBackPeriodPreference_Values returns all elements of the LookBackPeriodPreference enum +func LookBackPeriodPreference_Values() []string { + return []string{ + LookBackPeriodPreferenceDays14, + LookBackPeriodPreferenceDays32, + LookBackPeriodPreferenceDays93, + } +} + const ( // MetricNameCpu is a MetricName enum value MetricNameCpu = "Cpu" @@ -13448,6 +14904,18 @@ func PlatformDifference_Values() []string { } } +const ( + // PreferredResourceNameEc2instanceTypes is a PreferredResourceName enum value + PreferredResourceNameEc2instanceTypes = "Ec2InstanceTypes" +) + +// PreferredResourceName_Values returns all elements of the PreferredResourceName enum +func PreferredResourceName_Values() []string { + return []string{ + PreferredResourceNameEc2instanceTypes, + } +} + const ( // RecommendationPreferenceNameEnhancedInfrastructureMetrics is a RecommendationPreferenceName enum value RecommendationPreferenceNameEnhancedInfrastructureMetrics = "EnhancedInfrastructureMetrics" @@ -13457,6 +14925,15 @@ const ( // RecommendationPreferenceNameExternalMetricsPreference is a RecommendationPreferenceName enum value RecommendationPreferenceNameExternalMetricsPreference = "ExternalMetricsPreference" + + // RecommendationPreferenceNameLookBackPeriodPreference is a RecommendationPreferenceName enum value + RecommendationPreferenceNameLookBackPeriodPreference = "LookBackPeriodPreference" + + // RecommendationPreferenceNamePreferredResources is a RecommendationPreferenceName enum value + RecommendationPreferenceNamePreferredResources = "PreferredResources" + + // RecommendationPreferenceNameUtilizationPreferences is a RecommendationPreferenceName enum value + RecommendationPreferenceNameUtilizationPreferences = "UtilizationPreferences" ) // RecommendationPreferenceName_Values returns all elements of the RecommendationPreferenceName enum @@ -13465,6 +14942,9 @@ func RecommendationPreferenceName_Values() []string { RecommendationPreferenceNameEnhancedInfrastructureMetrics, RecommendationPreferenceNameInferredWorkloadTypes, RecommendationPreferenceNameExternalMetricsPreference, + RecommendationPreferenceNameLookBackPeriodPreference, + RecommendationPreferenceNamePreferredResources, + RecommendationPreferenceNameUtilizationPreferences, } } @@ -13536,6 +15016,22 @@ func ResourceType_Values() []string { } } +const ( + // SavingsEstimationModeAfterDiscounts is a SavingsEstimationMode enum value + SavingsEstimationModeAfterDiscounts = "AfterDiscounts" + + // SavingsEstimationModeBeforeDiscounts is a SavingsEstimationMode enum value + SavingsEstimationModeBeforeDiscounts = "BeforeDiscounts" +) + +// SavingsEstimationMode_Values returns all elements of the SavingsEstimationMode enum +func SavingsEstimationMode_Values() []string { + return []string{ + SavingsEstimationModeAfterDiscounts, + SavingsEstimationModeBeforeDiscounts, + } +} + const ( // ScopeNameOrganization is a ScopeName enum value ScopeNameOrganization = "Organization" diff --git a/service/configservice/api.go b/service/configservice/api.go index 60a02da93ec..ca56ae52404 100644 --- a/service/configservice/api.go +++ b/service/configservice/api.go @@ -9340,6 +9340,17 @@ func (c *ConfigService) PutConfigurationRecorderRequest(input *PutConfigurationR // You have reached the limit of the number of configuration recorders you can // create. // +// - ValidationException +// The requested action is not valid. +// +// For PutStoredQuery, you will see this exception if there are missing required +// fields or if the input value fails the validation, or if you are trying to +// create more than 300 queries. +// +// For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this +// exception if there are missing required fields or if the input value fails +// the validation. +// // - InvalidConfigurationRecorderNameException // You have provided a name for the configuration recorder that is not valid. // @@ -12716,7 +12727,7 @@ func (s *AggregationAuthorization) SetCreationTime(v time.Time) *AggregationAuth return s } -// The detailed configuration of a specified resource. +// The detailed configurations of a specified resource. type BaseConfigurationItem struct { _ struct{} `type:"structure"` @@ -12735,30 +12746,36 @@ type BaseConfigurationItem struct { // The description of the resource configuration. Configuration *string `locationName:"configuration" type:"string"` - // The time when the configuration recording was initiated. + // The time when the recording of configuration changes was initiated for the + // resource. ConfigurationItemCaptureTime *time.Time `locationName:"configurationItemCaptureTime" type:"timestamp"` - // The configuration item status. The valid values are: + // The time when configuration changes for the resource were delivered. + ConfigurationItemDeliveryTime *time.Time `locationName:"configurationItemDeliveryTime" type:"timestamp"` + + // The configuration item status. Valid values include: // - // * OK – The resource configuration has been updated + // * OK – The resource configuration has been updated. // - // * ResourceDiscovered – The resource was newly discovered + // * ResourceDiscovered – The resource was newly discovered. // - // * ResourceNotRecorded – The resource was discovered but its configuration - // was not recorded since the recorder excludes the recording of resources - // of this type + // * ResourceNotRecorded – The resource was discovered, but its configuration + // was not recorded since the recorder doesn't record resources of this type. // // * ResourceDeleted – The resource was deleted // - // * ResourceDeletedNotRecorded – The resource was deleted but its configuration - // was not recorded since the recorder excludes the recording of resources - // of this type + // * ResourceDeletedNotRecorded – The resource was deleted, but its configuration + // was not recorded since the recorder doesn't record resources of this type. ConfigurationItemStatus *string `locationName:"configurationItemStatus" type:"string" enum:"ConfigurationItemStatus"` // An identifier that indicates the ordering of the configuration items of a // resource. ConfigurationStateId *string `locationName:"configurationStateId" type:"string"` + // The recording frequency that Config uses to record configuration changes + // for the resource. + RecordingFrequency *string `locationName:"recordingFrequency" type:"string" enum:"RecordingFrequency"` + // The time stamp when the resource was created. ResourceCreationTime *time.Time `locationName:"resourceCreationTime" type:"timestamp"` @@ -12833,6 +12850,12 @@ func (s *BaseConfigurationItem) SetConfigurationItemCaptureTime(v time.Time) *Ba return s } +// SetConfigurationItemDeliveryTime sets the ConfigurationItemDeliveryTime field's value. +func (s *BaseConfigurationItem) SetConfigurationItemDeliveryTime(v time.Time) *BaseConfigurationItem { + s.ConfigurationItemDeliveryTime = &v + return s +} + // SetConfigurationItemStatus sets the ConfigurationItemStatus field's value. func (s *BaseConfigurationItem) SetConfigurationItemStatus(v string) *BaseConfigurationItem { s.ConfigurationItemStatus = &v @@ -12845,6 +12868,12 @@ func (s *BaseConfigurationItem) SetConfigurationStateId(v string) *BaseConfigura return s } +// SetRecordingFrequency sets the RecordingFrequency field's value. +func (s *BaseConfigurationItem) SetRecordingFrequency(v string) *BaseConfigurationItem { + s.RecordingFrequency = &v + return s +} + // SetResourceCreationTime sets the ResourceCreationTime field's value. func (s *BaseConfigurationItem) SetResourceCreationTime(v time.Time) *BaseConfigurationItem { s.ResourceCreationTime = &v @@ -14244,36 +14273,42 @@ type ConfigurationItem struct { // The description of the resource configuration. Configuration *string `locationName:"configuration" type:"string"` - // The time when the configuration recording was initiated. + // The time when the recording of configuration changes was initiated for the + // resource. ConfigurationItemCaptureTime *time.Time `locationName:"configurationItemCaptureTime" type:"timestamp"` + // The time when configuration changes for the resource were delivered. + ConfigurationItemDeliveryTime *time.Time `locationName:"configurationItemDeliveryTime" type:"timestamp"` + // Unique MD5 hash that represents the configuration item's state. // // You can use MD5 hash to compare the states of two or more configuration items // that are associated with the same resource. ConfigurationItemMD5Hash *string `locationName:"configurationItemMD5Hash" type:"string"` - // The configuration item status. The valid values are: + // The configuration item status. Valid values include: // // * OK – The resource configuration has been updated // // * ResourceDiscovered – The resource was newly discovered // // * ResourceNotRecorded – The resource was discovered but its configuration - // was not recorded since the recorder excludes the recording of resources - // of this type + // was not recorded since the recorder doesn't record resources of this type // // * ResourceDeleted – The resource was deleted // // * ResourceDeletedNotRecorded – The resource was deleted but its configuration - // was not recorded since the recorder excludes the recording of resources - // of this type + // was not recorded since the recorder doesn't record resources of this type ConfigurationItemStatus *string `locationName:"configurationItemStatus" type:"string" enum:"ConfigurationItemStatus"` // An identifier that indicates the ordering of the configuration items of a // resource. ConfigurationStateId *string `locationName:"configurationStateId" type:"string"` + // The recording frequency that Config uses to record configuration changes + // for the resource. + RecordingFrequency *string `locationName:"recordingFrequency" type:"string" enum:"RecordingFrequency"` + // A list of CloudTrail event IDs. // // A populated field indicates that the current configuration was initiated @@ -14366,6 +14401,12 @@ func (s *ConfigurationItem) SetConfigurationItemCaptureTime(v time.Time) *Config return s } +// SetConfigurationItemDeliveryTime sets the ConfigurationItemDeliveryTime field's value. +func (s *ConfigurationItem) SetConfigurationItemDeliveryTime(v time.Time) *ConfigurationItem { + s.ConfigurationItemDeliveryTime = &v + return s +} + // SetConfigurationItemMD5Hash sets the ConfigurationItemMD5Hash field's value. func (s *ConfigurationItem) SetConfigurationItemMD5Hash(v string) *ConfigurationItem { s.ConfigurationItemMD5Hash = &v @@ -14384,6 +14425,12 @@ func (s *ConfigurationItem) SetConfigurationStateId(v string) *ConfigurationItem return s } +// SetRecordingFrequency sets the RecordingFrequency field's value. +func (s *ConfigurationItem) SetRecordingFrequency(v string) *ConfigurationItem { + s.RecordingFrequency = &v + return s +} + // SetRelatedEvents sets the RelatedEvents field's value. func (s *ConfigurationItem) SetRelatedEvents(v []*string) *ConfigurationItem { s.RelatedEvents = v @@ -14438,9 +14485,9 @@ func (s *ConfigurationItem) SetVersion(v string) *ConfigurationItem { return s } -// Records configuration changes to specified resource types. For more information -// about the configuration recorder, see Managing the Configuration Recorder -// (https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html) +// Records configuration changes to your specified resource types. For more +// information about the configuration recorder, see Managing the Configuration +// Recorder (https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html) // in the Config Developer Guide. type ConfigurationRecorder struct { _ struct{} `type:"structure"` @@ -14472,6 +14519,22 @@ type ConfigurationRecorder struct { // off to avoid increased configuration recording and rule evaluations. RecordingGroup *RecordingGroup `locationName:"recordingGroup" type:"structure"` + // Specifies the default recording frequency that Config uses to record configuration + // changes. Config supports Continuous recording and Daily recording. + // + // * Continuous recording allows you to record configuration changes continuously + // whenever a change occurs. + // + // * Daily recording allows you record configuration data once every 24 hours, + // only if a change has occurred. + // + // Firewall Manager depends on continuous recording to monitor your resources. + // If you are using Firewall Manager, it is recommended that you set the recording + // frequency to Continuous. + // + // You can also override the recording frequency for specific resource types. + RecordingMode *RecordingMode `locationName:"recordingMode" type:"structure"` + // Amazon Resource Name (ARN) of the IAM role assumed by Config and used by // the configuration recorder. // @@ -14520,6 +14583,11 @@ func (s *ConfigurationRecorder) Validate() error { if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } + if s.RecordingMode != nil { + if err := s.RecordingMode.Validate(); err != nil { + invalidParams.AddNested("RecordingMode", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -14539,6 +14607,12 @@ func (s *ConfigurationRecorder) SetRecordingGroup(v *RecordingGroup) *Configurat return s } +// SetRecordingMode sets the RecordingMode field's value. +func (s *ConfigurationRecorder) SetRecordingMode(v *RecordingMode) *ConfigurationRecorder { + s.RecordingMode = v + return s +} + // SetRoleARN sets the RoleARN field's value. func (s *ConfigurationRecorder) SetRoleARN(v string) *ConfigurationRecorder { s.RoleARN = &v @@ -19844,7 +19918,7 @@ func (s *EvaluationStatus) SetStatus(v string) *EvaluationStatus { // where you set up the configuration recorder, including global resource types, // Config starts recording resources of that type automatically. // -// # How to use +// # How to use the exclusion recording strategy // // To use this option, you must set the useOnly field of RecordingStrategy (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html) // to EXCLUSION_BY_RESOURCE_TYPES. @@ -19852,14 +19926,18 @@ func (s *EvaluationStatus) SetStatus(v string) *EvaluationStatus { // Config will then record configuration changes for all supported resource // types, except the resource types that you specify to exclude from being recorded. // -// # Globally recorded resources +// # Global resource types and the exclusion recording strategy // // Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be // recorded automatically in all supported Config Regions were the configuration -// recorder is enabled. IAM users, groups, roles, and customer managed policies -// will be recorded automatically in all enabled Config Regions where Config -// was available before February 2022. This list does not include the following -// Regions: +// recorder is enabled. +// +// IAM users, groups, roles, and customer managed policies will be recorded +// in the Region where you set up the configuration recorder if that is a Region +// where Config was available before February 2022. You cannot be record the +// global IAM resouce types in Regions supported by Config after February 2022. +// This list where you cannot record the global IAM resource types includes +// the following Regions: // // - Asia Pacific (Hyderabad) // @@ -29492,8 +29570,8 @@ func (s *QueryInfo) SetSelectFields(v []*FieldInfo) *QueryInfo { // Specifies which resource types Config records for configuration changes. // By default, Config records configuration changes for all current and future // supported resource types in the Amazon Web Services Region where you have -// enabled Config (excluding the globally recorded IAM resource types: IAM users, -// groups, roles, and customer managed policies). +// enabled Config, excluding the global IAM resource types: IAM users, groups, +// roles, and customer managed policies. // // In the recording group, you specify whether you want to record all supported // current and future supported resource types or to include or exclude specific @@ -29502,14 +29580,19 @@ func (s *QueryInfo) SetSelectFields(v []*FieldInfo) *QueryInfo { // in the Config developer guide. // // If you don't want Config to record all current and future supported resource -// types, use one of the following recording strategies: +// types (excluding the global IAM resource types), use one of the following +// recording strategies: // // Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES), // or // // Record specific resource types (INCLUSION_BY_RESOURCE_TYPES). // -// # Aurora global clusters are automatically globally recorded +// If you use the recording strategy to Record all current and future resource +// types (ALL_SUPPORTED_RESOURCE_TYPES), you can use the flag includeGlobalResourceTypes +// to include the global IAM resource types in your recording. +// +// # Aurora global clusters are recorded in all enabled Regions // // The AWS::RDS::GlobalCluster resource type will be recorded in all supported // Config Regions where the configuration recorder is enabled. @@ -29521,16 +29604,16 @@ type RecordingGroup struct { _ struct{} `type:"structure"` // Specifies whether Config records configuration changes for all supported - // regionally recorded resource types. + // resource types, excluding the global IAM resource types. // - // If you set this field to true, when Config adds support for a new regionally - // recorded resource type, Config starts recording resources of that type automatically. + // If you set this field to true, when Config adds support for a new resource + // type, Config starts recording resources of that type automatically. // // If you set this field to true, you cannot enumerate specific resource types // to record in the resourceTypes field of RecordingGroup (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html), // or to exclude in the resourceTypes field of ExclusionByResourceTypes (https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html). // - // Region Availability + // Region availability // // Check Resource Coverage by Region Availability (https://docs.aws.amazon.com/config/latest/developerguide/what-is-resource-config-coverage.html) // to see if a resource type is supported in the Amazon Web Services Region @@ -29540,15 +29623,18 @@ type RecordingGroup struct { // An object that specifies how Config excludes resource types from being recorded // by the configuration recorder. // + // Required fields + // // To use this option, you must set the useOnly field of RecordingStrategy (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html) // to EXCLUSION_BY_RESOURCE_TYPES. ExclusionByResourceTypes *ExclusionByResourceTypes `locationName:"exclusionByResourceTypes" type:"structure"` - // A legacy field which only applies to the globally recorded IAM resource types: - // IAM users, groups, roles, and customer managed policies. If you select this - // option, these resource types will be recorded in all enabled Config regions - // where Config was available before February 2022. This list does not include - // the following Regions: + // This option is a bundle which only applies to the global IAM resource types: + // IAM users, groups, roles, and customer managed policies. These global IAM + // resource types can only be recorded by Config in Regions where Config was + // available before February 2022. You cannot be record the global IAM resouce + // types in Regions supported by Config after February 2022. This list where + // you cannot record the global IAM resource types includes the following Regions: // // * Asia Pacific (Hyderabad) // @@ -29562,12 +29648,12 @@ type RecordingGroup struct { // // * Middle East (UAE) // - // Aurora global clusters are automatically globally recorded + // Aurora global clusters are recorded in all enabled Regions // // The AWS::RDS::GlobalCluster resource type will be recorded in all supported // Config Regions where the configuration recorder is enabled, even if includeGlobalResourceTypes - // is not set to true. includeGlobalResourceTypes is a legacy field which only - // applies to IAM users, groups, roles, and customer managed policies. + // is not set to true. The includeGlobalResourceTypes option is a bundle which + // only applies to IAM users, groups, roles, and customer managed policies. // // If you do not want to record AWS::RDS::GlobalCluster in all enabled Regions, // use one of the following recording strategies: @@ -29580,8 +29666,6 @@ type RecordingGroup struct { // For more information, see Selecting Which Resources are Recorded (https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html#select-resources-all) // in the Config developer guide. // - // Required and optional fields - // // Before you set this field to true, set the allSupported field of RecordingGroup // (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html) // to true. Optionally, you can set the useOnly field of RecordingStrategy (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html) @@ -29589,25 +29673,25 @@ type RecordingGroup struct { // // Overriding fields // - // If you set this field to false but list globally recorded IAM resource types - // in the resourceTypes field of RecordingGroup (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html), + // If you set this field to false but list global IAM resource types in the + // resourceTypes field of RecordingGroup (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html), // Config will still record configuration changes for those specified resource // types regardless of if you set the includeGlobalResourceTypes field to false. // - // If you do not want to record configuration changes to the globally recorded - // IAM resource types (IAM users, groups, roles, and customer managed policies), - // make sure to not list them in the resourceTypes field in addition to setting - // the includeGlobalResourceTypes field to false. + // If you do not want to record configuration changes to the global IAM resource + // types (IAM users, groups, roles, and customer managed policies), make sure + // to not list them in the resourceTypes field in addition to setting the includeGlobalResourceTypes + // field to false. IncludeGlobalResourceTypes *bool `locationName:"includeGlobalResourceTypes" type:"boolean"` // An object that specifies the recording strategy for the configuration recorder. // // * If you set the useOnly field of RecordingStrategy (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html) // to ALL_SUPPORTED_RESOURCE_TYPES, Config records configuration changes - // for all supported regionally recorded resource types. You also must set - // the allSupported field of RecordingGroup (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html) - // to true. When Config adds support for a new regionally recorded resource - // type, Config automatically starts recording resources of that type. + // for all supported resource types, excluding the global IAM resource types. + // You also must set the allSupported field of RecordingGroup (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html) + // to true. When Config adds support for a new resource type, Config automatically + // starts recording resources of that type. // // * If you set the useOnly field of RecordingStrategy (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html) // to INCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for @@ -29637,10 +29721,10 @@ type RecordingGroup struct { // If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the // exclusionByResourceTypes field will override other properties in the request. // - // For example, even if you set includeGlobalResourceTypes to false, globally - // recorded IAM resource types will still be automatically recorded in this - // option unless those resource types are specifically listed as exclusions - // in the resourceTypes field of exclusionByResourceTypes. + // For example, even if you set includeGlobalResourceTypes to false, global + // IAM resource types will still be automatically recorded in this option unless + // those resource types are specifically listed as exclusions in the resourceTypes + // field of exclusionByResourceTypes. // // Global resources types and the resource exclusion recording strategy // @@ -29649,12 +29733,16 @@ type RecordingGroup struct { // set up the configuration recorder, including global resource types, Config // starts recording resources of that type automatically. // - // In addition, unless specifically listed as exclusions, AWS::RDS::GlobalCluster - // will be recorded automatically in all supported Config Regions were the configuration - // recorder is enabled. IAM users, groups, roles, and customer managed policies - // will be recorded automatically in all enabled Config Regions where Config - // was available before February 2022. This list does not include the following - // Regions: + // Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be + // recorded automatically in all supported Config Regions were the configuration + // recorder is enabled. + // + // IAM users, groups, roles, and customer managed policies will be recorded + // in the Region where you set up the configuration recorder if that is a Region + // where Config was available before February 2022. You cannot be record the + // global IAM resouce types in Regions supported by Config after February 2022. + // This list where you cannot record the global IAM resource types includes + // the following Regions: // // * Asia Pacific (Hyderabad) // @@ -29671,6 +29759,12 @@ type RecordingGroup struct { // A comma-separated list that specifies which resource types Config records. // + // For a list of valid resourceTypes values, see the Resource Type Value column + // in Supported Amazon Web Services resource Types (https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources) + // in the Config developer guide. + // + // Required and optional fields + // // Optionally, you can set the useOnly field of RecordingStrategy (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html) // to INCLUSION_BY_RESOURCE_TYPES. // @@ -29682,11 +29776,7 @@ type RecordingGroup struct { // will not record resources of that type unless you manually add that type // to your recording group. // - // For a list of valid resourceTypes values, see the Resource Type Value column - // in Supported Amazon Web Services resource Types (https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources) - // in the Config developer guide. - // - // Region Availability + // Region availability // // Before specifying a resource type for Config to track, check Resource Coverage // by Region Availability (https://docs.aws.amazon.com/config/latest/developerguide/what-is-resource-config-coverage.html) @@ -29746,6 +29836,193 @@ func (s *RecordingGroup) SetResourceTypes(v []*string) *RecordingGroup { return s } +// Specifies the default recording frequency that Config uses to record configuration +// changes. Config supports Continuous recording and Daily recording. +// +// - Continuous recording allows you to record configuration changes continuously +// whenever a change occurs. +// +// - Daily recording allows you record configuration data once every 24 hours, +// only if a change has occurred. +// +// Firewall Manager depends on continuous recording to monitor your resources. +// If you are using Firewall Manager, it is recommended that you set the recording +// frequency to Continuous. +// +// You can also override the recording frequency for specific resource types. +type RecordingMode struct { + _ struct{} `type:"structure"` + + // The default recording frequency that Config uses to record configuration + // changes. + // + // Daily recording is not supported for the following resource types: + // + // * AWS::Config::ResourceCompliance + // + // * AWS::Config::ConformancePackCompliance + // + // * AWS::Config::ConfigurationRecorder + // + // For the allSupported (ALL_SUPPORTED_RESOURCE_TYPES) recording strategy, these + // resource types will be set to Continuous recording. + // + // RecordingFrequency is a required field + RecordingFrequency *string `locationName:"recordingFrequency" type:"string" required:"true" enum:"RecordingFrequency"` + + // An array of recordingModeOverride objects for you to specify your overrides + // for the recording mode. The recordingModeOverride object in the recordingModeOverrides + // array consists of three fields: a description, the new recordingFrequency, + // and an array of resourceTypes to override. + RecordingModeOverrides []*RecordingModeOverride `locationName:"recordingModeOverrides" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RecordingMode) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RecordingMode) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RecordingMode) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RecordingMode"} + if s.RecordingFrequency == nil { + invalidParams.Add(request.NewErrParamRequired("RecordingFrequency")) + } + if s.RecordingModeOverrides != nil { + for i, v := range s.RecordingModeOverrides { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RecordingModeOverrides", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRecordingFrequency sets the RecordingFrequency field's value. +func (s *RecordingMode) SetRecordingFrequency(v string) *RecordingMode { + s.RecordingFrequency = &v + return s +} + +// SetRecordingModeOverrides sets the RecordingModeOverrides field's value. +func (s *RecordingMode) SetRecordingModeOverrides(v []*RecordingModeOverride) *RecordingMode { + s.RecordingModeOverrides = v + return s +} + +// An object for you to specify your overrides for the recording mode. +type RecordingModeOverride struct { + _ struct{} `type:"structure"` + + // A description that you provide for the override. + Description *string `locationName:"description" min:"1" type:"string"` + + // The recording frequency that will be applied to all the resource types specified + // in the override. + // + // * Continuous recording allows you to record configuration changes continuously + // whenever a change occurs. + // + // * Daily recording allows you record configuration data once every 24 hours, + // only if a change has occurred. + // + // Firewall Manager depends on continuous recording to monitor your resources. + // If you are using Firewall Manager, it is recommended that you set the recording + // frequency to Continuous. + // + // RecordingFrequency is a required field + RecordingFrequency *string `locationName:"recordingFrequency" type:"string" required:"true" enum:"RecordingFrequency"` + + // A comma-separated list that specifies which resource types Config includes + // in the override. + // + // Daily recording is not supported for the following resource types: + // + // * AWS::Config::ResourceCompliance + // + // * AWS::Config::ConformancePackCompliance + // + // * AWS::Config::ConfigurationRecorder + // + // ResourceTypes is a required field + ResourceTypes []*string `locationName:"resourceTypes" type:"list" required:"true" enum:"ResourceType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RecordingModeOverride) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RecordingModeOverride) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RecordingModeOverride) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RecordingModeOverride"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.RecordingFrequency == nil { + invalidParams.Add(request.NewErrParamRequired("RecordingFrequency")) + } + if s.ResourceTypes == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceTypes")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *RecordingModeOverride) SetDescription(v string) *RecordingModeOverride { + s.Description = &v + return s +} + +// SetRecordingFrequency sets the RecordingFrequency field's value. +func (s *RecordingModeOverride) SetRecordingFrequency(v string) *RecordingModeOverride { + s.RecordingFrequency = &v + return s +} + +// SetResourceTypes sets the ResourceTypes field's value. +func (s *RecordingModeOverride) SetResourceTypes(v []*string) *RecordingModeOverride { + s.ResourceTypes = v + return s +} + // Specifies the recording strategy of the configuration recorder. type RecordingStrategy struct { _ struct{} `type:"structure"` @@ -29753,11 +30030,12 @@ type RecordingStrategy struct { // The recording strategy for the configuration recorder. // // * If you set this option to ALL_SUPPORTED_RESOURCE_TYPES, Config records - // configuration changes for all supported regionally recorded resource types. - // You also must set the allSupported field of RecordingGroup (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html) - // to true. When Config adds support for a new regionally recorded resource - // type, Config automatically starts recording resources of that type. For - // a list of supported resource types, see Supported Resource Types (https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources) + // configuration changes for all supported resource types, excluding the + // global IAM resource types. You also must set the allSupported field of + // RecordingGroup (https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html) + // to true. When Config adds support for a new resource type, Config automatically + // starts recording resources of that type. For a list of supported resource + // types, see Supported Resource Types (https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources) // in the Config developer guide. // // * If you set this option to INCLUSION_BY_RESOURCE_TYPES, Config records @@ -29786,10 +30064,10 @@ type RecordingStrategy struct { // If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the // exclusionByResourceTypes field will override other properties in the request. // - // For example, even if you set includeGlobalResourceTypes to false, globally - // recorded IAM resource types will still be automatically recorded in this - // option unless those resource types are specifically listed as exclusions - // in the resourceTypes field of exclusionByResourceTypes. + // For example, even if you set includeGlobalResourceTypes to false, global + // IAM resource types will still be automatically recorded in this option unless + // those resource types are specifically listed as exclusions in the resourceTypes + // field of exclusionByResourceTypes. // // Global resource types and the exclusion recording strategy // @@ -29798,12 +30076,16 @@ type RecordingStrategy struct { // set up the configuration recorder, including global resource types, Config // starts recording resources of that type automatically. // - // In addition, unless specifically listed as exclusions, AWS::RDS::GlobalCluster - // will be recorded automatically in all supported Config Regions were the configuration - // recorder is enabled. IAM users, groups, roles, and customer managed policies - // will be recorded automatically in all enabled Config Regions where Config - // was available before February 2022. This list does not include the following - // Regions: + // Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be + // recorded automatically in all supported Config Regions were the configuration + // recorder is enabled. + // + // IAM users, groups, roles, and customer managed policies will be recorded + // in the Region where you set up the configuration recorder if that is a Region + // where Config was available before February 2022. You cannot be record the + // global IAM resouce types in Regions supported by Config after February 2022. + // This list where you cannot record the global IAM resource types includes + // the following Regions: // // * Asia Pacific (Hyderabad) // @@ -33828,6 +34110,22 @@ func RecorderStatus_Values() []string { } } +const ( + // RecordingFrequencyContinuous is a RecordingFrequency enum value + RecordingFrequencyContinuous = "CONTINUOUS" + + // RecordingFrequencyDaily is a RecordingFrequency enum value + RecordingFrequencyDaily = "DAILY" +) + +// RecordingFrequency_Values returns all elements of the RecordingFrequency enum +func RecordingFrequency_Values() []string { + return []string{ + RecordingFrequencyContinuous, + RecordingFrequencyDaily, + } +} + const ( // RecordingStrategyTypeAllSupportedResourceTypes is a RecordingStrategyType enum value RecordingStrategyTypeAllSupportedResourceTypes = "ALL_SUPPORTED_RESOURCE_TYPES" diff --git a/service/controltower/api.go b/service/controltower/api.go index ba50dbea936..4122d862b28 100644 --- a/service/controltower/api.go +++ b/service/controltower/api.go @@ -13,6 +13,103 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restjson" ) +const opDeleteLandingZone = "DeleteLandingZone" + +// DeleteLandingZoneRequest generates a "aws/request.Request" representing the +// client's request for the DeleteLandingZone 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 DeleteLandingZone for more information on using the DeleteLandingZone +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteLandingZoneRequest method. +// req, resp := client.DeleteLandingZoneRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/DeleteLandingZone +func (c *ControlTower) DeleteLandingZoneRequest(input *DeleteLandingZoneInput) (req *request.Request, output *DeleteLandingZoneOutput) { + op := &request.Operation{ + Name: opDeleteLandingZone, + HTTPMethod: "POST", + HTTPPath: "/delete-landingzone", + } + + if input == nil { + input = &DeleteLandingZoneInput{} + } + + output = &DeleteLandingZoneOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteLandingZone API operation for AWS Control Tower. +// +// This decommissions a landing zone. This starts an asynchronous operation +// that deletes Amazon Web Services Control Tower resources deployed in Amazon +// Web Services Control Tower managed accounts. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Control Tower's +// API operation DeleteLandingZone for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - ConflictException +// Updating or deleting a resource can cause an inconsistent state. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/DeleteLandingZone +func (c *ControlTower) DeleteLandingZone(input *DeleteLandingZoneInput) (*DeleteLandingZoneOutput, error) { + req, out := c.DeleteLandingZoneRequest(input) + return out, req.Send() +} + +// DeleteLandingZoneWithContext is the same as DeleteLandingZone with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteLandingZone for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ControlTower) DeleteLandingZoneWithContext(ctx aws.Context, input *DeleteLandingZoneInput, opts ...request.Option) (*DeleteLandingZoneOutput, error) { + req, out := c.DeleteLandingZoneRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDisableControl = "DisableControl" // DisableControlRequest generates a "aws/request.Request" representing the @@ -57,9 +154,10 @@ func (c *ControlTower) DisableControlRequest(input *DisableControlInput) (req *r // DisableControl API operation for AWS Control Tower. // // This API call turns off a control. It starts an asynchronous operation that -// deletes AWS resources on the specified organizational unit and the accounts -// it contains. The resources will vary according to the control that you specify. -// For usage examples, see the AWS Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). +// deletes Amazon Web Services resources on the specified organizational unit +// and the accounts it contains. The resources will vary according to the control +// that you specify. For usage examples, see the Amazon Web Services Control +// Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.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 @@ -71,7 +169,8 @@ func (c *ControlTower) DisableControlRequest(input *DisableControlInput) (req *r // Returned Error Types: // // - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. // // - ConflictException // Updating or deleting a resource can cause an inconsistent state. @@ -84,7 +183,7 @@ func (c *ControlTower) DisableControlRequest(input *DisableControlInput) (req *r // Unexpected error during processing of request. // // - AccessDeniedException -// User does not have sufficient access to perform this action. +// You do not have sufficient access to perform this action. // // - ThrottlingException // Request was denied due to request throttling. @@ -158,9 +257,10 @@ func (c *ControlTower) EnableControlRequest(input *EnableControlInput) (req *req // EnableControl API operation for AWS Control Tower. // // This API call activates a control. It starts an asynchronous operation that -// creates AWS resources on the specified organizational unit and the accounts -// it contains. The resources created will vary according to the control that -// you specify. For usage examples, see the AWS Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). +// creates Amazon Web Services resources on the specified organizational unit +// and the accounts it contains. The resources created will vary according to +// the control that you specify. For usage examples, see the Amazon Web Services +// Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.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 @@ -172,7 +272,8 @@ func (c *ControlTower) EnableControlRequest(input *EnableControlInput) (req *req // Returned Error Types: // // - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. // // - ConflictException // Updating or deleting a resource can cause an inconsistent state. @@ -185,7 +286,7 @@ func (c *ControlTower) EnableControlRequest(input *EnableControlInput) (req *req // Unexpected error during processing of request. // // - AccessDeniedException -// User does not have sufficient access to perform this action. +// You do not have sufficient access to perform this action. // // - ThrottlingException // Request was denied due to request throttling. @@ -260,7 +361,8 @@ func (c *ControlTower) GetControlOperationRequest(input *GetControlOperationInpu // // Returns the status of a particular EnableControl or DisableControl operation. // Displays a message in case of error. Details for an operation are available -// for 90 days. For usage examples, see the AWS Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). +// for 90 days. For usage examples, see the Amazon Web Services Control Tower +// User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.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 @@ -272,13 +374,14 @@ func (c *ControlTower) GetControlOperationRequest(input *GetControlOperationInpu // Returned Error Types: // // - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. // // - InternalServerException // Unexpected error during processing of request. // // - AccessDeniedException -// User does not have sufficient access to perform this action. +// You do not have sufficient access to perform this action. // // - ThrottlingException // Request was denied due to request throttling. @@ -351,8 +454,8 @@ func (c *ControlTower) GetEnabledControlRequest(input *GetEnabledControlInput) ( // GetEnabledControl API operation for AWS Control Tower. // -// Retrieves details about an enabled control. For usage examples, see the AWS -// Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). +// Retrieves details about an enabled control. For usage examples, see the Amazon +// Web Services Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.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 @@ -364,13 +467,14 @@ func (c *ControlTower) GetEnabledControlRequest(input *GetEnabledControlInput) ( // Returned Error Types: // // - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. // // - InternalServerException // Unexpected error during processing of request. // // - AccessDeniedException -// User does not have sufficient access to perform this action. +// You do not have sufficient access to perform this action. // // - ThrottlingException // Request was denied due to request throttling. @@ -400,6 +504,99 @@ func (c *ControlTower) GetEnabledControlWithContext(ctx aws.Context, input *GetE return out, req.Send() } +const opGetLandingZoneOperation = "GetLandingZoneOperation" + +// GetLandingZoneOperationRequest generates a "aws/request.Request" representing the +// client's request for the GetLandingZoneOperation 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 GetLandingZoneOperation for more information on using the GetLandingZoneOperation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetLandingZoneOperationRequest method. +// req, resp := client.GetLandingZoneOperationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/GetLandingZoneOperation +func (c *ControlTower) GetLandingZoneOperationRequest(input *GetLandingZoneOperationInput) (req *request.Request, output *GetLandingZoneOperationOutput) { + op := &request.Operation{ + Name: opGetLandingZoneOperation, + HTTPMethod: "POST", + HTTPPath: "/get-landingzone-operation", + } + + if input == nil { + input = &GetLandingZoneOperationInput{} + } + + output = &GetLandingZoneOperationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetLandingZoneOperation API operation for AWS Control Tower. +// +// Returns the status of the specified landing zone operation. Details for an +// operation are available for X days. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Control Tower's +// API operation GetLandingZoneOperation for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/GetLandingZoneOperation +func (c *ControlTower) GetLandingZoneOperation(input *GetLandingZoneOperationInput) (*GetLandingZoneOperationOutput, error) { + req, out := c.GetLandingZoneOperationRequest(input) + return out, req.Send() +} + +// GetLandingZoneOperationWithContext is the same as GetLandingZoneOperation with the addition of +// the ability to pass a context and additional request options. +// +// See GetLandingZoneOperation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ControlTower) GetLandingZoneOperationWithContext(ctx aws.Context, input *GetLandingZoneOperationInput, opts ...request.Option) (*GetLandingZoneOperationOutput, error) { + req, out := c.GetLandingZoneOperationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListEnabledControls = "ListEnabledControls" // ListEnabledControlsRequest generates a "aws/request.Request" representing the @@ -449,9 +646,9 @@ func (c *ControlTower) ListEnabledControlsRequest(input *ListEnabledControlsInpu // ListEnabledControls API operation for AWS Control Tower. // -// Lists the controls enabled by AWS Control Tower on the specified organizational -// unit and the accounts it contains. For usage examples, see the AWS Control -// Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). +// Lists the controls enabled by Amazon Web Services Control Tower on the specified +// organizational unit and the accounts it contains. For usage examples, see +// the Amazon Web Services Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.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 @@ -463,13 +660,14 @@ func (c *ControlTower) ListEnabledControlsRequest(input *ListEnabledControlsInpu // Returned Error Types: // // - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. // // - InternalServerException // Unexpected error during processing of request. // // - AccessDeniedException -// User does not have sufficient access to perform this action. +// You do not have sufficient access to perform this action. // // - ThrottlingException // Request was denied due to request throttling. @@ -550,6 +748,156 @@ func (c *ControlTower) ListEnabledControlsPagesWithContext(ctx aws.Context, inpu return p.Err() } +const opListLandingZones = "ListLandingZones" + +// ListLandingZonesRequest generates a "aws/request.Request" representing the +// client's request for the ListLandingZones 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 ListLandingZones for more information on using the ListLandingZones +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListLandingZonesRequest method. +// req, resp := client.ListLandingZonesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/ListLandingZones +func (c *ControlTower) ListLandingZonesRequest(input *ListLandingZonesInput) (req *request.Request, output *ListLandingZonesOutput) { + op := &request.Operation{ + Name: opListLandingZones, + HTTPMethod: "POST", + HTTPPath: "/list-landingzones", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListLandingZonesInput{} + } + + output = &ListLandingZonesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListLandingZones API operation for AWS Control Tower. +// +// Returns the landing zone ARN for the landing zone deployed in your managed +// account. This API also creates an ARN for existing accounts that do not yet +// have a landing zone ARN. +// +// The return limit is one landing zone 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 AWS Control Tower's +// API operation ListLandingZones for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/ListLandingZones +func (c *ControlTower) ListLandingZones(input *ListLandingZonesInput) (*ListLandingZonesOutput, error) { + req, out := c.ListLandingZonesRequest(input) + return out, req.Send() +} + +// ListLandingZonesWithContext is the same as ListLandingZones with the addition of +// the ability to pass a context and additional request options. +// +// See ListLandingZones for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ControlTower) ListLandingZonesWithContext(ctx aws.Context, input *ListLandingZonesInput, opts ...request.Option) (*ListLandingZonesOutput, error) { + req, out := c.ListLandingZonesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListLandingZonesPages iterates over the pages of a ListLandingZones operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListLandingZones 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 ListLandingZones operation. +// pageNum := 0 +// err := client.ListLandingZonesPages(params, +// func(page *controltower.ListLandingZonesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ControlTower) ListLandingZonesPages(input *ListLandingZonesInput, fn func(*ListLandingZonesOutput, bool) bool) error { + return c.ListLandingZonesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListLandingZonesPagesWithContext same as ListLandingZonesPages 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 *ControlTower) ListLandingZonesPagesWithContext(ctx aws.Context, input *ListLandingZonesInput, fn func(*ListLandingZonesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListLandingZonesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListLandingZonesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListLandingZonesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListTagsForResource = "ListTagsForResource" // ListTagsForResourceRequest generates a "aws/request.Request" representing the @@ -594,7 +942,7 @@ func (c *ControlTower) ListTagsForResourceRequest(input *ListTagsForResourceInpu // ListTagsForResource API operation for AWS Control Tower. // // Returns a list of tags associated with the resource. For usage examples, -// see the AWS Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). +// see the Amazon Web Services Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.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 @@ -606,7 +954,8 @@ func (c *ControlTower) ListTagsForResourceRequest(input *ListTagsForResourceInpu // Returned Error Types: // // - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. // // - InternalServerException // Unexpected error during processing of request. @@ -636,6 +985,103 @@ func (c *ControlTower) ListTagsForResourceWithContext(ctx aws.Context, input *Li return out, req.Send() } +const opResetLandingZone = "ResetLandingZone" + +// ResetLandingZoneRequest generates a "aws/request.Request" representing the +// client's request for the ResetLandingZone 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 ResetLandingZone for more information on using the ResetLandingZone +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ResetLandingZoneRequest method. +// req, resp := client.ResetLandingZoneRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/ResetLandingZone +func (c *ControlTower) ResetLandingZoneRequest(input *ResetLandingZoneInput) (req *request.Request, output *ResetLandingZoneOutput) { + op := &request.Operation{ + Name: opResetLandingZone, + HTTPMethod: "POST", + HTTPPath: "/reset-landingzone", + } + + if input == nil { + input = &ResetLandingZoneInput{} + } + + output = &ResetLandingZoneOutput{} + req = c.newRequest(op, input, output) + return +} + +// ResetLandingZone API operation for AWS Control Tower. +// +// This API call resets a landing zone. It starts an asynchronous operation +// that resets the landing zone to the parameters specified in its original +// configuration. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Control Tower's +// API operation ResetLandingZone for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - ConflictException +// Updating or deleting a resource can cause an inconsistent state. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10/ResetLandingZone +func (c *ControlTower) ResetLandingZone(input *ResetLandingZoneInput) (*ResetLandingZoneOutput, error) { + req, out := c.ResetLandingZoneRequest(input) + return out, req.Send() +} + +// ResetLandingZoneWithContext is the same as ResetLandingZone with the addition of +// the ability to pass a context and additional request options. +// +// See ResetLandingZone for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ControlTower) ResetLandingZoneWithContext(ctx aws.Context, input *ResetLandingZoneInput, opts ...request.Option) (*ResetLandingZoneOutput, error) { + req, out := c.ResetLandingZoneRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opTagResource = "TagResource" // TagResourceRequest generates a "aws/request.Request" representing the @@ -680,8 +1126,8 @@ func (c *ControlTower) TagResourceRequest(input *TagResourceInput) (req *request // TagResource API operation for AWS Control Tower. // -// Applies tags to a resource. For usage examples, see the AWS Control Tower -// User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). +// Applies tags to a resource. For usage examples, see the Amazon Web Services +// Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.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 @@ -693,7 +1139,8 @@ func (c *ControlTower) TagResourceRequest(input *TagResourceInput) (req *request // Returned Error Types: // // - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. // // - InternalServerException // Unexpected error during processing of request. @@ -767,8 +1214,8 @@ func (c *ControlTower) UntagResourceRequest(input *UntagResourceInput) (req *req // UntagResource API operation for AWS Control Tower. // -// Removes tags from a resource. For usage examples, see the AWS Control Tower -// User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.html). +// Removes tags from a resource. For usage examples, see the Amazon Web Services +// Control Tower User Guide (https://docs.aws.amazon.com/controltower/latest/userguide/control-api-examples-short.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 @@ -780,7 +1227,8 @@ func (c *ControlTower) UntagResourceRequest(input *UntagResourceInput) (req *req // Returned Error Types: // // - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. // // - InternalServerException // Unexpected error during processing of request. @@ -810,7 +1258,7 @@ func (c *ControlTower) UntagResourceWithContext(ctx aws.Context, input *UntagRes return out, req.Send() } -// User does not have sufficient access to perform this action. +// You do not have sufficient access to perform this action. type AccessDeniedException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -1007,6 +1455,87 @@ func (s *ControlOperation) SetStatusMessage(v string) *ControlOperation { return s } +type DeleteLandingZoneInput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the landing zone. + // + // LandingZoneIdentifier is a required field + LandingZoneIdentifier *string `locationName:"landingZoneIdentifier" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLandingZoneInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLandingZoneInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteLandingZoneInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteLandingZoneInput"} + if s.LandingZoneIdentifier == nil { + invalidParams.Add(request.NewErrParamRequired("LandingZoneIdentifier")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLandingZoneIdentifier sets the LandingZoneIdentifier field's value. +func (s *DeleteLandingZoneInput) SetLandingZoneIdentifier(v string) *DeleteLandingZoneInput { + s.LandingZoneIdentifier = &v + return s +} + +type DeleteLandingZoneOutput struct { + _ struct{} `type:"structure"` + + // A unique identifier assigned to a DeleteLandingZone operation. You can use + // this identifier as an input of GetLandingZoneOperation to check the operation's + // status. + // + // OperationIdentifier is a required field + OperationIdentifier *string `locationName:"operationIdentifier" min:"36" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLandingZoneOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLandingZoneOutput) GoString() string { + return s.String() +} + +// SetOperationIdentifier sets the OperationIdentifier field's value. +func (s *DeleteLandingZoneOutput) SetOperationIdentifier(v string) *DeleteLandingZoneOutput { + s.OperationIdentifier = &v + return s +} + type DisableControlInput struct { _ struct{} `type:"structure"` @@ -1112,10 +1641,10 @@ func (s *DisableControlOutput) SetOperationIdentifier(v string) *DisableControlO // The drift summary of the enabled control. // -// AWS Control Tower expects the enabled control configuration to include all -// supported and governed Regions. If the enabled control differs from the expected -// configuration, it is defined to be in a state of drift. You can repair this -// drift by resetting the enabled control. +// Amazon Web Services Control Tower expects the enabled control configuration +// to include all supported and governed Regions. If the enabled control differs +// from the expected configuration, it is defined to be in a state of drift. +// You can repair this drift by resetting the enabled control. type DriftStatusSummary struct { _ struct{} `type:"structure"` @@ -1124,16 +1653,16 @@ type DriftStatusSummary struct { // Valid values: // // * DRIFTED: The enabledControl deployed in this configuration doesn’t - // match the configuration that AWS Control Tower expected. + // match the configuration that Amazon Web Services Control Tower expected. // // * IN_SYNC: The enabledControl deployed in this configuration matches the - // configuration that AWS Control Tower expected. + // configuration that Amazon Web Services Control Tower expected. // - // * NOT_CHECKING: AWS Control Tower does not check drift for this enabled - // control. Drift is not supported for the control type. + // * NOT_CHECKING: Amazon Web Services Control Tower does not check drift + // for this enabled control. Drift is not supported for the control type. // - // * UNKNOWN: AWS Control Tower is not able to check the drift status for - // the enabled control. + // * UNKNOWN: Amazon Web Services Control Tower is not able to check the + // drift status for the enabled control. DriftStatus *string `locationName:"driftStatus" type:"string" enum:"DriftStatus"` } @@ -1303,7 +1832,7 @@ type EnabledControlDetails struct { // see the overview page (https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html). TargetIdentifier *string `locationName:"targetIdentifier" min:"20" type:"string"` - // Target AWS Regions for the enabled control. + // Target Amazon Web Services Regions for the enabled control. TargetRegions []*Region `locationName:"targetRegions" type:"list"` } @@ -1615,8 +2144,90 @@ type GetEnabledControlOutput struct { // Information about the enabled control. // - // EnabledControlDetails is a required field - EnabledControlDetails *EnabledControlDetails `locationName:"enabledControlDetails" type:"structure" required:"true"` + // EnabledControlDetails is a required field + EnabledControlDetails *EnabledControlDetails `locationName:"enabledControlDetails" type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEnabledControlOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEnabledControlOutput) GoString() string { + return s.String() +} + +// SetEnabledControlDetails sets the EnabledControlDetails field's value. +func (s *GetEnabledControlOutput) SetEnabledControlDetails(v *EnabledControlDetails) *GetEnabledControlOutput { + s.EnabledControlDetails = v + return s +} + +type GetLandingZoneOperationInput struct { + _ struct{} `type:"structure"` + + // A unique identifier assigned to a landing zone operation. + // + // OperationIdentifier is a required field + OperationIdentifier *string `locationName:"operationIdentifier" min:"36" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetLandingZoneOperationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetLandingZoneOperationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetLandingZoneOperationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetLandingZoneOperationInput"} + if s.OperationIdentifier == nil { + invalidParams.Add(request.NewErrParamRequired("OperationIdentifier")) + } + if s.OperationIdentifier != nil && len(*s.OperationIdentifier) < 36 { + invalidParams.Add(request.NewErrParamMinLen("OperationIdentifier", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetOperationIdentifier sets the OperationIdentifier field's value. +func (s *GetLandingZoneOperationInput) SetOperationIdentifier(v string) *GetLandingZoneOperationInput { + s.OperationIdentifier = &v + return s +} + +type GetLandingZoneOperationOutput struct { + _ struct{} `type:"structure"` + + // The landing zone operation details. + // + // OperationDetails is a required field + OperationDetails *LandingZoneOperationDetail `locationName:"operationDetails" type:"structure" required:"true"` } // String returns the string representation. @@ -1624,7 +2235,7 @@ type GetEnabledControlOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetEnabledControlOutput) String() string { +func (s GetLandingZoneOperationOutput) String() string { return awsutil.Prettify(s) } @@ -1633,13 +2244,13 @@ func (s GetEnabledControlOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetEnabledControlOutput) GoString() string { +func (s GetLandingZoneOperationOutput) GoString() string { return s.String() } -// SetEnabledControlDetails sets the EnabledControlDetails field's value. -func (s *GetEnabledControlOutput) SetEnabledControlDetails(v *EnabledControlDetails) *GetEnabledControlOutput { - s.EnabledControlDetails = v +// SetOperationDetails sets the OperationDetails field's value. +func (s *GetLandingZoneOperationOutput) SetOperationDetails(v *LandingZoneOperationDetail) *GetLandingZoneOperationOutput { + s.OperationDetails = v return s } @@ -1707,6 +2318,125 @@ func (s *InternalServerException) RequestID() string { return s.RespMetadata.RequestID } +// Information about a landing zone operation. +type LandingZoneOperationDetail struct { + _ struct{} `type:"structure"` + + // The landing zone operation end time. + EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"` + + // The landing zone operation type. + // + // Valid values: + // + // * DELETE: The DeleteLandingZone operation. + // + // * CREATE: The CreateLandingZone operation. + // + // * UPDATE: The UpdateLandingZone operation. + // + // * RESET: The ResetLandingZone operation. + OperationType *string `locationName:"operationType" type:"string" enum:"LandingZoneOperationType"` + + // The landing zone operation start time. + StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"` + + // The landing zone operation status. + // + // Valid values: + // + // * SUCCEEDED: The landing zone operation succeeded. + // + // * IN_PROGRESS: The landing zone operation is in progress. + // + // * FAILED: The landing zone operation failed. + Status *string `locationName:"status" type:"string" enum:"LandingZoneOperationStatus"` + + // If the operation result is FAILED, this string contains a message explaining + // why the operation failed. + StatusMessage *string `locationName:"statusMessage" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LandingZoneOperationDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LandingZoneOperationDetail) GoString() string { + return s.String() +} + +// SetEndTime sets the EndTime field's value. +func (s *LandingZoneOperationDetail) SetEndTime(v time.Time) *LandingZoneOperationDetail { + s.EndTime = &v + return s +} + +// SetOperationType sets the OperationType field's value. +func (s *LandingZoneOperationDetail) SetOperationType(v string) *LandingZoneOperationDetail { + s.OperationType = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *LandingZoneOperationDetail) SetStartTime(v time.Time) *LandingZoneOperationDetail { + s.StartTime = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *LandingZoneOperationDetail) SetStatus(v string) *LandingZoneOperationDetail { + s.Status = &v + return s +} + +// SetStatusMessage sets the StatusMessage field's value. +func (s *LandingZoneOperationDetail) SetStatusMessage(v string) *LandingZoneOperationDetail { + s.StatusMessage = &v + return s +} + +// Returns a summary of information about a landing zone. +type LandingZoneSummary struct { + _ struct{} `type:"structure"` + + // The ARN of the landing zone. + Arn *string `locationName:"arn" min:"20" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LandingZoneSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LandingZoneSummary) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *LandingZoneSummary) SetArn(v string) *LandingZoneSummary { + s.Arn = &v + return s +} + type ListEnabledControlsInput struct { _ struct{} `type:"structure"` @@ -1781,8 +2511,8 @@ func (s *ListEnabledControlsInput) SetTargetIdentifier(v string) *ListEnabledCon type ListEnabledControlsOutput struct { _ struct{} `type:"structure"` - // Lists the controls enabled by AWS Control Tower on the specified organizational - // unit and the accounts it contains. + // Lists the controls enabled by Amazon Web Services Control Tower on the specified + // organizational unit and the accounts it contains. // // EnabledControls is a required field EnabledControls []*EnabledControlSummary `locationName:"enabledControls" type:"list" required:"true"` @@ -1822,6 +2552,102 @@ func (s *ListEnabledControlsOutput) SetNextToken(v string) *ListEnabledControlsO return s } +type ListLandingZonesInput struct { + _ struct{} `type:"structure"` + + // The maximum number of returned landing zone ARNs. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // The token to continue the list from a previous API call with the same parameters. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListLandingZonesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListLandingZonesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListLandingZonesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListLandingZonesInput"} + 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 *ListLandingZonesInput) SetMaxResults(v int64) *ListLandingZonesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListLandingZonesInput) SetNextToken(v string) *ListLandingZonesInput { + s.NextToken = &v + return s +} + +type ListLandingZonesOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the landing zone. + // + // LandingZones is a required field + LandingZones []*LandingZoneSummary `locationName:"landingZones" type:"list" required:"true"` + + // Retrieves the next page of results. If the string is empty, the current response + // is the end of the results. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListLandingZonesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListLandingZonesOutput) GoString() string { + return s.String() +} + +// SetLandingZones sets the LandingZones field's value. +func (s *ListLandingZonesOutput) SetLandingZones(v []*LandingZoneSummary) *ListLandingZonesOutput { + s.LandingZones = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListLandingZonesOutput) SetNextToken(v string) *ListLandingZonesOutput { + s.NextToken = &v + return s +} + type ListTagsForResourceInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -1904,7 +2730,8 @@ func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForRe return s } -// An AWS Region in which AWS Control Tower expects to find the control deployed. +// An Amazon Web Services Region in which Amazon Web Services Control Tower +// expects to find the control deployed. // // The expected Regions are based on the Regions that are governed by the landing // zone. In certain cases, a control is not actually enabled in the Region as @@ -1912,7 +2739,7 @@ func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForRe type Region struct { _ struct{} `type:"structure"` - // The AWS Region name. + // The Amazon Web Services Region name. Name *string `locationName:"name" min:"1" type:"string"` } @@ -1940,6 +2767,87 @@ func (s *Region) SetName(v string) *Region { return s } +type ResetLandingZoneInput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the landing zone. + // + // LandingZoneIdentifier is a required field + LandingZoneIdentifier *string `locationName:"landingZoneIdentifier" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResetLandingZoneInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResetLandingZoneInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ResetLandingZoneInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ResetLandingZoneInput"} + if s.LandingZoneIdentifier == nil { + invalidParams.Add(request.NewErrParamRequired("LandingZoneIdentifier")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLandingZoneIdentifier sets the LandingZoneIdentifier field's value. +func (s *ResetLandingZoneInput) SetLandingZoneIdentifier(v string) *ResetLandingZoneInput { + s.LandingZoneIdentifier = &v + return s +} + +type ResetLandingZoneOutput struct { + _ struct{} `type:"structure"` + + // A unique identifier assigned to a ResetLandingZone operation. You can use + // this identifier as an input of GetLandingZoneOperation to check the operation's + // status. + // + // OperationIdentifier is a required field + OperationIdentifier *string `locationName:"operationIdentifier" min:"36" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResetLandingZoneOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResetLandingZoneOutput) GoString() string { + return s.String() +} + +// SetOperationIdentifier sets the OperationIdentifier field's value. +func (s *ResetLandingZoneOutput) SetOperationIdentifier(v string) *ResetLandingZoneOutput { + s.OperationIdentifier = &v + return s +} + // Request references a resource which does not exist. type ResourceNotFoundException struct { _ struct{} `type:"structure"` @@ -2312,7 +3220,8 @@ func (s UntagResourceOutput) GoString() string { return s.String() } -// The input fails to satisfy the constraints specified by an AWS service. +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. type ValidationException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -2455,3 +3364,47 @@ func EnablementStatus_Values() []string { EnablementStatusUnderChange, } } + +const ( + // LandingZoneOperationStatusSucceeded is a LandingZoneOperationStatus enum value + LandingZoneOperationStatusSucceeded = "SUCCEEDED" + + // LandingZoneOperationStatusFailed is a LandingZoneOperationStatus enum value + LandingZoneOperationStatusFailed = "FAILED" + + // LandingZoneOperationStatusInProgress is a LandingZoneOperationStatus enum value + LandingZoneOperationStatusInProgress = "IN_PROGRESS" +) + +// LandingZoneOperationStatus_Values returns all elements of the LandingZoneOperationStatus enum +func LandingZoneOperationStatus_Values() []string { + return []string{ + LandingZoneOperationStatusSucceeded, + LandingZoneOperationStatusFailed, + LandingZoneOperationStatusInProgress, + } +} + +const ( + // LandingZoneOperationTypeDelete is a LandingZoneOperationType enum value + LandingZoneOperationTypeDelete = "DELETE" + + // LandingZoneOperationTypeCreate is a LandingZoneOperationType enum value + LandingZoneOperationTypeCreate = "CREATE" + + // LandingZoneOperationTypeUpdate is a LandingZoneOperationType enum value + LandingZoneOperationTypeUpdate = "UPDATE" + + // LandingZoneOperationTypeReset is a LandingZoneOperationType enum value + LandingZoneOperationTypeReset = "RESET" +) + +// LandingZoneOperationType_Values returns all elements of the LandingZoneOperationType enum +func LandingZoneOperationType_Values() []string { + return []string{ + LandingZoneOperationTypeDelete, + LandingZoneOperationTypeCreate, + LandingZoneOperationTypeUpdate, + LandingZoneOperationTypeReset, + } +} diff --git a/service/controltower/controltoweriface/interface.go b/service/controltower/controltoweriface/interface.go index c83f1d512df..0489c8b7531 100644 --- a/service/controltower/controltoweriface/interface.go +++ b/service/controltower/controltoweriface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // AWS Control Tower. // func myFunc(svc controltoweriface.ControlTowerAPI) bool { -// // Make svc.DisableControl request +// // Make svc.DeleteLandingZone request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockControlTowerClient struct { // controltoweriface.ControlTowerAPI // } -// func (m *mockControlTowerClient) DisableControl(input *controltower.DisableControlInput) (*controltower.DisableControlOutput, error) { +// func (m *mockControlTowerClient) DeleteLandingZone(input *controltower.DeleteLandingZoneInput) (*controltower.DeleteLandingZoneOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,10 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type ControlTowerAPI interface { + DeleteLandingZone(*controltower.DeleteLandingZoneInput) (*controltower.DeleteLandingZoneOutput, error) + DeleteLandingZoneWithContext(aws.Context, *controltower.DeleteLandingZoneInput, ...request.Option) (*controltower.DeleteLandingZoneOutput, error) + DeleteLandingZoneRequest(*controltower.DeleteLandingZoneInput) (*request.Request, *controltower.DeleteLandingZoneOutput) + DisableControl(*controltower.DisableControlInput) (*controltower.DisableControlOutput, error) DisableControlWithContext(aws.Context, *controltower.DisableControlInput, ...request.Option) (*controltower.DisableControlOutput, error) DisableControlRequest(*controltower.DisableControlInput) (*request.Request, *controltower.DisableControlOutput) @@ -76,6 +80,10 @@ type ControlTowerAPI interface { GetEnabledControlWithContext(aws.Context, *controltower.GetEnabledControlInput, ...request.Option) (*controltower.GetEnabledControlOutput, error) GetEnabledControlRequest(*controltower.GetEnabledControlInput) (*request.Request, *controltower.GetEnabledControlOutput) + GetLandingZoneOperation(*controltower.GetLandingZoneOperationInput) (*controltower.GetLandingZoneOperationOutput, error) + GetLandingZoneOperationWithContext(aws.Context, *controltower.GetLandingZoneOperationInput, ...request.Option) (*controltower.GetLandingZoneOperationOutput, error) + GetLandingZoneOperationRequest(*controltower.GetLandingZoneOperationInput) (*request.Request, *controltower.GetLandingZoneOperationOutput) + ListEnabledControls(*controltower.ListEnabledControlsInput) (*controltower.ListEnabledControlsOutput, error) ListEnabledControlsWithContext(aws.Context, *controltower.ListEnabledControlsInput, ...request.Option) (*controltower.ListEnabledControlsOutput, error) ListEnabledControlsRequest(*controltower.ListEnabledControlsInput) (*request.Request, *controltower.ListEnabledControlsOutput) @@ -83,10 +91,21 @@ type ControlTowerAPI interface { ListEnabledControlsPages(*controltower.ListEnabledControlsInput, func(*controltower.ListEnabledControlsOutput, bool) bool) error ListEnabledControlsPagesWithContext(aws.Context, *controltower.ListEnabledControlsInput, func(*controltower.ListEnabledControlsOutput, bool) bool, ...request.Option) error + ListLandingZones(*controltower.ListLandingZonesInput) (*controltower.ListLandingZonesOutput, error) + ListLandingZonesWithContext(aws.Context, *controltower.ListLandingZonesInput, ...request.Option) (*controltower.ListLandingZonesOutput, error) + ListLandingZonesRequest(*controltower.ListLandingZonesInput) (*request.Request, *controltower.ListLandingZonesOutput) + + ListLandingZonesPages(*controltower.ListLandingZonesInput, func(*controltower.ListLandingZonesOutput, bool) bool) error + ListLandingZonesPagesWithContext(aws.Context, *controltower.ListLandingZonesInput, func(*controltower.ListLandingZonesOutput, bool) bool, ...request.Option) error + ListTagsForResource(*controltower.ListTagsForResourceInput) (*controltower.ListTagsForResourceOutput, error) ListTagsForResourceWithContext(aws.Context, *controltower.ListTagsForResourceInput, ...request.Option) (*controltower.ListTagsForResourceOutput, error) ListTagsForResourceRequest(*controltower.ListTagsForResourceInput) (*request.Request, *controltower.ListTagsForResourceOutput) + ResetLandingZone(*controltower.ResetLandingZoneInput) (*controltower.ResetLandingZoneOutput, error) + ResetLandingZoneWithContext(aws.Context, *controltower.ResetLandingZoneInput, ...request.Option) (*controltower.ResetLandingZoneOutput, error) + ResetLandingZoneRequest(*controltower.ResetLandingZoneInput) (*request.Request, *controltower.ResetLandingZoneOutput) + TagResource(*controltower.TagResourceInput) (*controltower.TagResourceOutput, error) TagResourceWithContext(aws.Context, *controltower.TagResourceInput, ...request.Option) (*controltower.TagResourceOutput, error) TagResourceRequest(*controltower.TagResourceInput) (*request.Request, *controltower.TagResourceOutput) diff --git a/service/controltower/doc.go b/service/controltower/doc.go index a6a7e0280b7..d4b1f5c4044 100644 --- a/service/controltower/doc.go +++ b/service/controltower/doc.go @@ -3,9 +3,9 @@ // Package controltower provides the client and types for making API // requests to AWS Control Tower. // -// These interfaces allow you to apply the AWS library of pre-defined controls -// to your organizational units, programmatically. In AWS Control Tower, the -// terms "control" and "guardrail" are synonyms. +// These interfaces allow you to apply the Amazon Web Services library of pre-defined +// controls to your organizational units, programmatically. In Amazon Web Services +// Control Tower, the terms "control" and "guardrail" are synonyms. // // To call these APIs, you'll need to know: // @@ -22,17 +22,17 @@ // view the controlIdentifier in the console on the Control details page, as // well as in the documentation. // -// The controlIdentifier is unique in each AWS Region for each control. You -// can find the controlIdentifier for each Region and control in the Tables -// of control metadata (https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html) -// in the AWS Control Tower User Guide. +// The controlIdentifier is unique in each Amazon Web Services Region for each +// control. You can find the controlIdentifier for each Region and control in +// the Tables of control metadata (https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html) +// in the Amazon Web Services Control Tower User Guide. // -// A quick-reference list of control identifers for the AWS Control Tower legacy -// Strongly recommended and Elective controls is given in Resource identifiers -// for APIs and controls (https://docs.aws.amazon.com/controltower/latest/userguide/control-identifiers.html.html) +// A quick-reference list of control identifers for the Amazon Web Services +// Control Tower legacy Strongly recommended and Elective controls is given +// in Resource identifiers for APIs and controls (https://docs.aws.amazon.com/controltower/latest/userguide/control-identifiers.html.html) // in the Controls reference guide section (https://docs.aws.amazon.com/controltower/latest/userguide/control-identifiers.html) -// of the AWS Control Tower User Guide. Remember that Mandatory controls cannot -// be added or removed. +// of the Amazon Web Services Control Tower User Guide. Remember that Mandatory +// controls cannot be added or removed. // // ARN format: arn:aws:controltower:{REGION}::control/{CONTROL_NAME} // @@ -44,8 +44,8 @@ // // The targetIdentifier is the ARN for an OU. // -// In the AWS Organizations console, you can find the ARN for the OU on the -// Organizational unit details page associated with that OU. +// In the Amazon Web Services Organizations console, you can find the ARN for +// the OU on the Organizational unit details page associated with that OU. // // OU ARN format: // @@ -65,21 +65,25 @@ // // - Controls library groupings (https://docs.aws.amazon.com/controltower/latest/userguide/controls-reference.html) // -// - Creating AWS Control Tower resources with AWS CloudFormation (https://docs.aws.amazon.com/controltower/latest/userguide/creating-resources-with-cloudformation.html) +// - Creating Amazon Web Services Control Tower resources with Amazon Web +// Services CloudFormation (https://docs.aws.amazon.com/controltower/latest/userguide/creating-resources-with-cloudformation.html) // // To view the open source resource repository on GitHub, see aws-cloudformation/aws-cloudformation-resource-providers-controltower // (https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower) // // # Recording API Requests // -// AWS Control Tower supports AWS CloudTrail, a service that records AWS API -// calls for your AWS account and delivers log files to an Amazon S3 bucket. -// By using information collected by CloudTrail, you can determine which requests -// the AWS Control Tower service received, who made the request and when, and -// so on. For more about AWS Control Tower and its support for CloudTrail, see -// Logging AWS Control Tower Actions with AWS CloudTrail (https://docs.aws.amazon.com/controltower/latest/userguide/logging-using-cloudtrail.html) -// in the AWS Control Tower User Guide. To learn more about CloudTrail, including -// how to turn it on and find your log files, see the AWS CloudTrail User Guide. +// Amazon Web Services Control Tower supports Amazon Web Services CloudTrail, +// a service that records Amazon Web Services API calls for your Amazon Web +// Services account and delivers log files to an Amazon S3 bucket. By using +// information collected by CloudTrail, you can determine which requests the +// Amazon Web Services Control Tower service received, who made the request +// and when, and so on. For more about Amazon Web Services Control Tower and +// its support for CloudTrail, see Logging Amazon Web Services Control Tower +// Actions with Amazon Web Services CloudTrail (https://docs.aws.amazon.com/controltower/latest/userguide/logging-using-cloudtrail.html) +// in the Amazon Web Services Control Tower User Guide. To learn more about +// CloudTrail, including how to turn it on and find your log files, see the +// Amazon Web Services CloudTrail User Guide. // // See https://docs.aws.amazon.com/goto/WebAPI/controltower-2018-05-10 for more information on this service. // diff --git a/service/controltower/errors.go b/service/controltower/errors.go index b83fc0234c6..5dd993b320a 100644 --- a/service/controltower/errors.go +++ b/service/controltower/errors.go @@ -11,7 +11,7 @@ const ( // ErrCodeAccessDeniedException for service response error code // "AccessDeniedException". // - // User does not have sufficient access to perform this action. + // You do not have sufficient access to perform this action. ErrCodeAccessDeniedException = "AccessDeniedException" // ErrCodeConflictException for service response error code @@ -48,7 +48,8 @@ const ( // ErrCodeValidationException for service response error code // "ValidationException". // - // The input fails to satisfy the constraints specified by an AWS service. + // The input fails to satisfy the constraints specified by an Amazon Web Services + // service. ErrCodeValidationException = "ValidationException" ) diff --git a/service/costoptimizationhub/api.go b/service/costoptimizationhub/api.go new file mode 100644 index 00000000000..245155acde4 --- /dev/null +++ b/service/costoptimizationhub/api.go @@ -0,0 +1,5273 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package costoptimizationhub + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" +) + +const opGetPreferences = "GetPreferences" + +// GetPreferencesRequest generates a "aws/request.Request" representing the +// client's request for the GetPreferences 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 GetPreferences for more information on using the GetPreferences +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetPreferencesRequest method. +// req, resp := client.GetPreferencesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/GetPreferences +func (c *CostOptimizationHub) GetPreferencesRequest(input *GetPreferencesInput) (req *request.Request, output *GetPreferencesOutput) { + op := &request.Operation{ + Name: opGetPreferences, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetPreferencesInput{} + } + + output = &GetPreferencesOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetPreferences API operation for Cost Optimization Hub. +// +// Returns a set of preferences for an account in order to add account-specific +// preferences into the service. These preferences impact how the savings associated +// with recommendations are presented—estimated savings after discounts or +// estimated savings before discounts, for example. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Cost Optimization Hub's +// API operation GetPreferences for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - AccessDeniedException +// You are not authorized to use this operation with the given parameters. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/GetPreferences +func (c *CostOptimizationHub) GetPreferences(input *GetPreferencesInput) (*GetPreferencesOutput, error) { + req, out := c.GetPreferencesRequest(input) + return out, req.Send() +} + +// GetPreferencesWithContext is the same as GetPreferences with the addition of +// the ability to pass a context and additional request options. +// +// See GetPreferences for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CostOptimizationHub) GetPreferencesWithContext(ctx aws.Context, input *GetPreferencesInput, opts ...request.Option) (*GetPreferencesOutput, error) { + req, out := c.GetPreferencesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetRecommendation = "GetRecommendation" + +// GetRecommendationRequest generates a "aws/request.Request" representing the +// client's request for the GetRecommendation 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 GetRecommendation for more information on using the GetRecommendation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetRecommendationRequest method. +// req, resp := client.GetRecommendationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/GetRecommendation +func (c *CostOptimizationHub) GetRecommendationRequest(input *GetRecommendationInput) (req *request.Request, output *GetRecommendationOutput) { + op := &request.Operation{ + Name: opGetRecommendation, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetRecommendationInput{} + } + + output = &GetRecommendationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetRecommendation API operation for Cost Optimization Hub. +// +// Returns both the current and recommended resource configuration and the estimated +// cost impact for a recommendation. +// +// The recommendationId is only valid for up to a maximum of 24 hours as recommendations +// are refreshed daily. To retrieve the recommendationId, use the ListRecommendations +// API. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Cost Optimization Hub's +// API operation GetRecommendation for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - AccessDeniedException +// You are not authorized to use this operation with the given parameters. +// +// - ResourceNotFoundException +// The specified Amazon Resource Name (ARN) in the request doesn't exist. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/GetRecommendation +func (c *CostOptimizationHub) GetRecommendation(input *GetRecommendationInput) (*GetRecommendationOutput, error) { + req, out := c.GetRecommendationRequest(input) + return out, req.Send() +} + +// GetRecommendationWithContext is the same as GetRecommendation with the addition of +// the ability to pass a context and additional request options. +// +// See GetRecommendation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CostOptimizationHub) GetRecommendationWithContext(ctx aws.Context, input *GetRecommendationInput, opts ...request.Option) (*GetRecommendationOutput, error) { + req, out := c.GetRecommendationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListEnrollmentStatuses = "ListEnrollmentStatuses" + +// ListEnrollmentStatusesRequest generates a "aws/request.Request" representing the +// client's request for the ListEnrollmentStatuses 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 ListEnrollmentStatuses for more information on using the ListEnrollmentStatuses +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListEnrollmentStatusesRequest method. +// req, resp := client.ListEnrollmentStatusesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListEnrollmentStatuses +func (c *CostOptimizationHub) ListEnrollmentStatusesRequest(input *ListEnrollmentStatusesInput) (req *request.Request, output *ListEnrollmentStatusesOutput) { + op := &request.Operation{ + Name: opListEnrollmentStatuses, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListEnrollmentStatusesInput{} + } + + output = &ListEnrollmentStatusesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListEnrollmentStatuses API operation for Cost Optimization Hub. +// +// Retrieves the enrollment status for an account. It can also return the list +// of accounts that are enrolled under the organization. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Cost Optimization Hub's +// API operation ListEnrollmentStatuses for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - AccessDeniedException +// You are not authorized to use this operation with the given parameters. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListEnrollmentStatuses +func (c *CostOptimizationHub) ListEnrollmentStatuses(input *ListEnrollmentStatusesInput) (*ListEnrollmentStatusesOutput, error) { + req, out := c.ListEnrollmentStatusesRequest(input) + return out, req.Send() +} + +// ListEnrollmentStatusesWithContext is the same as ListEnrollmentStatuses with the addition of +// the ability to pass a context and additional request options. +// +// See ListEnrollmentStatuses for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CostOptimizationHub) ListEnrollmentStatusesWithContext(ctx aws.Context, input *ListEnrollmentStatusesInput, opts ...request.Option) (*ListEnrollmentStatusesOutput, error) { + req, out := c.ListEnrollmentStatusesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListEnrollmentStatusesPages iterates over the pages of a ListEnrollmentStatuses operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListEnrollmentStatuses 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 ListEnrollmentStatuses operation. +// pageNum := 0 +// err := client.ListEnrollmentStatusesPages(params, +// func(page *costoptimizationhub.ListEnrollmentStatusesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CostOptimizationHub) ListEnrollmentStatusesPages(input *ListEnrollmentStatusesInput, fn func(*ListEnrollmentStatusesOutput, bool) bool) error { + return c.ListEnrollmentStatusesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListEnrollmentStatusesPagesWithContext same as ListEnrollmentStatusesPages 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 *CostOptimizationHub) ListEnrollmentStatusesPagesWithContext(ctx aws.Context, input *ListEnrollmentStatusesInput, fn func(*ListEnrollmentStatusesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListEnrollmentStatusesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListEnrollmentStatusesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListEnrollmentStatusesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListRecommendationSummaries = "ListRecommendationSummaries" + +// ListRecommendationSummariesRequest generates a "aws/request.Request" representing the +// client's request for the ListRecommendationSummaries 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 ListRecommendationSummaries for more information on using the ListRecommendationSummaries +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListRecommendationSummariesRequest method. +// req, resp := client.ListRecommendationSummariesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListRecommendationSummaries +func (c *CostOptimizationHub) ListRecommendationSummariesRequest(input *ListRecommendationSummariesInput) (req *request.Request, output *ListRecommendationSummariesOutput) { + op := &request.Operation{ + Name: opListRecommendationSummaries, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListRecommendationSummariesInput{} + } + + output = &ListRecommendationSummariesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListRecommendationSummaries API operation for Cost Optimization Hub. +// +// Returns a concise representation of savings estimates for resources. Also +// returns de-duped savings across different types of recommendations. +// +// The following filters are not supported for this API: recommendationIds, +// resourceArns, and resourceIds. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Cost Optimization Hub's +// API operation ListRecommendationSummaries for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - AccessDeniedException +// You are not authorized to use this operation with the given parameters. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListRecommendationSummaries +func (c *CostOptimizationHub) ListRecommendationSummaries(input *ListRecommendationSummariesInput) (*ListRecommendationSummariesOutput, error) { + req, out := c.ListRecommendationSummariesRequest(input) + return out, req.Send() +} + +// ListRecommendationSummariesWithContext is the same as ListRecommendationSummaries with the addition of +// the ability to pass a context and additional request options. +// +// See ListRecommendationSummaries for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CostOptimizationHub) ListRecommendationSummariesWithContext(ctx aws.Context, input *ListRecommendationSummariesInput, opts ...request.Option) (*ListRecommendationSummariesOutput, error) { + req, out := c.ListRecommendationSummariesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListRecommendationSummariesPages iterates over the pages of a ListRecommendationSummaries operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListRecommendationSummaries 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 ListRecommendationSummaries operation. +// pageNum := 0 +// err := client.ListRecommendationSummariesPages(params, +// func(page *costoptimizationhub.ListRecommendationSummariesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CostOptimizationHub) ListRecommendationSummariesPages(input *ListRecommendationSummariesInput, fn func(*ListRecommendationSummariesOutput, bool) bool) error { + return c.ListRecommendationSummariesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListRecommendationSummariesPagesWithContext same as ListRecommendationSummariesPages 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 *CostOptimizationHub) ListRecommendationSummariesPagesWithContext(ctx aws.Context, input *ListRecommendationSummariesInput, fn func(*ListRecommendationSummariesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListRecommendationSummariesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListRecommendationSummariesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListRecommendationSummariesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListRecommendations = "ListRecommendations" + +// ListRecommendationsRequest generates a "aws/request.Request" representing the +// client's request for the ListRecommendations 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 ListRecommendations for more information on using the ListRecommendations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListRecommendationsRequest method. +// req, resp := client.ListRecommendationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListRecommendations +func (c *CostOptimizationHub) ListRecommendationsRequest(input *ListRecommendationsInput) (req *request.Request, output *ListRecommendationsOutput) { + op := &request.Operation{ + Name: opListRecommendations, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListRecommendationsInput{} + } + + output = &ListRecommendationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListRecommendations API operation for Cost Optimization Hub. +// +// Returns a list of recommendations. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Cost Optimization Hub's +// API operation ListRecommendations for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - AccessDeniedException +// You are not authorized to use this operation with the given parameters. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListRecommendations +func (c *CostOptimizationHub) ListRecommendations(input *ListRecommendationsInput) (*ListRecommendationsOutput, error) { + req, out := c.ListRecommendationsRequest(input) + return out, req.Send() +} + +// ListRecommendationsWithContext is the same as ListRecommendations with the addition of +// the ability to pass a context and additional request options. +// +// See ListRecommendations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CostOptimizationHub) ListRecommendationsWithContext(ctx aws.Context, input *ListRecommendationsInput, opts ...request.Option) (*ListRecommendationsOutput, error) { + req, out := c.ListRecommendationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListRecommendationsPages iterates over the pages of a ListRecommendations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListRecommendations 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 ListRecommendations operation. +// pageNum := 0 +// err := client.ListRecommendationsPages(params, +// func(page *costoptimizationhub.ListRecommendationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *CostOptimizationHub) ListRecommendationsPages(input *ListRecommendationsInput, fn func(*ListRecommendationsOutput, bool) bool) error { + return c.ListRecommendationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListRecommendationsPagesWithContext same as ListRecommendationsPages 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 *CostOptimizationHub) ListRecommendationsPagesWithContext(ctx aws.Context, input *ListRecommendationsInput, fn func(*ListRecommendationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListRecommendationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListRecommendationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListRecommendationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opUpdateEnrollmentStatus = "UpdateEnrollmentStatus" + +// UpdateEnrollmentStatusRequest generates a "aws/request.Request" representing the +// client's request for the UpdateEnrollmentStatus 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 UpdateEnrollmentStatus for more information on using the UpdateEnrollmentStatus +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateEnrollmentStatusRequest method. +// req, resp := client.UpdateEnrollmentStatusRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/UpdateEnrollmentStatus +func (c *CostOptimizationHub) UpdateEnrollmentStatusRequest(input *UpdateEnrollmentStatusInput) (req *request.Request, output *UpdateEnrollmentStatusOutput) { + op := &request.Operation{ + Name: opUpdateEnrollmentStatus, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateEnrollmentStatusInput{} + } + + output = &UpdateEnrollmentStatusOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateEnrollmentStatus API operation for Cost Optimization Hub. +// +// Updates the enrollment (opt in and opt out) status of an account to the Cost +// Optimization Hub service. +// +// If the account is a management account of an organization, this action can +// also be used to enroll member accounts of the organization. +// +// You must have the appropriate permissions to opt in to Cost Optimization +// Hub and to view its recommendations. When you opt in, Cost Optimization Hub +// automatically creates a service-linked role in your account to access its +// data. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Cost Optimization Hub's +// API operation UpdateEnrollmentStatus for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - AccessDeniedException +// You are not authorized to use this operation with the given parameters. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/UpdateEnrollmentStatus +func (c *CostOptimizationHub) UpdateEnrollmentStatus(input *UpdateEnrollmentStatusInput) (*UpdateEnrollmentStatusOutput, error) { + req, out := c.UpdateEnrollmentStatusRequest(input) + return out, req.Send() +} + +// UpdateEnrollmentStatusWithContext is the same as UpdateEnrollmentStatus with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateEnrollmentStatus for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CostOptimizationHub) UpdateEnrollmentStatusWithContext(ctx aws.Context, input *UpdateEnrollmentStatusInput, opts ...request.Option) (*UpdateEnrollmentStatusOutput, error) { + req, out := c.UpdateEnrollmentStatusRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdatePreferences = "UpdatePreferences" + +// UpdatePreferencesRequest generates a "aws/request.Request" representing the +// client's request for the UpdatePreferences 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 UpdatePreferences for more information on using the UpdatePreferences +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdatePreferencesRequest method. +// req, resp := client.UpdatePreferencesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/UpdatePreferences +func (c *CostOptimizationHub) UpdatePreferencesRequest(input *UpdatePreferencesInput) (req *request.Request, output *UpdatePreferencesOutput) { + op := &request.Operation{ + Name: opUpdatePreferences, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdatePreferencesInput{} + } + + output = &UpdatePreferencesOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdatePreferences API operation for Cost Optimization Hub. +// +// Updates a set of preferences for an account in order to add account-specific +// preferences into the service. These preferences impact how the savings associated +// with recommendations are presented. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Cost Optimization Hub's +// API operation UpdatePreferences for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +// +// - InternalServerException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - AccessDeniedException +// You are not authorized to use this operation with the given parameters. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/UpdatePreferences +func (c *CostOptimizationHub) UpdatePreferences(input *UpdatePreferencesInput) (*UpdatePreferencesOutput, error) { + req, out := c.UpdatePreferencesRequest(input) + return out, req.Send() +} + +// UpdatePreferencesWithContext is the same as UpdatePreferences with the addition of +// the ability to pass a context and additional request options. +// +// See UpdatePreferences for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CostOptimizationHub) UpdatePreferencesWithContext(ctx aws.Context, input *UpdatePreferencesInput, opts ...request.Option) (*UpdatePreferencesOutput, error) { + req, out := c.UpdatePreferencesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// You are not authorized to use this operation with the given parameters. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Describes the enrollment status of an organization's member accounts in Cost +// Optimization Hub. +type AccountEnrollmentStatus struct { + _ struct{} `type:"structure"` + + // The Amazon Web Services account ID. + AccountId *string `locationName:"accountId" type:"string"` + + // The time when the account enrollment status was created. + CreatedTimestamp *time.Time `locationName:"createdTimestamp" type:"timestamp"` + + // The time when the account enrollment status was last updated. + LastUpdatedTimestamp *time.Time `locationName:"lastUpdatedTimestamp" type:"timestamp"` + + // The account enrollment status. + Status *string `locationName:"status" type:"string" enum:"EnrollmentStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccountEnrollmentStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccountEnrollmentStatus) GoString() string { + return s.String() +} + +// SetAccountId sets the AccountId field's value. +func (s *AccountEnrollmentStatus) SetAccountId(v string) *AccountEnrollmentStatus { + s.AccountId = &v + return s +} + +// SetCreatedTimestamp sets the CreatedTimestamp field's value. +func (s *AccountEnrollmentStatus) SetCreatedTimestamp(v time.Time) *AccountEnrollmentStatus { + s.CreatedTimestamp = &v + return s +} + +// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value. +func (s *AccountEnrollmentStatus) SetLastUpdatedTimestamp(v time.Time) *AccountEnrollmentStatus { + s.LastUpdatedTimestamp = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *AccountEnrollmentStatus) SetStatus(v string) *AccountEnrollmentStatus { + s.Status = &v + return s +} + +// Describes the Amazon Elastic Block Store performance configuration of the +// current and recommended resource configuration for a recommendation. +type BlockStoragePerformanceConfiguration struct { + _ struct{} `type:"structure"` + + // The number of I/O operations per second. + Iops *float64 `locationName:"iops" type:"double"` + + // The throughput that the volume supports. + Throughput *float64 `locationName:"throughput" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BlockStoragePerformanceConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BlockStoragePerformanceConfiguration) GoString() string { + return s.String() +} + +// SetIops sets the Iops field's value. +func (s *BlockStoragePerformanceConfiguration) SetIops(v float64) *BlockStoragePerformanceConfiguration { + s.Iops = &v + return s +} + +// SetThroughput sets the Throughput field's value. +func (s *BlockStoragePerformanceConfiguration) SetThroughput(v float64) *BlockStoragePerformanceConfiguration { + s.Throughput = &v + return s +} + +// Describes the performance configuration for compute services such as Amazon +// EC2, Lambda, and ECS. +type ComputeConfiguration struct { + _ struct{} `type:"structure"` + + // The architecture of the resource. + Architecture *string `locationName:"architecture" type:"string"` + + // The memory size of the resource. + MemorySizeInMB *int64 `locationName:"memorySizeInMB" type:"integer"` + + // The platform of the resource. The platform is the specific combination of + // operating system, license model, and software on an instance. + Platform *string `locationName:"platform" type:"string"` + + // The number of vCPU cores in the resource. + VCpu *float64 `locationName:"vCpu" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ComputeConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ComputeConfiguration) GoString() string { + return s.String() +} + +// SetArchitecture sets the Architecture field's value. +func (s *ComputeConfiguration) SetArchitecture(v string) *ComputeConfiguration { + s.Architecture = &v + return s +} + +// SetMemorySizeInMB sets the MemorySizeInMB field's value. +func (s *ComputeConfiguration) SetMemorySizeInMB(v int64) *ComputeConfiguration { + s.MemorySizeInMB = &v + return s +} + +// SetPlatform sets the Platform field's value. +func (s *ComputeConfiguration) SetPlatform(v string) *ComputeConfiguration { + s.Platform = &v + return s +} + +// SetVCpu sets the VCpu field's value. +func (s *ComputeConfiguration) SetVCpu(v float64) *ComputeConfiguration { + s.VCpu = &v + return s +} + +// The Compute Savings Plans recommendation details. +type ComputeSavingsPlans struct { + _ struct{} `type:"structure"` + + // Configuration details of the Compute Savings Plans to purchase. + Configuration *ComputeSavingsPlansConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the Savings Plans purchase recommendation. + CostCalculation *SavingsPlansCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ComputeSavingsPlans) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ComputeSavingsPlans) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *ComputeSavingsPlans) SetConfiguration(v *ComputeSavingsPlansConfiguration) *ComputeSavingsPlans { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *ComputeSavingsPlans) SetCostCalculation(v *SavingsPlansCostCalculation) *ComputeSavingsPlans { + s.CostCalculation = v + return s +} + +// The Compute Savings Plans configuration used for recommendations. +type ComputeSavingsPlansConfiguration struct { + _ struct{} `type:"structure"` + + // The account scope that you want your recommendations for. Amazon Web Services + // calculates recommendations including the management account and member accounts + // if the value is set to PAYER. If the value is LINKED, recommendations are + // calculated for individual member accounts only. + AccountScope *string `locationName:"accountScope" type:"string"` + + // The hourly commitment for the Savings Plans type. + HourlyCommitment *string `locationName:"hourlyCommitment" type:"string"` + + // The payment option for the commitment. + PaymentOption *string `locationName:"paymentOption" type:"string"` + + // The Savings Plans recommendation term in years. + Term *string `locationName:"term" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ComputeSavingsPlansConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ComputeSavingsPlansConfiguration) GoString() string { + return s.String() +} + +// SetAccountScope sets the AccountScope field's value. +func (s *ComputeSavingsPlansConfiguration) SetAccountScope(v string) *ComputeSavingsPlansConfiguration { + s.AccountScope = &v + return s +} + +// SetHourlyCommitment sets the HourlyCommitment field's value. +func (s *ComputeSavingsPlansConfiguration) SetHourlyCommitment(v string) *ComputeSavingsPlansConfiguration { + s.HourlyCommitment = &v + return s +} + +// SetPaymentOption sets the PaymentOption field's value. +func (s *ComputeSavingsPlansConfiguration) SetPaymentOption(v string) *ComputeSavingsPlansConfiguration { + s.PaymentOption = &v + return s +} + +// SetTerm sets the Term field's value. +func (s *ComputeSavingsPlansConfiguration) SetTerm(v string) *ComputeSavingsPlansConfiguration { + s.Term = &v + return s +} + +// Describes the Amazon Elastic Block Store volume configuration of the current +// and recommended resource configuration for a recommendation. +type EbsVolume struct { + _ struct{} `type:"structure"` + + // The Amazon Elastic Block Store volume configuration used for recommendations. + Configuration *EbsVolumeConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the recommendation. + CostCalculation *ResourceCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EbsVolume) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EbsVolume) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *EbsVolume) SetConfiguration(v *EbsVolumeConfiguration) *EbsVolume { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *EbsVolume) SetCostCalculation(v *ResourceCostCalculation) *EbsVolume { + s.CostCalculation = v + return s +} + +// The Amazon Elastic Block Store volume configuration used for recommendations. +type EbsVolumeConfiguration struct { + _ struct{} `type:"structure"` + + // The Amazon Elastic Block Store attachment state. + AttachmentState *string `locationName:"attachmentState" type:"string"` + + // The Amazon Elastic Block Store performance configuration. + Performance *BlockStoragePerformanceConfiguration `locationName:"performance" type:"structure"` + + // The disk storage of the Amazon Elastic Block Store volume. + Storage *StorageConfiguration `locationName:"storage" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EbsVolumeConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EbsVolumeConfiguration) GoString() string { + return s.String() +} + +// SetAttachmentState sets the AttachmentState field's value. +func (s *EbsVolumeConfiguration) SetAttachmentState(v string) *EbsVolumeConfiguration { + s.AttachmentState = &v + return s +} + +// SetPerformance sets the Performance field's value. +func (s *EbsVolumeConfiguration) SetPerformance(v *BlockStoragePerformanceConfiguration) *EbsVolumeConfiguration { + s.Performance = v + return s +} + +// SetStorage sets the Storage field's value. +func (s *EbsVolumeConfiguration) SetStorage(v *StorageConfiguration) *EbsVolumeConfiguration { + s.Storage = v + return s +} + +// The EC2 Auto Scaling group recommendation details. +type Ec2AutoScalingGroup struct { + _ struct{} `type:"structure"` + + // The EC2 Auto Scaling group configuration used for recommendations. + Configuration *Ec2AutoScalingGroupConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the recommendation. + CostCalculation *ResourceCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2AutoScalingGroup) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2AutoScalingGroup) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *Ec2AutoScalingGroup) SetConfiguration(v *Ec2AutoScalingGroupConfiguration) *Ec2AutoScalingGroup { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *Ec2AutoScalingGroup) SetCostCalculation(v *ResourceCostCalculation) *Ec2AutoScalingGroup { + s.CostCalculation = v + return s +} + +// The EC2 auto scaling group configuration used for recommendations. +type Ec2AutoScalingGroupConfiguration struct { + _ struct{} `type:"structure"` + + // Details about the instance. + Instance *InstanceConfiguration `locationName:"instance" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2AutoScalingGroupConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2AutoScalingGroupConfiguration) GoString() string { + return s.String() +} + +// SetInstance sets the Instance field's value. +func (s *Ec2AutoScalingGroupConfiguration) SetInstance(v *InstanceConfiguration) *Ec2AutoScalingGroupConfiguration { + s.Instance = v + return s +} + +// Describes the EC2 instance configuration of the current and recommended resource +// configuration for a recommendation. +type Ec2Instance struct { + _ struct{} `type:"structure"` + + // The EC2 instance configuration used for recommendations. + Configuration *Ec2InstanceConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the recommendation. + CostCalculation *ResourceCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2Instance) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2Instance) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *Ec2Instance) SetConfiguration(v *Ec2InstanceConfiguration) *Ec2Instance { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *Ec2Instance) SetCostCalculation(v *ResourceCostCalculation) *Ec2Instance { + s.CostCalculation = v + return s +} + +// The EC2 instance configuration used for recommendations. +type Ec2InstanceConfiguration struct { + _ struct{} `type:"structure"` + + // Details about the instance. + Instance *InstanceConfiguration `locationName:"instance" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2InstanceConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2InstanceConfiguration) GoString() string { + return s.String() +} + +// SetInstance sets the Instance field's value. +func (s *Ec2InstanceConfiguration) SetInstance(v *InstanceConfiguration) *Ec2InstanceConfiguration { + s.Instance = v + return s +} + +// The EC2 instance Savings Plans recommendation details. +type Ec2InstanceSavingsPlans struct { + _ struct{} `type:"structure"` + + // The EC2 instance Savings Plans configuration used for recommendations. + Configuration *Ec2InstanceSavingsPlansConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the Savings Plans purchase recommendation. + CostCalculation *SavingsPlansCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2InstanceSavingsPlans) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2InstanceSavingsPlans) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *Ec2InstanceSavingsPlans) SetConfiguration(v *Ec2InstanceSavingsPlansConfiguration) *Ec2InstanceSavingsPlans { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *Ec2InstanceSavingsPlans) SetCostCalculation(v *SavingsPlansCostCalculation) *Ec2InstanceSavingsPlans { + s.CostCalculation = v + return s +} + +// The EC2 instance Savings Plans configuration used for recommendations. +type Ec2InstanceSavingsPlansConfiguration struct { + _ struct{} `type:"structure"` + + // The account scope that you want your recommendations for. + AccountScope *string `locationName:"accountScope" type:"string"` + + // The hourly commitment for the Savings Plans type. + HourlyCommitment *string `locationName:"hourlyCommitment" type:"string"` + + // The instance family of the recommended Savings Plan. + InstanceFamily *string `locationName:"instanceFamily" type:"string"` + + // The payment option for the commitment. + PaymentOption *string `locationName:"paymentOption" type:"string"` + + // The Amazon Web Services Region of the commitment. + SavingsPlansRegion *string `locationName:"savingsPlansRegion" type:"string"` + + // The Savings Plans recommendation term in years. + Term *string `locationName:"term" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2InstanceSavingsPlansConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2InstanceSavingsPlansConfiguration) GoString() string { + return s.String() +} + +// SetAccountScope sets the AccountScope field's value. +func (s *Ec2InstanceSavingsPlansConfiguration) SetAccountScope(v string) *Ec2InstanceSavingsPlansConfiguration { + s.AccountScope = &v + return s +} + +// SetHourlyCommitment sets the HourlyCommitment field's value. +func (s *Ec2InstanceSavingsPlansConfiguration) SetHourlyCommitment(v string) *Ec2InstanceSavingsPlansConfiguration { + s.HourlyCommitment = &v + return s +} + +// SetInstanceFamily sets the InstanceFamily field's value. +func (s *Ec2InstanceSavingsPlansConfiguration) SetInstanceFamily(v string) *Ec2InstanceSavingsPlansConfiguration { + s.InstanceFamily = &v + return s +} + +// SetPaymentOption sets the PaymentOption field's value. +func (s *Ec2InstanceSavingsPlansConfiguration) SetPaymentOption(v string) *Ec2InstanceSavingsPlansConfiguration { + s.PaymentOption = &v + return s +} + +// SetSavingsPlansRegion sets the SavingsPlansRegion field's value. +func (s *Ec2InstanceSavingsPlansConfiguration) SetSavingsPlansRegion(v string) *Ec2InstanceSavingsPlansConfiguration { + s.SavingsPlansRegion = &v + return s +} + +// SetTerm sets the Term field's value. +func (s *Ec2InstanceSavingsPlansConfiguration) SetTerm(v string) *Ec2InstanceSavingsPlansConfiguration { + s.Term = &v + return s +} + +// The EC2 reserved instances recommendation details. +type Ec2ReservedInstances struct { + _ struct{} `type:"structure"` + + // The EC2 reserved instances configuration used for recommendations. + Configuration *Ec2ReservedInstancesConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the purchase recommendation. + CostCalculation *ReservedInstancesCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2ReservedInstances) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2ReservedInstances) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *Ec2ReservedInstances) SetConfiguration(v *Ec2ReservedInstancesConfiguration) *Ec2ReservedInstances { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *Ec2ReservedInstances) SetCostCalculation(v *ReservedInstancesCostCalculation) *Ec2ReservedInstances { + s.CostCalculation = v + return s +} + +// The EC2 reserved instances configuration used for recommendations. +type Ec2ReservedInstancesConfiguration struct { + _ struct{} `type:"structure"` + + // The account scope that you want your recommendations for. + AccountScope *string `locationName:"accountScope" type:"string"` + + // Determines whether the recommendation is for a current generation instance. + CurrentGeneration *string `locationName:"currentGeneration" type:"string"` + + // The instance family of the recommended reservation. + InstanceFamily *string `locationName:"instanceFamily" type:"string"` + + // The type of instance that Amazon Web Services recommends. + InstanceType *string `locationName:"instanceType" type:"string"` + + // How much purchasing reserved instances costs you on a monthly basis. + MonthlyRecurringCost *string `locationName:"monthlyRecurringCost" type:"string"` + + // The number of normalized units that Amazon Web Services recommends that you + // purchase. + NormalizedUnitsToPurchase *string `locationName:"normalizedUnitsToPurchase" type:"string"` + + // The number of instances that Amazon Web Services recommends that you purchase. + NumberOfInstancesToPurchase *string `locationName:"numberOfInstancesToPurchase" type:"string"` + + // Indicates whether the recommendation is for standard or convertible reservations. + OfferingClass *string `locationName:"offeringClass" type:"string"` + + // The payment option for the commitment. + PaymentOption *string `locationName:"paymentOption" type:"string"` + + // The platform of the recommended reservation. The platform is the specific + // combination of operating system, license model, and software on an instance. + Platform *string `locationName:"platform" type:"string"` + + // The Amazon Web Services Region of the commitment. + ReservedInstancesRegion *string `locationName:"reservedInstancesRegion" type:"string"` + + // The service that you want your recommendations for. + Service *string `locationName:"service" type:"string"` + + // Determines whether the recommendation is size flexible. + SizeFlexEligible *bool `locationName:"sizeFlexEligible" type:"boolean"` + + // Determines whether the recommended reservation is dedicated or shared. + Tenancy *string `locationName:"tenancy" type:"string"` + + // The reserved instances recommendation term in years. + Term *string `locationName:"term" type:"string"` + + // How much purchasing this instance costs you upfront. + UpfrontCost *string `locationName:"upfrontCost" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2ReservedInstancesConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Ec2ReservedInstancesConfiguration) GoString() string { + return s.String() +} + +// SetAccountScope sets the AccountScope field's value. +func (s *Ec2ReservedInstancesConfiguration) SetAccountScope(v string) *Ec2ReservedInstancesConfiguration { + s.AccountScope = &v + return s +} + +// SetCurrentGeneration sets the CurrentGeneration field's value. +func (s *Ec2ReservedInstancesConfiguration) SetCurrentGeneration(v string) *Ec2ReservedInstancesConfiguration { + s.CurrentGeneration = &v + return s +} + +// SetInstanceFamily sets the InstanceFamily field's value. +func (s *Ec2ReservedInstancesConfiguration) SetInstanceFamily(v string) *Ec2ReservedInstancesConfiguration { + s.InstanceFamily = &v + return s +} + +// SetInstanceType sets the InstanceType field's value. +func (s *Ec2ReservedInstancesConfiguration) SetInstanceType(v string) *Ec2ReservedInstancesConfiguration { + s.InstanceType = &v + return s +} + +// SetMonthlyRecurringCost sets the MonthlyRecurringCost field's value. +func (s *Ec2ReservedInstancesConfiguration) SetMonthlyRecurringCost(v string) *Ec2ReservedInstancesConfiguration { + s.MonthlyRecurringCost = &v + return s +} + +// SetNormalizedUnitsToPurchase sets the NormalizedUnitsToPurchase field's value. +func (s *Ec2ReservedInstancesConfiguration) SetNormalizedUnitsToPurchase(v string) *Ec2ReservedInstancesConfiguration { + s.NormalizedUnitsToPurchase = &v + return s +} + +// SetNumberOfInstancesToPurchase sets the NumberOfInstancesToPurchase field's value. +func (s *Ec2ReservedInstancesConfiguration) SetNumberOfInstancesToPurchase(v string) *Ec2ReservedInstancesConfiguration { + s.NumberOfInstancesToPurchase = &v + return s +} + +// SetOfferingClass sets the OfferingClass field's value. +func (s *Ec2ReservedInstancesConfiguration) SetOfferingClass(v string) *Ec2ReservedInstancesConfiguration { + s.OfferingClass = &v + return s +} + +// SetPaymentOption sets the PaymentOption field's value. +func (s *Ec2ReservedInstancesConfiguration) SetPaymentOption(v string) *Ec2ReservedInstancesConfiguration { + s.PaymentOption = &v + return s +} + +// SetPlatform sets the Platform field's value. +func (s *Ec2ReservedInstancesConfiguration) SetPlatform(v string) *Ec2ReservedInstancesConfiguration { + s.Platform = &v + return s +} + +// SetReservedInstancesRegion sets the ReservedInstancesRegion field's value. +func (s *Ec2ReservedInstancesConfiguration) SetReservedInstancesRegion(v string) *Ec2ReservedInstancesConfiguration { + s.ReservedInstancesRegion = &v + return s +} + +// SetService sets the Service field's value. +func (s *Ec2ReservedInstancesConfiguration) SetService(v string) *Ec2ReservedInstancesConfiguration { + s.Service = &v + return s +} + +// SetSizeFlexEligible sets the SizeFlexEligible field's value. +func (s *Ec2ReservedInstancesConfiguration) SetSizeFlexEligible(v bool) *Ec2ReservedInstancesConfiguration { + s.SizeFlexEligible = &v + return s +} + +// SetTenancy sets the Tenancy field's value. +func (s *Ec2ReservedInstancesConfiguration) SetTenancy(v string) *Ec2ReservedInstancesConfiguration { + s.Tenancy = &v + return s +} + +// SetTerm sets the Term field's value. +func (s *Ec2ReservedInstancesConfiguration) SetTerm(v string) *Ec2ReservedInstancesConfiguration { + s.Term = &v + return s +} + +// SetUpfrontCost sets the UpfrontCost field's value. +func (s *Ec2ReservedInstancesConfiguration) SetUpfrontCost(v string) *Ec2ReservedInstancesConfiguration { + s.UpfrontCost = &v + return s +} + +// The ECS service recommendation details. +type EcsService struct { + _ struct{} `type:"structure"` + + // The ECS service configuration used for recommendations. + Configuration *EcsServiceConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the recommendation. + CostCalculation *ResourceCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EcsService) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EcsService) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *EcsService) SetConfiguration(v *EcsServiceConfiguration) *EcsService { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *EcsService) SetCostCalculation(v *ResourceCostCalculation) *EcsService { + s.CostCalculation = v + return s +} + +// The ECS service configuration used for recommendations. +type EcsServiceConfiguration struct { + _ struct{} `type:"structure"` + + // Details about the compute configuration. + Compute *ComputeConfiguration `locationName:"compute" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EcsServiceConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EcsServiceConfiguration) GoString() string { + return s.String() +} + +// SetCompute sets the Compute field's value. +func (s *EcsServiceConfiguration) SetCompute(v *ComputeConfiguration) *EcsServiceConfiguration { + s.Compute = v + return s +} + +// The ElastiCache reserved instances recommendation details. +type ElastiCacheReservedInstances struct { + _ struct{} `type:"structure"` + + // The ElastiCache reserved instances configuration used for recommendations. + Configuration *ElastiCacheReservedInstancesConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the purchase recommendation. + CostCalculation *ReservedInstancesCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ElastiCacheReservedInstances) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ElastiCacheReservedInstances) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *ElastiCacheReservedInstances) SetConfiguration(v *ElastiCacheReservedInstancesConfiguration) *ElastiCacheReservedInstances { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *ElastiCacheReservedInstances) SetCostCalculation(v *ReservedInstancesCostCalculation) *ElastiCacheReservedInstances { + s.CostCalculation = v + return s +} + +// The ElastiCache reserved instances configuration used for recommendations. +type ElastiCacheReservedInstancesConfiguration struct { + _ struct{} `type:"structure"` + + // The account scope that you want your recommendations for. + AccountScope *string `locationName:"accountScope" type:"string"` + + // Determines whether the recommendation is for a current generation instance. + CurrentGeneration *string `locationName:"currentGeneration" type:"string"` + + // The instance family of the recommended reservation. + InstanceFamily *string `locationName:"instanceFamily" type:"string"` + + // The type of instance that Amazon Web Services recommends. + InstanceType *string `locationName:"instanceType" type:"string"` + + // How much purchasing reserved instances costs you on a monthly basis. + MonthlyRecurringCost *string `locationName:"monthlyRecurringCost" type:"string"` + + // The number of normalized units that Amazon Web Services recommends that you + // purchase. + NormalizedUnitsToPurchase *string `locationName:"normalizedUnitsToPurchase" type:"string"` + + // The number of instances that Amazon Web Services recommends that you purchase. + NumberOfInstancesToPurchase *string `locationName:"numberOfInstancesToPurchase" type:"string"` + + // The payment option for the commitment. + PaymentOption *string `locationName:"paymentOption" type:"string"` + + // The Amazon Web Services Region of the commitment. + ReservedInstancesRegion *string `locationName:"reservedInstancesRegion" type:"string"` + + // The service that you want your recommendations for. + Service *string `locationName:"service" type:"string"` + + // Determines whether the recommendation is size flexible. + SizeFlexEligible *bool `locationName:"sizeFlexEligible" type:"boolean"` + + // The reserved instances recommendation term in years. + Term *string `locationName:"term" type:"string"` + + // How much purchasing this instance costs you upfront. + UpfrontCost *string `locationName:"upfrontCost" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ElastiCacheReservedInstancesConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ElastiCacheReservedInstancesConfiguration) GoString() string { + return s.String() +} + +// SetAccountScope sets the AccountScope field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetAccountScope(v string) *ElastiCacheReservedInstancesConfiguration { + s.AccountScope = &v + return s +} + +// SetCurrentGeneration sets the CurrentGeneration field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetCurrentGeneration(v string) *ElastiCacheReservedInstancesConfiguration { + s.CurrentGeneration = &v + return s +} + +// SetInstanceFamily sets the InstanceFamily field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetInstanceFamily(v string) *ElastiCacheReservedInstancesConfiguration { + s.InstanceFamily = &v + return s +} + +// SetInstanceType sets the InstanceType field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetInstanceType(v string) *ElastiCacheReservedInstancesConfiguration { + s.InstanceType = &v + return s +} + +// SetMonthlyRecurringCost sets the MonthlyRecurringCost field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetMonthlyRecurringCost(v string) *ElastiCacheReservedInstancesConfiguration { + s.MonthlyRecurringCost = &v + return s +} + +// SetNormalizedUnitsToPurchase sets the NormalizedUnitsToPurchase field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetNormalizedUnitsToPurchase(v string) *ElastiCacheReservedInstancesConfiguration { + s.NormalizedUnitsToPurchase = &v + return s +} + +// SetNumberOfInstancesToPurchase sets the NumberOfInstancesToPurchase field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetNumberOfInstancesToPurchase(v string) *ElastiCacheReservedInstancesConfiguration { + s.NumberOfInstancesToPurchase = &v + return s +} + +// SetPaymentOption sets the PaymentOption field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetPaymentOption(v string) *ElastiCacheReservedInstancesConfiguration { + s.PaymentOption = &v + return s +} + +// SetReservedInstancesRegion sets the ReservedInstancesRegion field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetReservedInstancesRegion(v string) *ElastiCacheReservedInstancesConfiguration { + s.ReservedInstancesRegion = &v + return s +} + +// SetService sets the Service field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetService(v string) *ElastiCacheReservedInstancesConfiguration { + s.Service = &v + return s +} + +// SetSizeFlexEligible sets the SizeFlexEligible field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetSizeFlexEligible(v bool) *ElastiCacheReservedInstancesConfiguration { + s.SizeFlexEligible = &v + return s +} + +// SetTerm sets the Term field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetTerm(v string) *ElastiCacheReservedInstancesConfiguration { + s.Term = &v + return s +} + +// SetUpfrontCost sets the UpfrontCost field's value. +func (s *ElastiCacheReservedInstancesConfiguration) SetUpfrontCost(v string) *ElastiCacheReservedInstancesConfiguration { + s.UpfrontCost = &v + return s +} + +// Estimated discount details of the current and recommended resource configuration +// for a recommendation. +type EstimatedDiscounts struct { + _ struct{} `type:"structure"` + + // Estimated other discounts include all discounts that are not itemized. Itemized + // discounts include reservedInstanceDiscount and savingsPlansDiscount. + OtherDiscount *float64 `locationName:"otherDiscount" type:"double"` + + // Estimated reserved instance discounts. + ReservedInstancesDiscount *float64 `locationName:"reservedInstancesDiscount" type:"double"` + + // Estimated Savings Plans discounts. + SavingsPlansDiscount *float64 `locationName:"savingsPlansDiscount" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EstimatedDiscounts) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EstimatedDiscounts) GoString() string { + return s.String() +} + +// SetOtherDiscount sets the OtherDiscount field's value. +func (s *EstimatedDiscounts) SetOtherDiscount(v float64) *EstimatedDiscounts { + s.OtherDiscount = &v + return s +} + +// SetReservedInstancesDiscount sets the ReservedInstancesDiscount field's value. +func (s *EstimatedDiscounts) SetReservedInstancesDiscount(v float64) *EstimatedDiscounts { + s.ReservedInstancesDiscount = &v + return s +} + +// SetSavingsPlansDiscount sets the SavingsPlansDiscount field's value. +func (s *EstimatedDiscounts) SetSavingsPlansDiscount(v float64) *EstimatedDiscounts { + s.SavingsPlansDiscount = &v + return s +} + +// Describes a filter that returns a more specific list of recommendations. +// Filters recommendations by different dimensions. +type Filter struct { + _ struct{} `type:"structure"` + + // The account that the recommendation is for. + AccountIds []*string `locationName:"accountIds" min:"1" type:"list"` + + // The type of action you can take by adopting the recommendation. + ActionTypes []*string `locationName:"actionTypes" min:"1" type:"list" enum:"ActionType"` + + // The effort required to implement the recommendation. + ImplementationEfforts []*string `locationName:"implementationEfforts" min:"1" type:"list" enum:"ImplementationEffort"` + + // The IDs for the recommendations. + RecommendationIds []*string `locationName:"recommendationIds" min:"1" type:"list"` + + // The Amazon Web Services Region of the resource. + Regions []*string `locationName:"regions" min:"1" type:"list"` + + // The Amazon Resource Name (ARN) of the recommendation. + ResourceArns []*string `locationName:"resourceArns" min:"1" type:"list"` + + // The resource ID of the recommendation. + ResourceIds []*string `locationName:"resourceIds" min:"1" type:"list"` + + // The resource type of the recommendation. + ResourceTypes []*string `locationName:"resourceTypes" min:"1" type:"list" enum:"ResourceType"` + + // Whether or not implementing the recommendation requires a restart. + RestartNeeded *bool `locationName:"restartNeeded" type:"boolean"` + + // Whether or not implementing the recommendation can be rolled back. + RollbackPossible *bool `locationName:"rollbackPossible" type:"boolean"` + + // A list of tags assigned to the recommendation. + Tags []*Tag `locationName:"tags" min:"1" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Filter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Filter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Filter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Filter"} + if s.AccountIds != nil && len(s.AccountIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountIds", 1)) + } + if s.ActionTypes != nil && len(s.ActionTypes) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ActionTypes", 1)) + } + if s.ImplementationEfforts != nil && len(s.ImplementationEfforts) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ImplementationEfforts", 1)) + } + if s.RecommendationIds != nil && len(s.RecommendationIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RecommendationIds", 1)) + } + if s.Regions != nil && len(s.Regions) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Regions", 1)) + } + if s.ResourceArns != nil && len(s.ResourceArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArns", 1)) + } + if s.ResourceIds != nil && len(s.ResourceIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceIds", 1)) + } + if s.ResourceTypes != nil && len(s.ResourceTypes) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceTypes", 1)) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountIds sets the AccountIds field's value. +func (s *Filter) SetAccountIds(v []*string) *Filter { + s.AccountIds = v + return s +} + +// SetActionTypes sets the ActionTypes field's value. +func (s *Filter) SetActionTypes(v []*string) *Filter { + s.ActionTypes = v + return s +} + +// SetImplementationEfforts sets the ImplementationEfforts field's value. +func (s *Filter) SetImplementationEfforts(v []*string) *Filter { + s.ImplementationEfforts = v + return s +} + +// SetRecommendationIds sets the RecommendationIds field's value. +func (s *Filter) SetRecommendationIds(v []*string) *Filter { + s.RecommendationIds = v + return s +} + +// SetRegions sets the Regions field's value. +func (s *Filter) SetRegions(v []*string) *Filter { + s.Regions = v + return s +} + +// SetResourceArns sets the ResourceArns field's value. +func (s *Filter) SetResourceArns(v []*string) *Filter { + s.ResourceArns = v + return s +} + +// SetResourceIds sets the ResourceIds field's value. +func (s *Filter) SetResourceIds(v []*string) *Filter { + s.ResourceIds = v + return s +} + +// SetResourceTypes sets the ResourceTypes field's value. +func (s *Filter) SetResourceTypes(v []*string) *Filter { + s.ResourceTypes = v + return s +} + +// SetRestartNeeded sets the RestartNeeded field's value. +func (s *Filter) SetRestartNeeded(v bool) *Filter { + s.RestartNeeded = &v + return s +} + +// SetRollbackPossible sets the RollbackPossible field's value. +func (s *Filter) SetRollbackPossible(v bool) *Filter { + s.RollbackPossible = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *Filter) SetTags(v []*Tag) *Filter { + s.Tags = v + return s +} + +type GetPreferencesInput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetPreferencesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetPreferencesInput) GoString() string { + return s.String() +} + +type GetPreferencesOutput struct { + _ struct{} `type:"structure"` + + // Retrieves the status of the "member account discount visibility" preference. + MemberAccountDiscountVisibility *string `locationName:"memberAccountDiscountVisibility" type:"string" enum:"MemberAccountDiscountVisibility"` + + // Retrieves the status of the "savings estimation mode" preference. + SavingsEstimationMode *string `locationName:"savingsEstimationMode" type:"string" enum:"SavingsEstimationMode"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetPreferencesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetPreferencesOutput) GoString() string { + return s.String() +} + +// SetMemberAccountDiscountVisibility sets the MemberAccountDiscountVisibility field's value. +func (s *GetPreferencesOutput) SetMemberAccountDiscountVisibility(v string) *GetPreferencesOutput { + s.MemberAccountDiscountVisibility = &v + return s +} + +// SetSavingsEstimationMode sets the SavingsEstimationMode field's value. +func (s *GetPreferencesOutput) SetSavingsEstimationMode(v string) *GetPreferencesOutput { + s.SavingsEstimationMode = &v + return s +} + +type GetRecommendationInput struct { + _ struct{} `type:"structure"` + + // The ID for the recommendation. + // + // RecommendationId is a required field + RecommendationId *string `locationName:"recommendationId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRecommendationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRecommendationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetRecommendationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetRecommendationInput"} + if s.RecommendationId == nil { + invalidParams.Add(request.NewErrParamRequired("RecommendationId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRecommendationId sets the RecommendationId field's value. +func (s *GetRecommendationInput) SetRecommendationId(v string) *GetRecommendationInput { + s.RecommendationId = &v + return s +} + +type GetRecommendationOutput struct { + _ struct{} `type:"structure"` + + // The account that the recommendation is for. + AccountId *string `locationName:"accountId" type:"string"` + + // The type of action you can take by adopting the recommendation. + ActionType *string `locationName:"actionType" type:"string" enum:"ActionType"` + + // The lookback period used to calculate cost impact for a recommendation. + CostCalculationLookbackPeriodInDays *int64 `locationName:"costCalculationLookbackPeriodInDays" type:"integer"` + + // The currency code used for the recommendation. + CurrencyCode *string `locationName:"currencyCode" type:"string"` + + // The details for the resource. + CurrentResourceDetails *ResourceDetails `locationName:"currentResourceDetails" type:"structure"` + + // The type of resource. + CurrentResourceType *string `locationName:"currentResourceType" type:"string" enum:"ResourceType"` + + // The estimated monthly cost of the recommendation. + EstimatedMonthlyCost *float64 `locationName:"estimatedMonthlyCost" type:"double"` + + // The estimated monthly savings amount for the recommendation. + EstimatedMonthlySavings *float64 `locationName:"estimatedMonthlySavings" type:"double"` + + // The estimated savings amount over the lookback period used to calculate cost + // impact for a recommendation. + EstimatedSavingsOverCostCalculationLookbackPeriod *float64 `locationName:"estimatedSavingsOverCostCalculationLookbackPeriod" type:"double"` + + // The estimated savings percentage relative to the total cost over the cost + // calculation lookback period. + EstimatedSavingsPercentage *float64 `locationName:"estimatedSavingsPercentage" type:"double"` + + // The effort required to implement the recommendation. + ImplementationEffort *string `locationName:"implementationEffort" type:"string" enum:"ImplementationEffort"` + + // The time when the recommendation was last generated. + LastRefreshTimestamp *time.Time `locationName:"lastRefreshTimestamp" type:"timestamp"` + + // The ID for the recommendation. + RecommendationId *string `locationName:"recommendationId" type:"string"` + + // The lookback period that's used to generate the recommendation. + RecommendationLookbackPeriodInDays *int64 `locationName:"recommendationLookbackPeriodInDays" type:"integer"` + + // The details about the recommended resource. + RecommendedResourceDetails *ResourceDetails `locationName:"recommendedResourceDetails" type:"structure"` + + // The resource type of the recommendation. + RecommendedResourceType *string `locationName:"recommendedResourceType" type:"string" enum:"ResourceType"` + + // The Amazon Web Services Region of the resource. + Region *string `locationName:"region" type:"string"` + + // The Amazon Resource Name (ARN) of the resource. + ResourceArn *string `locationName:"resourceArn" type:"string"` + + // The unique identifier for the resource. This is the same as the Amazon Resource + // Name (ARN), if available. + ResourceId *string `locationName:"resourceId" type:"string"` + + // Whether or not implementing the recommendation requires a restart. + RestartNeeded *bool `locationName:"restartNeeded" type:"boolean"` + + // Whether or not implementing the recommendation can be rolled back. + RollbackPossible *bool `locationName:"rollbackPossible" type:"boolean"` + + // The source of the recommendation. + Source *string `locationName:"source" type:"string" enum:"Source"` + + // A list of tags associated with the resource for which the recommendation + // exists. + Tags []*Tag `locationName:"tags" min:"1" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRecommendationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetRecommendationOutput) GoString() string { + return s.String() +} + +// SetAccountId sets the AccountId field's value. +func (s *GetRecommendationOutput) SetAccountId(v string) *GetRecommendationOutput { + s.AccountId = &v + return s +} + +// SetActionType sets the ActionType field's value. +func (s *GetRecommendationOutput) SetActionType(v string) *GetRecommendationOutput { + s.ActionType = &v + return s +} + +// SetCostCalculationLookbackPeriodInDays sets the CostCalculationLookbackPeriodInDays field's value. +func (s *GetRecommendationOutput) SetCostCalculationLookbackPeriodInDays(v int64) *GetRecommendationOutput { + s.CostCalculationLookbackPeriodInDays = &v + return s +} + +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *GetRecommendationOutput) SetCurrencyCode(v string) *GetRecommendationOutput { + s.CurrencyCode = &v + return s +} + +// SetCurrentResourceDetails sets the CurrentResourceDetails field's value. +func (s *GetRecommendationOutput) SetCurrentResourceDetails(v *ResourceDetails) *GetRecommendationOutput { + s.CurrentResourceDetails = v + return s +} + +// SetCurrentResourceType sets the CurrentResourceType field's value. +func (s *GetRecommendationOutput) SetCurrentResourceType(v string) *GetRecommendationOutput { + s.CurrentResourceType = &v + return s +} + +// SetEstimatedMonthlyCost sets the EstimatedMonthlyCost field's value. +func (s *GetRecommendationOutput) SetEstimatedMonthlyCost(v float64) *GetRecommendationOutput { + s.EstimatedMonthlyCost = &v + return s +} + +// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. +func (s *GetRecommendationOutput) SetEstimatedMonthlySavings(v float64) *GetRecommendationOutput { + s.EstimatedMonthlySavings = &v + return s +} + +// SetEstimatedSavingsOverCostCalculationLookbackPeriod sets the EstimatedSavingsOverCostCalculationLookbackPeriod field's value. +func (s *GetRecommendationOutput) SetEstimatedSavingsOverCostCalculationLookbackPeriod(v float64) *GetRecommendationOutput { + s.EstimatedSavingsOverCostCalculationLookbackPeriod = &v + return s +} + +// SetEstimatedSavingsPercentage sets the EstimatedSavingsPercentage field's value. +func (s *GetRecommendationOutput) SetEstimatedSavingsPercentage(v float64) *GetRecommendationOutput { + s.EstimatedSavingsPercentage = &v + return s +} + +// SetImplementationEffort sets the ImplementationEffort field's value. +func (s *GetRecommendationOutput) SetImplementationEffort(v string) *GetRecommendationOutput { + s.ImplementationEffort = &v + return s +} + +// SetLastRefreshTimestamp sets the LastRefreshTimestamp field's value. +func (s *GetRecommendationOutput) SetLastRefreshTimestamp(v time.Time) *GetRecommendationOutput { + s.LastRefreshTimestamp = &v + return s +} + +// SetRecommendationId sets the RecommendationId field's value. +func (s *GetRecommendationOutput) SetRecommendationId(v string) *GetRecommendationOutput { + s.RecommendationId = &v + return s +} + +// SetRecommendationLookbackPeriodInDays sets the RecommendationLookbackPeriodInDays field's value. +func (s *GetRecommendationOutput) SetRecommendationLookbackPeriodInDays(v int64) *GetRecommendationOutput { + s.RecommendationLookbackPeriodInDays = &v + return s +} + +// SetRecommendedResourceDetails sets the RecommendedResourceDetails field's value. +func (s *GetRecommendationOutput) SetRecommendedResourceDetails(v *ResourceDetails) *GetRecommendationOutput { + s.RecommendedResourceDetails = v + return s +} + +// SetRecommendedResourceType sets the RecommendedResourceType field's value. +func (s *GetRecommendationOutput) SetRecommendedResourceType(v string) *GetRecommendationOutput { + s.RecommendedResourceType = &v + return s +} + +// SetRegion sets the Region field's value. +func (s *GetRecommendationOutput) SetRegion(v string) *GetRecommendationOutput { + s.Region = &v + return s +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *GetRecommendationOutput) SetResourceArn(v string) *GetRecommendationOutput { + s.ResourceArn = &v + return s +} + +// SetResourceId sets the ResourceId field's value. +func (s *GetRecommendationOutput) SetResourceId(v string) *GetRecommendationOutput { + s.ResourceId = &v + return s +} + +// SetRestartNeeded sets the RestartNeeded field's value. +func (s *GetRecommendationOutput) SetRestartNeeded(v bool) *GetRecommendationOutput { + s.RestartNeeded = &v + return s +} + +// SetRollbackPossible sets the RollbackPossible field's value. +func (s *GetRecommendationOutput) SetRollbackPossible(v bool) *GetRecommendationOutput { + s.RollbackPossible = &v + return s +} + +// SetSource sets the Source field's value. +func (s *GetRecommendationOutput) SetSource(v string) *GetRecommendationOutput { + s.Source = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *GetRecommendationOutput) SetTags(v []*Tag) *GetRecommendationOutput { + s.Tags = v + return s +} + +// The Instance configuration used for recommendations. +type InstanceConfiguration struct { + _ struct{} `type:"structure"` + + // Details about the type. + Type *string `locationName:"type" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InstanceConfiguration) GoString() string { + return s.String() +} + +// SetType sets the Type field's value. +func (s *InstanceConfiguration) SetType(v string) *InstanceConfiguration { + s.Type = &v + return s +} + +// An error on the server occurred during the processing of your request. Try +// again later. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The Lambda function recommendation details. +type LambdaFunction struct { + _ struct{} `type:"structure"` + + // The Lambda function configuration used for recommendations. + Configuration *LambdaFunctionConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the recommendation. + CostCalculation *ResourceCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaFunction) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaFunction) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *LambdaFunction) SetConfiguration(v *LambdaFunctionConfiguration) *LambdaFunction { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *LambdaFunction) SetCostCalculation(v *ResourceCostCalculation) *LambdaFunction { + s.CostCalculation = v + return s +} + +// The Lambda function configuration used for recommendations. +type LambdaFunctionConfiguration struct { + _ struct{} `type:"structure"` + + // Details about the compute configuration. + Compute *ComputeConfiguration `locationName:"compute" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaFunctionConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s LambdaFunctionConfiguration) GoString() string { + return s.String() +} + +// SetCompute sets the Compute field's value. +func (s *LambdaFunctionConfiguration) SetCompute(v *ComputeConfiguration) *LambdaFunctionConfiguration { + s.Compute = v + return s +} + +type ListEnrollmentStatusesInput struct { + _ struct{} `type:"structure"` + + // The enrollment status of a specific account ID in the organization. + AccountId *string `locationName:"accountId" type:"string"` + + // Indicates whether to return the enrollment status for the organization. + IncludeOrganizationInfo *bool `locationName:"includeOrganizationInfo" type:"boolean"` + + // The maximum number of objects that are returned for the request. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // The token to retrieve the next set of results. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEnrollmentStatusesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEnrollmentStatusesInput) GoString() string { + return s.String() +} + +// SetAccountId sets the AccountId field's value. +func (s *ListEnrollmentStatusesInput) SetAccountId(v string) *ListEnrollmentStatusesInput { + s.AccountId = &v + return s +} + +// SetIncludeOrganizationInfo sets the IncludeOrganizationInfo field's value. +func (s *ListEnrollmentStatusesInput) SetIncludeOrganizationInfo(v bool) *ListEnrollmentStatusesInput { + s.IncludeOrganizationInfo = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListEnrollmentStatusesInput) SetMaxResults(v int64) *ListEnrollmentStatusesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEnrollmentStatusesInput) SetNextToken(v string) *ListEnrollmentStatusesInput { + s.NextToken = &v + return s +} + +type ListEnrollmentStatusesOutput struct { + _ struct{} `type:"structure"` + + // The account enrollment statuses. + Items []*AccountEnrollmentStatus `locationName:"items" type:"list"` + + // The token to retrieve the next set of results. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEnrollmentStatusesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEnrollmentStatusesOutput) GoString() string { + return s.String() +} + +// SetItems sets the Items field's value. +func (s *ListEnrollmentStatusesOutput) SetItems(v []*AccountEnrollmentStatus) *ListEnrollmentStatusesOutput { + s.Items = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEnrollmentStatusesOutput) SetNextToken(v string) *ListEnrollmentStatusesOutput { + s.NextToken = &v + return s +} + +type ListRecommendationSummariesInput struct { + _ struct{} `type:"structure"` + + // Describes a filter that returns a more specific list of recommendations. + // Filters recommendations by different dimensions. + Filter *Filter `locationName:"filter" type:"structure"` + + // The grouping of recommendations by a dimension. + // + // GroupBy is a required field + GroupBy *string `locationName:"groupBy" type:"string" required:"true"` + + // The maximum number of recommendations that are returned for the request. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // The token to retrieve the next set of results. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRecommendationSummariesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRecommendationSummariesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListRecommendationSummariesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListRecommendationSummariesInput"} + if s.GroupBy == nil { + invalidParams.Add(request.NewErrParamRequired("GroupBy")) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilter sets the Filter field's value. +func (s *ListRecommendationSummariesInput) SetFilter(v *Filter) *ListRecommendationSummariesInput { + s.Filter = v + return s +} + +// SetGroupBy sets the GroupBy field's value. +func (s *ListRecommendationSummariesInput) SetGroupBy(v string) *ListRecommendationSummariesInput { + s.GroupBy = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListRecommendationSummariesInput) SetMaxResults(v int64) *ListRecommendationSummariesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRecommendationSummariesInput) SetNextToken(v string) *ListRecommendationSummariesInput { + s.NextToken = &v + return s +} + +type ListRecommendationSummariesOutput struct { + _ struct{} `type:"structure"` + + // The currency code used for the recommendation. + CurrencyCode *string `locationName:"currencyCode" type:"string"` + + // The total overall savings for the aggregated view. + EstimatedTotalDedupedSavings *float64 `locationName:"estimatedTotalDedupedSavings" type:"double"` + + // The dimension used to group the recommendations by. + GroupBy *string `locationName:"groupBy" type:"string"` + + // List of all savings recommendations. + Items []*RecommendationSummary `locationName:"items" type:"list"` + + // The token to retrieve the next set of results. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRecommendationSummariesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRecommendationSummariesOutput) GoString() string { + return s.String() +} + +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *ListRecommendationSummariesOutput) SetCurrencyCode(v string) *ListRecommendationSummariesOutput { + s.CurrencyCode = &v + return s +} + +// SetEstimatedTotalDedupedSavings sets the EstimatedTotalDedupedSavings field's value. +func (s *ListRecommendationSummariesOutput) SetEstimatedTotalDedupedSavings(v float64) *ListRecommendationSummariesOutput { + s.EstimatedTotalDedupedSavings = &v + return s +} + +// SetGroupBy sets the GroupBy field's value. +func (s *ListRecommendationSummariesOutput) SetGroupBy(v string) *ListRecommendationSummariesOutput { + s.GroupBy = &v + return s +} + +// SetItems sets the Items field's value. +func (s *ListRecommendationSummariesOutput) SetItems(v []*RecommendationSummary) *ListRecommendationSummariesOutput { + s.Items = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRecommendationSummariesOutput) SetNextToken(v string) *ListRecommendationSummariesOutput { + s.NextToken = &v + return s +} + +type ListRecommendationsInput struct { + _ struct{} `type:"structure"` + + // The constraints that you want all returned recommendations to match. + Filter *Filter `locationName:"filter" type:"structure"` + + // List of all recommendations for a resource, or a single recommendation if + // de-duped by resourceId. + IncludeAllRecommendations *bool `locationName:"includeAllRecommendations" type:"boolean"` + + // The maximum number of recommendations that are returned for the request. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // The token to retrieve the next set of results. + NextToken *string `locationName:"nextToken" type:"string"` + + // The ordering of recommendations by a dimension. + OrderBy *OrderBy `locationName:"orderBy" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRecommendationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRecommendationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListRecommendationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListRecommendationsInput"} + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilter sets the Filter field's value. +func (s *ListRecommendationsInput) SetFilter(v *Filter) *ListRecommendationsInput { + s.Filter = v + return s +} + +// SetIncludeAllRecommendations sets the IncludeAllRecommendations field's value. +func (s *ListRecommendationsInput) SetIncludeAllRecommendations(v bool) *ListRecommendationsInput { + s.IncludeAllRecommendations = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListRecommendationsInput) SetMaxResults(v int64) *ListRecommendationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRecommendationsInput) SetNextToken(v string) *ListRecommendationsInput { + s.NextToken = &v + return s +} + +// SetOrderBy sets the OrderBy field's value. +func (s *ListRecommendationsInput) SetOrderBy(v *OrderBy) *ListRecommendationsInput { + s.OrderBy = v + return s +} + +type ListRecommendationsOutput struct { + _ struct{} `type:"structure"` + + // List of all savings recommendations. + Items []*Recommendation `locationName:"items" type:"list"` + + // The token to retrieve the next set of results. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRecommendationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListRecommendationsOutput) GoString() string { + return s.String() +} + +// SetItems sets the Items field's value. +func (s *ListRecommendationsOutput) SetItems(v []*Recommendation) *ListRecommendationsOutput { + s.Items = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRecommendationsOutput) SetNextToken(v string) *ListRecommendationsOutput { + s.NextToken = &v + return s +} + +// The OpenSearch reserved instances recommendation details. +type OpenSearchReservedInstances struct { + _ struct{} `type:"structure"` + + // The OpenSearch reserved instances configuration used for recommendations. + Configuration *OpenSearchReservedInstancesConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the purchase recommendation. + CostCalculation *ReservedInstancesCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s OpenSearchReservedInstances) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s OpenSearchReservedInstances) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *OpenSearchReservedInstances) SetConfiguration(v *OpenSearchReservedInstancesConfiguration) *OpenSearchReservedInstances { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *OpenSearchReservedInstances) SetCostCalculation(v *ReservedInstancesCostCalculation) *OpenSearchReservedInstances { + s.CostCalculation = v + return s +} + +// The OpenSearch reserved instances configuration used for recommendations. +type OpenSearchReservedInstancesConfiguration struct { + _ struct{} `type:"structure"` + + // The account scope that you want your recommendations for. + AccountScope *string `locationName:"accountScope" type:"string"` + + // Determines whether the recommendation is for a current generation instance. + CurrentGeneration *string `locationName:"currentGeneration" type:"string"` + + // The type of instance that Amazon Web Services recommends. + InstanceType *string `locationName:"instanceType" type:"string"` + + // How much purchasing reserved instances costs you on a monthly basis. + MonthlyRecurringCost *string `locationName:"monthlyRecurringCost" type:"string"` + + // The number of normalized units that Amazon Web Services recommends that you + // purchase. + NormalizedUnitsToPurchase *string `locationName:"normalizedUnitsToPurchase" type:"string"` + + // The number of instances that Amazon Web Services recommends that you purchase. + NumberOfInstancesToPurchase *string `locationName:"numberOfInstancesToPurchase" type:"string"` + + // The payment option for the commitment. + PaymentOption *string `locationName:"paymentOption" type:"string"` + + // The Amazon Web Services Region of the commitment. + ReservedInstancesRegion *string `locationName:"reservedInstancesRegion" type:"string"` + + // The service that you want your recommendations for. + Service *string `locationName:"service" type:"string"` + + // Determines whether the recommendation is size flexible. + SizeFlexEligible *bool `locationName:"sizeFlexEligible" type:"boolean"` + + // The reserved instances recommendation term in years. + Term *string `locationName:"term" type:"string"` + + // How much purchasing this instance costs you upfront. + UpfrontCost *string `locationName:"upfrontCost" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s OpenSearchReservedInstancesConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s OpenSearchReservedInstancesConfiguration) GoString() string { + return s.String() +} + +// SetAccountScope sets the AccountScope field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetAccountScope(v string) *OpenSearchReservedInstancesConfiguration { + s.AccountScope = &v + return s +} + +// SetCurrentGeneration sets the CurrentGeneration field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetCurrentGeneration(v string) *OpenSearchReservedInstancesConfiguration { + s.CurrentGeneration = &v + return s +} + +// SetInstanceType sets the InstanceType field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetInstanceType(v string) *OpenSearchReservedInstancesConfiguration { + s.InstanceType = &v + return s +} + +// SetMonthlyRecurringCost sets the MonthlyRecurringCost field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetMonthlyRecurringCost(v string) *OpenSearchReservedInstancesConfiguration { + s.MonthlyRecurringCost = &v + return s +} + +// SetNormalizedUnitsToPurchase sets the NormalizedUnitsToPurchase field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetNormalizedUnitsToPurchase(v string) *OpenSearchReservedInstancesConfiguration { + s.NormalizedUnitsToPurchase = &v + return s +} + +// SetNumberOfInstancesToPurchase sets the NumberOfInstancesToPurchase field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetNumberOfInstancesToPurchase(v string) *OpenSearchReservedInstancesConfiguration { + s.NumberOfInstancesToPurchase = &v + return s +} + +// SetPaymentOption sets the PaymentOption field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetPaymentOption(v string) *OpenSearchReservedInstancesConfiguration { + s.PaymentOption = &v + return s +} + +// SetReservedInstancesRegion sets the ReservedInstancesRegion field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetReservedInstancesRegion(v string) *OpenSearchReservedInstancesConfiguration { + s.ReservedInstancesRegion = &v + return s +} + +// SetService sets the Service field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetService(v string) *OpenSearchReservedInstancesConfiguration { + s.Service = &v + return s +} + +// SetSizeFlexEligible sets the SizeFlexEligible field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetSizeFlexEligible(v bool) *OpenSearchReservedInstancesConfiguration { + s.SizeFlexEligible = &v + return s +} + +// SetTerm sets the Term field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetTerm(v string) *OpenSearchReservedInstancesConfiguration { + s.Term = &v + return s +} + +// SetUpfrontCost sets the UpfrontCost field's value. +func (s *OpenSearchReservedInstancesConfiguration) SetUpfrontCost(v string) *OpenSearchReservedInstancesConfiguration { + s.UpfrontCost = &v + return s +} + +// Defines how rows will be sorted in the response. +type OrderBy struct { + _ struct{} `type:"structure"` + + // Sorts by dimension values. + Dimension *string `locationName:"dimension" type:"string"` + + // The order that's used to sort the data. + Order *string `locationName:"order" type:"string" enum:"Order"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s OrderBy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s OrderBy) GoString() string { + return s.String() +} + +// SetDimension sets the Dimension field's value. +func (s *OrderBy) SetDimension(v string) *OrderBy { + s.Dimension = &v + return s +} + +// SetOrder sets the Order field's value. +func (s *OrderBy) SetOrder(v string) *OrderBy { + s.Order = &v + return s +} + +// The RDS reserved instances recommendation details. +type RdsReservedInstances struct { + _ struct{} `type:"structure"` + + // The RDS reserved instances configuration used for recommendations. + Configuration *RdsReservedInstancesConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the purchase recommendation. + CostCalculation *ReservedInstancesCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RdsReservedInstances) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RdsReservedInstances) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *RdsReservedInstances) SetConfiguration(v *RdsReservedInstancesConfiguration) *RdsReservedInstances { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *RdsReservedInstances) SetCostCalculation(v *ReservedInstancesCostCalculation) *RdsReservedInstances { + s.CostCalculation = v + return s +} + +// The RDS reserved instances configuration used for recommendations. +type RdsReservedInstancesConfiguration struct { + _ struct{} `type:"structure"` + + // The account scope that you want your recommendations for. + AccountScope *string `locationName:"accountScope" type:"string"` + + // Determines whether the recommendation is for a current generation instance. + CurrentGeneration *string `locationName:"currentGeneration" type:"string"` + + // The database edition that the recommended reservation supports. + DatabaseEdition *string `locationName:"databaseEdition" type:"string"` + + // The database engine that the recommended reservation supports. + DatabaseEngine *string `locationName:"databaseEngine" type:"string"` + + // Determines whether the recommendation is for a reservation in a single Availability + // Zone or a reservation with a backup in a second Availability Zone. + DeploymentOption *string `locationName:"deploymentOption" type:"string"` + + // The instance family of the recommended reservation. + InstanceFamily *string `locationName:"instanceFamily" type:"string"` + + // The type of instance that Amazon Web Services recommends. + InstanceType *string `locationName:"instanceType" type:"string"` + + // The license model that the recommended reservation supports. + LicenseModel *string `locationName:"licenseModel" type:"string"` + + // How much purchasing this instance costs you on a monthly basis. + MonthlyRecurringCost *string `locationName:"monthlyRecurringCost" type:"string"` + + // The number of normalized units that Amazon Web Services recommends that you + // purchase. + NormalizedUnitsToPurchase *string `locationName:"normalizedUnitsToPurchase" type:"string"` + + // The number of instances that Amazon Web Services recommends that you purchase. + NumberOfInstancesToPurchase *string `locationName:"numberOfInstancesToPurchase" type:"string"` + + // The payment option for the commitment. + PaymentOption *string `locationName:"paymentOption" type:"string"` + + // The Amazon Web Services Region of the commitment. + ReservedInstancesRegion *string `locationName:"reservedInstancesRegion" type:"string"` + + // The service that you want your recommendations for. + Service *string `locationName:"service" type:"string"` + + // Determines whether the recommendation is size flexible. + SizeFlexEligible *bool `locationName:"sizeFlexEligible" type:"boolean"` + + // The reserved instances recommendation term in years. + Term *string `locationName:"term" type:"string"` + + // How much purchasing this instance costs you upfront. + UpfrontCost *string `locationName:"upfrontCost" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RdsReservedInstancesConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RdsReservedInstancesConfiguration) GoString() string { + return s.String() +} + +// SetAccountScope sets the AccountScope field's value. +func (s *RdsReservedInstancesConfiguration) SetAccountScope(v string) *RdsReservedInstancesConfiguration { + s.AccountScope = &v + return s +} + +// SetCurrentGeneration sets the CurrentGeneration field's value. +func (s *RdsReservedInstancesConfiguration) SetCurrentGeneration(v string) *RdsReservedInstancesConfiguration { + s.CurrentGeneration = &v + return s +} + +// SetDatabaseEdition sets the DatabaseEdition field's value. +func (s *RdsReservedInstancesConfiguration) SetDatabaseEdition(v string) *RdsReservedInstancesConfiguration { + s.DatabaseEdition = &v + return s +} + +// SetDatabaseEngine sets the DatabaseEngine field's value. +func (s *RdsReservedInstancesConfiguration) SetDatabaseEngine(v string) *RdsReservedInstancesConfiguration { + s.DatabaseEngine = &v + return s +} + +// SetDeploymentOption sets the DeploymentOption field's value. +func (s *RdsReservedInstancesConfiguration) SetDeploymentOption(v string) *RdsReservedInstancesConfiguration { + s.DeploymentOption = &v + return s +} + +// SetInstanceFamily sets the InstanceFamily field's value. +func (s *RdsReservedInstancesConfiguration) SetInstanceFamily(v string) *RdsReservedInstancesConfiguration { + s.InstanceFamily = &v + return s +} + +// SetInstanceType sets the InstanceType field's value. +func (s *RdsReservedInstancesConfiguration) SetInstanceType(v string) *RdsReservedInstancesConfiguration { + s.InstanceType = &v + return s +} + +// SetLicenseModel sets the LicenseModel field's value. +func (s *RdsReservedInstancesConfiguration) SetLicenseModel(v string) *RdsReservedInstancesConfiguration { + s.LicenseModel = &v + return s +} + +// SetMonthlyRecurringCost sets the MonthlyRecurringCost field's value. +func (s *RdsReservedInstancesConfiguration) SetMonthlyRecurringCost(v string) *RdsReservedInstancesConfiguration { + s.MonthlyRecurringCost = &v + return s +} + +// SetNormalizedUnitsToPurchase sets the NormalizedUnitsToPurchase field's value. +func (s *RdsReservedInstancesConfiguration) SetNormalizedUnitsToPurchase(v string) *RdsReservedInstancesConfiguration { + s.NormalizedUnitsToPurchase = &v + return s +} + +// SetNumberOfInstancesToPurchase sets the NumberOfInstancesToPurchase field's value. +func (s *RdsReservedInstancesConfiguration) SetNumberOfInstancesToPurchase(v string) *RdsReservedInstancesConfiguration { + s.NumberOfInstancesToPurchase = &v + return s +} + +// SetPaymentOption sets the PaymentOption field's value. +func (s *RdsReservedInstancesConfiguration) SetPaymentOption(v string) *RdsReservedInstancesConfiguration { + s.PaymentOption = &v + return s +} + +// SetReservedInstancesRegion sets the ReservedInstancesRegion field's value. +func (s *RdsReservedInstancesConfiguration) SetReservedInstancesRegion(v string) *RdsReservedInstancesConfiguration { + s.ReservedInstancesRegion = &v + return s +} + +// SetService sets the Service field's value. +func (s *RdsReservedInstancesConfiguration) SetService(v string) *RdsReservedInstancesConfiguration { + s.Service = &v + return s +} + +// SetSizeFlexEligible sets the SizeFlexEligible field's value. +func (s *RdsReservedInstancesConfiguration) SetSizeFlexEligible(v bool) *RdsReservedInstancesConfiguration { + s.SizeFlexEligible = &v + return s +} + +// SetTerm sets the Term field's value. +func (s *RdsReservedInstancesConfiguration) SetTerm(v string) *RdsReservedInstancesConfiguration { + s.Term = &v + return s +} + +// SetUpfrontCost sets the UpfrontCost field's value. +func (s *RdsReservedInstancesConfiguration) SetUpfrontCost(v string) *RdsReservedInstancesConfiguration { + s.UpfrontCost = &v + return s +} + +// Describes a recommendation. +type Recommendation struct { + _ struct{} `type:"structure"` + + // The account that the recommendation is for. + AccountId *string `locationName:"accountId" type:"string"` + + // The type of tasks that can be carried out by this action. + ActionType *string `locationName:"actionType" type:"string"` + + // The currency code used for the recommendation. + CurrencyCode *string `locationName:"currencyCode" type:"string"` + + // Describes the current resource. + CurrentResourceSummary *string `locationName:"currentResourceSummary" type:"string"` + + // The current resource type. + CurrentResourceType *string `locationName:"currentResourceType" type:"string"` + + // The estimated monthly cost for the recommendation. + EstimatedMonthlyCost *float64 `locationName:"estimatedMonthlyCost" type:"double"` + + // The estimated monthly savings amount for the recommendation. + EstimatedMonthlySavings *float64 `locationName:"estimatedMonthlySavings" type:"double"` + + // The estimated savings percentage relative to the total cost over the cost + // calculation lookback period. + EstimatedSavingsPercentage *float64 `locationName:"estimatedSavingsPercentage" type:"double"` + + // The effort required to implement the recommendation. + ImplementationEffort *string `locationName:"implementationEffort" type:"string"` + + // The time when the recommendation was last generated. + LastRefreshTimestamp *time.Time `locationName:"lastRefreshTimestamp" type:"timestamp"` + + // The ID for the recommendation. + RecommendationId *string `locationName:"recommendationId" type:"string"` + + // The lookback period that's used to generate the recommendation. + RecommendationLookbackPeriodInDays *int64 `locationName:"recommendationLookbackPeriodInDays" type:"integer"` + + // Describes the recommended resource. + RecommendedResourceSummary *string `locationName:"recommendedResourceSummary" type:"string"` + + // The recommended resource type. + RecommendedResourceType *string `locationName:"recommendedResourceType" type:"string"` + + // The Amazon Web Services Region of the resource. + Region *string `locationName:"region" type:"string"` + + // The Amazon Resource Name (ARN) for the recommendation. + ResourceArn *string `locationName:"resourceArn" type:"string"` + + // The resource ID for the recommendation. + ResourceId *string `locationName:"resourceId" type:"string"` + + // Whether or not implementing the recommendation requires a restart. + RestartNeeded *bool `locationName:"restartNeeded" type:"boolean"` + + // Whether or not implementing the recommendation can be rolled back. + RollbackPossible *bool `locationName:"rollbackPossible" type:"boolean"` + + // The source of the recommendation. + Source *string `locationName:"source" type:"string" enum:"Source"` + + // A list of tags assigned to the recommendation. + Tags []*Tag `locationName:"tags" min:"1" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Recommendation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Recommendation) GoString() string { + return s.String() +} + +// SetAccountId sets the AccountId field's value. +func (s *Recommendation) SetAccountId(v string) *Recommendation { + s.AccountId = &v + return s +} + +// SetActionType sets the ActionType field's value. +func (s *Recommendation) SetActionType(v string) *Recommendation { + s.ActionType = &v + return s +} + +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *Recommendation) SetCurrencyCode(v string) *Recommendation { + s.CurrencyCode = &v + return s +} + +// SetCurrentResourceSummary sets the CurrentResourceSummary field's value. +func (s *Recommendation) SetCurrentResourceSummary(v string) *Recommendation { + s.CurrentResourceSummary = &v + return s +} + +// SetCurrentResourceType sets the CurrentResourceType field's value. +func (s *Recommendation) SetCurrentResourceType(v string) *Recommendation { + s.CurrentResourceType = &v + return s +} + +// SetEstimatedMonthlyCost sets the EstimatedMonthlyCost field's value. +func (s *Recommendation) SetEstimatedMonthlyCost(v float64) *Recommendation { + s.EstimatedMonthlyCost = &v + return s +} + +// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. +func (s *Recommendation) SetEstimatedMonthlySavings(v float64) *Recommendation { + s.EstimatedMonthlySavings = &v + return s +} + +// SetEstimatedSavingsPercentage sets the EstimatedSavingsPercentage field's value. +func (s *Recommendation) SetEstimatedSavingsPercentage(v float64) *Recommendation { + s.EstimatedSavingsPercentage = &v + return s +} + +// SetImplementationEffort sets the ImplementationEffort field's value. +func (s *Recommendation) SetImplementationEffort(v string) *Recommendation { + s.ImplementationEffort = &v + return s +} + +// SetLastRefreshTimestamp sets the LastRefreshTimestamp field's value. +func (s *Recommendation) SetLastRefreshTimestamp(v time.Time) *Recommendation { + s.LastRefreshTimestamp = &v + return s +} + +// SetRecommendationId sets the RecommendationId field's value. +func (s *Recommendation) SetRecommendationId(v string) *Recommendation { + s.RecommendationId = &v + return s +} + +// SetRecommendationLookbackPeriodInDays sets the RecommendationLookbackPeriodInDays field's value. +func (s *Recommendation) SetRecommendationLookbackPeriodInDays(v int64) *Recommendation { + s.RecommendationLookbackPeriodInDays = &v + return s +} + +// SetRecommendedResourceSummary sets the RecommendedResourceSummary field's value. +func (s *Recommendation) SetRecommendedResourceSummary(v string) *Recommendation { + s.RecommendedResourceSummary = &v + return s +} + +// SetRecommendedResourceType sets the RecommendedResourceType field's value. +func (s *Recommendation) SetRecommendedResourceType(v string) *Recommendation { + s.RecommendedResourceType = &v + return s +} + +// SetRegion sets the Region field's value. +func (s *Recommendation) SetRegion(v string) *Recommendation { + s.Region = &v + return s +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *Recommendation) SetResourceArn(v string) *Recommendation { + s.ResourceArn = &v + return s +} + +// SetResourceId sets the ResourceId field's value. +func (s *Recommendation) SetResourceId(v string) *Recommendation { + s.ResourceId = &v + return s +} + +// SetRestartNeeded sets the RestartNeeded field's value. +func (s *Recommendation) SetRestartNeeded(v bool) *Recommendation { + s.RestartNeeded = &v + return s +} + +// SetRollbackPossible sets the RollbackPossible field's value. +func (s *Recommendation) SetRollbackPossible(v bool) *Recommendation { + s.RollbackPossible = &v + return s +} + +// SetSource sets the Source field's value. +func (s *Recommendation) SetSource(v string) *Recommendation { + s.Source = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *Recommendation) SetTags(v []*Tag) *Recommendation { + s.Tags = v + return s +} + +// The summary of rightsizing recommendations, including de-duped savings from +// all types of recommendations. +type RecommendationSummary struct { + _ struct{} `type:"structure"` + + // The estimated total savings resulting from modifications, on a monthly basis. + EstimatedMonthlySavings *float64 `locationName:"estimatedMonthlySavings" type:"double"` + + // The grouping of recommendations. + Group *string `locationName:"group" type:"string"` + + // The total number of instance recommendations. + RecommendationCount *int64 `locationName:"recommendationCount" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RecommendationSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RecommendationSummary) GoString() string { + return s.String() +} + +// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. +func (s *RecommendationSummary) SetEstimatedMonthlySavings(v float64) *RecommendationSummary { + s.EstimatedMonthlySavings = &v + return s +} + +// SetGroup sets the Group field's value. +func (s *RecommendationSummary) SetGroup(v string) *RecommendationSummary { + s.Group = &v + return s +} + +// SetRecommendationCount sets the RecommendationCount field's value. +func (s *RecommendationSummary) SetRecommendationCount(v int64) *RecommendationSummary { + s.RecommendationCount = &v + return s +} + +// The Redshift reserved instances recommendation details. +type RedshiftReservedInstances struct { + _ struct{} `type:"structure"` + + // The Redshift reserved instances configuration used for recommendations. + Configuration *RedshiftReservedInstancesConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the purchase recommendation. + CostCalculation *ReservedInstancesCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RedshiftReservedInstances) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RedshiftReservedInstances) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *RedshiftReservedInstances) SetConfiguration(v *RedshiftReservedInstancesConfiguration) *RedshiftReservedInstances { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *RedshiftReservedInstances) SetCostCalculation(v *ReservedInstancesCostCalculation) *RedshiftReservedInstances { + s.CostCalculation = v + return s +} + +// The Redshift reserved instances configuration used for recommendations. +type RedshiftReservedInstancesConfiguration struct { + _ struct{} `type:"structure"` + + // The account scope that you want your recommendations for. + AccountScope *string `locationName:"accountScope" type:"string"` + + // Determines whether the recommendation is for a current generation instance. + CurrentGeneration *string `locationName:"currentGeneration" type:"string"` + + // The instance family of the recommended reservation. + InstanceFamily *string `locationName:"instanceFamily" type:"string"` + + // The type of instance that Amazon Web Services recommends. + InstanceType *string `locationName:"instanceType" type:"string"` + + // How much purchasing reserved instances costs you on a monthly basis. + MonthlyRecurringCost *string `locationName:"monthlyRecurringCost" type:"string"` + + // The number of normalized units that Amazon Web Services recommends that you + // purchase. + NormalizedUnitsToPurchase *string `locationName:"normalizedUnitsToPurchase" type:"string"` + + // The number of instances that Amazon Web Services recommends that you purchase. + NumberOfInstancesToPurchase *string `locationName:"numberOfInstancesToPurchase" type:"string"` + + // The payment option for the commitment. + PaymentOption *string `locationName:"paymentOption" type:"string"` + + // The Amazon Web Services Region of the commitment. + ReservedInstancesRegion *string `locationName:"reservedInstancesRegion" type:"string"` + + // The service that you want your recommendations for. + Service *string `locationName:"service" type:"string"` + + // Determines whether the recommendation is size flexible. + SizeFlexEligible *bool `locationName:"sizeFlexEligible" type:"boolean"` + + // The reserved instances recommendation term in years. + Term *string `locationName:"term" type:"string"` + + // How much purchasing this instance costs you upfront. + UpfrontCost *string `locationName:"upfrontCost" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RedshiftReservedInstancesConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RedshiftReservedInstancesConfiguration) GoString() string { + return s.String() +} + +// SetAccountScope sets the AccountScope field's value. +func (s *RedshiftReservedInstancesConfiguration) SetAccountScope(v string) *RedshiftReservedInstancesConfiguration { + s.AccountScope = &v + return s +} + +// SetCurrentGeneration sets the CurrentGeneration field's value. +func (s *RedshiftReservedInstancesConfiguration) SetCurrentGeneration(v string) *RedshiftReservedInstancesConfiguration { + s.CurrentGeneration = &v + return s +} + +// SetInstanceFamily sets the InstanceFamily field's value. +func (s *RedshiftReservedInstancesConfiguration) SetInstanceFamily(v string) *RedshiftReservedInstancesConfiguration { + s.InstanceFamily = &v + return s +} + +// SetInstanceType sets the InstanceType field's value. +func (s *RedshiftReservedInstancesConfiguration) SetInstanceType(v string) *RedshiftReservedInstancesConfiguration { + s.InstanceType = &v + return s +} + +// SetMonthlyRecurringCost sets the MonthlyRecurringCost field's value. +func (s *RedshiftReservedInstancesConfiguration) SetMonthlyRecurringCost(v string) *RedshiftReservedInstancesConfiguration { + s.MonthlyRecurringCost = &v + return s +} + +// SetNormalizedUnitsToPurchase sets the NormalizedUnitsToPurchase field's value. +func (s *RedshiftReservedInstancesConfiguration) SetNormalizedUnitsToPurchase(v string) *RedshiftReservedInstancesConfiguration { + s.NormalizedUnitsToPurchase = &v + return s +} + +// SetNumberOfInstancesToPurchase sets the NumberOfInstancesToPurchase field's value. +func (s *RedshiftReservedInstancesConfiguration) SetNumberOfInstancesToPurchase(v string) *RedshiftReservedInstancesConfiguration { + s.NumberOfInstancesToPurchase = &v + return s +} + +// SetPaymentOption sets the PaymentOption field's value. +func (s *RedshiftReservedInstancesConfiguration) SetPaymentOption(v string) *RedshiftReservedInstancesConfiguration { + s.PaymentOption = &v + return s +} + +// SetReservedInstancesRegion sets the ReservedInstancesRegion field's value. +func (s *RedshiftReservedInstancesConfiguration) SetReservedInstancesRegion(v string) *RedshiftReservedInstancesConfiguration { + s.ReservedInstancesRegion = &v + return s +} + +// SetService sets the Service field's value. +func (s *RedshiftReservedInstancesConfiguration) SetService(v string) *RedshiftReservedInstancesConfiguration { + s.Service = &v + return s +} + +// SetSizeFlexEligible sets the SizeFlexEligible field's value. +func (s *RedshiftReservedInstancesConfiguration) SetSizeFlexEligible(v bool) *RedshiftReservedInstancesConfiguration { + s.SizeFlexEligible = &v + return s +} + +// SetTerm sets the Term field's value. +func (s *RedshiftReservedInstancesConfiguration) SetTerm(v string) *RedshiftReservedInstancesConfiguration { + s.Term = &v + return s +} + +// SetUpfrontCost sets the UpfrontCost field's value. +func (s *RedshiftReservedInstancesConfiguration) SetUpfrontCost(v string) *RedshiftReservedInstancesConfiguration { + s.UpfrontCost = &v + return s +} + +// Cost impact of the purchase recommendation. +type ReservedInstancesCostCalculation struct { + _ struct{} `type:"structure"` + + // Pricing details of the purchase recommendation. + Pricing *ReservedInstancesPricing `locationName:"pricing" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReservedInstancesCostCalculation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReservedInstancesCostCalculation) GoString() string { + return s.String() +} + +// SetPricing sets the Pricing field's value. +func (s *ReservedInstancesCostCalculation) SetPricing(v *ReservedInstancesPricing) *ReservedInstancesCostCalculation { + s.Pricing = v + return s +} + +// Pricing details for your recommended reserved instance. +type ReservedInstancesPricing struct { + _ struct{} `type:"structure"` + + // The estimated cost of your recurring monthly fees for the recommended reserved + // instance across the month. + EstimatedMonthlyAmortizedReservationCost *float64 `locationName:"estimatedMonthlyAmortizedReservationCost" type:"double"` + + // The remaining On-Demand cost estimated to not be covered by the recommended + // reserved instance, over the length of the lookback period. + EstimatedOnDemandCost *float64 `locationName:"estimatedOnDemandCost" type:"double"` + + // The cost of paying for the recommended reserved instance monthly. + MonthlyReservationEligibleCost *float64 `locationName:"monthlyReservationEligibleCost" type:"double"` + + // The savings percentage relative to the total On-Demand costs that are associated + // with this instance. + SavingsPercentage *float64 `locationName:"savingsPercentage" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReservedInstancesPricing) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReservedInstancesPricing) GoString() string { + return s.String() +} + +// SetEstimatedMonthlyAmortizedReservationCost sets the EstimatedMonthlyAmortizedReservationCost field's value. +func (s *ReservedInstancesPricing) SetEstimatedMonthlyAmortizedReservationCost(v float64) *ReservedInstancesPricing { + s.EstimatedMonthlyAmortizedReservationCost = &v + return s +} + +// SetEstimatedOnDemandCost sets the EstimatedOnDemandCost field's value. +func (s *ReservedInstancesPricing) SetEstimatedOnDemandCost(v float64) *ReservedInstancesPricing { + s.EstimatedOnDemandCost = &v + return s +} + +// SetMonthlyReservationEligibleCost sets the MonthlyReservationEligibleCost field's value. +func (s *ReservedInstancesPricing) SetMonthlyReservationEligibleCost(v float64) *ReservedInstancesPricing { + s.MonthlyReservationEligibleCost = &v + return s +} + +// SetSavingsPercentage sets the SavingsPercentage field's value. +func (s *ReservedInstancesPricing) SetSavingsPercentage(v float64) *ReservedInstancesPricing { + s.SavingsPercentage = &v + return s +} + +// Cost impact of the resource recommendation. +type ResourceCostCalculation struct { + _ struct{} `type:"structure"` + + // Pricing details of the resource recommendation. + Pricing *ResourcePricing `locationName:"pricing" type:"structure"` + + // Usage details of the resource recommendation. + Usages []*Usage `locationName:"usages" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceCostCalculation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceCostCalculation) GoString() string { + return s.String() +} + +// SetPricing sets the Pricing field's value. +func (s *ResourceCostCalculation) SetPricing(v *ResourcePricing) *ResourceCostCalculation { + s.Pricing = v + return s +} + +// SetUsages sets the Usages field's value. +func (s *ResourceCostCalculation) SetUsages(v []*Usage) *ResourceCostCalculation { + s.Usages = v + return s +} + +// Contains detailed information about the specified resource. +type ResourceDetails struct { + _ struct{} `type:"structure"` + + // The Compute Savings Plans recommendation details. + ComputeSavingsPlans *ComputeSavingsPlans `locationName:"computeSavingsPlans" type:"structure"` + + // The Amazon Elastic Block Store volume recommendation details. + EbsVolume *EbsVolume `locationName:"ebsVolume" type:"structure"` + + // The EC2 Auto Scaling group recommendation details. + Ec2AutoScalingGroup *Ec2AutoScalingGroup `locationName:"ec2AutoScalingGroup" type:"structure"` + + // The EC2 instance recommendation details. + Ec2Instance *Ec2Instance `locationName:"ec2Instance" type:"structure"` + + // The EC2 instance Savings Plans recommendation details. + Ec2InstanceSavingsPlans *Ec2InstanceSavingsPlans `locationName:"ec2InstanceSavingsPlans" type:"structure"` + + // The EC2 reserved instances recommendation details. + Ec2ReservedInstances *Ec2ReservedInstances `locationName:"ec2ReservedInstances" type:"structure"` + + // The ECS service recommendation details. + EcsService *EcsService `locationName:"ecsService" type:"structure"` + + // The ElastiCache reserved instances recommendation details. + ElastiCacheReservedInstances *ElastiCacheReservedInstances `locationName:"elastiCacheReservedInstances" type:"structure"` + + // The Lambda function recommendation details. + LambdaFunction *LambdaFunction `locationName:"lambdaFunction" type:"structure"` + + // The OpenSearch reserved instances recommendation details. + OpenSearchReservedInstances *OpenSearchReservedInstances `locationName:"openSearchReservedInstances" type:"structure"` + + // The RDS reserved instances recommendation details. + RdsReservedInstances *RdsReservedInstances `locationName:"rdsReservedInstances" type:"structure"` + + // The Redshift reserved instances recommendation details. + RedshiftReservedInstances *RedshiftReservedInstances `locationName:"redshiftReservedInstances" type:"structure"` + + // The SageMaker Savings Plans recommendation details. + SageMakerSavingsPlans *SageMakerSavingsPlans `locationName:"sageMakerSavingsPlans" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceDetails) GoString() string { + return s.String() +} + +// SetComputeSavingsPlans sets the ComputeSavingsPlans field's value. +func (s *ResourceDetails) SetComputeSavingsPlans(v *ComputeSavingsPlans) *ResourceDetails { + s.ComputeSavingsPlans = v + return s +} + +// SetEbsVolume sets the EbsVolume field's value. +func (s *ResourceDetails) SetEbsVolume(v *EbsVolume) *ResourceDetails { + s.EbsVolume = v + return s +} + +// SetEc2AutoScalingGroup sets the Ec2AutoScalingGroup field's value. +func (s *ResourceDetails) SetEc2AutoScalingGroup(v *Ec2AutoScalingGroup) *ResourceDetails { + s.Ec2AutoScalingGroup = v + return s +} + +// SetEc2Instance sets the Ec2Instance field's value. +func (s *ResourceDetails) SetEc2Instance(v *Ec2Instance) *ResourceDetails { + s.Ec2Instance = v + return s +} + +// SetEc2InstanceSavingsPlans sets the Ec2InstanceSavingsPlans field's value. +func (s *ResourceDetails) SetEc2InstanceSavingsPlans(v *Ec2InstanceSavingsPlans) *ResourceDetails { + s.Ec2InstanceSavingsPlans = v + return s +} + +// SetEc2ReservedInstances sets the Ec2ReservedInstances field's value. +func (s *ResourceDetails) SetEc2ReservedInstances(v *Ec2ReservedInstances) *ResourceDetails { + s.Ec2ReservedInstances = v + return s +} + +// SetEcsService sets the EcsService field's value. +func (s *ResourceDetails) SetEcsService(v *EcsService) *ResourceDetails { + s.EcsService = v + return s +} + +// SetElastiCacheReservedInstances sets the ElastiCacheReservedInstances field's value. +func (s *ResourceDetails) SetElastiCacheReservedInstances(v *ElastiCacheReservedInstances) *ResourceDetails { + s.ElastiCacheReservedInstances = v + return s +} + +// SetLambdaFunction sets the LambdaFunction field's value. +func (s *ResourceDetails) SetLambdaFunction(v *LambdaFunction) *ResourceDetails { + s.LambdaFunction = v + return s +} + +// SetOpenSearchReservedInstances sets the OpenSearchReservedInstances field's value. +func (s *ResourceDetails) SetOpenSearchReservedInstances(v *OpenSearchReservedInstances) *ResourceDetails { + s.OpenSearchReservedInstances = v + return s +} + +// SetRdsReservedInstances sets the RdsReservedInstances field's value. +func (s *ResourceDetails) SetRdsReservedInstances(v *RdsReservedInstances) *ResourceDetails { + s.RdsReservedInstances = v + return s +} + +// SetRedshiftReservedInstances sets the RedshiftReservedInstances field's value. +func (s *ResourceDetails) SetRedshiftReservedInstances(v *RedshiftReservedInstances) *ResourceDetails { + s.RedshiftReservedInstances = v + return s +} + +// SetSageMakerSavingsPlans sets the SageMakerSavingsPlans field's value. +func (s *ResourceDetails) SetSageMakerSavingsPlans(v *SageMakerSavingsPlans) *ResourceDetails { + s.SageMakerSavingsPlans = v + return s +} + +// The specified Amazon Resource Name (ARN) in the request doesn't exist. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The identifier of the resource that was not found. + // + // ResourceId is a required field + ResourceId *string `locationName:"resourceId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Contains pricing information about the specified resource. +type ResourcePricing struct { + _ struct{} `type:"structure"` + + // The savings estimate incorporating all discounts with Amazon Web Services, + // such as Reserved Instances and Savings Plans. + EstimatedCostAfterDiscounts *float64 `locationName:"estimatedCostAfterDiscounts" type:"double"` + + // The savings estimate using Amazon Web Services public pricing without incorporating + // any discounts. + EstimatedCostBeforeDiscounts *float64 `locationName:"estimatedCostBeforeDiscounts" type:"double"` + + // The estimated discounts for a recommendation. + EstimatedDiscounts *EstimatedDiscounts `locationName:"estimatedDiscounts" type:"structure"` + + // The estimated net unused amortized commitment for the recommendation. + EstimatedNetUnusedAmortizedCommitments *float64 `locationName:"estimatedNetUnusedAmortizedCommitments" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourcePricing) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourcePricing) GoString() string { + return s.String() +} + +// SetEstimatedCostAfterDiscounts sets the EstimatedCostAfterDiscounts field's value. +func (s *ResourcePricing) SetEstimatedCostAfterDiscounts(v float64) *ResourcePricing { + s.EstimatedCostAfterDiscounts = &v + return s +} + +// SetEstimatedCostBeforeDiscounts sets the EstimatedCostBeforeDiscounts field's value. +func (s *ResourcePricing) SetEstimatedCostBeforeDiscounts(v float64) *ResourcePricing { + s.EstimatedCostBeforeDiscounts = &v + return s +} + +// SetEstimatedDiscounts sets the EstimatedDiscounts field's value. +func (s *ResourcePricing) SetEstimatedDiscounts(v *EstimatedDiscounts) *ResourcePricing { + s.EstimatedDiscounts = v + return s +} + +// SetEstimatedNetUnusedAmortizedCommitments sets the EstimatedNetUnusedAmortizedCommitments field's value. +func (s *ResourcePricing) SetEstimatedNetUnusedAmortizedCommitments(v float64) *ResourcePricing { + s.EstimatedNetUnusedAmortizedCommitments = &v + return s +} + +// The SageMaker Savings Plans recommendation details. +type SageMakerSavingsPlans struct { + _ struct{} `type:"structure"` + + // The SageMaker Savings Plans configuration used for recommendations. + Configuration *SageMakerSavingsPlansConfiguration `locationName:"configuration" type:"structure"` + + // Cost impact of the Savings Plans purchase recommendation. + CostCalculation *SavingsPlansCostCalculation `locationName:"costCalculation" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SageMakerSavingsPlans) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SageMakerSavingsPlans) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *SageMakerSavingsPlans) SetConfiguration(v *SageMakerSavingsPlansConfiguration) *SageMakerSavingsPlans { + s.Configuration = v + return s +} + +// SetCostCalculation sets the CostCalculation field's value. +func (s *SageMakerSavingsPlans) SetCostCalculation(v *SavingsPlansCostCalculation) *SageMakerSavingsPlans { + s.CostCalculation = v + return s +} + +// The SageMaker Savings Plans configuration used for recommendations. +type SageMakerSavingsPlansConfiguration struct { + _ struct{} `type:"structure"` + + // The account scope that you want your recommendations for. + AccountScope *string `locationName:"accountScope" type:"string"` + + // The hourly commitment for the Savings Plans type. + HourlyCommitment *string `locationName:"hourlyCommitment" type:"string"` + + // The payment option for the commitment. + PaymentOption *string `locationName:"paymentOption" type:"string"` + + // The Savings Plans recommendation term in years. + Term *string `locationName:"term" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SageMakerSavingsPlansConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SageMakerSavingsPlansConfiguration) GoString() string { + return s.String() +} + +// SetAccountScope sets the AccountScope field's value. +func (s *SageMakerSavingsPlansConfiguration) SetAccountScope(v string) *SageMakerSavingsPlansConfiguration { + s.AccountScope = &v + return s +} + +// SetHourlyCommitment sets the HourlyCommitment field's value. +func (s *SageMakerSavingsPlansConfiguration) SetHourlyCommitment(v string) *SageMakerSavingsPlansConfiguration { + s.HourlyCommitment = &v + return s +} + +// SetPaymentOption sets the PaymentOption field's value. +func (s *SageMakerSavingsPlansConfiguration) SetPaymentOption(v string) *SageMakerSavingsPlansConfiguration { + s.PaymentOption = &v + return s +} + +// SetTerm sets the Term field's value. +func (s *SageMakerSavingsPlansConfiguration) SetTerm(v string) *SageMakerSavingsPlansConfiguration { + s.Term = &v + return s +} + +// Cost impact of the purchase recommendation. +type SavingsPlansCostCalculation struct { + _ struct{} `type:"structure"` + + // Pricing details of the purchase recommendation. + Pricing *SavingsPlansPricing `locationName:"pricing" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SavingsPlansCostCalculation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SavingsPlansCostCalculation) GoString() string { + return s.String() +} + +// SetPricing sets the Pricing field's value. +func (s *SavingsPlansCostCalculation) SetPricing(v *SavingsPlansPricing) *SavingsPlansCostCalculation { + s.Pricing = v + return s +} + +// Pricing information about a Savings Plan. +type SavingsPlansPricing struct { + _ struct{} `type:"structure"` + + // Estimated monthly commitment for the Savings Plan. + EstimatedMonthlyCommitment *float64 `locationName:"estimatedMonthlyCommitment" type:"double"` + + // Estimated On-Demand cost you will pay after buying the Savings Plan. + EstimatedOnDemandCost *float64 `locationName:"estimatedOnDemandCost" type:"double"` + + // The cost of paying for the recommended Savings Plan monthly. + MonthlySavingsPlansEligibleCost *float64 `locationName:"monthlySavingsPlansEligibleCost" type:"double"` + + // Estimated savings as a percentage of your overall costs after buying the + // Savings Plan. + SavingsPercentage *float64 `locationName:"savingsPercentage" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SavingsPlansPricing) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SavingsPlansPricing) GoString() string { + return s.String() +} + +// SetEstimatedMonthlyCommitment sets the EstimatedMonthlyCommitment field's value. +func (s *SavingsPlansPricing) SetEstimatedMonthlyCommitment(v float64) *SavingsPlansPricing { + s.EstimatedMonthlyCommitment = &v + return s +} + +// SetEstimatedOnDemandCost sets the EstimatedOnDemandCost field's value. +func (s *SavingsPlansPricing) SetEstimatedOnDemandCost(v float64) *SavingsPlansPricing { + s.EstimatedOnDemandCost = &v + return s +} + +// SetMonthlySavingsPlansEligibleCost sets the MonthlySavingsPlansEligibleCost field's value. +func (s *SavingsPlansPricing) SetMonthlySavingsPlansEligibleCost(v float64) *SavingsPlansPricing { + s.MonthlySavingsPlansEligibleCost = &v + return s +} + +// SetSavingsPercentage sets the SavingsPercentage field's value. +func (s *SavingsPlansPricing) SetSavingsPercentage(v float64) *SavingsPlansPricing { + s.SavingsPercentage = &v + return s +} + +// The storage configuration used for recommendations. +type StorageConfiguration struct { + _ struct{} `type:"structure"` + + // The storage volume. + SizeInGb *float64 `locationName:"sizeInGb" type:"double"` + + // The storage type. + Type *string `locationName:"type" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StorageConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StorageConfiguration) GoString() string { + return s.String() +} + +// SetSizeInGb sets the SizeInGb field's value. +func (s *StorageConfiguration) SetSizeInGb(v float64) *StorageConfiguration { + s.SizeInGb = &v + return s +} + +// SetType sets the Type field's value. +func (s *StorageConfiguration) SetType(v string) *StorageConfiguration { + s.Type = &v + return s +} + +// The tag structure that contains a tag key and value. +type Tag struct { + _ struct{} `type:"structure"` + + // The key that's associated with the tag. + Key *string `locationName:"key" type:"string"` + + // The value that's associated with the tag. + Value *string `locationName:"value" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Tag) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Tag) GoString() string { + return s.String() +} + +// SetKey sets the Key field's value. +func (s *Tag) SetKey(v string) *Tag { + s.Key = &v + return s +} + +// SetValue sets the Value field's value. +func (s *Tag) SetValue(v string) *Tag { + s.Value = &v + return s +} + +// The request was denied due to request throttling. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +type UpdateEnrollmentStatusInput struct { + _ struct{} `type:"structure"` + + // Indicates whether to enroll member accounts of the organization if the account + // is the management account. + IncludeMemberAccounts *bool `locationName:"includeMemberAccounts" type:"boolean"` + + // Sets the account status. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"EnrollmentStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEnrollmentStatusInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEnrollmentStatusInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateEnrollmentStatusInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateEnrollmentStatusInput"} + if s.Status == nil { + invalidParams.Add(request.NewErrParamRequired("Status")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetIncludeMemberAccounts sets the IncludeMemberAccounts field's value. +func (s *UpdateEnrollmentStatusInput) SetIncludeMemberAccounts(v bool) *UpdateEnrollmentStatusInput { + s.IncludeMemberAccounts = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *UpdateEnrollmentStatusInput) SetStatus(v string) *UpdateEnrollmentStatusInput { + s.Status = &v + return s +} + +type UpdateEnrollmentStatusOutput struct { + _ struct{} `type:"structure"` + + // The enrollment status of the account. + Status *string `locationName:"status" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEnrollmentStatusOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEnrollmentStatusOutput) GoString() string { + return s.String() +} + +// SetStatus sets the Status field's value. +func (s *UpdateEnrollmentStatusOutput) SetStatus(v string) *UpdateEnrollmentStatusOutput { + s.Status = &v + return s +} + +type UpdatePreferencesInput struct { + _ struct{} `type:"structure"` + + // Sets the "member account discount visibility" preference. + MemberAccountDiscountVisibility *string `locationName:"memberAccountDiscountVisibility" type:"string" enum:"MemberAccountDiscountVisibility"` + + // Sets the "savings estimation mode" preference. + SavingsEstimationMode *string `locationName:"savingsEstimationMode" type:"string" enum:"SavingsEstimationMode"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdatePreferencesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdatePreferencesInput) GoString() string { + return s.String() +} + +// SetMemberAccountDiscountVisibility sets the MemberAccountDiscountVisibility field's value. +func (s *UpdatePreferencesInput) SetMemberAccountDiscountVisibility(v string) *UpdatePreferencesInput { + s.MemberAccountDiscountVisibility = &v + return s +} + +// SetSavingsEstimationMode sets the SavingsEstimationMode field's value. +func (s *UpdatePreferencesInput) SetSavingsEstimationMode(v string) *UpdatePreferencesInput { + s.SavingsEstimationMode = &v + return s +} + +type UpdatePreferencesOutput struct { + _ struct{} `type:"structure"` + + // Shows the status of the "member account discount visibility" preference. + MemberAccountDiscountVisibility *string `locationName:"memberAccountDiscountVisibility" type:"string" enum:"MemberAccountDiscountVisibility"` + + // Shows the status of the "savings estimation mode" preference. + SavingsEstimationMode *string `locationName:"savingsEstimationMode" type:"string" enum:"SavingsEstimationMode"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdatePreferencesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdatePreferencesOutput) GoString() string { + return s.String() +} + +// SetMemberAccountDiscountVisibility sets the MemberAccountDiscountVisibility field's value. +func (s *UpdatePreferencesOutput) SetMemberAccountDiscountVisibility(v string) *UpdatePreferencesOutput { + s.MemberAccountDiscountVisibility = &v + return s +} + +// SetSavingsEstimationMode sets the SavingsEstimationMode field's value. +func (s *UpdatePreferencesOutput) SetSavingsEstimationMode(v string) *UpdatePreferencesOutput { + s.SavingsEstimationMode = &v + return s +} + +// Details about the usage. +type Usage struct { + _ struct{} `type:"structure"` + + // The operation value. + Operation *string `locationName:"operation" type:"string"` + + // The product code. + ProductCode *string `locationName:"productCode" type:"string"` + + // The usage unit. + Unit *string `locationName:"unit" type:"string"` + + // The usage amount. + UsageAmount *float64 `locationName:"usageAmount" type:"double"` + + // The usage type. + UsageType *string `locationName:"usageType" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Usage) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Usage) GoString() string { + return s.String() +} + +// SetOperation sets the Operation field's value. +func (s *Usage) SetOperation(v string) *Usage { + s.Operation = &v + return s +} + +// SetProductCode sets the ProductCode field's value. +func (s *Usage) SetProductCode(v string) *Usage { + s.ProductCode = &v + return s +} + +// SetUnit sets the Unit field's value. +func (s *Usage) SetUnit(v string) *Usage { + s.Unit = &v + return s +} + +// SetUsageAmount sets the UsageAmount field's value. +func (s *Usage) SetUsageAmount(v float64) *Usage { + s.UsageAmount = &v + return s +} + +// SetUsageType sets the UsageType field's value. +func (s *Usage) SetUsageType(v string) *Usage { + s.UsageType = &v + return s +} + +// The input fails to satisfy the constraints specified by an Amazon Web Services +// service. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // The list of fields that are invalid. + Fields []*ValidationExceptionDetail `locationName:"fields" type:"list"` + + Message_ *string `locationName:"message" type:"string"` + + // The reason for the validation exception. + Reason *string `locationName:"reason" type:"string" enum:"ValidationExceptionReason"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) GoString() string { + return s.String() +} + +func newErrorValidationException(v protocol.ResponseMetadata) error { + return &ValidationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ValidationException) Code() string { + return "ValidationException" +} + +// Message returns the exception's message. +func (s *ValidationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ValidationException) OrigErr() error { + return nil +} + +func (s *ValidationException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ValidationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ValidationException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The input failed to meet the constraints specified by the Amazon Web Services +// service in a specified field. +type ValidationExceptionDetail struct { + _ struct{} `type:"structure"` + + // The field name where the invalid entry was detected. + // + // FieldName is a required field + FieldName *string `locationName:"fieldName" type:"string" required:"true"` + + // A message with the reason for the validation exception error. + // + // Message is a required field + Message *string `locationName:"message" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationExceptionDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationExceptionDetail) GoString() string { + return s.String() +} + +// SetFieldName sets the FieldName field's value. +func (s *ValidationExceptionDetail) SetFieldName(v string) *ValidationExceptionDetail { + s.FieldName = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *ValidationExceptionDetail) SetMessage(v string) *ValidationExceptionDetail { + s.Message = &v + return s +} + +const ( + // ActionTypeRightsize is a ActionType enum value + ActionTypeRightsize = "Rightsize" + + // ActionTypeStop is a ActionType enum value + ActionTypeStop = "Stop" + + // ActionTypeUpgrade is a ActionType enum value + ActionTypeUpgrade = "Upgrade" + + // ActionTypePurchaseSavingsPlans is a ActionType enum value + ActionTypePurchaseSavingsPlans = "PurchaseSavingsPlans" + + // ActionTypePurchaseReservedInstances is a ActionType enum value + ActionTypePurchaseReservedInstances = "PurchaseReservedInstances" + + // ActionTypeMigrateToGraviton is a ActionType enum value + ActionTypeMigrateToGraviton = "MigrateToGraviton" +) + +// ActionType_Values returns all elements of the ActionType enum +func ActionType_Values() []string { + return []string{ + ActionTypeRightsize, + ActionTypeStop, + ActionTypeUpgrade, + ActionTypePurchaseSavingsPlans, + ActionTypePurchaseReservedInstances, + ActionTypeMigrateToGraviton, + } +} + +const ( + // EnrollmentStatusActive is a EnrollmentStatus enum value + EnrollmentStatusActive = "Active" + + // EnrollmentStatusInactive is a EnrollmentStatus enum value + EnrollmentStatusInactive = "Inactive" +) + +// EnrollmentStatus_Values returns all elements of the EnrollmentStatus enum +func EnrollmentStatus_Values() []string { + return []string{ + EnrollmentStatusActive, + EnrollmentStatusInactive, + } +} + +const ( + // ImplementationEffortVeryLow is a ImplementationEffort enum value + ImplementationEffortVeryLow = "VeryLow" + + // ImplementationEffortLow is a ImplementationEffort enum value + ImplementationEffortLow = "Low" + + // ImplementationEffortMedium is a ImplementationEffort enum value + ImplementationEffortMedium = "Medium" + + // ImplementationEffortHigh is a ImplementationEffort enum value + ImplementationEffortHigh = "High" + + // ImplementationEffortVeryHigh is a ImplementationEffort enum value + ImplementationEffortVeryHigh = "VeryHigh" +) + +// ImplementationEffort_Values returns all elements of the ImplementationEffort enum +func ImplementationEffort_Values() []string { + return []string{ + ImplementationEffortVeryLow, + ImplementationEffortLow, + ImplementationEffortMedium, + ImplementationEffortHigh, + ImplementationEffortVeryHigh, + } +} + +const ( + // MemberAccountDiscountVisibilityAll is a MemberAccountDiscountVisibility enum value + MemberAccountDiscountVisibilityAll = "All" + + // MemberAccountDiscountVisibilityNone is a MemberAccountDiscountVisibility enum value + MemberAccountDiscountVisibilityNone = "None" +) + +// MemberAccountDiscountVisibility_Values returns all elements of the MemberAccountDiscountVisibility enum +func MemberAccountDiscountVisibility_Values() []string { + return []string{ + MemberAccountDiscountVisibilityAll, + MemberAccountDiscountVisibilityNone, + } +} + +const ( + // OrderAsc is a Order enum value + OrderAsc = "Asc" + + // OrderDesc is a Order enum value + OrderDesc = "Desc" +) + +// Order_Values returns all elements of the Order enum +func Order_Values() []string { + return []string{ + OrderAsc, + OrderDesc, + } +} + +const ( + // ResourceTypeEc2instance is a ResourceType enum value + ResourceTypeEc2instance = "Ec2Instance" + + // ResourceTypeLambdaFunction is a ResourceType enum value + ResourceTypeLambdaFunction = "LambdaFunction" + + // ResourceTypeEbsVolume is a ResourceType enum value + ResourceTypeEbsVolume = "EbsVolume" + + // ResourceTypeEcsService is a ResourceType enum value + ResourceTypeEcsService = "EcsService" + + // ResourceTypeEc2autoScalingGroup is a ResourceType enum value + ResourceTypeEc2autoScalingGroup = "Ec2AutoScalingGroup" + + // ResourceTypeEc2instanceSavingsPlans is a ResourceType enum value + ResourceTypeEc2instanceSavingsPlans = "Ec2InstanceSavingsPlans" + + // ResourceTypeComputeSavingsPlans is a ResourceType enum value + ResourceTypeComputeSavingsPlans = "ComputeSavingsPlans" + + // ResourceTypeSageMakerSavingsPlans is a ResourceType enum value + ResourceTypeSageMakerSavingsPlans = "SageMakerSavingsPlans" + + // ResourceTypeEc2reservedInstances is a ResourceType enum value + ResourceTypeEc2reservedInstances = "Ec2ReservedInstances" + + // ResourceTypeRdsReservedInstances is a ResourceType enum value + ResourceTypeRdsReservedInstances = "RdsReservedInstances" + + // ResourceTypeOpenSearchReservedInstances is a ResourceType enum value + ResourceTypeOpenSearchReservedInstances = "OpenSearchReservedInstances" + + // ResourceTypeRedshiftReservedInstances is a ResourceType enum value + ResourceTypeRedshiftReservedInstances = "RedshiftReservedInstances" + + // ResourceTypeElastiCacheReservedInstances is a ResourceType enum value + ResourceTypeElastiCacheReservedInstances = "ElastiCacheReservedInstances" +) + +// ResourceType_Values returns all elements of the ResourceType enum +func ResourceType_Values() []string { + return []string{ + ResourceTypeEc2instance, + ResourceTypeLambdaFunction, + ResourceTypeEbsVolume, + ResourceTypeEcsService, + ResourceTypeEc2autoScalingGroup, + ResourceTypeEc2instanceSavingsPlans, + ResourceTypeComputeSavingsPlans, + ResourceTypeSageMakerSavingsPlans, + ResourceTypeEc2reservedInstances, + ResourceTypeRdsReservedInstances, + ResourceTypeOpenSearchReservedInstances, + ResourceTypeRedshiftReservedInstances, + ResourceTypeElastiCacheReservedInstances, + } +} + +const ( + // SavingsEstimationModeBeforeDiscounts is a SavingsEstimationMode enum value + SavingsEstimationModeBeforeDiscounts = "BeforeDiscounts" + + // SavingsEstimationModeAfterDiscounts is a SavingsEstimationMode enum value + SavingsEstimationModeAfterDiscounts = "AfterDiscounts" +) + +// SavingsEstimationMode_Values returns all elements of the SavingsEstimationMode enum +func SavingsEstimationMode_Values() []string { + return []string{ + SavingsEstimationModeBeforeDiscounts, + SavingsEstimationModeAfterDiscounts, + } +} + +const ( + // SourceComputeOptimizer is a Source enum value + SourceComputeOptimizer = "ComputeOptimizer" + + // SourceCostExplorer is a Source enum value + SourceCostExplorer = "CostExplorer" +) + +// Source_Values returns all elements of the Source enum +func Source_Values() []string { + return []string{ + SourceComputeOptimizer, + SourceCostExplorer, + } +} + +const ( + // ValidationExceptionReasonFieldValidationFailed is a ValidationExceptionReason enum value + ValidationExceptionReasonFieldValidationFailed = "FieldValidationFailed" + + // ValidationExceptionReasonOther is a ValidationExceptionReason enum value + ValidationExceptionReasonOther = "Other" +) + +// ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum +func ValidationExceptionReason_Values() []string { + return []string{ + ValidationExceptionReasonFieldValidationFailed, + ValidationExceptionReasonOther, + } +} diff --git a/service/costoptimizationhub/costoptimizationhubiface/interface.go b/service/costoptimizationhub/costoptimizationhubiface/interface.go new file mode 100644 index 00000000000..26f1b5ae38a --- /dev/null +++ b/service/costoptimizationhub/costoptimizationhubiface/interface.go @@ -0,0 +1,101 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package costoptimizationhubiface provides an interface to enable mocking the Cost Optimization Hub service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package costoptimizationhubiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/costoptimizationhub" +) + +// CostOptimizationHubAPI provides an interface to enable mocking the +// costoptimizationhub.CostOptimizationHub service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Cost Optimization Hub. +// func myFunc(svc costoptimizationhubiface.CostOptimizationHubAPI) bool { +// // Make svc.GetPreferences request +// } +// +// func main() { +// sess := session.New() +// svc := costoptimizationhub.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockCostOptimizationHubClient struct { +// costoptimizationhubiface.CostOptimizationHubAPI +// } +// func (m *mockCostOptimizationHubClient) GetPreferences(input *costoptimizationhub.GetPreferencesInput) (*costoptimizationhub.GetPreferencesOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockCostOptimizationHubClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type CostOptimizationHubAPI interface { + GetPreferences(*costoptimizationhub.GetPreferencesInput) (*costoptimizationhub.GetPreferencesOutput, error) + GetPreferencesWithContext(aws.Context, *costoptimizationhub.GetPreferencesInput, ...request.Option) (*costoptimizationhub.GetPreferencesOutput, error) + GetPreferencesRequest(*costoptimizationhub.GetPreferencesInput) (*request.Request, *costoptimizationhub.GetPreferencesOutput) + + GetRecommendation(*costoptimizationhub.GetRecommendationInput) (*costoptimizationhub.GetRecommendationOutput, error) + GetRecommendationWithContext(aws.Context, *costoptimizationhub.GetRecommendationInput, ...request.Option) (*costoptimizationhub.GetRecommendationOutput, error) + GetRecommendationRequest(*costoptimizationhub.GetRecommendationInput) (*request.Request, *costoptimizationhub.GetRecommendationOutput) + + ListEnrollmentStatuses(*costoptimizationhub.ListEnrollmentStatusesInput) (*costoptimizationhub.ListEnrollmentStatusesOutput, error) + ListEnrollmentStatusesWithContext(aws.Context, *costoptimizationhub.ListEnrollmentStatusesInput, ...request.Option) (*costoptimizationhub.ListEnrollmentStatusesOutput, error) + ListEnrollmentStatusesRequest(*costoptimizationhub.ListEnrollmentStatusesInput) (*request.Request, *costoptimizationhub.ListEnrollmentStatusesOutput) + + ListEnrollmentStatusesPages(*costoptimizationhub.ListEnrollmentStatusesInput, func(*costoptimizationhub.ListEnrollmentStatusesOutput, bool) bool) error + ListEnrollmentStatusesPagesWithContext(aws.Context, *costoptimizationhub.ListEnrollmentStatusesInput, func(*costoptimizationhub.ListEnrollmentStatusesOutput, bool) bool, ...request.Option) error + + ListRecommendationSummaries(*costoptimizationhub.ListRecommendationSummariesInput) (*costoptimizationhub.ListRecommendationSummariesOutput, error) + ListRecommendationSummariesWithContext(aws.Context, *costoptimizationhub.ListRecommendationSummariesInput, ...request.Option) (*costoptimizationhub.ListRecommendationSummariesOutput, error) + ListRecommendationSummariesRequest(*costoptimizationhub.ListRecommendationSummariesInput) (*request.Request, *costoptimizationhub.ListRecommendationSummariesOutput) + + ListRecommendationSummariesPages(*costoptimizationhub.ListRecommendationSummariesInput, func(*costoptimizationhub.ListRecommendationSummariesOutput, bool) bool) error + ListRecommendationSummariesPagesWithContext(aws.Context, *costoptimizationhub.ListRecommendationSummariesInput, func(*costoptimizationhub.ListRecommendationSummariesOutput, bool) bool, ...request.Option) error + + ListRecommendations(*costoptimizationhub.ListRecommendationsInput) (*costoptimizationhub.ListRecommendationsOutput, error) + ListRecommendationsWithContext(aws.Context, *costoptimizationhub.ListRecommendationsInput, ...request.Option) (*costoptimizationhub.ListRecommendationsOutput, error) + ListRecommendationsRequest(*costoptimizationhub.ListRecommendationsInput) (*request.Request, *costoptimizationhub.ListRecommendationsOutput) + + ListRecommendationsPages(*costoptimizationhub.ListRecommendationsInput, func(*costoptimizationhub.ListRecommendationsOutput, bool) bool) error + ListRecommendationsPagesWithContext(aws.Context, *costoptimizationhub.ListRecommendationsInput, func(*costoptimizationhub.ListRecommendationsOutput, bool) bool, ...request.Option) error + + UpdateEnrollmentStatus(*costoptimizationhub.UpdateEnrollmentStatusInput) (*costoptimizationhub.UpdateEnrollmentStatusOutput, error) + UpdateEnrollmentStatusWithContext(aws.Context, *costoptimizationhub.UpdateEnrollmentStatusInput, ...request.Option) (*costoptimizationhub.UpdateEnrollmentStatusOutput, error) + UpdateEnrollmentStatusRequest(*costoptimizationhub.UpdateEnrollmentStatusInput) (*request.Request, *costoptimizationhub.UpdateEnrollmentStatusOutput) + + UpdatePreferences(*costoptimizationhub.UpdatePreferencesInput) (*costoptimizationhub.UpdatePreferencesOutput, error) + UpdatePreferencesWithContext(aws.Context, *costoptimizationhub.UpdatePreferencesInput, ...request.Option) (*costoptimizationhub.UpdatePreferencesOutput, error) + UpdatePreferencesRequest(*costoptimizationhub.UpdatePreferencesInput) (*request.Request, *costoptimizationhub.UpdatePreferencesOutput) +} + +var _ CostOptimizationHubAPI = (*costoptimizationhub.CostOptimizationHub)(nil) diff --git a/service/costoptimizationhub/doc.go b/service/costoptimizationhub/doc.go new file mode 100644 index 00000000000..4e4e2c5dd29 --- /dev/null +++ b/service/costoptimizationhub/doc.go @@ -0,0 +1,35 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package costoptimizationhub provides the client and types for making API +// requests to Cost Optimization Hub. +// +// You can use the Cost Optimization Hub API to programmatically identify, filter, +// aggregate, and quantify savings for your cost optimization recommendations +// across multiple Amazon Web Services Regions and Amazon Web Services accounts +// in your organization. +// +// The Cost Optimization Hub API provides the following endpoint: +// +// - https://cost-optimization-hub.us-east-1.amazonaws.com +// +// See https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26 for more information on this service. +// +// See costoptimizationhub package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/costoptimizationhub/ +// +// # Using the Client +// +// To contact Cost Optimization Hub with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Cost Optimization Hub client CostOptimizationHub for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/costoptimizationhub/#New +package costoptimizationhub diff --git a/service/costoptimizationhub/errors.go b/service/costoptimizationhub/errors.go new file mode 100644 index 00000000000..ec25fd173ee --- /dev/null +++ b/service/costoptimizationhub/errors.go @@ -0,0 +1,50 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package costoptimizationhub + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You are not authorized to use this operation with the given parameters. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // An error on the server occurred during the processing of your request. Try + // again later. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified Amazon Resource Name (ARN) in the request doesn't exist. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input fails to satisfy the constraints specified by an Amazon Web Services + // service. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "InternalServerException": newErrorInternalServerException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ThrottlingException": newErrorThrottlingException, + "ValidationException": newErrorValidationException, +} diff --git a/service/costoptimizationhub/service.go b/service/costoptimizationhub/service.go new file mode 100644 index 00000000000..b1dbc660f8e --- /dev/null +++ b/service/costoptimizationhub/service.go @@ -0,0 +1,108 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package costoptimizationhub + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" +) + +// CostOptimizationHub provides the API operation methods for making requests to +// Cost Optimization Hub. See this package's package overview docs +// for details on the service. +// +// CostOptimizationHub methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type CostOptimizationHub struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "Cost Optimization Hub" // Name of service. + EndpointsID = "cost-optimization-hub" // ID to lookup a service endpoint with. + ServiceID = "Cost Optimization Hub" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the CostOptimizationHub client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a CostOptimizationHub client from just a session. +// svc := costoptimizationhub.New(mySession) +// +// // Create a CostOptimizationHub client with additional configuration +// svc := costoptimizationhub.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *CostOptimizationHub { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "cost-optimization-hub" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *CostOptimizationHub { + svc := &CostOptimizationHub{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2022-07-26", + ResolvedRegion: resolvedRegion, + JSONVersion: "1.0", + TargetPrefix: "CostOptimizationHubService", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(jsonrpc.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a CostOptimizationHub operation and runs any +// custom request initialization. +func (c *CostOptimizationHub) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/detective/api.go b/service/detective/api.go index 92532300146..7efc57eb8d4 100644 --- a/service/detective/api.go +++ b/service/detective/api.go @@ -1144,6 +1144,99 @@ func (c *Detective) EnableOrganizationAdminAccountWithContext(ctx aws.Context, i return out, req.Send() } +const opGetInvestigation = "GetInvestigation" + +// GetInvestigationRequest generates a "aws/request.Request" representing the +// client's request for the GetInvestigation 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 GetInvestigation for more information on using the GetInvestigation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetInvestigationRequest method. +// req, resp := client.GetInvestigationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/GetInvestigation +func (c *Detective) GetInvestigationRequest(input *GetInvestigationInput) (req *request.Request, output *GetInvestigationOutput) { + op := &request.Operation{ + Name: opGetInvestigation, + HTTPMethod: "POST", + HTTPPath: "/investigations/getInvestigation", + } + + if input == nil { + input = &GetInvestigationInput{} + } + + output = &GetInvestigationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetInvestigation API operation for Amazon Detective. +// +// Returns the investigation results of an investigation for a behavior graph. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Detective's +// API operation GetInvestigation for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// The request issuer does not have permission to access this resource or perform +// this operation. +// +// - InternalServerException +// The request was valid but failed because of a problem with the service. +// +// - ValidationException +// The request parameters are invalid. +// +// - ResourceNotFoundException +// The request refers to a nonexistent resource. +// +// - TooManyRequestsException +// The request cannot be completed because too many other requests are occurring +// at the same time. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/GetInvestigation +func (c *Detective) GetInvestigation(input *GetInvestigationInput) (*GetInvestigationOutput, error) { + req, out := c.GetInvestigationRequest(input) + return out, req.Send() +} + +// GetInvestigationWithContext is the same as GetInvestigation with the addition of +// the ability to pass a context and additional request options. +// +// See GetInvestigation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Detective) GetInvestigationWithContext(ctx aws.Context, input *GetInvestigationInput, opts ...request.Option) (*GetInvestigationOutput, error) { + req, out := c.GetInvestigationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetMembers = "GetMembers" // GetMembersRequest generates a "aws/request.Request" representing the @@ -1527,6 +1620,192 @@ func (c *Detective) ListGraphsPagesWithContext(ctx aws.Context, input *ListGraph return p.Err() } +const opListIndicators = "ListIndicators" + +// ListIndicatorsRequest generates a "aws/request.Request" representing the +// client's request for the ListIndicators 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 ListIndicators for more information on using the ListIndicators +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListIndicatorsRequest method. +// req, resp := client.ListIndicatorsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/ListIndicators +func (c *Detective) ListIndicatorsRequest(input *ListIndicatorsInput) (req *request.Request, output *ListIndicatorsOutput) { + op := &request.Operation{ + Name: opListIndicators, + HTTPMethod: "POST", + HTTPPath: "/investigations/listIndicators", + } + + if input == nil { + input = &ListIndicatorsInput{} + } + + output = &ListIndicatorsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListIndicators API operation for Amazon Detective. +// +// # Get the indicators from an investigation +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Detective's +// API operation ListIndicators for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// The request issuer does not have permission to access this resource or perform +// this operation. +// +// - InternalServerException +// The request was valid but failed because of a problem with the service. +// +// - ValidationException +// The request parameters are invalid. +// +// - ResourceNotFoundException +// The request refers to a nonexistent resource. +// +// - TooManyRequestsException +// The request cannot be completed because too many other requests are occurring +// at the same time. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/ListIndicators +func (c *Detective) ListIndicators(input *ListIndicatorsInput) (*ListIndicatorsOutput, error) { + req, out := c.ListIndicatorsRequest(input) + return out, req.Send() +} + +// ListIndicatorsWithContext is the same as ListIndicators with the addition of +// the ability to pass a context and additional request options. +// +// See ListIndicators for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Detective) ListIndicatorsWithContext(ctx aws.Context, input *ListIndicatorsInput, opts ...request.Option) (*ListIndicatorsOutput, error) { + req, out := c.ListIndicatorsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListInvestigations = "ListInvestigations" + +// ListInvestigationsRequest generates a "aws/request.Request" representing the +// client's request for the ListInvestigations 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 ListInvestigations for more information on using the ListInvestigations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListInvestigationsRequest method. +// req, resp := client.ListInvestigationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/ListInvestigations +func (c *Detective) ListInvestigationsRequest(input *ListInvestigationsInput) (req *request.Request, output *ListInvestigationsOutput) { + op := &request.Operation{ + Name: opListInvestigations, + HTTPMethod: "POST", + HTTPPath: "/investigations/listInvestigations", + } + + if input == nil { + input = &ListInvestigationsInput{} + } + + output = &ListInvestigationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListInvestigations API operation for Amazon Detective. +// +// List all Investigations. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Detective's +// API operation ListInvestigations for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// The request issuer does not have permission to access this resource or perform +// this operation. +// +// - InternalServerException +// The request was valid but failed because of a problem with the service. +// +// - ValidationException +// The request parameters are invalid. +// +// - ResourceNotFoundException +// The request refers to a nonexistent resource. +// +// - TooManyRequestsException +// The request cannot be completed because too many other requests are occurring +// at the same time. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/ListInvestigations +func (c *Detective) ListInvestigations(input *ListInvestigationsInput) (*ListInvestigationsOutput, error) { + req, out := c.ListInvestigationsRequest(input) + return out, req.Send() +} + +// ListInvestigationsWithContext is the same as ListInvestigations with the addition of +// the ability to pass a context and additional request options. +// +// See ListInvestigations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Detective) ListInvestigationsWithContext(ctx aws.Context, input *ListInvestigationsInput, opts ...request.Option) (*ListInvestigationsOutput, error) { + req, out := c.ListInvestigationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListInvitations = "ListInvitations" // ListInvitationsRequest generates a "aws/request.Request" representing the @@ -2167,65 +2446,57 @@ func (c *Detective) RejectInvitationWithContext(ctx aws.Context, input *RejectIn return out, req.Send() } -const opStartMonitoringMember = "StartMonitoringMember" +const opStartInvestigation = "StartInvestigation" -// StartMonitoringMemberRequest generates a "aws/request.Request" representing the -// client's request for the StartMonitoringMember operation. The "output" return +// StartInvestigationRequest generates a "aws/request.Request" representing the +// client's request for the StartInvestigation 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 StartMonitoringMember for more information on using the StartMonitoringMember +// See StartInvestigation for more information on using the StartInvestigation // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the StartMonitoringMemberRequest method. -// req, resp := client.StartMonitoringMemberRequest(params) +// // Example sending a request using the StartInvestigationRequest method. +// req, resp := client.StartInvestigationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/StartMonitoringMember -func (c *Detective) StartMonitoringMemberRequest(input *StartMonitoringMemberInput) (req *request.Request, output *StartMonitoringMemberOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/StartInvestigation +func (c *Detective) StartInvestigationRequest(input *StartInvestigationInput) (req *request.Request, output *StartInvestigationOutput) { op := &request.Operation{ - Name: opStartMonitoringMember, + Name: opStartInvestigation, HTTPMethod: "POST", - HTTPPath: "/graph/member/monitoringstate", + HTTPPath: "/investigations/startInvestigation", } if input == nil { - input = &StartMonitoringMemberInput{} + input = &StartInvestigationInput{} } - output = &StartMonitoringMemberOutput{} + output = &StartInvestigationOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// StartMonitoringMember API operation for Amazon Detective. -// -// Sends a request to enable data ingest for a member account that has a status -// of ACCEPTED_BUT_DISABLED. -// -// For valid member accounts, the status is updated as follows. +// StartInvestigation API operation for Amazon Detective. // -// - If Detective enabled the member account, then the new status is ENABLED. -// -// - If Detective cannot enable the member account, the status remains ACCEPTED_BUT_DISABLED. +// initiate an investigation on an entity in a graph // // Returns awserr.Error for service API and SDK errors. Use runtime 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 Detective's -// API operation StartMonitoringMember for usage and error information. +// API operation StartInvestigation for usage and error information. // // Returned Error Types: // @@ -2233,23 +2504,124 @@ func (c *Detective) StartMonitoringMemberRequest(input *StartMonitoringMemberInp // The request issuer does not have permission to access this resource or perform // this operation. // -// - ConflictException -// The request attempted an invalid action. -// // - InternalServerException // The request was valid but failed because of a problem with the service. // +// - ValidationException +// The request parameters are invalid. +// +// - TooManyRequestsException +// The request cannot be completed because too many other requests are occurring +// at the same time. +// // - ResourceNotFoundException // The request refers to a nonexistent resource. // -// - ServiceQuotaExceededException -// This request cannot be completed for one of the following reasons. +// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/StartInvestigation +func (c *Detective) StartInvestigation(input *StartInvestigationInput) (*StartInvestigationOutput, error) { + req, out := c.StartInvestigationRequest(input) + return out, req.Send() +} + +// StartInvestigationWithContext is the same as StartInvestigation with the addition of +// the ability to pass a context and additional request options. // -// - The request would cause the number of member accounts in the behavior -// graph to exceed the maximum allowed. A behavior graph cannot have more -// than 1200 member accounts. +// See StartInvestigation for details on how to use this API operation. // -// - The request would cause the data rate for the behavior graph to exceed +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Detective) StartInvestigationWithContext(ctx aws.Context, input *StartInvestigationInput, opts ...request.Option) (*StartInvestigationOutput, error) { + req, out := c.StartInvestigationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStartMonitoringMember = "StartMonitoringMember" + +// StartMonitoringMemberRequest generates a "aws/request.Request" representing the +// client's request for the StartMonitoringMember 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 StartMonitoringMember for more information on using the StartMonitoringMember +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the StartMonitoringMemberRequest method. +// req, resp := client.StartMonitoringMemberRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/StartMonitoringMember +func (c *Detective) StartMonitoringMemberRequest(input *StartMonitoringMemberInput) (req *request.Request, output *StartMonitoringMemberOutput) { + op := &request.Operation{ + Name: opStartMonitoringMember, + HTTPMethod: "POST", + HTTPPath: "/graph/member/monitoringstate", + } + + if input == nil { + input = &StartMonitoringMemberInput{} + } + + output = &StartMonitoringMemberOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// StartMonitoringMember API operation for Amazon Detective. +// +// Sends a request to enable data ingest for a member account that has a status +// of ACCEPTED_BUT_DISABLED. +// +// For valid member accounts, the status is updated as follows. +// +// - If Detective enabled the member account, then the new status is ENABLED. +// +// - If Detective cannot enable the member account, the status remains ACCEPTED_BUT_DISABLED. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Detective's +// API operation StartMonitoringMember for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// The request issuer does not have permission to access this resource or perform +// this operation. +// +// - ConflictException +// The request attempted an invalid action. +// +// - InternalServerException +// The request was valid but failed because of a problem with the service. +// +// - ResourceNotFoundException +// The request refers to a nonexistent resource. +// +// - ServiceQuotaExceededException +// This request cannot be completed for one of the following reasons. +// +// - The request would cause the number of member accounts in the behavior +// graph to exceed the maximum allowed. A behavior graph cannot have more +// than 1200 member accounts. +// +// - The request would cause the data rate for the behavior graph to exceed // the maximum allowed. // // - Detective is unable to verify the data rate for the member account. @@ -2563,6 +2935,100 @@ func (c *Detective) UpdateDatasourcePackagesWithContext(ctx aws.Context, input * return out, req.Send() } +const opUpdateInvestigationState = "UpdateInvestigationState" + +// UpdateInvestigationStateRequest generates a "aws/request.Request" representing the +// client's request for the UpdateInvestigationState 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 UpdateInvestigationState for more information on using the UpdateInvestigationState +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateInvestigationStateRequest method. +// req, resp := client.UpdateInvestigationStateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/UpdateInvestigationState +func (c *Detective) UpdateInvestigationStateRequest(input *UpdateInvestigationStateInput) (req *request.Request, output *UpdateInvestigationStateOutput) { + op := &request.Operation{ + Name: opUpdateInvestigationState, + HTTPMethod: "POST", + HTTPPath: "/investigations/updateInvestigationState", + } + + if input == nil { + input = &UpdateInvestigationStateInput{} + } + + output = &UpdateInvestigationStateOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateInvestigationState API operation for Amazon Detective. +// +// Update the state of an investigation. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Detective's +// API operation UpdateInvestigationState for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// The request issuer does not have permission to access this resource or perform +// this operation. +// +// - InternalServerException +// The request was valid but failed because of a problem with the service. +// +// - ValidationException +// The request parameters are invalid. +// +// - ResourceNotFoundException +// The request refers to a nonexistent resource. +// +// - TooManyRequestsException +// The request cannot be completed because too many other requests are occurring +// at the same time. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/UpdateInvestigationState +func (c *Detective) UpdateInvestigationState(input *UpdateInvestigationStateInput) (*UpdateInvestigationStateOutput, error) { + req, out := c.UpdateInvestigationStateRequest(input) + return out, req.Send() +} + +// UpdateInvestigationStateWithContext is the same as UpdateInvestigationState with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateInvestigationState for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Detective) UpdateInvestigationStateWithContext(ctx aws.Context, input *UpdateInvestigationStateInput, opts ...request.Option) (*UpdateInvestigationStateOutput, error) { + req, out := c.UpdateInvestigationStateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateOrganizationConfiguration = "UpdateOrganizationConfiguration" // UpdateOrganizationConfigurationRequest generates a "aws/request.Request" representing the @@ -3502,6 +3968,69 @@ func (s *DatasourcePackageUsageInfo) SetVolumeUsageUpdateTime(v time.Time) *Data return s } +// Contains details on the time range used to filter data. +type DateFilter struct { + _ struct{} `type:"structure"` + + // A timestamp representing the end date of the time period until when data + // is filtered , including the end date. + // + // EndInclusive is a required field + EndInclusive *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // A timestamp representing the start of the time period from when data is filtered, + // including the start date. + // + // StartInclusive is a required field + StartInclusive *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DateFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DateFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DateFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DateFilter"} + if s.EndInclusive == nil { + invalidParams.Add(request.NewErrParamRequired("EndInclusive")) + } + if s.StartInclusive == nil { + invalidParams.Add(request.NewErrParamRequired("StartInclusive")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndInclusive sets the EndInclusive field's value. +func (s *DateFilter) SetEndInclusive(v time.Time) *DateFilter { + s.EndInclusive = &v + return s +} + +// SetStartInclusive sets the StartInclusive field's value. +func (s *DateFilter) SetStartInclusive(v time.Time) *DateFilter { + s.StartInclusive = &v + return s +} + type DeleteGraphInput struct { _ struct{} `type:"structure"` @@ -3942,23 +4471,25 @@ func (s EnableOrganizationAdminAccountOutput) GoString() string { return s.String() } -type GetMembersInput struct { +// Details on the criteria used to define the filter for investigation results. +type FilterCriteria struct { _ struct{} `type:"structure"` - // The list of Amazon Web Services account identifiers for the member account - // for which to return member details. You can request details for up to 50 - // member accounts at a time. - // - // You cannot use GetMembers to retrieve information about member accounts that - // were removed from the behavior graph. - // - // AccountIds is a required field - AccountIds []*string `min:"1" type:"list" required:"true"` + // Filter the investigation results based on when the investigation was created. + CreatedTime *DateFilter `type:"structure"` - // The ARN of the behavior graph for which to request the member details. - // - // GraphArn is a required field - GraphArn *string `type:"string" required:"true"` + // Filter the investigation results based on the Amazon Resource Name (ARN) + // of the entity. + EntityArn *StringFilter `type:"structure"` + + // Filter the investigation results based on the severity. + Severity *StringFilter `type:"structure"` + + // Filter the investigation results based on the state. + State *StringFilter `type:"structure"` + + // Filter the investigation results based on the status. + Status *StringFilter `type:"structure"` } // String returns the string representation. @@ -3966,7 +4497,7 @@ type GetMembersInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMembersInput) String() string { +func (s FilterCriteria) String() string { return awsutil.Prettify(s) } @@ -3975,21 +4506,37 @@ func (s GetMembersInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMembersInput) GoString() string { +func (s FilterCriteria) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetMembersInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetMembersInput"} - if s.AccountIds == nil { - invalidParams.Add(request.NewErrParamRequired("AccountIds")) +func (s *FilterCriteria) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "FilterCriteria"} + if s.CreatedTime != nil { + if err := s.CreatedTime.Validate(); err != nil { + invalidParams.AddNested("CreatedTime", err.(request.ErrInvalidParams)) + } } - if s.AccountIds != nil && len(s.AccountIds) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountIds", 1)) + if s.EntityArn != nil { + if err := s.EntityArn.Validate(); err != nil { + invalidParams.AddNested("EntityArn", err.(request.ErrInvalidParams)) + } } - if s.GraphArn == nil { - invalidParams.Add(request.NewErrParamRequired("GraphArn")) + if s.Severity != nil { + if err := s.Severity.Validate(); err != nil { + invalidParams.AddNested("Severity", err.(request.ErrInvalidParams)) + } + } + if s.State != nil { + if err := s.State.Validate(); err != nil { + invalidParams.AddNested("State", err.(request.ErrInvalidParams)) + } + } + if s.Status != nil { + if err := s.Status.Validate(); err != nil { + invalidParams.AddNested("Status", err.(request.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -3998,28 +4545,337 @@ func (s *GetMembersInput) Validate() error { return nil } -// SetAccountIds sets the AccountIds field's value. -func (s *GetMembersInput) SetAccountIds(v []*string) *GetMembersInput { - s.AccountIds = v +// SetCreatedTime sets the CreatedTime field's value. +func (s *FilterCriteria) SetCreatedTime(v *DateFilter) *FilterCriteria { + s.CreatedTime = v return s } -// SetGraphArn sets the GraphArn field's value. -func (s *GetMembersInput) SetGraphArn(v string) *GetMembersInput { - s.GraphArn = &v +// SetEntityArn sets the EntityArn field's value. +func (s *FilterCriteria) SetEntityArn(v *StringFilter) *FilterCriteria { + s.EntityArn = v return s } -type GetMembersOutput struct { - _ struct{} `type:"structure"` +// SetSeverity sets the Severity field's value. +func (s *FilterCriteria) SetSeverity(v *StringFilter) *FilterCriteria { + s.Severity = v + return s +} - // The member account details that Detective is returning in response to the - // request. - MemberDetails []*MemberDetail `type:"list"` +// SetState sets the State field's value. +func (s *FilterCriteria) SetState(v *StringFilter) *FilterCriteria { + s.State = v + return s +} - // The requested member accounts for which Detective was unable to return member - // details. - // +// SetStatus sets the Status field's value. +func (s *FilterCriteria) SetStatus(v *StringFilter) *FilterCriteria { + s.Status = v + return s +} + +// Contains information on suspicious IP addresses identified as indicators +// of compromise. This indicator is derived from Amazon Web Services threat +// intelligence. +type FlaggedIpAddressDetail struct { + _ struct{} `type:"structure"` + + // IP address of the suspicious entity. + IpAddress *string `type:"string"` + + // Details the reason the IP address was flagged as suspicious. + Reason *string `type:"string" enum:"Reason"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FlaggedIpAddressDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FlaggedIpAddressDetail) GoString() string { + return s.String() +} + +// SetIpAddress sets the IpAddress field's value. +func (s *FlaggedIpAddressDetail) SetIpAddress(v string) *FlaggedIpAddressDetail { + s.IpAddress = &v + return s +} + +// SetReason sets the Reason field's value. +func (s *FlaggedIpAddressDetail) SetReason(v string) *FlaggedIpAddressDetail { + s.Reason = &v + return s +} + +type GetInvestigationInput struct { + _ struct{} `type:"structure"` + + // The ARN of the behavior graph. + // + // GraphArn is a required field + GraphArn *string `type:"string" required:"true"` + + // The investigation ID of the investigation report. + // + // InvestigationId is a required field + InvestigationId *string `min:"21" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetInvestigationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetInvestigationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetInvestigationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetInvestigationInput"} + if s.GraphArn == nil { + invalidParams.Add(request.NewErrParamRequired("GraphArn")) + } + if s.InvestigationId == nil { + invalidParams.Add(request.NewErrParamRequired("InvestigationId")) + } + if s.InvestigationId != nil && len(*s.InvestigationId) < 21 { + invalidParams.Add(request.NewErrParamMinLen("InvestigationId", 21)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGraphArn sets the GraphArn field's value. +func (s *GetInvestigationInput) SetGraphArn(v string) *GetInvestigationInput { + s.GraphArn = &v + return s +} + +// SetInvestigationId sets the InvestigationId field's value. +func (s *GetInvestigationInput) SetInvestigationId(v string) *GetInvestigationInput { + s.InvestigationId = &v + return s +} + +type GetInvestigationOutput struct { + _ struct{} `type:"structure"` + + // The UTC time stamp of the creation time of the investigation report. + CreatedTime *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The unique Amazon Resource Name (ARN) of the IAM user and IAM role. + EntityArn *string `type:"string"` + + // Type of entity. For example, Amazon Web Services accounts, such as IAM user + // and role. + EntityType *string `type:"string" enum:"EntityType"` + + // The ARN of the behavior graph. + GraphArn *string `type:"string"` + + // The investigation ID of the investigation report. + InvestigationId *string `min:"21" type:"string"` + + // The data and time when the investigation began. The value is an UTC ISO8601 + // formatted string. For example, 2021-08-18T16:35:56.284Z. + ScopeEndTime *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The start date and time for the scope time set to generate the investigation + // report. + ScopeStartTime *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // Severity based on the likelihood and impact of the indicators of compromise + // discovered in the investigation. + Severity *string `type:"string" enum:"Severity"` + + // The current state of the investigation. An archived investigation indicates + // you have completed reviewing the investigation. + State *string `type:"string" enum:"State"` + + // Status based on the completion status of the investigation. + Status *string `type:"string" enum:"Status"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetInvestigationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetInvestigationOutput) GoString() string { + return s.String() +} + +// SetCreatedTime sets the CreatedTime field's value. +func (s *GetInvestigationOutput) SetCreatedTime(v time.Time) *GetInvestigationOutput { + s.CreatedTime = &v + return s +} + +// SetEntityArn sets the EntityArn field's value. +func (s *GetInvestigationOutput) SetEntityArn(v string) *GetInvestigationOutput { + s.EntityArn = &v + return s +} + +// SetEntityType sets the EntityType field's value. +func (s *GetInvestigationOutput) SetEntityType(v string) *GetInvestigationOutput { + s.EntityType = &v + return s +} + +// SetGraphArn sets the GraphArn field's value. +func (s *GetInvestigationOutput) SetGraphArn(v string) *GetInvestigationOutput { + s.GraphArn = &v + return s +} + +// SetInvestigationId sets the InvestigationId field's value. +func (s *GetInvestigationOutput) SetInvestigationId(v string) *GetInvestigationOutput { + s.InvestigationId = &v + return s +} + +// SetScopeEndTime sets the ScopeEndTime field's value. +func (s *GetInvestigationOutput) SetScopeEndTime(v time.Time) *GetInvestigationOutput { + s.ScopeEndTime = &v + return s +} + +// SetScopeStartTime sets the ScopeStartTime field's value. +func (s *GetInvestigationOutput) SetScopeStartTime(v time.Time) *GetInvestigationOutput { + s.ScopeStartTime = &v + return s +} + +// SetSeverity sets the Severity field's value. +func (s *GetInvestigationOutput) SetSeverity(v string) *GetInvestigationOutput { + s.Severity = &v + return s +} + +// SetState sets the State field's value. +func (s *GetInvestigationOutput) SetState(v string) *GetInvestigationOutput { + s.State = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GetInvestigationOutput) SetStatus(v string) *GetInvestigationOutput { + s.Status = &v + return s +} + +type GetMembersInput struct { + _ struct{} `type:"structure"` + + // The list of Amazon Web Services account identifiers for the member account + // for which to return member details. You can request details for up to 50 + // member accounts at a time. + // + // You cannot use GetMembers to retrieve information about member accounts that + // were removed from the behavior graph. + // + // AccountIds is a required field + AccountIds []*string `min:"1" type:"list" required:"true"` + + // The ARN of the behavior graph for which to request the member details. + // + // GraphArn is a required field + GraphArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMembersInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMembersInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetMembersInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetMembersInput"} + if s.AccountIds == nil { + invalidParams.Add(request.NewErrParamRequired("AccountIds")) + } + if s.AccountIds != nil && len(s.AccountIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountIds", 1)) + } + if s.GraphArn == nil { + invalidParams.Add(request.NewErrParamRequired("GraphArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountIds sets the AccountIds field's value. +func (s *GetMembersInput) SetAccountIds(v []*string) *GetMembersInput { + s.AccountIds = v + return s +} + +// SetGraphArn sets the GraphArn field's value. +func (s *GetMembersInput) SetGraphArn(v string) *GetMembersInput { + s.GraphArn = &v + return s +} + +type GetMembersOutput struct { + _ struct{} `type:"structure"` + + // The member account details that Detective is returning in response to the + // request. + MemberDetails []*MemberDetail `type:"list"` + + // The requested member accounts for which Detective was unable to return member + // details. + // // For each account, provides the reason why the request could not be processed. UnprocessedAccounts []*UnprocessedAccount `type:"list"` } @@ -4029,7 +4885,460 @@ type GetMembersOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMembersOutput) String() string { +func (s GetMembersOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMembersOutput) GoString() string { + return s.String() +} + +// SetMemberDetails sets the MemberDetails field's value. +func (s *GetMembersOutput) SetMemberDetails(v []*MemberDetail) *GetMembersOutput { + s.MemberDetails = v + return s +} + +// SetUnprocessedAccounts sets the UnprocessedAccounts field's value. +func (s *GetMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccount) *GetMembersOutput { + s.UnprocessedAccounts = v + return s +} + +// A behavior graph in Detective. +type Graph struct { + _ struct{} `type:"structure"` + + // The ARN of the behavior graph. + Arn *string `type:"string"` + + // The date and time that the behavior graph was created. The value is an ISO8601 + // formatted string. For example, 2021-08-18T16:35:56.284Z. + CreatedTime *time.Time `type:"timestamp" timestampFormat:"iso8601"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Graph) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Graph) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *Graph) SetArn(v string) *Graph { + s.Arn = &v + return s +} + +// SetCreatedTime sets the CreatedTime field's value. +func (s *Graph) SetCreatedTime(v time.Time) *Graph { + s.CreatedTime = &v + return s +} + +// Contains information on unusual and impossible travel in an account. +type ImpossibleTravelDetail struct { + _ struct{} `type:"structure"` + + // IP address where the resource was last used in the impossible travel. + EndingIpAddress *string `type:"string"` + + // Location where the resource was last used in the impossible travel. + EndingLocation *string `type:"string"` + + // Returns the time difference between the first and last timestamp the resource + // was used. + HourlyTimeDelta *int64 `type:"integer"` + + // IP address where the resource was first used in the impossible travel + StartingIpAddress *string `type:"string"` + + // Location where the resource was first used in the impossible travel + StartingLocation *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ImpossibleTravelDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ImpossibleTravelDetail) GoString() string { + return s.String() +} + +// SetEndingIpAddress sets the EndingIpAddress field's value. +func (s *ImpossibleTravelDetail) SetEndingIpAddress(v string) *ImpossibleTravelDetail { + s.EndingIpAddress = &v + return s +} + +// SetEndingLocation sets the EndingLocation field's value. +func (s *ImpossibleTravelDetail) SetEndingLocation(v string) *ImpossibleTravelDetail { + s.EndingLocation = &v + return s +} + +// SetHourlyTimeDelta sets the HourlyTimeDelta field's value. +func (s *ImpossibleTravelDetail) SetHourlyTimeDelta(v int64) *ImpossibleTravelDetail { + s.HourlyTimeDelta = &v + return s +} + +// SetStartingIpAddress sets the StartingIpAddress field's value. +func (s *ImpossibleTravelDetail) SetStartingIpAddress(v string) *ImpossibleTravelDetail { + s.StartingIpAddress = &v + return s +} + +// SetStartingLocation sets the StartingLocation field's value. +func (s *ImpossibleTravelDetail) SetStartingLocation(v string) *ImpossibleTravelDetail { + s.StartingLocation = &v + return s +} + +// Investigations triages indicators of compromises such as a finding and surfaces +// only the most critical and suspicious issues, so you can focus on high-level +// investigations. +type Indicator struct { + _ struct{} `type:"structure"` + + // Details about the indicator of compromise. + IndicatorDetail *IndicatorDetail `type:"structure"` + + // The type of indicator. + IndicatorType *string `type:"string" enum:"IndicatorType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Indicator) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Indicator) GoString() string { + return s.String() +} + +// SetIndicatorDetail sets the IndicatorDetail field's value. +func (s *Indicator) SetIndicatorDetail(v *IndicatorDetail) *Indicator { + s.IndicatorDetail = v + return s +} + +// SetIndicatorType sets the IndicatorType field's value. +func (s *Indicator) SetIndicatorType(v string) *Indicator { + s.IndicatorType = &v + return s +} + +// Details about the indicators of compromise which are used to determine if +// a resource is involved in a security incident. +type IndicatorDetail struct { + _ struct{} `type:"structure"` + + // Suspicious IP addresses that are flagged, which indicates critical or severe + // threats based on threat intelligence by Detective. This indicator is derived + // from AWS threat intelligence. + FlaggedIpAddressDetail *FlaggedIpAddressDetail `type:"structure"` + + // Identifies unusual and impossible user activity for an account. + ImpossibleTravelDetail *ImpossibleTravelDetail `type:"structure"` + + // Contains details about the new Autonomous System Organization (ASO). + NewAsoDetail *NewAsoDetail `type:"structure"` + + // Contains details about the new geographic location. + NewGeolocationDetail *NewGeolocationDetail `type:"structure"` + + // Contains details about the new user agent. + NewUserAgentDetail *NewUserAgentDetail `type:"structure"` + + // Contains details about related findings. + RelatedFindingDetail *RelatedFindingDetail `type:"structure"` + + // Contains details about related finding groups. + RelatedFindingGroupDetail *RelatedFindingGroupDetail `type:"structure"` + + // Details about the indicator of compromise. + TTPsObservedDetail *TTPsObservedDetail `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IndicatorDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IndicatorDetail) GoString() string { + return s.String() +} + +// SetFlaggedIpAddressDetail sets the FlaggedIpAddressDetail field's value. +func (s *IndicatorDetail) SetFlaggedIpAddressDetail(v *FlaggedIpAddressDetail) *IndicatorDetail { + s.FlaggedIpAddressDetail = v + return s +} + +// SetImpossibleTravelDetail sets the ImpossibleTravelDetail field's value. +func (s *IndicatorDetail) SetImpossibleTravelDetail(v *ImpossibleTravelDetail) *IndicatorDetail { + s.ImpossibleTravelDetail = v + return s +} + +// SetNewAsoDetail sets the NewAsoDetail field's value. +func (s *IndicatorDetail) SetNewAsoDetail(v *NewAsoDetail) *IndicatorDetail { + s.NewAsoDetail = v + return s +} + +// SetNewGeolocationDetail sets the NewGeolocationDetail field's value. +func (s *IndicatorDetail) SetNewGeolocationDetail(v *NewGeolocationDetail) *IndicatorDetail { + s.NewGeolocationDetail = v + return s +} + +// SetNewUserAgentDetail sets the NewUserAgentDetail field's value. +func (s *IndicatorDetail) SetNewUserAgentDetail(v *NewUserAgentDetail) *IndicatorDetail { + s.NewUserAgentDetail = v + return s +} + +// SetRelatedFindingDetail sets the RelatedFindingDetail field's value. +func (s *IndicatorDetail) SetRelatedFindingDetail(v *RelatedFindingDetail) *IndicatorDetail { + s.RelatedFindingDetail = v + return s +} + +// SetRelatedFindingGroupDetail sets the RelatedFindingGroupDetail field's value. +func (s *IndicatorDetail) SetRelatedFindingGroupDetail(v *RelatedFindingGroupDetail) *IndicatorDetail { + s.RelatedFindingGroupDetail = v + return s +} + +// SetTTPsObservedDetail sets the TTPsObservedDetail field's value. +func (s *IndicatorDetail) SetTTPsObservedDetail(v *TTPsObservedDetail) *IndicatorDetail { + s.TTPsObservedDetail = v + return s +} + +// The request was valid but failed because of a problem with the service. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Details about the investigation related to a potential security event identified +// by Detective +type InvestigationDetail struct { + _ struct{} `type:"structure"` + + // The UTC time stamp of the creation time of the investigation report. + CreatedTime *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The unique Amazon Resource Name (ARN) of the IAM user and IAM role. + EntityArn *string `type:"string"` + + // Type of entity. For example, Amazon Web Services accounts, such as IAM user + // and role. + EntityType *string `type:"string" enum:"EntityType"` + + // The investigation ID of the investigation report. + InvestigationId *string `min:"21" type:"string"` + + // Severity based on the likelihood and impact of the indicators of compromise + // discovered in the investigation. + Severity *string `type:"string" enum:"Severity"` + + // The current state of the investigation. An archived investigation indicates + // you have completed reviewing the investigation. + State *string `type:"string" enum:"State"` + + // Status based on the completion status of the investigation. + Status *string `type:"string" enum:"Status"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvestigationDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvestigationDetail) GoString() string { + return s.String() +} + +// SetCreatedTime sets the CreatedTime field's value. +func (s *InvestigationDetail) SetCreatedTime(v time.Time) *InvestigationDetail { + s.CreatedTime = &v + return s +} + +// SetEntityArn sets the EntityArn field's value. +func (s *InvestigationDetail) SetEntityArn(v string) *InvestigationDetail { + s.EntityArn = &v + return s +} + +// SetEntityType sets the EntityType field's value. +func (s *InvestigationDetail) SetEntityType(v string) *InvestigationDetail { + s.EntityType = &v + return s +} + +// SetInvestigationId sets the InvestigationId field's value. +func (s *InvestigationDetail) SetInvestigationId(v string) *InvestigationDetail { + s.InvestigationId = &v + return s +} + +// SetSeverity sets the Severity field's value. +func (s *InvestigationDetail) SetSeverity(v string) *InvestigationDetail { + s.Severity = &v + return s +} + +// SetState sets the State field's value. +func (s *InvestigationDetail) SetState(v string) *InvestigationDetail { + s.State = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *InvestigationDetail) SetStatus(v string) *InvestigationDetail { + s.Status = &v + return s +} + +type ListDatasourcePackagesInput struct { + _ struct{} `type:"structure"` + + // The ARN of the behavior graph. + // + // GraphArn is a required field + GraphArn *string `type:"string" required:"true"` + + // The maximum number of results to return. + MaxResults *int64 `min:"1" type:"integer"` + + // For requests to get the next page of results, the pagination token that was + // returned with the previous set of results. The initial request does not include + // a pagination token. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListDatasourcePackagesInput) String() string { return awsutil.Prettify(s) } @@ -4038,32 +5347,57 @@ func (s GetMembersOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMembersOutput) GoString() string { +func (s ListDatasourcePackagesInput) GoString() string { return s.String() } -// SetMemberDetails sets the MemberDetails field's value. -func (s *GetMembersOutput) SetMemberDetails(v []*MemberDetail) *GetMembersOutput { - s.MemberDetails = v +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDatasourcePackagesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListDatasourcePackagesInput"} + if s.GraphArn == nil { + invalidParams.Add(request.NewErrParamRequired("GraphArn")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGraphArn sets the GraphArn field's value. +func (s *ListDatasourcePackagesInput) SetGraphArn(v string) *ListDatasourcePackagesInput { + s.GraphArn = &v return s } -// SetUnprocessedAccounts sets the UnprocessedAccounts field's value. -func (s *GetMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccount) *GetMembersOutput { - s.UnprocessedAccounts = v +// SetMaxResults sets the MaxResults field's value. +func (s *ListDatasourcePackagesInput) SetMaxResults(v int64) *ListDatasourcePackagesInput { + s.MaxResults = &v return s } -// A behavior graph in Detective. -type Graph struct { +// SetNextToken sets the NextToken field's value. +func (s *ListDatasourcePackagesInput) SetNextToken(v string) *ListDatasourcePackagesInput { + s.NextToken = &v + return s +} + +type ListDatasourcePackagesOutput struct { _ struct{} `type:"structure"` - // The ARN of the behavior graph. - Arn *string `type:"string"` + // Details on the data source packages active in the behavior graph. + DatasourcePackages map[string]*DatasourcePackageIngestDetail `type:"map"` - // The date and time that the behavior graph was created. The value is an ISO8601 - // formatted string. For example, 2021-08-18T16:35:56.284Z. - CreatedTime *time.Time `type:"timestamp" timestampFormat:"iso8601"` + // For requests to get the next page of results, the pagination token that was + // returned with the previous set of results. The initial request does not include + // a pagination token. + NextToken *string `min:"1" type:"string"` } // String returns the string representation. @@ -4071,7 +5405,7 @@ type Graph struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Graph) String() string { +func (s ListDatasourcePackagesOutput) String() string { return awsutil.Prettify(s) } @@ -4080,28 +5414,34 @@ func (s Graph) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Graph) GoString() string { +func (s ListDatasourcePackagesOutput) GoString() string { return s.String() } -// SetArn sets the Arn field's value. -func (s *Graph) SetArn(v string) *Graph { - s.Arn = &v +// SetDatasourcePackages sets the DatasourcePackages field's value. +func (s *ListDatasourcePackagesOutput) SetDatasourcePackages(v map[string]*DatasourcePackageIngestDetail) *ListDatasourcePackagesOutput { + s.DatasourcePackages = v return s } -// SetCreatedTime sets the CreatedTime field's value. -func (s *Graph) SetCreatedTime(v time.Time) *Graph { - s.CreatedTime = &v +// SetNextToken sets the NextToken field's value. +func (s *ListDatasourcePackagesOutput) SetNextToken(v string) *ListDatasourcePackagesOutput { + s.NextToken = &v return s } -// The request was valid but failed because of a problem with the service. -type InternalServerException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +type ListGraphsInput struct { + _ struct{} `type:"structure"` - Message_ *string `locationName:"Message" type:"string"` + // The maximum number of graphs to return at a time. The total must be less + // than the overall limit on the number of results to return, which is currently + // 200. + MaxResults *int64 `min:"1" type:"integer"` + + // For requests to get the next page of results, the pagination token that was + // returned with the previous set of results. The initial request does not include + // a pagination token. + NextToken *string `min:"1" type:"string"` } // String returns the string representation. @@ -4109,7 +5449,7 @@ type InternalServerException struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s InternalServerException) String() string { +func (s ListGraphsInput) String() string { return awsutil.Prettify(s) } @@ -4118,49 +5458,80 @@ func (s InternalServerException) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s InternalServerException) GoString() string { +func (s ListGraphsInput) GoString() string { return s.String() } -func newErrorInternalServerException(v protocol.ResponseMetadata) error { - return &InternalServerException{ - RespMetadata: v, +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListGraphsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListGraphsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams } + return nil } -// Code returns the exception type name. -func (s *InternalServerException) Code() string { - return "InternalServerException" +// SetMaxResults sets the MaxResults field's value. +func (s *ListGraphsInput) SetMaxResults(v int64) *ListGraphsInput { + s.MaxResults = &v + return s } -// Message returns the exception's message. -func (s *InternalServerException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" +// SetNextToken sets the NextToken field's value. +func (s *ListGraphsInput) SetNextToken(v string) *ListGraphsInput { + s.NextToken = &v + return s } -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InternalServerException) OrigErr() error { - return nil +type ListGraphsOutput struct { + _ struct{} `type:"structure"` + + // A list of behavior graphs that the account is an administrator account for. + GraphList []*Graph `type:"list"` + + // If there are more behavior graphs remaining in the results, then this is + // the pagination token to use to request the next page of behavior graphs. + NextToken *string `min:"1" type:"string"` } -func (s *InternalServerException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListGraphsOutput) String() string { + return awsutil.Prettify(s) } -// Status code returns the HTTP status code for the request's response error. -func (s *InternalServerException) StatusCode() int { - return s.RespMetadata.StatusCode +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListGraphsOutput) GoString() string { + return s.String() } -// RequestID returns the service's response RequestID for request. -func (s *InternalServerException) RequestID() string { - return s.RespMetadata.RequestID +// SetGraphList sets the GraphList field's value. +func (s *ListGraphsOutput) SetGraphList(v []*Graph) *ListGraphsOutput { + s.GraphList = v + return s } -type ListDatasourcePackagesInput struct { +// SetNextToken sets the NextToken field's value. +func (s *ListGraphsOutput) SetNextToken(v string) *ListGraphsOutput { + s.NextToken = &v + return s +} + +type ListIndicatorsInput struct { _ struct{} `type:"structure"` // The ARN of the behavior graph. @@ -4168,12 +5539,23 @@ type ListDatasourcePackagesInput struct { // GraphArn is a required field GraphArn *string `type:"string" required:"true"` - // The maximum number of results to return. + // See Detective investigations. (https://docs.aws.amazon.com/detective/latest/userguide/detective-investigations.html). + IndicatorType *string `type:"string" enum:"IndicatorType"` + + // The investigation ID of the investigation report. + // + // InvestigationId is a required field + InvestigationId *string `min:"21" type:"string" required:"true"` + + // List the maximum number of indicators in a page. MaxResults *int64 `min:"1" type:"integer"` - // For requests to get the next page of results, the pagination token that was - // returned with the previous set of results. The initial request does not include - // a pagination token. + // List if there are more results available. The value of nextToken is a unique + // pagination token for each page. Repeat the call using the returned token + // to retrieve the next page. Keep all other arguments unchanged. + // + // Each pagination token expires after 24 hours. Using an expired pagination + // token will return a Validation Exception error. NextToken *string `min:"1" type:"string"` } @@ -4182,7 +5564,7 @@ type ListDatasourcePackagesInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListDatasourcePackagesInput) String() string { +func (s ListIndicatorsInput) String() string { return awsutil.Prettify(s) } @@ -4191,16 +5573,22 @@ func (s ListDatasourcePackagesInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListDatasourcePackagesInput) GoString() string { +func (s ListIndicatorsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ListDatasourcePackagesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListDatasourcePackagesInput"} +func (s *ListIndicatorsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListIndicatorsInput"} if s.GraphArn == nil { invalidParams.Add(request.NewErrParamRequired("GraphArn")) } + if s.InvestigationId == nil { + invalidParams.Add(request.NewErrParamRequired("InvestigationId")) + } + if s.InvestigationId != nil && len(*s.InvestigationId) < 21 { + invalidParams.Add(request.NewErrParamMinLen("InvestigationId", 21)) + } if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } @@ -4215,32 +5603,53 @@ func (s *ListDatasourcePackagesInput) Validate() error { } // SetGraphArn sets the GraphArn field's value. -func (s *ListDatasourcePackagesInput) SetGraphArn(v string) *ListDatasourcePackagesInput { +func (s *ListIndicatorsInput) SetGraphArn(v string) *ListIndicatorsInput { s.GraphArn = &v return s } +// SetIndicatorType sets the IndicatorType field's value. +func (s *ListIndicatorsInput) SetIndicatorType(v string) *ListIndicatorsInput { + s.IndicatorType = &v + return s +} + +// SetInvestigationId sets the InvestigationId field's value. +func (s *ListIndicatorsInput) SetInvestigationId(v string) *ListIndicatorsInput { + s.InvestigationId = &v + return s +} + // SetMaxResults sets the MaxResults field's value. -func (s *ListDatasourcePackagesInput) SetMaxResults(v int64) *ListDatasourcePackagesInput { +func (s *ListIndicatorsInput) SetMaxResults(v int64) *ListIndicatorsInput { s.MaxResults = &v return s } // SetNextToken sets the NextToken field's value. -func (s *ListDatasourcePackagesInput) SetNextToken(v string) *ListDatasourcePackagesInput { +func (s *ListIndicatorsInput) SetNextToken(v string) *ListIndicatorsInput { s.NextToken = &v return s } -type ListDatasourcePackagesOutput struct { +type ListIndicatorsOutput struct { _ struct{} `type:"structure"` - // Details on the data source packages active in the behavior graph. - DatasourcePackages map[string]*DatasourcePackageIngestDetail `type:"map"` + // The ARN of the behavior graph. + GraphArn *string `type:"string"` - // For requests to get the next page of results, the pagination token that was - // returned with the previous set of results. The initial request does not include - // a pagination token. + // Indicators of compromise listed based on severity. + Indicators []*Indicator `type:"list"` + + // The investigation ID of the investigation report. + InvestigationId *string `min:"21" type:"string"` + + // List if there are more results available. The value of nextToken is a unique + // pagination token for each page. Repeat the call using the returned token + // to retrieve the next page. Keep all other arguments unchanged. + // + // Each pagination token expires after 24 hours. Using an expired pagination + // token will return a Validation Exception error. NextToken *string `min:"1" type:"string"` } @@ -4249,7 +5658,7 @@ type ListDatasourcePackagesOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListDatasourcePackagesOutput) String() string { +func (s ListIndicatorsOutput) String() string { return awsutil.Prettify(s) } @@ -4258,34 +5667,58 @@ func (s ListDatasourcePackagesOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListDatasourcePackagesOutput) GoString() string { +func (s ListIndicatorsOutput) GoString() string { return s.String() } -// SetDatasourcePackages sets the DatasourcePackages field's value. -func (s *ListDatasourcePackagesOutput) SetDatasourcePackages(v map[string]*DatasourcePackageIngestDetail) *ListDatasourcePackagesOutput { - s.DatasourcePackages = v +// SetGraphArn sets the GraphArn field's value. +func (s *ListIndicatorsOutput) SetGraphArn(v string) *ListIndicatorsOutput { + s.GraphArn = &v + return s +} + +// SetIndicators sets the Indicators field's value. +func (s *ListIndicatorsOutput) SetIndicators(v []*Indicator) *ListIndicatorsOutput { + s.Indicators = v + return s +} + +// SetInvestigationId sets the InvestigationId field's value. +func (s *ListIndicatorsOutput) SetInvestigationId(v string) *ListIndicatorsOutput { + s.InvestigationId = &v return s } // SetNextToken sets the NextToken field's value. -func (s *ListDatasourcePackagesOutput) SetNextToken(v string) *ListDatasourcePackagesOutput { +func (s *ListIndicatorsOutput) SetNextToken(v string) *ListIndicatorsOutput { s.NextToken = &v return s } -type ListGraphsInput struct { +type ListInvestigationsInput struct { _ struct{} `type:"structure"` - // The maximum number of graphs to return at a time. The total must be less - // than the overall limit on the number of results to return, which is currently - // 200. + // Filter the investigation results based on a criteria. + FilterCriteria *FilterCriteria `type:"structure"` + + // The ARN of the behavior graph. + // + // GraphArn is a required field + GraphArn *string `type:"string" required:"true"` + + // List the maximum number of investigations in a page. MaxResults *int64 `min:"1" type:"integer"` - // For requests to get the next page of results, the pagination token that was - // returned with the previous set of results. The initial request does not include - // a pagination token. + // List if there are more results available. The value of nextToken is a unique + // pagination token for each page. Repeat the call using the returned token + // to retrieve the next page. Keep all other arguments unchanged. + // + // Each pagination token expires after 24 hours. Using an expired pagination + // token will return a Validation Exception error. NextToken *string `min:"1" type:"string"` + + // Sorts the investigation results based on a criteria. + SortCriteria *SortCriteria `type:"structure"` } // String returns the string representation. @@ -4293,7 +5726,7 @@ type ListGraphsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListGraphsInput) String() string { +func (s ListInvestigationsInput) String() string { return awsutil.Prettify(s) } @@ -4302,19 +5735,27 @@ func (s ListGraphsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListGraphsInput) GoString() string { +func (s ListInvestigationsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ListGraphsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListGraphsInput"} +func (s *ListInvestigationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListInvestigationsInput"} + if s.GraphArn == nil { + invalidParams.Add(request.NewErrParamRequired("GraphArn")) + } if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if s.NextToken != nil && len(*s.NextToken) < 1 { invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) } + if s.FilterCriteria != nil { + if err := s.FilterCriteria.Validate(); err != nil { + invalidParams.AddNested("FilterCriteria", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -4322,26 +5763,49 @@ func (s *ListGraphsInput) Validate() error { return nil } +// SetFilterCriteria sets the FilterCriteria field's value. +func (s *ListInvestigationsInput) SetFilterCriteria(v *FilterCriteria) *ListInvestigationsInput { + s.FilterCriteria = v + return s +} + +// SetGraphArn sets the GraphArn field's value. +func (s *ListInvestigationsInput) SetGraphArn(v string) *ListInvestigationsInput { + s.GraphArn = &v + return s +} + // SetMaxResults sets the MaxResults field's value. -func (s *ListGraphsInput) SetMaxResults(v int64) *ListGraphsInput { +func (s *ListInvestigationsInput) SetMaxResults(v int64) *ListInvestigationsInput { s.MaxResults = &v return s } // SetNextToken sets the NextToken field's value. -func (s *ListGraphsInput) SetNextToken(v string) *ListGraphsInput { +func (s *ListInvestigationsInput) SetNextToken(v string) *ListInvestigationsInput { s.NextToken = &v return s } -type ListGraphsOutput struct { +// SetSortCriteria sets the SortCriteria field's value. +func (s *ListInvestigationsInput) SetSortCriteria(v *SortCriteria) *ListInvestigationsInput { + s.SortCriteria = v + return s +} + +type ListInvestigationsOutput struct { _ struct{} `type:"structure"` - // A list of behavior graphs that the account is an administrator account for. - GraphList []*Graph `type:"list"` + // Investigations details lists the summary of uncommon behavior or malicious + // activity which indicates a compromise. + InvestigationDetails []*InvestigationDetail `type:"list"` - // If there are more behavior graphs remaining in the results, then this is - // the pagination token to use to request the next page of behavior graphs. + // List if there are more results available. The value of nextToken is a unique + // pagination token for each page. Repeat the call using the returned token + // to retrieve the next page. Keep all other arguments unchanged. + // + // Each pagination token expires after 24 hours. Using an expired pagination + // token will return an HTTP 400 InvalidToken error. NextToken *string `min:"1" type:"string"` } @@ -4350,7 +5814,7 @@ type ListGraphsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListGraphsOutput) String() string { +func (s ListInvestigationsOutput) String() string { return awsutil.Prettify(s) } @@ -4359,18 +5823,18 @@ func (s ListGraphsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListGraphsOutput) GoString() string { +func (s ListInvestigationsOutput) GoString() string { return s.String() } -// SetGraphList sets the GraphList field's value. -func (s *ListGraphsOutput) SetGraphList(v []*Graph) *ListGraphsOutput { - s.GraphList = v +// SetInvestigationDetails sets the InvestigationDetails field's value. +func (s *ListInvestigationsOutput) SetInvestigationDetails(v []*InvestigationDetail) *ListInvestigationsOutput { + s.InvestigationDetails = v return s } // SetNextToken sets the NextToken field's value. -func (s *ListGraphsOutput) SetNextToken(v string) *ListGraphsOutput { +func (s *ListInvestigationsOutput) SetNextToken(v string) *ListInvestigationsOutput { s.NextToken = &v return s } @@ -5074,6 +6538,141 @@ func (s *MembershipDatasources) SetGraphArn(v string) *MembershipDatasources { return s } +// Details new Autonomous System Organizations (ASOs) used either at the resource +// or account level. +type NewAsoDetail struct { + _ struct{} `type:"structure"` + + // Details about the new Autonomous System Organization (ASO). + Aso *string `type:"string"` + + // Checks if the ASO is for new for the entire account. + IsNewForEntireAccount *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NewAsoDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NewAsoDetail) GoString() string { + return s.String() +} + +// SetAso sets the Aso field's value. +func (s *NewAsoDetail) SetAso(v string) *NewAsoDetail { + s.Aso = &v + return s +} + +// SetIsNewForEntireAccount sets the IsNewForEntireAccount field's value. +func (s *NewAsoDetail) SetIsNewForEntireAccount(v bool) *NewAsoDetail { + s.IsNewForEntireAccount = &v + return s +} + +// Details new geolocations used either at the resource or account level. For +// example, lists an observed geolocation that is an infrequent or unused location +// based on previous user activity. +type NewGeolocationDetail struct { + _ struct{} `type:"structure"` + + // IP address using which the resource was accessed. + IpAddress *string `type:"string"` + + // Checks if the gelocation is new for the entire account. + IsNewForEntireAccount *bool `type:"boolean"` + + // Location where the resource was accessed. + Location *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NewGeolocationDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NewGeolocationDetail) GoString() string { + return s.String() +} + +// SetIpAddress sets the IpAddress field's value. +func (s *NewGeolocationDetail) SetIpAddress(v string) *NewGeolocationDetail { + s.IpAddress = &v + return s +} + +// SetIsNewForEntireAccount sets the IsNewForEntireAccount field's value. +func (s *NewGeolocationDetail) SetIsNewForEntireAccount(v bool) *NewGeolocationDetail { + s.IsNewForEntireAccount = &v + return s +} + +// SetLocation sets the Location field's value. +func (s *NewGeolocationDetail) SetLocation(v string) *NewGeolocationDetail { + s.Location = &v + return s +} + +// Details new user agents used either at the resource or account level. +type NewUserAgentDetail struct { + _ struct{} `type:"structure"` + + // Checks if the user agent is new for the entire account. + IsNewForEntireAccount *bool `type:"boolean"` + + // New user agent which accessed the resource. + UserAgent *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NewUserAgentDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NewUserAgentDetail) GoString() string { + return s.String() +} + +// SetIsNewForEntireAccount sets the IsNewForEntireAccount field's value. +func (s *NewUserAgentDetail) SetIsNewForEntireAccount(v bool) *NewUserAgentDetail { + s.IsNewForEntireAccount = &v + return s +} + +// SetUserAgent sets the UserAgent field's value. +func (s *NewUserAgentDetail) SetUserAgent(v string) *NewUserAgentDetail { + s.UserAgent = &v + return s +} + type RejectInvitationInput struct { _ struct{} `type:"structure"` @@ -5145,6 +6744,92 @@ func (s RejectInvitationOutput) GoString() string { return s.String() } +// Details related activities associated with a potential security event. Lists +// all distinct categories of evidence that are connected to the resource or +// the finding group. +type RelatedFindingDetail struct { + _ struct{} `type:"structure"` + + // The ARN of the related finding. + Arn *string `type:"string"` + + // The IP address of the finding. + IpAddress *string `type:"string"` + + // The type of finding. + Type *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RelatedFindingDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RelatedFindingDetail) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *RelatedFindingDetail) SetArn(v string) *RelatedFindingDetail { + s.Arn = &v + return s +} + +// SetIpAddress sets the IpAddress field's value. +func (s *RelatedFindingDetail) SetIpAddress(v string) *RelatedFindingDetail { + s.IpAddress = &v + return s +} + +// SetType sets the Type field's value. +func (s *RelatedFindingDetail) SetType(v string) *RelatedFindingDetail { + s.Type = &v + return s +} + +// Details multiple activities as they related to a potential security event. +// Detective uses graph analysis technique that infers relationships between +// findings and entities, and groups them together as a finding group. +type RelatedFindingGroupDetail struct { + _ struct{} `type:"structure"` + + // The unique identifier for the finding group. + Id *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RelatedFindingGroupDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RelatedFindingGroupDetail) GoString() string { + return s.String() +} + +// SetId sets the Id field's value. +func (s *RelatedFindingGroupDetail) SetId(v string) *RelatedFindingGroupDetail { + s.Id = &v + return s +} + // The request refers to a nonexistent resource. type ResourceNotFoundException struct { _ struct{} `type:"structure"` @@ -5267,23 +6952,185 @@ func (s *ServiceQuotaExceededException) Message() string { return "" } -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ServiceQuotaExceededException) OrigErr() error { - return nil +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceQuotaExceededException) OrigErr() error { + return nil +} + +func (s *ServiceQuotaExceededException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceQuotaExceededException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServiceQuotaExceededException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Details about the criteria used for sorting investigations. +type SortCriteria struct { + _ struct{} `type:"structure"` + + // Represents the Field attribute to sort investigations. + Field *string `type:"string" enum:"Field"` + + // The order by which the sorted findings are displayed. + SortOrder *string `type:"string" enum:"SortOrder"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SortCriteria) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SortCriteria) GoString() string { + return s.String() +} + +// SetField sets the Field field's value. +func (s *SortCriteria) SetField(v string) *SortCriteria { + s.Field = &v + return s +} + +// SetSortOrder sets the SortOrder field's value. +func (s *SortCriteria) SetSortOrder(v string) *SortCriteria { + s.SortOrder = &v + return s +} + +type StartInvestigationInput struct { + _ struct{} `type:"structure"` + + // The unique Amazon Resource Name (ARN) of the IAM user and IAM role. + // + // EntityArn is a required field + EntityArn *string `type:"string" required:"true"` + + // The ARN of the behavior graph. + // + // GraphArn is a required field + GraphArn *string `type:"string" required:"true"` + + // The data and time when the investigation began. The value is an UTC ISO8601 + // formatted string. For example, 2021-08-18T16:35:56.284Z. + // + // ScopeEndTime is a required field + ScopeEndTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The data and time when the investigation began. The value is an UTC ISO8601 + // formatted string. For example, 2021-08-18T16:35:56.284Z. + // + // ScopeStartTime is a required field + ScopeStartTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartInvestigationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartInvestigationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartInvestigationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartInvestigationInput"} + if s.EntityArn == nil { + invalidParams.Add(request.NewErrParamRequired("EntityArn")) + } + if s.GraphArn == nil { + invalidParams.Add(request.NewErrParamRequired("GraphArn")) + } + if s.ScopeEndTime == nil { + invalidParams.Add(request.NewErrParamRequired("ScopeEndTime")) + } + if s.ScopeStartTime == nil { + invalidParams.Add(request.NewErrParamRequired("ScopeStartTime")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEntityArn sets the EntityArn field's value. +func (s *StartInvestigationInput) SetEntityArn(v string) *StartInvestigationInput { + s.EntityArn = &v + return s +} + +// SetGraphArn sets the GraphArn field's value. +func (s *StartInvestigationInput) SetGraphArn(v string) *StartInvestigationInput { + s.GraphArn = &v + return s +} + +// SetScopeEndTime sets the ScopeEndTime field's value. +func (s *StartInvestigationInput) SetScopeEndTime(v time.Time) *StartInvestigationInput { + s.ScopeEndTime = &v + return s +} + +// SetScopeStartTime sets the ScopeStartTime field's value. +func (s *StartInvestigationInput) SetScopeStartTime(v time.Time) *StartInvestigationInput { + s.ScopeStartTime = &v + return s } -func (s *ServiceQuotaExceededException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +type StartInvestigationOutput struct { + _ struct{} `type:"structure"` + + // The investigation ID of the investigation report. + InvestigationId *string `min:"21" type:"string"` } -// Status code returns the HTTP status code for the request's response error. -func (s *ServiceQuotaExceededException) StatusCode() int { - return s.RespMetadata.StatusCode +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartInvestigationOutput) String() string { + return awsutil.Prettify(s) } -// RequestID returns the service's response RequestID for request. -func (s *ServiceQuotaExceededException) RequestID() string { - return s.RespMetadata.RequestID +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartInvestigationOutput) GoString() string { + return s.String() +} + +// SetInvestigationId sets the InvestigationId field's value. +func (s *StartInvestigationOutput) SetInvestigationId(v string) *StartInvestigationOutput { + s.InvestigationId = &v + return s } type StartMonitoringMemberInput struct { @@ -5373,6 +7220,143 @@ func (s StartMonitoringMemberOutput) GoString() string { return s.String() } +// A string for filtering Detective investigations. +type StringFilter struct { + _ struct{} `type:"structure"` + + // The string filter value. + // + // Value is a required field + Value *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StringFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StringFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StringFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StringFilter"} + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + if s.Value != nil && len(*s.Value) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Value", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetValue sets the Value field's value. +func (s *StringFilter) SetValue(v string) *StringFilter { + s.Value = &v + return s +} + +// Details tactics, techniques, and procedures (TTPs) used in a potential security +// event. Tactics are based on MITRE ATT&CK Matrix for Enterprise (https://attack.mitre.org/matrices/enterprise/). +type TTPsObservedDetail struct { + _ struct{} `type:"structure"` + + // The total number of failed API requests. + APIFailureCount *int64 `type:"long"` + + // The name of the API where the TTP was observed. + APIName *string `type:"string"` + + // The total number of successful API requests. + APISuccessCount *int64 `type:"long"` + + // The IP address where the TTP was observed. + IpAddress *string `type:"string"` + + // The procedure used, identified by the investigation. + Procedure *string `type:"string"` + + // The tactic used, identified by the investigation. + Tactic *string `type:"string"` + + // The technique used, identified by the investigation. + Technique *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TTPsObservedDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TTPsObservedDetail) GoString() string { + return s.String() +} + +// SetAPIFailureCount sets the APIFailureCount field's value. +func (s *TTPsObservedDetail) SetAPIFailureCount(v int64) *TTPsObservedDetail { + s.APIFailureCount = &v + return s +} + +// SetAPIName sets the APIName field's value. +func (s *TTPsObservedDetail) SetAPIName(v string) *TTPsObservedDetail { + s.APIName = &v + return s +} + +// SetAPISuccessCount sets the APISuccessCount field's value. +func (s *TTPsObservedDetail) SetAPISuccessCount(v int64) *TTPsObservedDetail { + s.APISuccessCount = &v + return s +} + +// SetIpAddress sets the IpAddress field's value. +func (s *TTPsObservedDetail) SetIpAddress(v string) *TTPsObservedDetail { + s.IpAddress = &v + return s +} + +// SetProcedure sets the Procedure field's value. +func (s *TTPsObservedDetail) SetProcedure(v string) *TTPsObservedDetail { + s.Procedure = &v + return s +} + +// SetTactic sets the Tactic field's value. +func (s *TTPsObservedDetail) SetTactic(v string) *TTPsObservedDetail { + s.Tactic = &v + return s +} + +// SetTechnique sets the Technique field's value. +func (s *TTPsObservedDetail) SetTechnique(v string) *TTPsObservedDetail { + s.Technique = &v + return s +} + type TagResourceInput struct { _ struct{} `type:"structure"` @@ -5820,6 +7804,106 @@ func (s UpdateDatasourcePackagesOutput) GoString() string { return s.String() } +type UpdateInvestigationStateInput struct { + _ struct{} `type:"structure"` + + // The ARN of the behavior graph. + // + // GraphArn is a required field + GraphArn *string `type:"string" required:"true"` + + // The investigation ID of the investigation report. + // + // InvestigationId is a required field + InvestigationId *string `min:"21" type:"string" required:"true"` + + // The current state of the investigation. An archived investigation indicates + // you have completed reviewing the investigation. + // + // State is a required field + State *string `type:"string" required:"true" enum:"State"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateInvestigationStateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateInvestigationStateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateInvestigationStateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateInvestigationStateInput"} + if s.GraphArn == nil { + invalidParams.Add(request.NewErrParamRequired("GraphArn")) + } + if s.InvestigationId == nil { + invalidParams.Add(request.NewErrParamRequired("InvestigationId")) + } + if s.InvestigationId != nil && len(*s.InvestigationId) < 21 { + invalidParams.Add(request.NewErrParamMinLen("InvestigationId", 21)) + } + if s.State == nil { + invalidParams.Add(request.NewErrParamRequired("State")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGraphArn sets the GraphArn field's value. +func (s *UpdateInvestigationStateInput) SetGraphArn(v string) *UpdateInvestigationStateInput { + s.GraphArn = &v + return s +} + +// SetInvestigationId sets the InvestigationId field's value. +func (s *UpdateInvestigationStateInput) SetInvestigationId(v string) *UpdateInvestigationStateInput { + s.InvestigationId = &v + return s +} + +// SetState sets the State field's value. +func (s *UpdateInvestigationStateInput) SetState(v string) *UpdateInvestigationStateInput { + s.State = &v + return s +} + +type UpdateInvestigationStateOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateInvestigationStateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateInvestigationStateOutput) GoString() string { + return s.String() +} + type UpdateOrganizationConfigurationInput struct { _ struct{} `type:"structure"` @@ -6008,6 +8092,22 @@ func DatasourcePackageIngestState_Values() []string { } } +const ( + // EntityTypeIamRole is a EntityType enum value + EntityTypeIamRole = "IAM_ROLE" + + // EntityTypeIamUser is a EntityType enum value + EntityTypeIamUser = "IAM_USER" +) + +// EntityType_Values returns all elements of the EntityType enum +func EntityType_Values() []string { + return []string{ + EntityTypeIamRole, + EntityTypeIamUser, + } +} + const ( // ErrorCodeInvalidGraphArn is a ErrorCode enum value ErrorCodeInvalidGraphArn = "INVALID_GRAPH_ARN" @@ -6028,6 +8128,66 @@ func ErrorCode_Values() []string { } } +const ( + // FieldSeverity is a Field enum value + FieldSeverity = "SEVERITY" + + // FieldStatus is a Field enum value + FieldStatus = "STATUS" + + // FieldCreatedTime is a Field enum value + FieldCreatedTime = "CREATED_TIME" +) + +// Field_Values returns all elements of the Field enum +func Field_Values() []string { + return []string{ + FieldSeverity, + FieldStatus, + FieldCreatedTime, + } +} + +const ( + // IndicatorTypeTtpObserved is a IndicatorType enum value + IndicatorTypeTtpObserved = "TTP_OBSERVED" + + // IndicatorTypeImpossibleTravel is a IndicatorType enum value + IndicatorTypeImpossibleTravel = "IMPOSSIBLE_TRAVEL" + + // IndicatorTypeFlaggedIpAddress is a IndicatorType enum value + IndicatorTypeFlaggedIpAddress = "FLAGGED_IP_ADDRESS" + + // IndicatorTypeNewGeolocation is a IndicatorType enum value + IndicatorTypeNewGeolocation = "NEW_GEOLOCATION" + + // IndicatorTypeNewAso is a IndicatorType enum value + IndicatorTypeNewAso = "NEW_ASO" + + // IndicatorTypeNewUserAgent is a IndicatorType enum value + IndicatorTypeNewUserAgent = "NEW_USER_AGENT" + + // IndicatorTypeRelatedFinding is a IndicatorType enum value + IndicatorTypeRelatedFinding = "RELATED_FINDING" + + // IndicatorTypeRelatedFindingGroup is a IndicatorType enum value + IndicatorTypeRelatedFindingGroup = "RELATED_FINDING_GROUP" +) + +// IndicatorType_Values returns all elements of the IndicatorType enum +func IndicatorType_Values() []string { + return []string{ + IndicatorTypeTtpObserved, + IndicatorTypeImpossibleTravel, + IndicatorTypeFlaggedIpAddress, + IndicatorTypeNewGeolocation, + IndicatorTypeNewAso, + IndicatorTypeNewUserAgent, + IndicatorTypeRelatedFinding, + IndicatorTypeRelatedFindingGroup, + } +} + const ( // InvitationTypeInvitation is a InvitationType enum value InvitationTypeInvitation = "INVITATION" @@ -6087,3 +8247,95 @@ func MemberStatus_Values() []string { MemberStatusAcceptedButDisabled, } } + +const ( + // ReasonAwsThreatIntelligence is a Reason enum value + ReasonAwsThreatIntelligence = "AWS_THREAT_INTELLIGENCE" +) + +// Reason_Values returns all elements of the Reason enum +func Reason_Values() []string { + return []string{ + ReasonAwsThreatIntelligence, + } +} + +const ( + // SeverityInformational is a Severity enum value + SeverityInformational = "INFORMATIONAL" + + // SeverityLow is a Severity enum value + SeverityLow = "LOW" + + // SeverityMedium is a Severity enum value + SeverityMedium = "MEDIUM" + + // SeverityHigh is a Severity enum value + SeverityHigh = "HIGH" + + // SeverityCritical is a Severity enum value + SeverityCritical = "CRITICAL" +) + +// Severity_Values returns all elements of the Severity enum +func Severity_Values() []string { + return []string{ + SeverityInformational, + SeverityLow, + SeverityMedium, + SeverityHigh, + SeverityCritical, + } +} + +const ( + // SortOrderAsc is a SortOrder enum value + SortOrderAsc = "ASC" + + // SortOrderDesc is a SortOrder enum value + SortOrderDesc = "DESC" +) + +// SortOrder_Values returns all elements of the SortOrder enum +func SortOrder_Values() []string { + return []string{ + SortOrderAsc, + SortOrderDesc, + } +} + +const ( + // StateActive is a State enum value + StateActive = "ACTIVE" + + // StateArchived is a State enum value + StateArchived = "ARCHIVED" +) + +// State_Values returns all elements of the State enum +func State_Values() []string { + return []string{ + StateActive, + StateArchived, + } +} + +const ( + // StatusRunning is a Status enum value + StatusRunning = "RUNNING" + + // StatusFailed is a Status enum value + StatusFailed = "FAILED" + + // StatusSuccessful is a Status enum value + StatusSuccessful = "SUCCESSFUL" +) + +// Status_Values returns all elements of the Status enum +func Status_Values() []string { + return []string{ + StatusRunning, + StatusFailed, + StatusSuccessful, + } +} diff --git a/service/detective/detectiveiface/interface.go b/service/detective/detectiveiface/interface.go index 0379e9c15d0..27be0f1e66f 100644 --- a/service/detective/detectiveiface/interface.go +++ b/service/detective/detectiveiface/interface.go @@ -104,6 +104,10 @@ type DetectiveAPI interface { EnableOrganizationAdminAccountWithContext(aws.Context, *detective.EnableOrganizationAdminAccountInput, ...request.Option) (*detective.EnableOrganizationAdminAccountOutput, error) EnableOrganizationAdminAccountRequest(*detective.EnableOrganizationAdminAccountInput) (*request.Request, *detective.EnableOrganizationAdminAccountOutput) + GetInvestigation(*detective.GetInvestigationInput) (*detective.GetInvestigationOutput, error) + GetInvestigationWithContext(aws.Context, *detective.GetInvestigationInput, ...request.Option) (*detective.GetInvestigationOutput, error) + GetInvestigationRequest(*detective.GetInvestigationInput) (*request.Request, *detective.GetInvestigationOutput) + GetMembers(*detective.GetMembersInput) (*detective.GetMembersOutput, error) GetMembersWithContext(aws.Context, *detective.GetMembersInput, ...request.Option) (*detective.GetMembersOutput, error) GetMembersRequest(*detective.GetMembersInput) (*request.Request, *detective.GetMembersOutput) @@ -122,6 +126,14 @@ type DetectiveAPI interface { ListGraphsPages(*detective.ListGraphsInput, func(*detective.ListGraphsOutput, bool) bool) error ListGraphsPagesWithContext(aws.Context, *detective.ListGraphsInput, func(*detective.ListGraphsOutput, bool) bool, ...request.Option) error + ListIndicators(*detective.ListIndicatorsInput) (*detective.ListIndicatorsOutput, error) + ListIndicatorsWithContext(aws.Context, *detective.ListIndicatorsInput, ...request.Option) (*detective.ListIndicatorsOutput, error) + ListIndicatorsRequest(*detective.ListIndicatorsInput) (*request.Request, *detective.ListIndicatorsOutput) + + ListInvestigations(*detective.ListInvestigationsInput) (*detective.ListInvestigationsOutput, error) + ListInvestigationsWithContext(aws.Context, *detective.ListInvestigationsInput, ...request.Option) (*detective.ListInvestigationsOutput, error) + ListInvestigationsRequest(*detective.ListInvestigationsInput) (*request.Request, *detective.ListInvestigationsOutput) + ListInvitations(*detective.ListInvitationsInput) (*detective.ListInvitationsOutput, error) ListInvitationsWithContext(aws.Context, *detective.ListInvitationsInput, ...request.Option) (*detective.ListInvitationsOutput, error) ListInvitationsRequest(*detective.ListInvitationsInput) (*request.Request, *detective.ListInvitationsOutput) @@ -151,6 +163,10 @@ type DetectiveAPI interface { RejectInvitationWithContext(aws.Context, *detective.RejectInvitationInput, ...request.Option) (*detective.RejectInvitationOutput, error) RejectInvitationRequest(*detective.RejectInvitationInput) (*request.Request, *detective.RejectInvitationOutput) + StartInvestigation(*detective.StartInvestigationInput) (*detective.StartInvestigationOutput, error) + StartInvestigationWithContext(aws.Context, *detective.StartInvestigationInput, ...request.Option) (*detective.StartInvestigationOutput, error) + StartInvestigationRequest(*detective.StartInvestigationInput) (*request.Request, *detective.StartInvestigationOutput) + StartMonitoringMember(*detective.StartMonitoringMemberInput) (*detective.StartMonitoringMemberOutput, error) StartMonitoringMemberWithContext(aws.Context, *detective.StartMonitoringMemberInput, ...request.Option) (*detective.StartMonitoringMemberOutput, error) StartMonitoringMemberRequest(*detective.StartMonitoringMemberInput) (*request.Request, *detective.StartMonitoringMemberOutput) @@ -167,6 +183,10 @@ type DetectiveAPI interface { UpdateDatasourcePackagesWithContext(aws.Context, *detective.UpdateDatasourcePackagesInput, ...request.Option) (*detective.UpdateDatasourcePackagesOutput, error) UpdateDatasourcePackagesRequest(*detective.UpdateDatasourcePackagesInput) (*request.Request, *detective.UpdateDatasourcePackagesOutput) + UpdateInvestigationState(*detective.UpdateInvestigationStateInput) (*detective.UpdateInvestigationStateOutput, error) + UpdateInvestigationStateWithContext(aws.Context, *detective.UpdateInvestigationStateInput, ...request.Option) (*detective.UpdateInvestigationStateOutput, error) + UpdateInvestigationStateRequest(*detective.UpdateInvestigationStateInput) (*request.Request, *detective.UpdateInvestigationStateOutput) + UpdateOrganizationConfiguration(*detective.UpdateOrganizationConfigurationInput) (*detective.UpdateOrganizationConfigurationOutput, error) UpdateOrganizationConfigurationWithContext(aws.Context, *detective.UpdateOrganizationConfigurationInput, ...request.Option) (*detective.UpdateOrganizationConfigurationOutput, error) UpdateOrganizationConfigurationRequest(*detective.UpdateOrganizationConfigurationInput) (*request.Request, *detective.UpdateOrganizationConfigurationOutput) diff --git a/service/ecs/api.go b/service/ecs/api.go index b9709d35c53..c8d1c8db38b 100644 --- a/service/ecs/api.go +++ b/service/ecs/api.go @@ -4025,6 +4025,12 @@ func (c *ECS) PutAccountSettingRequest(input *PutAccountSettingInput) (req *requ // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-maintenance.html) // in the Amazon ECS Developer Guide. // +// The guardDutyActivate parameter is read-only in Amazon ECS and indicates +// whether Amazon ECS Runtime Monitoring is enabled or disabled by your security +// administrator in your Amazon ECS account. Amazon GuardDuty controls this +// account setting on your behalf. For more information, see Protecting Amazon +// ECS workloads with Amazon ECS Runtime Monitoring (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-guard-duty-integration.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. @@ -18667,6 +18673,12 @@ type PutAccountSettingDefaultInput struct { // maintenance (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-maintenance.html) // in the Amazon ECS Developer Guide. // + // The guardDutyActivate parameter is read-only in Amazon ECS and indicates + // whether Amazon ECS Runtime Monitoring is enabled or disabled by your security + // administrator in your Amazon ECS account. Amazon GuardDuty controls this + // account setting on your behalf. For more information, see Protecting Amazon + // ECS workloads with Amazon ECS Runtime Monitoring (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-guard-duty-integration.html). + // // Name is a required field Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"` @@ -18784,6 +18796,12 @@ type PutAccountSettingInput struct { // in the Amazon ECS Developer Guide. If you specify fargateTaskRetirementWaitPeriod, // the wait time to retire a Fargate task is affected. // + // The guardDutyActivate parameter is read-only in Amazon ECS and indicates + // whether Amazon ECS Runtime Monitoring is enabled or disabled by your security + // administrator in your Amazon ECS account. Amazon GuardDuty controls this + // account setting on your behalf. For more information, see Protecting Amazon + // ECS workloads with Amazon ECS Runtime Monitoring (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-guard-duty-integration.html). + // // Name is a required field Name *string `locationName:"name" type:"string" required:"true" enum:"SettingName"` @@ -21946,6 +21964,14 @@ type Setting struct { // field is omitted, the authenticated user is assumed. PrincipalArn *string `locationName:"principalArn" type:"string"` + // Indicates whether Amazon Web Services manages the account setting, or if + // the user manages it. + // + // aws_managed account settings are read-only, as Amazon Web Services manages + // such on the customer's behalf. Currently, the guardDutyActivate account setting + // is the only one Amazon Web Services manages. + Type *string `locationName:"type" type:"string" enum:"SettingType"` + // Determines whether the account setting is on or off for the specified resource. Value *string `locationName:"value" type:"string"` } @@ -21980,6 +22006,12 @@ func (s *Setting) SetPrincipalArn(v string) *Setting { return s } +// SetType sets the Type field's value. +func (s *Setting) SetType(v string) *Setting { + s.Type = &v + return s +} + // SetValue sets the Value field's value. func (s *Setting) SetValue(v string) *Setting { s.Value = &v @@ -27382,6 +27414,9 @@ const ( // SettingNameFargateTaskRetirementWaitPeriod is a SettingName enum value SettingNameFargateTaskRetirementWaitPeriod = "fargateTaskRetirementWaitPeriod" + + // SettingNameGuardDutyActivate is a SettingName enum value + SettingNameGuardDutyActivate = "guardDutyActivate" ) // SettingName_Values returns all elements of the SettingName enum @@ -27395,6 +27430,23 @@ func SettingName_Values() []string { SettingNameFargateFipsmode, SettingNameTagResourceAuthorization, SettingNameFargateTaskRetirementWaitPeriod, + SettingNameGuardDutyActivate, + } +} + +const ( + // SettingTypeUser is a SettingType enum value + SettingTypeUser = "user" + + // SettingTypeAwsManaged is a SettingType enum value + SettingTypeAwsManaged = "aws_managed" +) + +// SettingType_Values returns all elements of the SettingType enum +func SettingType_Values() []string { + return []string{ + SettingTypeUser, + SettingTypeAwsManaged, } } diff --git a/service/efs/api.go b/service/efs/api.go index 54f6dab746a..9b5f66de85f 100644 --- a/service/efs/api.go +++ b/service/efs/api.go @@ -218,12 +218,18 @@ func (c *EFS) CreateFileSystemRequest(input *CreateFileSystemInput) (req *reques // system state. // // This operation accepts an optional PerformanceMode parameter that you choose -// for your 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. The performance mode -// can't be changed after the file system has been created. For more information, -// see Amazon EFS performance modes (https://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes.html). +// for your file system. We recommend generalPurpose performance mode for all +// file systems. File systems using the maxIO mode is a previous generation +// performance type that is designed for highly parallelized workloads that +// can tolerate higher latencies than the General Purpose mode. Max I/O mode +// is not supported for One Zone file systems or file systems that use Elastic +// throughput. +// +// Due to the higher per-operation latencies with Max I/O, we recommend using +// General Purpose performance mode for all file systems. +// +// The performance mode can't be changed after the file system has been created. +// For more information, see Amazon EFS performance modes (https://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes.html). // // You can set the throughput mode for the file system using the ThroughputMode // parameter. @@ -360,12 +366,12 @@ func (c *EFS) CreateMountTargetRequest(input *CreateMountTargetInput) (req *requ // need to be in the same subnet as the mount target in order to access their // file system. // -// You can create only one mount target for an EFS file system using One Zone -// storage classes. You must create that mount target in the same Availability -// Zone in which the file system is located. Use the AvailabilityZoneName and -// AvailabiltyZoneId properties in the DescribeFileSystems response object to -// get this information. Use the subnetId associated with the file system's -// Availability Zone when creating the mount target. +// You can create only one mount target for a One Zone file system. You must +// create that mount target in the same Availability Zone in which the file +// system is located. Use the AvailabilityZoneName and AvailabiltyZoneId properties +// in the DescribeFileSystems response object to get this information. Use the +// subnetId associated with the file system's Availability Zone when creating +// the mount target. // // For more information, see Amazon EFS: How it Works (https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html). // @@ -598,16 +604,15 @@ func (c *EFS) CreateReplicationConfigurationRequest(input *CreateReplicationConf // in to the Region. For more information, see Managing Amazon Web Services // Regions (https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable) // in the Amazon Web Services General Reference Reference Guide Availability -// Zone - If you want the destination file system to use EFS One Zone availability -// and durability, you must specify the Availability Zone to create the file -// system in. For more information about EFS storage classes, see Amazon -// EFS storage classes (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) -// in the Amazon EFS User Guide. Encryption - All destination file systems -// are created with encryption at rest enabled. You can specify the Key Management -// Service (KMS) key that is used to encrypt the destination file system. -// If you don't specify a KMS key, your service-managed KMS key for Amazon -// EFS is used. After the file system is created, you cannot change the KMS -// key. +// Zone - If you want the destination file system to use EFS One Zone availability, +// you must specify the Availability Zone to create the file system in. For +// more information about EFS storage classes, see Amazon EFS storage classes +// (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the +// Amazon EFS User Guide. Encryption - All destination file systems are created +// with encryption at rest enabled. You can specify the Key Management Service +// (KMS) key that is used to encrypt the destination file system. If you +// don't specify a KMS key, your service-managed KMS key for Amazon EFS is +// used. After the file system is created, you cannot change the KMS key. // // The following properties are set by default: // @@ -622,12 +627,11 @@ func (c *EFS) CreateReplicationConfigurationRequest(input *CreateReplicationConf // // The following properties are turned off by default: // -// - Lifecycle management - EFS lifecycle management and EFS Intelligent-Tiering -// are not enabled on the destination file system. After the destination -// file system is created, you can enable EFS lifecycle management and EFS -// Intelligent-Tiering. +// - Lifecycle management – Lifecycle management is not enabled on the +// destination file system. After the destination file system is created, +// you can enable it. // -// - Automatic backups - Automatic daily backups are enabled on the destination +// - Automatic backups – Automatic daily backups are enabled on the destination // file system. After the file system is created, you can change this setting. // // For more information, see Amazon EFS replication (https://docs.aws.amazon.com/efs/latest/ug/efs-replication.html) @@ -2067,13 +2071,10 @@ func (c *EFS) DescribeLifecycleConfigurationRequest(input *DescribeLifecycleConf // DescribeLifecycleConfiguration API operation for Amazon Elastic File System. // // Returns the current LifecycleConfiguration object for the specified Amazon -// EFS file system. EFS lifecycle management uses the LifecycleConfiguration -// 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. -// -// When EFS Intelligent-Tiering is enabled, TransitionToPrimaryStorageClass -// has a value of AFTER_1_ACCESS. +// EFS file system. Llifecycle management uses the LifecycleConfiguration object +// to identify when to move files between storage classes. 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. @@ -2250,6 +2251,12 @@ func (c *EFS) DescribeMountTargetsRequest(input *DescribeMountTargetsInput) (req Name: opDescribeMountTargets, HTTPMethod: "GET", HTTPPath: "/2015-02-01/mount-targets", + Paginator: &request.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"NextMarker"}, + LimitToken: "MaxItems", + TruncationToken: "", + }, } if input == nil { @@ -2321,6 +2328,57 @@ func (c *EFS) DescribeMountTargetsWithContext(ctx aws.Context, input *DescribeMo return out, req.Send() } +// DescribeMountTargetsPages iterates over the pages of a DescribeMountTargets operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See DescribeMountTargets 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 DescribeMountTargets operation. +// pageNum := 0 +// err := client.DescribeMountTargetsPages(params, +// func(page *efs.DescribeMountTargetsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *EFS) DescribeMountTargetsPages(input *DescribeMountTargetsInput, fn func(*DescribeMountTargetsOutput, bool) bool) error { + return c.DescribeMountTargetsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// DescribeMountTargetsPagesWithContext same as DescribeMountTargetsPages 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 *EFS) DescribeMountTargetsPagesWithContext(ctx aws.Context, input *DescribeMountTargetsInput, fn func(*DescribeMountTargetsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeMountTargetsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeMountTargetsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*DescribeMountTargetsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opDescribeReplicationConfigurations = "DescribeReplicationConfigurations" // DescribeReplicationConfigurationsRequest generates a "aws/request.Request" representing the @@ -2351,6 +2409,12 @@ func (c *EFS) DescribeReplicationConfigurationsRequest(input *DescribeReplicatio Name: opDescribeReplicationConfigurations, HTTPMethod: "GET", HTTPPath: "/2015-02-01/file-systems/replication-configurations", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { @@ -2417,6 +2481,57 @@ func (c *EFS) DescribeReplicationConfigurationsWithContext(ctx aws.Context, inpu return out, req.Send() } +// DescribeReplicationConfigurationsPages iterates over the pages of a DescribeReplicationConfigurations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See DescribeReplicationConfigurations 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 DescribeReplicationConfigurations operation. +// pageNum := 0 +// err := client.DescribeReplicationConfigurationsPages(params, +// func(page *efs.DescribeReplicationConfigurationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *EFS) DescribeReplicationConfigurationsPages(input *DescribeReplicationConfigurationsInput, fn func(*DescribeReplicationConfigurationsOutput, bool) bool) error { + return c.DescribeReplicationConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// DescribeReplicationConfigurationsPagesWithContext same as DescribeReplicationConfigurationsPages 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 *EFS) DescribeReplicationConfigurationsPagesWithContext(ctx aws.Context, input *DescribeReplicationConfigurationsInput, fn func(*DescribeReplicationConfigurationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeReplicationConfigurationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeReplicationConfigurationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*DescribeReplicationConfigurationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opDescribeTags = "DescribeTags" // DescribeTagsRequest generates a "aws/request.Request" representing the @@ -3187,39 +3302,42 @@ func (c *EFS) PutLifecycleConfigurationRequest(input *PutLifecycleConfigurationI // PutLifecycleConfiguration API operation for Amazon Elastic File System. // -// Use this action to manage EFS lifecycle management and EFS Intelligent-Tiering. -// A LifecycleConfiguration consists of one or more LifecyclePolicy objects -// that define the following: +// Use this action to manage storage of your file system. A LifecycleConfiguration +// consists of one or more LifecyclePolicy objects that define the following: +// +// - TransitionToIA – When to move files in the file system from primary +// storage (Standard storage class) into the Infrequent Access (IA) storage. // -// - EFS Lifecycle management - When Amazon EFS automatically transitions -// files in a file system into the lower-cost EFS Infrequent Access (IA) -// storage class. To enable EFS Lifecycle management, set the value of TransitionToIA -// to one of the available options. +// - TransitionToArchive – When to move files in the file system from their +// current storage class (either IA or Standard storage) into the Archive +// storage. File systems cannot transition into Archive storage before transitioning +// into IA storage. Therefore, TransitionToArchive must either not be set +// or must be later than TransitionToIA. The Archive storage class is available +// only for file systems that use the Elastic Throughput mode and the General +// Purpose Performance mode. // -// - EFS Intelligent-Tiering - When Amazon EFS automatically transitions -// files from IA back into the file system's primary storage class (EFS Standard -// or EFS One Zone Standard). To enable EFS Intelligent-Tiering, set the -// value of TransitionToPrimaryStorageClass to AFTER_1_ACCESS. +// - TransitionToPrimaryStorageClass – Whether to move files in the file +// system back to primary storage (Standard storage class) after they are +// accessed in IA or Archive storage. // -// For more information, see EFS Lifecycle Management (https://docs.aws.amazon.com/efs/latest/ug/lifecycle-management-efs.html). +// For more information, see Managing file system storage (https://docs.aws.amazon.com/efs/latest/ug/lifecycle-management-efs.html). // // Each Amazon EFS file system supports one lifecycle configuration, which applies // 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 turns off lifecycle management and EFS Intelligent-Tiering for the file -// system. +// for the file system. // // In the request, specify the following: // // - The ID for the file system for which you are enabling, disabling, or -// modifying lifecycle management and EFS Intelligent-Tiering. +// modifying Lifecycle management. // // - A LifecyclePolicies array of LifecyclePolicy objects that define when -// files are moved into IA storage, and when they are moved back to Standard -// storage. Amazon EFS requires that each LifecyclePolicy object have only -// have a single transition, so the LifecyclePolicies array needs to be structured +// to move files to IA storage, to Archive storage, and back to primary storage. +// Amazon EFS requires that each LifecyclePolicy object have only have a +// single transition, so the LifecyclePolicies array needs to be structured // with separate LifecyclePolicy objects. See the example requests in the // following section for more information. // @@ -3685,8 +3803,8 @@ type AccessPointDescription struct { // using the access point. PosixUser *PosixUser `type:"structure"` - // The directory on the Amazon EFS file system that the access point exposes - // as the root directory to NFS clients using the access point. + // The directory on the EFS file system that the access point exposes as the + // root directory to NFS clients using the access point. RootDirectory *RootDirectory `type:"structure"` // The tags associated with the access point, presented as an array of Tag objects. @@ -4014,13 +4132,13 @@ type BackupPolicy struct { // Describes the status of the file system's backup policy. // - // * ENABLED - EFS is automatically backing up the file system. + // * ENABLED – EFS is automatically backing up the file system. // - // * ENABLING - EFS is turning on automatic backups for the file system. + // * ENABLING – EFS is turning on automatic backups for the file system. // - // * DISABLED - Automatic back ups are turned off for the file system. + // * DISABLED – Automatic back ups are turned off for the file system. // - // * DISABLING - EFS is turning off automatic backups for the file system. + // * DISABLING – EFS is turning off automatic backups for the file system. // // Status is a required field Status *string `type:"string" required:"true" enum:"Status"` @@ -4157,13 +4275,13 @@ type CreateAccessPointInput struct { // using the access point. PosixUser *PosixUser `type:"structure"` - // Specifies the directory on the Amazon EFS file system that the access point - // exposes as the root directory of your file system to NFS clients using the - // access point. The clients using the access point can only access the root - // directory and below. If the RootDirectory > Path specified does not exist, - // EFS creates it and applies the CreationInfo settings when a client connects - // to an access point. When specifying a RootDirectory, you must provide the - // Path, and the CreationInfo. + // Specifies the directory on the EFS file system that the access point exposes + // as the root directory of your file system to NFS clients using the access + // point. The clients using the access point can only access the root directory + // and below. If the RootDirectory > Path specified does not exist, Amazon EFS + // creates it and applies the CreationInfo settings when a client connects to + // an access point. When specifying a RootDirectory, you must provide the Path, + // and the CreationInfo. // // Amazon EFS creates a root directory only if you have provided the CreationInfo: // OwnUid, OwnGID, and permissions for the directory. If you do not provide @@ -4292,8 +4410,8 @@ type CreateAccessPointOutput struct { // using the access point. PosixUser *PosixUser `type:"structure"` - // The directory on the Amazon EFS file system that the access point exposes - // as the root directory to NFS clients using the access point. + // The directory on the EFS file system that the access point exposes as the + // root directory to NFS clients using the access point. RootDirectory *RootDirectory `type:"structure"` // The tags associated with the access point, presented as an array of Tag objects. @@ -4381,20 +4499,20 @@ func (s *CreateAccessPointOutput) SetTags(v []*Tag) *CreateAccessPointOutput { type CreateFileSystemInput struct { _ struct{} `type:"structure"` - // Used to create a file system that uses One Zone storage classes. It specifies - // the Amazon Web Services Availability Zone in which to create the file system. - // Use the format us-east-1a to specify the Availability Zone. For more information - // about One Zone storage classes, see Using EFS storage classes (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) + // Used to create a One Zone file system. It specifies the Amazon Web Services + // Availability Zone in which to create the file system. Use the format us-east-1a + // to specify the Availability Zone. For more information about One Zone file + // systems, see Using EFS storage classes (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) // in the Amazon EFS User Guide. // - // One Zone storage classes are not available in all Availability Zones in Amazon + // One Zone file systems are not available in all Availability Zones in Amazon // Web Services Regions where Amazon EFS is available. AvailabilityZoneName *string `min:"1" type:"string"` // Specifies whether automatic backups are enabled on the file system that you // are creating. Set the value to true to enable automatic backups. If you are - // creating a file system that uses One Zone storage classes, automatic backups - // are enabled by default. For more information, see Automatic backups (https://docs.aws.amazon.com/efs/latest/ug/awsbackup.html#automatic-backups) + // creating a One Zone file system, automatic backups are enabled by default. + // For more information, see Automatic backups (https://docs.aws.amazon.com/efs/latest/ug/awsbackup.html#automatic-backups) // in the Amazon EFS User Guide. // // Default is false. However, if you specify an AvailabilityZoneName, the default @@ -4436,13 +4554,15 @@ type CreateFileSystemInput struct { // Amazon EFS file systems. KmsKeyId *string `type:"string"` - // The performance mode of the file system. We recommend generalPurpose performance - // mode for most file systems. File systems using the maxIO performance mode + // The Performance mode of the file system. We recommend generalPurpose performance + // mode for all 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. The // performance mode can't be changed after the file system has been created. + // The maxIO mode is not supported on One Zone file systems. // - // The maxIO mode is not supported on file systems using One Zone storage classes. + // Due to the higher per-operation latencies with Max I/O, we recommend using + // General Purpose performance mode for all file systems. // // Default is generalPurpose. PerformanceMode *string `type:"string" enum:"PerformanceMode"` @@ -4466,9 +4586,9 @@ type CreateFileSystemInput struct { // Specifies the throughput mode for the file system. The mode can be bursting, // provisioned, or elastic. If you set ThroughputMode to provisioned, you must // also set a value for ProvisionedThroughputInMibps. After you create the file - // system, you can decrease your file system's throughput in Provisioned Throughput - // mode or change between the throughput modes, with certain time restrictions. - // For more information, see Specifying throughput with provisioned mode (https://docs.aws.amazon.com/efs/latest/ug/performance.html#provisioned-throughput) + // system, you can decrease your file system's Provisioned throughput or change + // between the throughput modes, with certain time restrictions. For more information, + // see Specifying throughput with provisioned mode (https://docs.aws.amazon.com/efs/latest/ug/performance.html#provisioned-throughput) // in the Amazon EFS User Guide. // // Default is bursting. @@ -4591,9 +4711,8 @@ type CreateMountTargetInput struct { // for the same VPC as subnet specified. SecurityGroups []*string `type:"list"` - // The ID of the subnet to add the mount target in. For file systems that use - // One Zone storage classes, use the subnet that is associated with the file - // system's Availability Zone. + // The ID of the subnet to add the mount target in. For One Zone file systems, + // use the subnet that is associated with the file system's Availability Zone. // // SubnetId is a required field SubnetId *string `min:"15" type:"string" required:"true"` @@ -4753,8 +4872,8 @@ type CreateReplicationConfigurationOutput struct { // Destinations is a required field Destinations []*Destination `type:"list" required:"true"` - // The Amazon Resource Name (ARN) of the original source Amazon EFS file system - // in the replication configuration. + // The Amazon Resource Name (ARN) of the original source EFS file system in + // the replication configuration. // // OriginalSourceFileSystemArn is a required field OriginalSourceFileSystemArn *string `type:"string" required:"true"` @@ -4770,8 +4889,7 @@ type CreateReplicationConfigurationOutput struct { // SourceFileSystemId is a required field SourceFileSystemId *string `type:"string" required:"true"` - // The Amazon Web Services Region in which the source Amazon EFS file system - // is located. + // The Amazon Web Services Region in which the source EFS file system is located. // // SourceFileSystemRegion is a required field SourceFileSystemRegion *string `min:"1" type:"string" required:"true"` @@ -5768,7 +5886,7 @@ func (s *DescribeAccountPreferencesOutput) SetResourceIdPreference(v *ResourceId type DescribeBackupPolicyInput struct { _ struct{} `type:"structure" nopayload:"true"` - // Specifies which EFS file system to retrieve the BackupPolicy for. + // Specifies which EFS file system for which to retrieve the BackupPolicy. // // FileSystemId is a required field FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"` @@ -6643,7 +6761,7 @@ type Destination struct { // Region is a required field Region *string `min:"1" type:"string" required:"true"` - // Describes the status of the destination Amazon EFS file system. + // Describes the status of the destination EFS file system. // // * The Paused state occurs as a result of opting out of the source or destination // Region after the replication configuration was created. To resume replication @@ -6709,8 +6827,8 @@ func (s *Destination) SetStatus(v string) *Destination { type DestinationToCreate struct { _ struct{} `type:"structure"` - // To create a file system that uses EFS One Zone storage, specify the name - // of the Availability Zone in which to create the destination file system. + // To create a file system that uses One Zone storage, specify the name of the + // Availability Zone in which to create the destination file system. AvailabilityZoneName *string `min:"1" type:"string"` // Specifies the Key Management Service (KMS) key that you want to use to encrypt @@ -6871,14 +6989,15 @@ type FileSystemDescription struct { _ struct{} `type:"structure"` // The unique and consistent identifier of the Availability Zone in which the - // file system's One Zone storage classes exist. For example, use1-az1 is an - // Availability Zone ID for the us-east-1 Amazon Web Services Region, and it - // has the same location in every Amazon Web Services account. + // file system is located, and is valid only for One Zone file systems. For + // example, use1-az1 is an Availability Zone ID for the us-east-1 Amazon Web + // Services Region, and it has the same location in every Amazon Web Services + // account. AvailabilityZoneId *string `type:"string"` // Describes the Amazon Web Services Availability Zone in which the file system - // is located, and is valid only for file systems using One Zone storage classes. - // For more information, see Using EFS storage classes (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) + // is located, and is valid only for One Zone file systems. For more information, + // see Using EFS storage classes (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) // in the Amazon EFS User Guide. AvailabilityZoneName *string `min:"1" type:"string"` @@ -6928,7 +7047,7 @@ type FileSystemDescription struct { // OwnerId is a required field OwnerId *string `type:"string" required:"true"` - // The performance mode of the file system. + // The Performance mode of the file system. // // PerformanceMode is a required field PerformanceMode *string `type:"string" required:"true" enum:"PerformanceMode"` @@ -7334,6 +7453,10 @@ type FileSystemSize struct { // Value is a required field Value *int64 `type:"long" required:"true"` + // The latest known metered size (in bytes) of data stored in the Archive storage + // class. + ValueInArchive *int64 `type:"long"` + // The latest known metered size (in bytes) of data stored in the Infrequent // Access storage class. ValueInIA *int64 `type:"long"` @@ -7373,6 +7496,12 @@ func (s *FileSystemSize) SetValue(v int64) *FileSystemSize { return s } +// SetValueInArchive sets the ValueInArchive field's value. +func (s *FileSystemSize) SetValueInArchive(v int64) *FileSystemSize { + s.ValueInArchive = &v + return s +} + // SetValueInIA sets the ValueInIA field's value. func (s *FileSystemSize) SetValueInIA(v int64) *FileSystemSize { s.ValueInIA = &v @@ -7853,28 +7982,33 @@ func (s *IpAddressInUse) RequestID() string { return s.RespMetadata.RequestID } -// Describes a policy used by EFS lifecycle management and EFS Intelligent-Tiering -// that specifies when to transition files into and out of the file system's -// Infrequent Access (IA) storage class. For more information, see EFS Intelligent‐Tiering -// and EFS Lifecycle Management (https://docs.aws.amazon.com/efs/latest/ug/lifecycle-management-efs.html). +// Describes a policy used by Lifecycle management that specifies when to transition +// files into and out of the Infrequent Access (IA) and Archive storage classes. +// For more information, see Managing file system storage (https://docs.aws.amazon.com/efs/latest/ug/lifecycle-management-efs.html). // // When using the put-lifecycle-configuration CLI command or the PutLifecycleConfiguration // API action, Amazon EFS requires that each LifecyclePolicy object have only // a single transition. This means that in a request body, LifecyclePolicies // must be structured as an array of LifecyclePolicy objects, one object for -// each transition, TransitionToIA, TransitionToPrimaryStorageClass. For more -// information, see the request examples in PutLifecycleConfiguration. +// each transition. For more information, see the request examples in PutLifecycleConfiguration. type LifecyclePolicy struct { _ struct{} `type:"structure"` - // Describes the period of time that a file is not accessed, after which it - // transitions to IA storage. Metadata operations such as listing the contents - // of a directory don't count as file access events. - TransitionToIA *string `type:"string" enum:"TransitionToIARules"` - - // Describes when to transition a file from IA storage to primary storage. Metadata + // The number of days after files were last accessed in primary storage (the + // Standard storage class) files at which to move them to Archive storage. Metadata // operations such as listing the contents of a directory don't count as file // access events. + TransitionToArchive *string `type:"string" enum:"TransitionToArchiveRules"` + + // The number of days after files were last accessed in primary storage (the + // Standard storage class) at which to move them to Infrequent Access (IA) storage. + // Metadata operations such as listing the contents of a directory don't count + // as file access events. + TransitionToIA *string `type:"string" enum:"TransitionToIARules"` + + // Whether to move files back to primary (Standard) storage after they are accessed + // in IA or Archive storage. Metadata operations such as listing the contents + // of a directory don't count as file access events. TransitionToPrimaryStorageClass *string `type:"string" enum:"TransitionToPrimaryStorageClassRules"` } @@ -7896,6 +8030,12 @@ func (s LifecyclePolicy) GoString() string { return s.String() } +// SetTransitionToArchive sets the TransitionToArchive field's value. +func (s *LifecyclePolicy) SetTransitionToArchive(v string) *LifecyclePolicy { + s.TransitionToArchive = &v + return s +} + // SetTransitionToIA sets the TransitionToIA field's value. func (s *LifecyclePolicy) SetTransitionToIA(v string) *LifecyclePolicy { s.TransitionToIA = &v @@ -9018,20 +9158,30 @@ type PutLifecycleConfigurationInput struct { FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"` // An array of LifecyclePolicy objects that define the file system's LifecycleConfiguration - // object. A LifecycleConfiguration object informs EFS lifecycle management - // and EFS Intelligent-Tiering of the following: + // object. A LifecycleConfiguration object informs EFS Lifecycle management + // of the following: + // + // * TransitionToIA – When to move files in the file system from primary + // storage (Standard storage class) into the Infrequent Access (IA) storage. // - // * When to move files in the file system from primary storage to the IA - // storage class. + // * TransitionToArchive – When to move files in the file system from their + // current storage class (either IA or Standard storage) into the Archive + // storage. File systems cannot transition into Archive storage before transitioning + // into IA storage. Therefore, TransitionToArchive must either not be set + // or must be later than TransitionToIA. The Archive storage class is available + // only for file systems that use the Elastic Throughput mode and the General + // Purpose Performance mode. // - // * When to move files that are in IA storage to primary storage. + // * TransitionToPrimaryStorageClass – Whether to move files in the file + // system back to primary storage (Standard storage class) after they are + // accessed in IA or Archive storage. // // When using the put-lifecycle-configuration CLI command or the PutLifecycleConfiguration // API action, Amazon EFS requires that each LifecyclePolicy object have only // a single transition. This means that in a request body, LifecyclePolicies // must be structured as an array of LifecyclePolicy objects, one object for - // each transition, TransitionToIA, TransitionToPrimaryStorageClass. See the - // example requests in the following section for more information. + // each storage transition. See the example requests in the following section + // for more information. // // LifecyclePolicies is a required field LifecyclePolicies []*LifecyclePolicy `type:"list" required:"true"` @@ -9132,8 +9282,8 @@ type ReplicationConfigurationDescription struct { // Destinations is a required field Destinations []*Destination `type:"list" required:"true"` - // The Amazon Resource Name (ARN) of the original source Amazon EFS file system - // in the replication configuration. + // The Amazon Resource Name (ARN) of the original source EFS file system in + // the replication configuration. // // OriginalSourceFileSystemArn is a required field OriginalSourceFileSystemArn *string `type:"string" required:"true"` @@ -9149,8 +9299,7 @@ type ReplicationConfigurationDescription struct { // SourceFileSystemId is a required field SourceFileSystemId *string `type:"string" required:"true"` - // The Amazon Web Services Region in which the source Amazon EFS file system - // is located. + // The Amazon Web Services Region in which the source EFS file system is located. // // SourceFileSystemRegion is a required field SourceFileSystemRegion *string `min:"1" type:"string" required:"true"` @@ -10279,14 +10428,15 @@ type UpdateFileSystemOutput struct { _ struct{} `type:"structure"` // The unique and consistent identifier of the Availability Zone in which the - // file system's One Zone storage classes exist. For example, use1-az1 is an - // Availability Zone ID for the us-east-1 Amazon Web Services Region, and it - // has the same location in every Amazon Web Services account. + // file system is located, and is valid only for One Zone file systems. For + // example, use1-az1 is an Availability Zone ID for the us-east-1 Amazon Web + // Services Region, and it has the same location in every Amazon Web Services + // account. AvailabilityZoneId *string `type:"string"` // Describes the Amazon Web Services Availability Zone in which the file system - // is located, and is valid only for file systems using One Zone storage classes. - // For more information, see Using EFS storage classes (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) + // is located, and is valid only for One Zone file systems. For more information, + // see Using EFS storage classes (https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) // in the Amazon EFS User Guide. AvailabilityZoneName *string `min:"1" type:"string"` @@ -10336,7 +10486,7 @@ type UpdateFileSystemOutput struct { // OwnerId is a required field OwnerId *string `type:"string" required:"true"` - // The performance mode of the file system. + // The Performance mode of the file system. // // PerformanceMode is a required field PerformanceMode *string `type:"string" required:"true" enum:"PerformanceMode"` @@ -10726,6 +10876,50 @@ func ThroughputMode_Values() []string { } } +const ( + // TransitionToArchiveRulesAfter1Day is a TransitionToArchiveRules enum value + TransitionToArchiveRulesAfter1Day = "AFTER_1_DAY" + + // TransitionToArchiveRulesAfter7Days is a TransitionToArchiveRules enum value + TransitionToArchiveRulesAfter7Days = "AFTER_7_DAYS" + + // TransitionToArchiveRulesAfter14Days is a TransitionToArchiveRules enum value + TransitionToArchiveRulesAfter14Days = "AFTER_14_DAYS" + + // TransitionToArchiveRulesAfter30Days is a TransitionToArchiveRules enum value + TransitionToArchiveRulesAfter30Days = "AFTER_30_DAYS" + + // TransitionToArchiveRulesAfter60Days is a TransitionToArchiveRules enum value + TransitionToArchiveRulesAfter60Days = "AFTER_60_DAYS" + + // TransitionToArchiveRulesAfter90Days is a TransitionToArchiveRules enum value + TransitionToArchiveRulesAfter90Days = "AFTER_90_DAYS" + + // TransitionToArchiveRulesAfter180Days is a TransitionToArchiveRules enum value + TransitionToArchiveRulesAfter180Days = "AFTER_180_DAYS" + + // TransitionToArchiveRulesAfter270Days is a TransitionToArchiveRules enum value + TransitionToArchiveRulesAfter270Days = "AFTER_270_DAYS" + + // TransitionToArchiveRulesAfter365Days is a TransitionToArchiveRules enum value + TransitionToArchiveRulesAfter365Days = "AFTER_365_DAYS" +) + +// TransitionToArchiveRules_Values returns all elements of the TransitionToArchiveRules enum +func TransitionToArchiveRules_Values() []string { + return []string{ + TransitionToArchiveRulesAfter1Day, + TransitionToArchiveRulesAfter7Days, + TransitionToArchiveRulesAfter14Days, + TransitionToArchiveRulesAfter30Days, + TransitionToArchiveRulesAfter60Days, + TransitionToArchiveRulesAfter90Days, + TransitionToArchiveRulesAfter180Days, + TransitionToArchiveRulesAfter270Days, + TransitionToArchiveRulesAfter365Days, + } +} + const ( // TransitionToIARulesAfter7Days is a TransitionToIARules enum value TransitionToIARulesAfter7Days = "AFTER_7_DAYS" @@ -10744,6 +10938,15 @@ const ( // TransitionToIARulesAfter1Day is a TransitionToIARules enum value TransitionToIARulesAfter1Day = "AFTER_1_DAY" + + // TransitionToIARulesAfter180Days is a TransitionToIARules enum value + TransitionToIARulesAfter180Days = "AFTER_180_DAYS" + + // TransitionToIARulesAfter270Days is a TransitionToIARules enum value + TransitionToIARulesAfter270Days = "AFTER_270_DAYS" + + // TransitionToIARulesAfter365Days is a TransitionToIARules enum value + TransitionToIARulesAfter365Days = "AFTER_365_DAYS" ) // TransitionToIARules_Values returns all elements of the TransitionToIARules enum @@ -10755,6 +10958,9 @@ func TransitionToIARules_Values() []string { TransitionToIARulesAfter60Days, TransitionToIARulesAfter90Days, TransitionToIARulesAfter1Day, + TransitionToIARulesAfter180Days, + TransitionToIARulesAfter270Days, + TransitionToIARulesAfter365Days, } } diff --git a/service/efs/efsiface/interface.go b/service/efs/efsiface/interface.go index 3abe0c26721..c1b86d1aea0 100644 --- a/service/efs/efsiface/interface.go +++ b/service/efs/efsiface/interface.go @@ -142,10 +142,16 @@ type EFSAPI interface { DescribeMountTargetsWithContext(aws.Context, *efs.DescribeMountTargetsInput, ...request.Option) (*efs.DescribeMountTargetsOutput, error) DescribeMountTargetsRequest(*efs.DescribeMountTargetsInput) (*request.Request, *efs.DescribeMountTargetsOutput) + DescribeMountTargetsPages(*efs.DescribeMountTargetsInput, func(*efs.DescribeMountTargetsOutput, bool) bool) error + DescribeMountTargetsPagesWithContext(aws.Context, *efs.DescribeMountTargetsInput, func(*efs.DescribeMountTargetsOutput, bool) bool, ...request.Option) error + DescribeReplicationConfigurations(*efs.DescribeReplicationConfigurationsInput) (*efs.DescribeReplicationConfigurationsOutput, error) DescribeReplicationConfigurationsWithContext(aws.Context, *efs.DescribeReplicationConfigurationsInput, ...request.Option) (*efs.DescribeReplicationConfigurationsOutput, error) DescribeReplicationConfigurationsRequest(*efs.DescribeReplicationConfigurationsInput) (*request.Request, *efs.DescribeReplicationConfigurationsOutput) + DescribeReplicationConfigurationsPages(*efs.DescribeReplicationConfigurationsInput, func(*efs.DescribeReplicationConfigurationsOutput, bool) bool) error + DescribeReplicationConfigurationsPagesWithContext(aws.Context, *efs.DescribeReplicationConfigurationsInput, func(*efs.DescribeReplicationConfigurationsOutput, bool) bool, ...request.Option) error + DescribeTags(*efs.DescribeTagsInput) (*efs.DescribeTagsOutput, error) DescribeTagsWithContext(aws.Context, *efs.DescribeTagsInput, ...request.Option) (*efs.DescribeTagsOutput, error) DescribeTagsRequest(*efs.DescribeTagsInput) (*request.Request, *efs.DescribeTagsOutput) diff --git a/service/eks/api.go b/service/eks/api.go index c4defce0a79..9cb5b05380a 100644 --- a/service/eks/api.go +++ b/service/eks/api.go @@ -395,6 +395,23 @@ func (c *EKS) CreateClusterRequest(input *CreateClusterInput) (req *request.Requ // cluster's control plane over the Kubernetes API server endpoint and a certificate // file that is created for your cluster. // +// You can use the endpointPublicAccess and endpointPrivateAccess parameters +// to enable or disable public and private access to your cluster's Kubernetes +// API server endpoint. By default, public access is enabled, and private access +// is disabled. For more information, see Amazon EKS Cluster Endpoint Access +// Control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) +// in the Amazon EKS User Guide . +// +// You can use the logging parameter to enable or disable exporting the Kubernetes +// control plane logs for your cluster to CloudWatch Logs. By default, cluster +// control plane logs aren't exported to CloudWatch Logs. For more information, +// see Amazon EKS Cluster Control Plane Logs (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html) +// in the Amazon EKS User Guide . +// +// CloudWatch Logs ingestion, archive storage, and data scanning rates apply +// to exported control plane logs. For more information, see CloudWatch Pricing +// (http://aws.amazon.com/cloudwatch/pricing/). +// // In most cases, it takes several minutes to create a cluster. After you create // an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate // with the API server and launch nodes into your cluster. For more information, @@ -805,6 +822,119 @@ func (c *EKS) CreateNodegroupWithContext(ctx aws.Context, input *CreateNodegroup return out, req.Send() } +const opCreatePodIdentityAssociation = "CreatePodIdentityAssociation" + +// CreatePodIdentityAssociationRequest generates a "aws/request.Request" representing the +// client's request for the CreatePodIdentityAssociation 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 CreatePodIdentityAssociation for more information on using the CreatePodIdentityAssociation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreatePodIdentityAssociationRequest method. +// req, resp := client.CreatePodIdentityAssociationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreatePodIdentityAssociation +func (c *EKS) CreatePodIdentityAssociationRequest(input *CreatePodIdentityAssociationInput) (req *request.Request, output *CreatePodIdentityAssociationOutput) { + op := &request.Operation{ + Name: opCreatePodIdentityAssociation, + HTTPMethod: "POST", + HTTPPath: "/clusters/{name}/pod-identity-associations", + } + + if input == nil { + input = &CreatePodIdentityAssociationInput{} + } + + output = &CreatePodIdentityAssociationOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreatePodIdentityAssociation API operation for Amazon Elastic Kubernetes Service. +// +// Creates an EKS Pod Identity association between a service account in an Amazon +// EKS cluster and an IAM role with EKS Pod Identity. Use EKS Pod Identity to +// give temporary IAM credentials to pods and the credentials are rotated automatically. +// +// Amazon EKS Pod Identity associations provide the ability to manage credentials +// for your applications, similar to the way that 7EC2l instance profiles provide +// credentials to Amazon EC2 instances. +// +// If a pod uses a service account that has an association, Amazon EKS sets +// environment variables in the containers of the pod. The environment variables +// configure the Amazon Web Services SDKs, including the Command Line Interface, +// to use the EKS Pod Identity credentials. +// +// Pod Identity is a simpler method than IAM roles for service accounts, as +// this method doesn't use OIDC identity providers. Additionally, you can configure +// a role for Pod Identity once, and reuse it across clusters. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Kubernetes Service's +// API operation CreatePodIdentityAssociation for usage and error information. +// +// Returned Error Types: +// +// - ServerException +// These errors are usually caused by a server-side issue. +// +// - ResourceNotFoundException +// The specified resource could not be found. You can view your available clusters +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups are Region-specific. +// +// - InvalidRequestException +// The request is invalid given the state of the cluster. Check the state of +// the cluster and the associated operations. +// +// - InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// - ResourceLimitExceededException +// You have encountered a service limit on the specified resource. +// +// - ResourceInUseException +// The specified resource is in use. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreatePodIdentityAssociation +func (c *EKS) CreatePodIdentityAssociation(input *CreatePodIdentityAssociationInput) (*CreatePodIdentityAssociationOutput, error) { + req, out := c.CreatePodIdentityAssociationRequest(input) + return out, req.Send() +} + +// CreatePodIdentityAssociationWithContext is the same as CreatePodIdentityAssociation with the addition of +// the ability to pass a context and additional request options. +// +// See CreatePodIdentityAssociation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EKS) CreatePodIdentityAssociationWithContext(ctx aws.Context, input *CreatePodIdentityAssociationInput, opts ...request.Option) (*CreatePodIdentityAssociationOutput, error) { + req, out := c.CreatePodIdentityAssociationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteAddon = "DeleteAddon" // DeleteAddonRequest generates a "aws/request.Request" representing the @@ -1056,10 +1186,10 @@ func (c *EKS) DeleteEksAnywhereSubscriptionRequest(input *DeleteEksAnywhereSubsc // DeleteEksAnywhereSubscription API operation for Amazon Elastic Kubernetes Service. // -// Deletes an expired / inactive subscription. Deleting inactive subscriptions +// Deletes an expired or inactive subscription. Deleting inactive subscriptions // removes them from the Amazon Web Services Management Console view and from // list/describe API responses. Subscriptions can only be cancelled within 7 -// days of creation, and are cancelled by creating a ticket in the Amazon Web +// days of creation and are cancelled by creating a ticket in the Amazon Web // Services Support Center. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -1315,6 +1445,103 @@ func (c *EKS) DeleteNodegroupWithContext(ctx aws.Context, input *DeleteNodegroup return out, req.Send() } +const opDeletePodIdentityAssociation = "DeletePodIdentityAssociation" + +// DeletePodIdentityAssociationRequest generates a "aws/request.Request" representing the +// client's request for the DeletePodIdentityAssociation 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 DeletePodIdentityAssociation for more information on using the DeletePodIdentityAssociation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeletePodIdentityAssociationRequest method. +// req, resp := client.DeletePodIdentityAssociationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeletePodIdentityAssociation +func (c *EKS) DeletePodIdentityAssociationRequest(input *DeletePodIdentityAssociationInput) (req *request.Request, output *DeletePodIdentityAssociationOutput) { + op := &request.Operation{ + Name: opDeletePodIdentityAssociation, + HTTPMethod: "DELETE", + HTTPPath: "/clusters/{name}/pod-identity-associations/{associationId}", + } + + if input == nil { + input = &DeletePodIdentityAssociationInput{} + } + + output = &DeletePodIdentityAssociationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeletePodIdentityAssociation API operation for Amazon Elastic Kubernetes Service. +// +// Deletes a EKS Pod Identity association. +// +// The temporary Amazon Web Services credentials from the previous IAM role +// session might still be valid until the session expiry. If you need to immediately +// revoke the temporary session credentials, then go to the role in the IAM +// console. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Kubernetes Service's +// API operation DeletePodIdentityAssociation for usage and error information. +// +// Returned Error Types: +// +// - ServerException +// These errors are usually caused by a server-side issue. +// +// - ResourceNotFoundException +// The specified resource could not be found. You can view your available clusters +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups are Region-specific. +// +// - InvalidRequestException +// The request is invalid given the state of the cluster. Check the state of +// the cluster and the associated operations. +// +// - InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeletePodIdentityAssociation +func (c *EKS) DeletePodIdentityAssociation(input *DeletePodIdentityAssociationInput) (*DeletePodIdentityAssociationOutput, error) { + req, out := c.DeletePodIdentityAssociationRequest(input) + return out, req.Send() +} + +// DeletePodIdentityAssociationWithContext is the same as DeletePodIdentityAssociation with the addition of +// the ability to pass a context and additional request options. +// +// See DeletePodIdentityAssociation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EKS) DeletePodIdentityAssociationWithContext(ctx aws.Context, input *DeletePodIdentityAssociationInput, opts ...request.Option) (*DeletePodIdentityAssociationOutput, error) { + req, out := c.DeletePodIdentityAssociationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeregisterCluster = "DeregisterCluster" // DeregisterClusterRequest generates a "aws/request.Request" representing the @@ -2235,6 +2462,103 @@ func (c *EKS) DescribeNodegroupWithContext(ctx aws.Context, input *DescribeNodeg return out, req.Send() } +const opDescribePodIdentityAssociation = "DescribePodIdentityAssociation" + +// DescribePodIdentityAssociationRequest generates a "aws/request.Request" representing the +// client's request for the DescribePodIdentityAssociation 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 DescribePodIdentityAssociation for more information on using the DescribePodIdentityAssociation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DescribePodIdentityAssociationRequest method. +// req, resp := client.DescribePodIdentityAssociationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribePodIdentityAssociation +func (c *EKS) DescribePodIdentityAssociationRequest(input *DescribePodIdentityAssociationInput) (req *request.Request, output *DescribePodIdentityAssociationOutput) { + op := &request.Operation{ + Name: opDescribePodIdentityAssociation, + HTTPMethod: "GET", + HTTPPath: "/clusters/{name}/pod-identity-associations/{associationId}", + } + + if input == nil { + input = &DescribePodIdentityAssociationInput{} + } + + output = &DescribePodIdentityAssociationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribePodIdentityAssociation API operation for Amazon Elastic Kubernetes Service. +// +// Returns descriptive information about an EKS Pod Identity association. +// +// This action requires the ID of the association. You can get the ID from the +// response to the CreatePodIdentityAssocation for newly created associations. +// Or, you can list the IDs for associations with ListPodIdentityAssociations +// and filter the list by namespace or service 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 Elastic Kubernetes Service's +// API operation DescribePodIdentityAssociation for usage and error information. +// +// Returned Error Types: +// +// - ServerException +// These errors are usually caused by a server-side issue. +// +// - ResourceNotFoundException +// The specified resource could not be found. You can view your available clusters +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups are Region-specific. +// +// - InvalidRequestException +// The request is invalid given the state of the cluster. Check the state of +// the cluster and the associated operations. +// +// - InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribePodIdentityAssociation +func (c *EKS) DescribePodIdentityAssociation(input *DescribePodIdentityAssociationInput) (*DescribePodIdentityAssociationOutput, error) { + req, out := c.DescribePodIdentityAssociationRequest(input) + return out, req.Send() +} + +// DescribePodIdentityAssociationWithContext is the same as DescribePodIdentityAssociation with the addition of +// the ability to pass a context and additional request options. +// +// See DescribePodIdentityAssociation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EKS) DescribePodIdentityAssociationWithContext(ctx aws.Context, input *DescribePodIdentityAssociationInput, opts ...request.Option) (*DescribePodIdentityAssociationOutput, error) { + req, out := c.DescribePodIdentityAssociationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeUpdate = "DescribeUpdate" // DescribeUpdateRequest generates a "aws/request.Request" representing the @@ -2773,6 +3097,12 @@ func (c *EKS) ListEksAnywhereSubscriptionsRequest(input *ListEksAnywhereSubscrip Name: opListEksAnywhereSubscriptions, HTTPMethod: "GET", HTTPPath: "/eks-anywhere-subscriptions", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, } if input == nil { @@ -2835,6 +3165,57 @@ func (c *EKS) ListEksAnywhereSubscriptionsWithContext(ctx aws.Context, input *Li return out, req.Send() } +// ListEksAnywhereSubscriptionsPages iterates over the pages of a ListEksAnywhereSubscriptions operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListEksAnywhereSubscriptions 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 ListEksAnywhereSubscriptions operation. +// pageNum := 0 +// err := client.ListEksAnywhereSubscriptionsPages(params, +// func(page *eks.ListEksAnywhereSubscriptionsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *EKS) ListEksAnywhereSubscriptionsPages(input *ListEksAnywhereSubscriptionsInput, fn func(*ListEksAnywhereSubscriptionsOutput, bool) bool) error { + return c.ListEksAnywhereSubscriptionsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListEksAnywhereSubscriptionsPagesWithContext same as ListEksAnywhereSubscriptionsPages 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 *EKS) ListEksAnywhereSubscriptionsPagesWithContext(ctx aws.Context, input *ListEksAnywhereSubscriptionsInput, fn func(*ListEksAnywhereSubscriptionsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListEksAnywhereSubscriptionsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListEksAnywhereSubscriptionsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListEksAnywhereSubscriptionsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListFargateProfiles = "ListFargateProfiles" // ListFargateProfilesRequest generates a "aws/request.Request" representing the @@ -3297,6 +3678,157 @@ func (c *EKS) ListNodegroupsPagesWithContext(ctx aws.Context, input *ListNodegro return p.Err() } +const opListPodIdentityAssociations = "ListPodIdentityAssociations" + +// ListPodIdentityAssociationsRequest generates a "aws/request.Request" representing the +// client's request for the ListPodIdentityAssociations 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 ListPodIdentityAssociations for more information on using the ListPodIdentityAssociations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListPodIdentityAssociationsRequest method. +// req, resp := client.ListPodIdentityAssociationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListPodIdentityAssociations +func (c *EKS) ListPodIdentityAssociationsRequest(input *ListPodIdentityAssociationsInput) (req *request.Request, output *ListPodIdentityAssociationsOutput) { + op := &request.Operation{ + Name: opListPodIdentityAssociations, + HTTPMethod: "GET", + HTTPPath: "/clusters/{name}/pod-identity-associations", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListPodIdentityAssociationsInput{} + } + + output = &ListPodIdentityAssociationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListPodIdentityAssociations API operation for Amazon Elastic Kubernetes Service. +// +// List the EKS Pod Identity associations in a cluster. You can filter the list +// by the namespace that the association is in or the service account that the +// association uses. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Kubernetes Service's +// API operation ListPodIdentityAssociations for usage and error information. +// +// Returned Error Types: +// +// - ServerException +// These errors are usually caused by a server-side issue. +// +// - ResourceNotFoundException +// The specified resource could not be found. You can view your available clusters +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups are Region-specific. +// +// - InvalidRequestException +// The request is invalid given the state of the cluster. Check the state of +// the cluster and the associated operations. +// +// - InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListPodIdentityAssociations +func (c *EKS) ListPodIdentityAssociations(input *ListPodIdentityAssociationsInput) (*ListPodIdentityAssociationsOutput, error) { + req, out := c.ListPodIdentityAssociationsRequest(input) + return out, req.Send() +} + +// ListPodIdentityAssociationsWithContext is the same as ListPodIdentityAssociations with the addition of +// the ability to pass a context and additional request options. +// +// See ListPodIdentityAssociations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EKS) ListPodIdentityAssociationsWithContext(ctx aws.Context, input *ListPodIdentityAssociationsInput, opts ...request.Option) (*ListPodIdentityAssociationsOutput, error) { + req, out := c.ListPodIdentityAssociationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListPodIdentityAssociationsPages iterates over the pages of a ListPodIdentityAssociations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListPodIdentityAssociations 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 ListPodIdentityAssociations operation. +// pageNum := 0 +// err := client.ListPodIdentityAssociationsPages(params, +// func(page *eks.ListPodIdentityAssociationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *EKS) ListPodIdentityAssociationsPages(input *ListPodIdentityAssociationsInput, fn func(*ListPodIdentityAssociationsOutput, bool) bool) error { + return c.ListPodIdentityAssociationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListPodIdentityAssociationsPagesWithContext same as ListPodIdentityAssociationsPages 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 *EKS) ListPodIdentityAssociationsPagesWithContext(ctx aws.Context, input *ListPodIdentityAssociationsInput, fn func(*ListPodIdentityAssociationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListPodIdentityAssociationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListPodIdentityAssociationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListPodIdentityAssociationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListTagsForResource = "ListTagsForResource" // ListTagsForResourceRequest generates a "aws/request.Request" representing the @@ -3999,7 +4531,13 @@ func (c *EKS) UpdateClusterConfigRequest(input *UpdateClusterConfigInput) (req * // see Amazon EKS cluster endpoint access control (https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) // in the Amazon EKS User Guide . // -// You can't update the subnets or security group IDs for an existing cluster. +// You can also use this API operation to choose different subnets and security +// groups for the cluster. You must specify at least two subnets that are in +// different Availability Zones. You can't change which VPC the subnets are +// from, the subnets must be in the same VPC as the subnets that the cluster +// was created with. For more information about the VPC requirements, see https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html +// (https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) in the +// Amazon EKS User Guide . // // Cluster updates are asynchronous, and they should finish within a few minutes. // During an update, the cluster status moves to UPDATING (this status transition @@ -4444,37 +4982,128 @@ func (c *EKS) UpdateNodegroupVersionRequest(input *UpdateNodegroupVersionInput) // You cannot roll back a node group to an earlier Kubernetes version or AMI // version. // -// When a node in a managed node group is terminated due to a scaling action -// or update, the pods in that node are drained first. Amazon EKS attempts to -// drain the nodes gracefully and will fail if it is unable to do so. You can -// force the update if Amazon EKS is unable to drain the nodes as a result of -// a pod disruption budget issue. +// When a node in a managed node group is terminated due to a scaling action +// or update, the pods in that node are drained first. Amazon EKS attempts to +// drain the nodes gracefully and will fail if it is unable to do so. You can +// force the update if Amazon EKS is unable to drain the nodes as a result of +// a pod disruption budget issue. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Kubernetes Service's +// API operation UpdateNodegroupVersion for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// - ClientException +// These errors are usually caused by a client action. Actions can include using +// an action or resource on behalf of an IAM principal (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) +// that doesn't have permissions to use the action or resource or specifying +// an identifier that is not valid. +// +// - ServerException +// These errors are usually caused by a server-side issue. +// +// - ResourceInUseException +// The specified resource is in use. +// +// - ResourceNotFoundException +// The specified resource could not be found. You can view your available clusters +// with ListClusters. You can view your available managed node groups with ListNodegroups. +// Amazon EKS clusters and node groups are Region-specific. +// +// - InvalidRequestException +// The request is invalid given the state of the cluster. Check the state of +// the cluster and the associated operations. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupVersion +func (c *EKS) UpdateNodegroupVersion(input *UpdateNodegroupVersionInput) (*UpdateNodegroupVersionOutput, error) { + req, out := c.UpdateNodegroupVersionRequest(input) + return out, req.Send() +} + +// UpdateNodegroupVersionWithContext is the same as UpdateNodegroupVersion with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateNodegroupVersion for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EKS) UpdateNodegroupVersionWithContext(ctx aws.Context, input *UpdateNodegroupVersionInput, opts ...request.Option) (*UpdateNodegroupVersionOutput, error) { + req, out := c.UpdateNodegroupVersionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdatePodIdentityAssociation = "UpdatePodIdentityAssociation" + +// UpdatePodIdentityAssociationRequest generates a "aws/request.Request" representing the +// client's request for the UpdatePodIdentityAssociation 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 UpdatePodIdentityAssociation for more information on using the UpdatePodIdentityAssociation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdatePodIdentityAssociationRequest method. +// req, resp := client.UpdatePodIdentityAssociationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdatePodIdentityAssociation +func (c *EKS) UpdatePodIdentityAssociationRequest(input *UpdatePodIdentityAssociationInput) (req *request.Request, output *UpdatePodIdentityAssociationOutput) { + op := &request.Operation{ + Name: opUpdatePodIdentityAssociation, + HTTPMethod: "POST", + HTTPPath: "/clusters/{name}/pod-identity-associations/{associationId}", + } + + if input == nil { + input = &UpdatePodIdentityAssociationInput{} + } + + output = &UpdatePodIdentityAssociationOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdatePodIdentityAssociation API operation for Amazon Elastic Kubernetes Service. +// +// Updates a EKS Pod Identity association. Only the IAM role can be changed; +// an association can't be moved between clusters, namespaces, or service accounts. +// If you need to edit the namespace or service account, you need to remove +// the association and then create a new association with your desired settings. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 Kubernetes Service's -// API operation UpdateNodegroupVersion for usage and error information. +// API operation UpdatePodIdentityAssociation for usage and error information. // // Returned Error Types: // -// - InvalidParameterException -// The specified parameter is invalid. Review the available parameters for the -// API request. -// -// - ClientException -// These errors are usually caused by a client action. Actions can include using -// an action or resource on behalf of an IAM principal (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) -// that doesn't have permissions to use the action or resource or specifying -// an identifier that is not valid. -// // - ServerException // These errors are usually caused by a server-side issue. // -// - ResourceInUseException -// The specified resource is in use. -// // - ResourceNotFoundException // The specified resource could not be found. You can view your available clusters // with ListClusters. You can view your available managed node groups with ListNodegroups. @@ -4484,23 +5113,27 @@ func (c *EKS) UpdateNodegroupVersionRequest(input *UpdateNodegroupVersionInput) // The request is invalid given the state of the cluster. Check the state of // the cluster and the associated operations. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupVersion -func (c *EKS) UpdateNodegroupVersion(input *UpdateNodegroupVersionInput) (*UpdateNodegroupVersionOutput, error) { - req, out := c.UpdateNodegroupVersionRequest(input) +// - InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdatePodIdentityAssociation +func (c *EKS) UpdatePodIdentityAssociation(input *UpdatePodIdentityAssociationInput) (*UpdatePodIdentityAssociationOutput, error) { + req, out := c.UpdatePodIdentityAssociationRequest(input) return out, req.Send() } -// UpdateNodegroupVersionWithContext is the same as UpdateNodegroupVersion with the addition of +// UpdatePodIdentityAssociationWithContext is the same as UpdatePodIdentityAssociation with the addition of // the ability to pass a context and additional request options. // -// See UpdateNodegroupVersion for details on how to use this API operation. +// See UpdatePodIdentityAssociation for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *EKS) UpdateNodegroupVersionWithContext(ctx aws.Context, input *UpdateNodegroupVersionInput, opts ...request.Option) (*UpdateNodegroupVersionOutput, error) { - req, out := c.UpdateNodegroupVersionRequest(input) +func (c *EKS) UpdatePodIdentityAssociationWithContext(ctx aws.Context, input *UpdatePodIdentityAssociationInput, opts ...request.Option) (*UpdatePodIdentityAssociationOutput, error) { + req, out := c.UpdatePodIdentityAssociationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() @@ -4516,6 +5149,7 @@ type AccessDeniedException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // You do not have sufficient access to perform this action. Message_ *string `locationName:"message" type:"string"` } @@ -5223,6 +5857,8 @@ type BadRequestException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // This exception is thrown if the request contains a semantic error. The precise + // meaning will depend on the API, and will be documented in the error message. Message_ *string `locationName:"message" type:"string"` } @@ -5324,11 +5960,16 @@ type ClientException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // The Amazon EKS add-on name associated with the exception. AddonName *string `locationName:"addonName" type:"string"` // The Amazon EKS cluster associated with the exception. ClusterName *string `locationName:"clusterName" type:"string"` + // These errors are usually caused by a client action. Actions can include using + // an action or resource on behalf of an IAM principal (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) + // that doesn't have permissions to use the action or resource or specifying + // an identifier that is not valid. Message_ *string `locationName:"message" type:"string"` // The Amazon EKS managed node group associated with the exception. @@ -6366,7 +7007,7 @@ type CreateEksAnywhereSubscriptionInput struct { ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"` // The number of licenses to purchase with the subscription. Valid values are - // between 1 and 1000. This value cannot be changed after creating the subscription. + // between 1 and 100. This value can't be changed after creating the subscription. LicenseQuantity *int64 `locationName:"licenseQuantity" type:"integer"` // The license type for all licenses in the subscription. Valid value is CLUSTER. @@ -6384,7 +7025,7 @@ type CreateEksAnywhereSubscriptionInput struct { Name *string `locationName:"name" min:"1" type:"string" required:"true"` // The metadata for a subscription to assist with categorization and organization. - // Each tag consists of a key and an optional value. Subscription tags do not + // Each tag consists of a key and an optional value. Subscription tags don't // propagate to any other resources associated with the subscription. Tags map[string]*string `locationName:"tags" min:"1" type:"map"` @@ -7013,6 +7654,183 @@ func (s *CreateNodegroupOutput) SetNodegroup(v *Nodegroup) *CreateNodegroupOutpu return s } +type CreatePodIdentityAssociationInput struct { + _ struct{} `type:"structure"` + + // Unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"` + + // The name of the cluster to create the association in. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The name of the Kubernetes namespace inside the cluster to create the association + // in. The service account and the pods that use the service account must be + // in this namespace. + // + // Namespace is a required field + Namespace *string `locationName:"namespace" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the IAM role to associate with the service + // account. The EKS Pod Identity agent manages credentials to assume this role + // for applications in the containers in the pods that use this service account. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // The name of the Kubernetes service account inside the cluster to associate + // the IAM credentials with. + // + // ServiceAccount is a required field + ServiceAccount *string `locationName:"serviceAccount" type:"string" required:"true"` + + // The metadata that you apply to a resource to assist with categorization and + // organization. Each tag consists of a key and an optional value. You define + // both. + // + // The following basic restrictions apply to tags: + // + // * Maximum number of tags per resource – 50 + // + // * For each resource, each tag key must be unique, and each tag key can + // have only one value. + // + // * Maximum key length – 128 Unicode characters in UTF-8 + // + // * Maximum value length – 256 Unicode characters in UTF-8 + // + // * If your tagging schema is used across multiple services and resources, + // remember that other services may have restrictions on allowed characters. + // Generally allowed characters are: letters, numbers, and spaces representable + // in UTF-8, and the following characters: + - = . _ : / @. + // + // * Tag keys and values are case-sensitive. + // + // * Do not use aws:, AWS:, or any upper or lowercase combination of such + // as a prefix for either keys or values as it is reserved for Amazon Web + // Services use. You cannot edit or delete tag keys or values with this prefix. + // Tags with this prefix do not count against your tags per resource limit. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreatePodIdentityAssociationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreatePodIdentityAssociationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreatePodIdentityAssociationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreatePodIdentityAssociationInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) + } + if s.Namespace == nil { + invalidParams.Add(request.NewErrParamRequired("Namespace")) + } + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.ServiceAccount == nil { + invalidParams.Add(request.NewErrParamRequired("ServiceAccount")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientRequestToken sets the ClientRequestToken field's value. +func (s *CreatePodIdentityAssociationInput) SetClientRequestToken(v string) *CreatePodIdentityAssociationInput { + s.ClientRequestToken = &v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *CreatePodIdentityAssociationInput) SetClusterName(v string) *CreatePodIdentityAssociationInput { + s.ClusterName = &v + return s +} + +// SetNamespace sets the Namespace field's value. +func (s *CreatePodIdentityAssociationInput) SetNamespace(v string) *CreatePodIdentityAssociationInput { + s.Namespace = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *CreatePodIdentityAssociationInput) SetRoleArn(v string) *CreatePodIdentityAssociationInput { + s.RoleArn = &v + return s +} + +// SetServiceAccount sets the ServiceAccount field's value. +func (s *CreatePodIdentityAssociationInput) SetServiceAccount(v string) *CreatePodIdentityAssociationInput { + s.ServiceAccount = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreatePodIdentityAssociationInput) SetTags(v map[string]*string) *CreatePodIdentityAssociationInput { + s.Tags = v + return s +} + +type CreatePodIdentityAssociationOutput struct { + _ struct{} `type:"structure"` + + // The full description of your new association. + // + // The description includes an ID for the association. Use the ID of the association + // in further actions to manage the association. + Association *PodIdentityAssociation `locationName:"association" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreatePodIdentityAssociationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreatePodIdentityAssociationOutput) GoString() string { + return s.String() +} + +// SetAssociation sets the Association field's value. +func (s *CreatePodIdentityAssociationOutput) SetAssociation(v *PodIdentityAssociation) *CreatePodIdentityAssociationOutput { + s.Association = v + return s +} + type DeleteAddonInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -7362,7 +8180,104 @@ type DeleteFargateProfileOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteFargateProfileOutput) String() string { +func (s DeleteFargateProfileOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteFargateProfileOutput) GoString() string { + return s.String() +} + +// SetFargateProfile sets the FargateProfile field's value. +func (s *DeleteFargateProfileOutput) SetFargateProfile(v *FargateProfile) *DeleteFargateProfileOutput { + s.FargateProfile = v + return s +} + +type DeleteNodegroupInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The name of the Amazon EKS cluster that is associated with your node group. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The name of the node group to delete. + // + // NodegroupName is a required field + NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteNodegroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteNodegroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteNodegroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteNodegroupInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) + } + if s.NodegroupName == nil { + invalidParams.Add(request.NewErrParamRequired("NodegroupName")) + } + if s.NodegroupName != nil && len(*s.NodegroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClusterName sets the ClusterName field's value. +func (s *DeleteNodegroupInput) SetClusterName(v string) *DeleteNodegroupInput { + s.ClusterName = &v + return s +} + +// SetNodegroupName sets the NodegroupName field's value. +func (s *DeleteNodegroupInput) SetNodegroupName(v string) *DeleteNodegroupInput { + s.NodegroupName = &v + return s +} + +type DeleteNodegroupOutput struct { + _ struct{} `type:"structure"` + + // The full description of your deleted node group. + Nodegroup *Nodegroup `locationName:"nodegroup" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteNodegroupOutput) String() string { return awsutil.Prettify(s) } @@ -7371,28 +8286,28 @@ func (s DeleteFargateProfileOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteFargateProfileOutput) GoString() string { +func (s DeleteNodegroupOutput) GoString() string { return s.String() } -// SetFargateProfile sets the FargateProfile field's value. -func (s *DeleteFargateProfileOutput) SetFargateProfile(v *FargateProfile) *DeleteFargateProfileOutput { - s.FargateProfile = v +// SetNodegroup sets the Nodegroup field's value. +func (s *DeleteNodegroupOutput) SetNodegroup(v *Nodegroup) *DeleteNodegroupOutput { + s.Nodegroup = v return s } -type DeleteNodegroupInput struct { +type DeletePodIdentityAssociationInput struct { _ struct{} `type:"structure" nopayload:"true"` - // The name of the Amazon EKS cluster that is associated with your node group. + // The ID of the association to be deleted. // - // ClusterName is a required field - ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + // AssociationId is a required field + AssociationId *string `location:"uri" locationName:"associationId" type:"string" required:"true"` - // The name of the node group to delete. + // The cluster name that // - // NodegroupName is a required field - NodegroupName *string `location:"uri" locationName:"nodegroupName" type:"string" required:"true"` + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` } // String returns the string representation. @@ -7400,7 +8315,7 @@ type DeleteNodegroupInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteNodegroupInput) String() string { +func (s DeletePodIdentityAssociationInput) String() string { return awsutil.Prettify(s) } @@ -7409,25 +8324,25 @@ func (s DeleteNodegroupInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteNodegroupInput) GoString() string { +func (s DeletePodIdentityAssociationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteNodegroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteNodegroupInput"} +func (s *DeletePodIdentityAssociationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeletePodIdentityAssociationInput"} + if s.AssociationId == nil { + invalidParams.Add(request.NewErrParamRequired("AssociationId")) + } + if s.AssociationId != nil && len(*s.AssociationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssociationId", 1)) + } if s.ClusterName == nil { invalidParams.Add(request.NewErrParamRequired("ClusterName")) } if s.ClusterName != nil && len(*s.ClusterName) < 1 { invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) } - if s.NodegroupName == nil { - invalidParams.Add(request.NewErrParamRequired("NodegroupName")) - } - if s.NodegroupName != nil && len(*s.NodegroupName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("NodegroupName", 1)) - } if invalidParams.Len() > 0 { return invalidParams @@ -7435,23 +8350,23 @@ func (s *DeleteNodegroupInput) Validate() error { return nil } -// SetClusterName sets the ClusterName field's value. -func (s *DeleteNodegroupInput) SetClusterName(v string) *DeleteNodegroupInput { - s.ClusterName = &v +// SetAssociationId sets the AssociationId field's value. +func (s *DeletePodIdentityAssociationInput) SetAssociationId(v string) *DeletePodIdentityAssociationInput { + s.AssociationId = &v return s } -// SetNodegroupName sets the NodegroupName field's value. -func (s *DeleteNodegroupInput) SetNodegroupName(v string) *DeleteNodegroupInput { - s.NodegroupName = &v +// SetClusterName sets the ClusterName field's value. +func (s *DeletePodIdentityAssociationInput) SetClusterName(v string) *DeletePodIdentityAssociationInput { + s.ClusterName = &v return s } -type DeleteNodegroupOutput struct { +type DeletePodIdentityAssociationOutput struct { _ struct{} `type:"structure"` - // The full description of your deleted node group. - Nodegroup *Nodegroup `locationName:"nodegroup" type:"structure"` + // The full description of the EKS Pod Identity association that was deleted. + Association *PodIdentityAssociation `locationName:"association" type:"structure"` } // String returns the string representation. @@ -7459,7 +8374,7 @@ type DeleteNodegroupOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteNodegroupOutput) String() string { +func (s DeletePodIdentityAssociationOutput) String() string { return awsutil.Prettify(s) } @@ -7468,13 +8383,13 @@ func (s DeleteNodegroupOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteNodegroupOutput) GoString() string { +func (s DeletePodIdentityAssociationOutput) GoString() string { return s.String() } -// SetNodegroup sets the Nodegroup field's value. -func (s *DeleteNodegroupOutput) SetNodegroup(v *Nodegroup) *DeleteNodegroupOutput { - s.Nodegroup = v +// SetAssociation sets the Association field's value. +func (s *DeletePodIdentityAssociationOutput) SetAssociation(v *PodIdentityAssociation) *DeletePodIdentityAssociationOutput { + s.Association = v return s } @@ -7885,10 +8800,10 @@ type DescribeAddonVersionsOutput struct { // other properties. Addons []*AddonInfo `locationName:"addons" type:"list"` - // The nextToken value returned from a previous paginated DescribeAddonVersionsResponse - // where maxResults was used and the results exceeded the value of that parameter. - // Pagination continues from the end of the previous results that returned the - // nextToken value. + // The nextToken value to include in a future DescribeAddonVersions request. + // When the results of a DescribeAddonVersions request exceed maxResults, you + // can use this value to retrieve the next page of results. This value is null + // when there are no more results to return. // // This token should be treated as an opaque identifier that is used only to // retrieve the next items in a list and not for other programmatic purposes. @@ -8378,6 +9293,103 @@ func (s *DescribeNodegroupOutput) SetNodegroup(v *Nodegroup) *DescribeNodegroupO return s } +type DescribePodIdentityAssociationInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the association that you want the description of. + // + // AssociationId is a required field + AssociationId *string `location:"uri" locationName:"associationId" type:"string" required:"true"` + + // The name of the cluster that the association is in. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribePodIdentityAssociationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribePodIdentityAssociationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribePodIdentityAssociationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribePodIdentityAssociationInput"} + if s.AssociationId == nil { + invalidParams.Add(request.NewErrParamRequired("AssociationId")) + } + if s.AssociationId != nil && len(*s.AssociationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssociationId", 1)) + } + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssociationId sets the AssociationId field's value. +func (s *DescribePodIdentityAssociationInput) SetAssociationId(v string) *DescribePodIdentityAssociationInput { + s.AssociationId = &v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *DescribePodIdentityAssociationInput) SetClusterName(v string) *DescribePodIdentityAssociationInput { + s.ClusterName = &v + return s +} + +type DescribePodIdentityAssociationOutput struct { + _ struct{} `type:"structure"` + + // The full description of the EKS Pod Identity association. + Association *PodIdentityAssociation `locationName:"association" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribePodIdentityAssociationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribePodIdentityAssociationOutput) GoString() string { + return s.String() +} + +// SetAssociation sets the Association field's value. +func (s *DescribePodIdentityAssociationOutput) SetAssociation(v *PodIdentityAssociation) *DescribePodIdentityAssociationOutput { + s.Association = v + return s +} + type DescribeUpdateInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -8630,11 +9642,11 @@ type EksAnywhereSubscription struct { // UUID identifying a subscription. Id *string `locationName:"id" type:"string"` - // License Manager License ARNs associated with the subscription. + // Amazon Web Services License Manager ARN associated with the subscription. LicenseArns []*string `locationName:"licenseArns" type:"list"` // The number of licenses included in a subscription. Valid values are between - // 1 and 1000. + // 1 and 100. LicenseQuantity *int64 `locationName:"licenseQuantity" type:"integer"` // The type of licenses included in the subscription. Valid value is CLUSTER. @@ -9185,6 +10197,8 @@ type InvalidParameterException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // The specified parameter for the add-on name is invalid. Review the available + // parameters for the API request AddonName *string `locationName:"addonName" type:"string"` // The Amazon EKS cluster associated with the exception. @@ -9193,6 +10207,8 @@ type InvalidParameterException struct { // The Fargate profile associated with the exception. FargateProfileName *string `locationName:"fargateProfileName" type:"string"` + // The specified parameter is invalid. Review the available parameters for the + // API request. Message_ *string `locationName:"message" type:"string"` // The Amazon EKS managed node group associated with the exception. @@ -9264,11 +10280,14 @@ type InvalidRequestException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // The request is invalid given the state of the add-on name. Check the state + // of the cluster and the associated operations. AddonName *string `locationName:"addonName" type:"string"` // The Amazon EKS cluster associated with the exception. ClusterName *string `locationName:"clusterName" type:"string"` + // The Amazon EKS add-on name associated with the exception. Message_ *string `locationName:"message" type:"string"` // The Amazon EKS managed node group associated with the exception. @@ -9739,10 +10758,10 @@ type ListAddonsOutput struct { // A list of installed add-ons. Addons []*string `locationName:"addons" type:"list"` - // The nextToken value returned from a previous paginated ListAddonsResponse - // where maxResults was used and the results exceeded the value of that parameter. - // Pagination continues from the end of the previous results that returned the - // nextToken value. + // The nextToken value to include in a future ListAddons request. When the results + // of a ListAddons request exceed maxResults, you can use this value to retrieve + // the next page of results. This value is null when there are no more results + // to return. // // This token should be treated as an opaque identifier that is used only to // retrieve the next items in a list and not for other programmatic purposes. @@ -9914,10 +10933,10 @@ type ListEksAnywhereSubscriptionsInput struct { // if applicable. MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` - // The nextToken value to include in a future ListEksAnywhereSubscriptions request. - // When the results of a ListEksAnywhereSubscriptions request exceed maxResults, - // you can use this value to retrieve the next page of results. This value is - // null when there are no more results to return. + // The nextToken value returned from a previous paginated ListEksAnywhereSubscriptions + // request where maxResults was used and the results exceeded the value of that + // parameter. Pagination continues from the end of the previous results that + // returned the nextToken value. NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` } @@ -10222,10 +11241,10 @@ type ListIdentityProviderConfigsOutput struct { // The identity provider configurations for the cluster. IdentityProviderConfigs []*IdentityProviderConfig `locationName:"identityProviderConfigs" type:"list"` - // The nextToken value returned from a previous paginated ListIdentityProviderConfigsResponse - // where maxResults was used and the results exceeded the value of that parameter. - // Pagination continues from the end of the previous results that returned the - // nextToken value. + // The nextToken value to include in a future ListIdentityProviderConfigsResponse + // request. When the results of a ListIdentityProviderConfigsResponse request + // exceed maxResults, you can use this value to retrieve the next page of results. + // This value is null when there are no more results to return. NextToken *string `locationName:"nextToken" type:"string"` } @@ -10334,22 +11353,181 @@ func (s *ListNodegroupsInput) SetMaxResults(v int64) *ListNodegroupsInput { } // SetNextToken sets the NextToken field's value. -func (s *ListNodegroupsInput) SetNextToken(v string) *ListNodegroupsInput { +func (s *ListNodegroupsInput) SetNextToken(v string) *ListNodegroupsInput { + s.NextToken = &v + return s +} + +type ListNodegroupsOutput struct { + _ struct{} `type:"structure"` + + // The nextToken value to include in a future ListNodegroups request. When the + // results of a ListNodegroups request exceed maxResults, you can use this value + // to retrieve the next page of results. This value is null when there are no + // more results to return. + NextToken *string `locationName:"nextToken" type:"string"` + + // A list of all of the node groups associated with the specified cluster. + Nodegroups []*string `locationName:"nodegroups" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListNodegroupsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListNodegroupsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListNodegroupsOutput) SetNextToken(v string) *ListNodegroupsOutput { + s.NextToken = &v + return s +} + +// SetNodegroups sets the Nodegroups field's value. +func (s *ListNodegroupsOutput) SetNodegroups(v []*string) *ListNodegroupsOutput { + s.Nodegroups = v + return s +} + +type ListPodIdentityAssociationsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The name of the cluster that the associations are in. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The maximum number of EKS Pod Identity association results returned by ListPodIdentityAssociations + // in paginated output. When you use this parameter, ListPodIdentityAssociations + // returns only maxResults results in a single page along with a nextToken response + // element. You can see the remaining results of the initial request by sending + // another ListPodIdentityAssociations request with the returned nextToken value. + // This value can be between 1 and 100. If you don't use this parameter, ListPodIdentityAssociations + // returns up to 100 results and a nextToken value if applicable. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The name of the Kubernetes namespace inside the cluster that the associations + // are in. + Namespace *string `location:"querystring" locationName:"namespace" type:"string"` + + // The nextToken value returned from a previous paginated ListUpdates request + // where maxResults was used and the results exceeded the value of that parameter. + // Pagination continues from the end of the previous results that returned the + // nextToken value. + // + // This token should be treated as an opaque identifier that is used only to + // retrieve the next items in a list and not for other programmatic purposes. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // The name of the Kubernetes service account that the associations use. + ServiceAccount *string `location:"querystring" locationName:"serviceAccount" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListPodIdentityAssociationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListPodIdentityAssociationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListPodIdentityAssociationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListPodIdentityAssociationsInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClusterName sets the ClusterName field's value. +func (s *ListPodIdentityAssociationsInput) SetClusterName(v string) *ListPodIdentityAssociationsInput { + s.ClusterName = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListPodIdentityAssociationsInput) SetMaxResults(v int64) *ListPodIdentityAssociationsInput { + s.MaxResults = &v + return s +} + +// SetNamespace sets the Namespace field's value. +func (s *ListPodIdentityAssociationsInput) SetNamespace(v string) *ListPodIdentityAssociationsInput { + s.Namespace = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListPodIdentityAssociationsInput) SetNextToken(v string) *ListPodIdentityAssociationsInput { s.NextToken = &v return s } -type ListNodegroupsOutput struct { +// SetServiceAccount sets the ServiceAccount field's value. +func (s *ListPodIdentityAssociationsInput) SetServiceAccount(v string) *ListPodIdentityAssociationsInput { + s.ServiceAccount = &v + return s +} + +type ListPodIdentityAssociationsOutput struct { _ struct{} `type:"structure"` - // The nextToken value to include in a future ListNodegroups request. When the - // results of a ListNodegroups request exceed maxResults, you can use this value - // to retrieve the next page of results. This value is null when there are no - // more results to return. - NextToken *string `locationName:"nextToken" type:"string"` + // The list of summarized descriptions of the associations that are in the cluster + // and match any filters that you provided. + // + // Each summary is simplified by removing these fields compared to the full + // PodIdentityAssociation : + // + // * The IAM role: roleArn + // + // * The timestamp that the association was created at: createdAt + // + // * The most recent timestamp that the association was modified at:. modifiedAt + // + // * The tags on the association: tags + Associations []*PodIdentityAssociationSummary `locationName:"associations" type:"list"` - // A list of all of the node groups associated with the specified cluster. - Nodegroups []*string `locationName:"nodegroups" type:"list"` + // The nextToken value to include in a future ListPodIdentityAssociations request. + // When the results of a ListPodIdentityAssociations request exceed maxResults, + // you can use this value to retrieve the next page of results. This value is + // null when there are no more results to return. + // + // This token should be treated as an opaque identifier that is used only to + // retrieve the next items in a list and not for other programmatic purposes. + NextToken *string `locationName:"nextToken" type:"string"` } // String returns the string representation. @@ -10357,7 +11535,7 @@ type ListNodegroupsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListNodegroupsOutput) String() string { +func (s ListPodIdentityAssociationsOutput) String() string { return awsutil.Prettify(s) } @@ -10366,19 +11544,19 @@ func (s ListNodegroupsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListNodegroupsOutput) GoString() string { +func (s ListPodIdentityAssociationsOutput) GoString() string { return s.String() } -// SetNextToken sets the NextToken field's value. -func (s *ListNodegroupsOutput) SetNextToken(v string) *ListNodegroupsOutput { - s.NextToken = &v +// SetAssociations sets the Associations field's value. +func (s *ListPodIdentityAssociationsOutput) SetAssociations(v []*PodIdentityAssociationSummary) *ListPodIdentityAssociationsOutput { + s.Associations = v return s } -// SetNodegroups sets the Nodegroups field's value. -func (s *ListNodegroupsOutput) SetNodegroups(v []*string) *ListNodegroupsOutput { - s.Nodegroups = v +// SetNextToken sets the NextToken field's value. +func (s *ListPodIdentityAssociationsOutput) SetNextToken(v string) *ListPodIdentityAssociationsOutput { + s.NextToken = &v return s } @@ -11212,6 +12390,8 @@ type NotFoundException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // A service resource associated with the request could not be found. Clients + // should not retry such requests. Message_ *string `locationName:"message" type:"string"` } @@ -11735,6 +12915,224 @@ func (s *OutpostConfigResponse) SetOutpostArns(v []*string) *OutpostConfigRespon return s } +// Amazon EKS Pod Identity associations provide the ability to manage credentials +// for your applications, similar to the way that 7EC2l instance profiles provide +// credentials to Amazon EC2 instances. +type PodIdentityAssociation struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the association. + AssociationArn *string `locationName:"associationArn" type:"string"` + + // The ID of the association. + AssociationId *string `locationName:"associationId" type:"string"` + + // The name of the cluster that the association is in. + ClusterName *string `locationName:"clusterName" type:"string"` + + // The timestamp that the association was created at. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The most recent timestamp that the association was modified at + ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp"` + + // The name of the Kubernetes namespace inside the cluster to create the association + // in. The service account and the pods that use the service account must be + // in this namespace. + Namespace *string `locationName:"namespace" type:"string"` + + // The Amazon Resource Name (ARN) of the IAM role to associate with the service + // account. The EKS Pod Identity agent manages credentials to assume this role + // for applications in the containers in the pods that use this service account. + RoleArn *string `locationName:"roleArn" type:"string"` + + // The name of the Kubernetes service account inside the cluster to associate + // the IAM credentials with. + ServiceAccount *string `locationName:"serviceAccount" type:"string"` + + // The metadata that you apply to a resource to assist with categorization and + // organization. Each tag consists of a key and an optional value. You define + // both. + // + // The following basic restrictions apply to tags: + // + // * Maximum number of tags per resource – 50 + // + // * For each resource, each tag key must be unique, and each tag key can + // have only one value. + // + // * Maximum key length – 128 Unicode characters in UTF-8 + // + // * Maximum value length – 256 Unicode characters in UTF-8 + // + // * If your tagging schema is used across multiple services and resources, + // remember that other services may have restrictions on allowed characters. + // Generally allowed characters are: letters, numbers, and spaces representable + // in UTF-8, and the following characters: + - = . _ : / @. + // + // * Tag keys and values are case-sensitive. + // + // * Do not use aws:, AWS:, or any upper or lowercase combination of such + // as a prefix for either keys or values as it is reserved for Amazon Web + // Services use. You cannot edit or delete tag keys or values with this prefix. + // Tags with this prefix do not count against your tags per resource limit. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PodIdentityAssociation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PodIdentityAssociation) GoString() string { + return s.String() +} + +// SetAssociationArn sets the AssociationArn field's value. +func (s *PodIdentityAssociation) SetAssociationArn(v string) *PodIdentityAssociation { + s.AssociationArn = &v + return s +} + +// SetAssociationId sets the AssociationId field's value. +func (s *PodIdentityAssociation) SetAssociationId(v string) *PodIdentityAssociation { + s.AssociationId = &v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *PodIdentityAssociation) SetClusterName(v string) *PodIdentityAssociation { + s.ClusterName = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *PodIdentityAssociation) SetCreatedAt(v time.Time) *PodIdentityAssociation { + s.CreatedAt = &v + return s +} + +// SetModifiedAt sets the ModifiedAt field's value. +func (s *PodIdentityAssociation) SetModifiedAt(v time.Time) *PodIdentityAssociation { + s.ModifiedAt = &v + return s +} + +// SetNamespace sets the Namespace field's value. +func (s *PodIdentityAssociation) SetNamespace(v string) *PodIdentityAssociation { + s.Namespace = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *PodIdentityAssociation) SetRoleArn(v string) *PodIdentityAssociation { + s.RoleArn = &v + return s +} + +// SetServiceAccount sets the ServiceAccount field's value. +func (s *PodIdentityAssociation) SetServiceAccount(v string) *PodIdentityAssociation { + s.ServiceAccount = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *PodIdentityAssociation) SetTags(v map[string]*string) *PodIdentityAssociation { + s.Tags = v + return s +} + +// The summarized description of the association. +// +// Each summary is simplified by removing these fields compared to the full +// PodIdentityAssociation : +// +// - The IAM role: roleArn +// +// - The timestamp that the association was created at: createdAt +// +// - The most recent timestamp that the association was modified at:. modifiedAt +// +// - The tags on the association: tags +type PodIdentityAssociationSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the association. + AssociationArn *string `locationName:"associationArn" type:"string"` + + // The ID of the association. + AssociationId *string `locationName:"associationId" type:"string"` + + // The name of the cluster that the association is in. + ClusterName *string `locationName:"clusterName" type:"string"` + + // The name of the Kubernetes namespace inside the cluster to create the association + // in. The service account and the pods that use the service account must be + // in this namespace. + Namespace *string `locationName:"namespace" type:"string"` + + // The name of the Kubernetes service account inside the cluster to associate + // the IAM credentials with. + ServiceAccount *string `locationName:"serviceAccount" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PodIdentityAssociationSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PodIdentityAssociationSummary) GoString() string { + return s.String() +} + +// SetAssociationArn sets the AssociationArn field's value. +func (s *PodIdentityAssociationSummary) SetAssociationArn(v string) *PodIdentityAssociationSummary { + s.AssociationArn = &v + return s +} + +// SetAssociationId sets the AssociationId field's value. +func (s *PodIdentityAssociationSummary) SetAssociationId(v string) *PodIdentityAssociationSummary { + s.AssociationId = &v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *PodIdentityAssociationSummary) SetClusterName(v string) *PodIdentityAssociationSummary { + s.ClusterName = &v + return s +} + +// SetNamespace sets the Namespace field's value. +func (s *PodIdentityAssociationSummary) SetNamespace(v string) *PodIdentityAssociationSummary { + s.Namespace = &v + return s +} + +// SetServiceAccount sets the ServiceAccount field's value. +func (s *PodIdentityAssociationSummary) SetServiceAccount(v string) *PodIdentityAssociationSummary { + s.ServiceAccount = &v + return s +} + // Identifies the Key Management Service (KMS) key used to encrypt the secrets. type Provider struct { _ struct{} `type:"structure"` @@ -11955,11 +13353,13 @@ type ResourceInUseException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // The specified add-on name is in use. AddonName *string `locationName:"addonName" type:"string"` // The Amazon EKS cluster associated with the exception. ClusterName *string `locationName:"clusterName" type:"string"` + // The Amazon EKS message associated with the exception. Message_ *string `locationName:"message" type:"string"` // The Amazon EKS managed node group associated with the exception. @@ -12030,6 +13430,7 @@ type ResourceLimitExceededException struct { // The Amazon EKS cluster associated with the exception. ClusterName *string `locationName:"clusterName" type:"string"` + // The Amazon EKS message associated with the exception. Message_ *string `locationName:"message" type:"string"` // The Amazon EKS managed node group associated with the exception. @@ -12102,6 +13503,7 @@ type ResourceNotFoundException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // The Amazon EKS add-on name associated with the exception. AddonName *string `locationName:"addonName" type:"string"` // The Amazon EKS cluster associated with the exception. @@ -12110,6 +13512,7 @@ type ResourceNotFoundException struct { // The Fargate profile associated with the exception. FargateProfileName *string `locationName:"fargateProfileName" type:"string"` + // The Amazon EKS message associated with the exception. Message_ *string `locationName:"message" type:"string"` // The Amazon EKS managed node group associated with the exception. @@ -12181,6 +13584,8 @@ type ResourcePropagationDelayException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // Required resources (such as service-linked roles) were created and are still + // propagating. Retry later. Message_ *string `locationName:"message" type:"string"` } @@ -12245,11 +13650,13 @@ type ServerException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // The Amazon EKS add-on name associated with the exception. AddonName *string `locationName:"addonName" type:"string"` // The Amazon EKS cluster associated with the exception. ClusterName *string `locationName:"clusterName" type:"string"` + // These errors are usually caused by a server-side issue. Message_ *string `locationName:"message" type:"string"` // The Amazon EKS managed node group associated with the exception. @@ -12320,6 +13727,7 @@ type ServiceUnavailableException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + // The request has failed due to a temporary failure of the server. Message_ *string `locationName:"message" type:"string"` } @@ -12543,6 +13951,10 @@ type UnsupportedAvailabilityZoneException struct { // The Amazon EKS cluster associated with the exception. ClusterName *string `locationName:"clusterName" type:"string"` + // At least one of your specified cluster subnets is in an Availability Zone + // that does not support Amazon EKS. The exception output specifies the supported + // Availability Zones for your account, from which you can choose subnets for + // your cluster. Message_ *string `locationName:"message" type:"string"` // The Amazon EKS managed node group associated with the exception. @@ -13178,6 +14590,8 @@ type UpdateEksAnywhereSubscriptionInput struct { // Unique, case-sensitive identifier to ensure the idempotency of the request. ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"` + // The ID of the subscription. + // // Id is a required field Id *string `location:"uri" locationName:"id" type:"string" required:"true"` } @@ -13680,6 +15094,122 @@ func (s *UpdateParam) SetValue(v string) *UpdateParam { return s } +type UpdatePodIdentityAssociationInput struct { + _ struct{} `type:"structure"` + + // The ID of the association to be updated. + // + // AssociationId is a required field + AssociationId *string `location:"uri" locationName:"associationId" type:"string" required:"true"` + + // Unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"` + + // The name of the cluster that you want to update the association in. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The new IAM role to change the + RoleArn *string `locationName:"roleArn" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdatePodIdentityAssociationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdatePodIdentityAssociationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdatePodIdentityAssociationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdatePodIdentityAssociationInput"} + if s.AssociationId == nil { + invalidParams.Add(request.NewErrParamRequired("AssociationId")) + } + if s.AssociationId != nil && len(*s.AssociationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssociationId", 1)) + } + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssociationId sets the AssociationId field's value. +func (s *UpdatePodIdentityAssociationInput) SetAssociationId(v string) *UpdatePodIdentityAssociationInput { + s.AssociationId = &v + return s +} + +// SetClientRequestToken sets the ClientRequestToken field's value. +func (s *UpdatePodIdentityAssociationInput) SetClientRequestToken(v string) *UpdatePodIdentityAssociationInput { + s.ClientRequestToken = &v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *UpdatePodIdentityAssociationInput) SetClusterName(v string) *UpdatePodIdentityAssociationInput { + s.ClusterName = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *UpdatePodIdentityAssociationInput) SetRoleArn(v string) *UpdatePodIdentityAssociationInput { + s.RoleArn = &v + return s +} + +type UpdatePodIdentityAssociationOutput struct { + _ struct{} `type:"structure"` + + // The full description of the EKS Pod Identity association that was updated. + Association *PodIdentityAssociation `locationName:"association" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdatePodIdentityAssociationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdatePodIdentityAssociationOutput) GoString() string { + return s.String() +} + +// SetAssociation sets the Association field's value. +func (s *UpdatePodIdentityAssociationOutput) SetAssociation(v *PodIdentityAssociation) *UpdatePodIdentityAssociationOutput { + s.Association = v + return s +} + // An object representing the details of an update to a taints payload. For // more information, see Node taints on managed node groups (https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html). type UpdateTaintsPayload struct { diff --git a/service/eks/eksiface/interface.go b/service/eks/eksiface/interface.go index fa5ff7eedc7..2f090e2f0bc 100644 --- a/service/eks/eksiface/interface.go +++ b/service/eks/eksiface/interface.go @@ -88,6 +88,10 @@ type EKSAPI interface { CreateNodegroupWithContext(aws.Context, *eks.CreateNodegroupInput, ...request.Option) (*eks.CreateNodegroupOutput, error) CreateNodegroupRequest(*eks.CreateNodegroupInput) (*request.Request, *eks.CreateNodegroupOutput) + CreatePodIdentityAssociation(*eks.CreatePodIdentityAssociationInput) (*eks.CreatePodIdentityAssociationOutput, error) + CreatePodIdentityAssociationWithContext(aws.Context, *eks.CreatePodIdentityAssociationInput, ...request.Option) (*eks.CreatePodIdentityAssociationOutput, error) + CreatePodIdentityAssociationRequest(*eks.CreatePodIdentityAssociationInput) (*request.Request, *eks.CreatePodIdentityAssociationOutput) + DeleteAddon(*eks.DeleteAddonInput) (*eks.DeleteAddonOutput, error) DeleteAddonWithContext(aws.Context, *eks.DeleteAddonInput, ...request.Option) (*eks.DeleteAddonOutput, error) DeleteAddonRequest(*eks.DeleteAddonInput) (*request.Request, *eks.DeleteAddonOutput) @@ -108,6 +112,10 @@ type EKSAPI interface { DeleteNodegroupWithContext(aws.Context, *eks.DeleteNodegroupInput, ...request.Option) (*eks.DeleteNodegroupOutput, error) DeleteNodegroupRequest(*eks.DeleteNodegroupInput) (*request.Request, *eks.DeleteNodegroupOutput) + DeletePodIdentityAssociation(*eks.DeletePodIdentityAssociationInput) (*eks.DeletePodIdentityAssociationOutput, error) + DeletePodIdentityAssociationWithContext(aws.Context, *eks.DeletePodIdentityAssociationInput, ...request.Option) (*eks.DeletePodIdentityAssociationOutput, error) + DeletePodIdentityAssociationRequest(*eks.DeletePodIdentityAssociationInput) (*request.Request, *eks.DeletePodIdentityAssociationOutput) + DeregisterCluster(*eks.DeregisterClusterInput) (*eks.DeregisterClusterOutput, error) DeregisterClusterWithContext(aws.Context, *eks.DeregisterClusterInput, ...request.Option) (*eks.DeregisterClusterOutput, error) DeregisterClusterRequest(*eks.DeregisterClusterInput) (*request.Request, *eks.DeregisterClusterOutput) @@ -147,6 +155,10 @@ type EKSAPI interface { DescribeNodegroupWithContext(aws.Context, *eks.DescribeNodegroupInput, ...request.Option) (*eks.DescribeNodegroupOutput, error) DescribeNodegroupRequest(*eks.DescribeNodegroupInput) (*request.Request, *eks.DescribeNodegroupOutput) + DescribePodIdentityAssociation(*eks.DescribePodIdentityAssociationInput) (*eks.DescribePodIdentityAssociationOutput, error) + DescribePodIdentityAssociationWithContext(aws.Context, *eks.DescribePodIdentityAssociationInput, ...request.Option) (*eks.DescribePodIdentityAssociationOutput, error) + DescribePodIdentityAssociationRequest(*eks.DescribePodIdentityAssociationInput) (*request.Request, *eks.DescribePodIdentityAssociationOutput) + DescribeUpdate(*eks.DescribeUpdateInput) (*eks.DescribeUpdateOutput, error) DescribeUpdateWithContext(aws.Context, *eks.DescribeUpdateInput, ...request.Option) (*eks.DescribeUpdateOutput, error) DescribeUpdateRequest(*eks.DescribeUpdateInput) (*request.Request, *eks.DescribeUpdateOutput) @@ -173,6 +185,9 @@ type EKSAPI interface { ListEksAnywhereSubscriptionsWithContext(aws.Context, *eks.ListEksAnywhereSubscriptionsInput, ...request.Option) (*eks.ListEksAnywhereSubscriptionsOutput, error) ListEksAnywhereSubscriptionsRequest(*eks.ListEksAnywhereSubscriptionsInput) (*request.Request, *eks.ListEksAnywhereSubscriptionsOutput) + ListEksAnywhereSubscriptionsPages(*eks.ListEksAnywhereSubscriptionsInput, func(*eks.ListEksAnywhereSubscriptionsOutput, bool) bool) error + ListEksAnywhereSubscriptionsPagesWithContext(aws.Context, *eks.ListEksAnywhereSubscriptionsInput, func(*eks.ListEksAnywhereSubscriptionsOutput, bool) bool, ...request.Option) error + ListFargateProfiles(*eks.ListFargateProfilesInput) (*eks.ListFargateProfilesOutput, error) ListFargateProfilesWithContext(aws.Context, *eks.ListFargateProfilesInput, ...request.Option) (*eks.ListFargateProfilesOutput, error) ListFargateProfilesRequest(*eks.ListFargateProfilesInput) (*request.Request, *eks.ListFargateProfilesOutput) @@ -194,6 +209,13 @@ type EKSAPI interface { ListNodegroupsPages(*eks.ListNodegroupsInput, func(*eks.ListNodegroupsOutput, bool) bool) error ListNodegroupsPagesWithContext(aws.Context, *eks.ListNodegroupsInput, func(*eks.ListNodegroupsOutput, bool) bool, ...request.Option) error + ListPodIdentityAssociations(*eks.ListPodIdentityAssociationsInput) (*eks.ListPodIdentityAssociationsOutput, error) + ListPodIdentityAssociationsWithContext(aws.Context, *eks.ListPodIdentityAssociationsInput, ...request.Option) (*eks.ListPodIdentityAssociationsOutput, error) + ListPodIdentityAssociationsRequest(*eks.ListPodIdentityAssociationsInput) (*request.Request, *eks.ListPodIdentityAssociationsOutput) + + ListPodIdentityAssociationsPages(*eks.ListPodIdentityAssociationsInput, func(*eks.ListPodIdentityAssociationsOutput, bool) bool) error + ListPodIdentityAssociationsPagesWithContext(aws.Context, *eks.ListPodIdentityAssociationsInput, func(*eks.ListPodIdentityAssociationsOutput, bool) bool, ...request.Option) error + ListTagsForResource(*eks.ListTagsForResourceInput) (*eks.ListTagsForResourceOutput, error) ListTagsForResourceWithContext(aws.Context, *eks.ListTagsForResourceInput, ...request.Option) (*eks.ListTagsForResourceOutput, error) ListTagsForResourceRequest(*eks.ListTagsForResourceInput) (*request.Request, *eks.ListTagsForResourceOutput) @@ -241,6 +263,10 @@ type EKSAPI interface { UpdateNodegroupVersionWithContext(aws.Context, *eks.UpdateNodegroupVersionInput, ...request.Option) (*eks.UpdateNodegroupVersionOutput, error) UpdateNodegroupVersionRequest(*eks.UpdateNodegroupVersionInput) (*request.Request, *eks.UpdateNodegroupVersionOutput) + UpdatePodIdentityAssociation(*eks.UpdatePodIdentityAssociationInput) (*eks.UpdatePodIdentityAssociationOutput, error) + UpdatePodIdentityAssociationWithContext(aws.Context, *eks.UpdatePodIdentityAssociationInput, ...request.Option) (*eks.UpdatePodIdentityAssociationOutput, error) + UpdatePodIdentityAssociationRequest(*eks.UpdatePodIdentityAssociationInput) (*request.Request, *eks.UpdatePodIdentityAssociationOutput) + WaitUntilAddonActive(*eks.DescribeAddonInput) error WaitUntilAddonActiveWithContext(aws.Context, *eks.DescribeAddonInput, ...request.WaiterOption) error diff --git a/service/eksauth/api.go b/service/eksauth/api.go new file mode 100644 index 00000000000..e125183baaf --- /dev/null +++ b/service/eksauth/api.go @@ -0,0 +1,1088 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package eksauth + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" +) + +const opAssumeRoleForPodIdentity = "AssumeRoleForPodIdentity" + +// AssumeRoleForPodIdentityRequest generates a "aws/request.Request" representing the +// client's request for the AssumeRoleForPodIdentity 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 AssumeRoleForPodIdentity for more information on using the AssumeRoleForPodIdentity +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the AssumeRoleForPodIdentityRequest method. +// req, resp := client.AssumeRoleForPodIdentityRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-auth-2023-11-26/AssumeRoleForPodIdentity +func (c *EKSAuth) AssumeRoleForPodIdentityRequest(input *AssumeRoleForPodIdentityInput) (req *request.Request, output *AssumeRoleForPodIdentityOutput) { + op := &request.Operation{ + Name: opAssumeRoleForPodIdentity, + HTTPMethod: "POST", + HTTPPath: "/clusters/{clusterName}/assume-role-for-pod-identity", + } + + if input == nil { + input = &AssumeRoleForPodIdentityInput{} + } + + output = &AssumeRoleForPodIdentityOutput{} + req = c.newRequest(op, input, output) + return +} + +// AssumeRoleForPodIdentity API operation for Amazon EKS Auth. +// +// The Amazon EKS Auth API and the AssumeRoleForPodIdentity action are only +// used by the EKS Pod Identity Agent. +// +// We recommend that applications use the Amazon Web Services SDKs to connect +// to Amazon Web Services services; if credentials from an EKS Pod Identity +// association are available in the pod, the latest versions of the SDKs use +// them automatically. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 EKS Auth's +// API operation AssumeRoleForPodIdentity for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// The request was denied because your request rate is too high. Reduce the +// frequency of requests. +// +// - InvalidRequestException +// This exception is thrown if the request contains a semantic error. The precise +// meaning will depend on the API, and will be documented in the error message. +// +// - AccessDeniedException +// You don't have permissions to perform the requested operation. The IAM principal +// making the request must have at least one IAM permissions policy attached +// that grants the required permissions. For more information, see Access management +// (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) in the IAM +// User Guide. +// +// - InternalServerException +// These errors are usually caused by a server-side issue. +// +// - InvalidTokenException +// The specified Kubernetes service account token is invalid. +// +// - InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// - ExpiredTokenException +// The specified Kubernetes service account token is expired. +// +// - ResourceNotFoundException +// The specified resource could not be found. +// +// - ServiceUnavailableException +// The service is unavailable. Back off and retry the operation. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/eks-auth-2023-11-26/AssumeRoleForPodIdentity +func (c *EKSAuth) AssumeRoleForPodIdentity(input *AssumeRoleForPodIdentityInput) (*AssumeRoleForPodIdentityOutput, error) { + req, out := c.AssumeRoleForPodIdentityRequest(input) + return out, req.Send() +} + +// AssumeRoleForPodIdentityWithContext is the same as AssumeRoleForPodIdentity with the addition of +// the ability to pass a context and additional request options. +// +// See AssumeRoleForPodIdentity for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EKSAuth) AssumeRoleForPodIdentityWithContext(ctx aws.Context, input *AssumeRoleForPodIdentityInput, opts ...request.Option) (*AssumeRoleForPodIdentityOutput, error) { + req, out := c.AssumeRoleForPodIdentityRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// You don't have permissions to perform the requested operation. The IAM principal +// making the request must have at least one IAM permissions policy attached +// that grants the required permissions. For more information, see Access management +// (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) in the IAM +// User Guide. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +type AssumeRoleForPodIdentityInput struct { + _ struct{} `type:"structure"` + + // The name of the cluster for the request. + // + // ClusterName is a required field + ClusterName *string `location:"uri" locationName:"clusterName" min:"1" type:"string" required:"true"` + + // The token of the Kubernetes service account for the pod. + // + // Token is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AssumeRoleForPodIdentityInput's + // String and GoString methods. + // + // Token is a required field + Token *string `locationName:"token" min:"1" type:"string" required:"true" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssumeRoleForPodIdentityInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssumeRoleForPodIdentityInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssumeRoleForPodIdentityInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssumeRoleForPodIdentityInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.ClusterName != nil && len(*s.ClusterName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1)) + } + if s.Token == nil { + invalidParams.Add(request.NewErrParamRequired("Token")) + } + if s.Token != nil && len(*s.Token) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Token", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClusterName sets the ClusterName field's value. +func (s *AssumeRoleForPodIdentityInput) SetClusterName(v string) *AssumeRoleForPodIdentityInput { + s.ClusterName = &v + return s +} + +// SetToken sets the Token field's value. +func (s *AssumeRoleForPodIdentityInput) SetToken(v string) *AssumeRoleForPodIdentityInput { + s.Token = &v + return s +} + +type AssumeRoleForPodIdentityOutput struct { + _ struct{} `type:"structure"` + + // An object with the permanent IAM role identity and the temporary session + // name. + // + // The ARN of the IAM role that the temporary credentials authenticate to. + // + // The session name of the temporary session requested to STS. The value is + // a unique identifier that contains the role ID, a colon (:), and the role + // session name of the role that is being assumed. The role ID is generated + // by IAM when the role is created. The role session name part of the value + // follows this format: eks-clustername-podname-random UUID + // + // AssumedRoleUser is a required field + AssumedRoleUser *AssumedRoleUser `locationName:"assumedRoleUser" type:"structure" required:"true"` + + // The identity that is allowed to use the credentials. This value is always + // pods.eks.amazonaws.com. + // + // Audience is a required field + Audience *string `locationName:"audience" type:"string" required:"true"` + + // The Amazon Web Services Signature Version 4 type of temporary credentials. + // + // Credentials is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AssumeRoleForPodIdentityOutput's + // String and GoString methods. + // + // Credentials is a required field + Credentials *Credentials `locationName:"credentials" type:"structure" required:"true" sensitive:"true"` + + // The Amazon Resource Name (ARN) and ID of the EKS Pod Identity association. + // + // PodIdentityAssociation is a required field + PodIdentityAssociation *PodIdentityAssociation `locationName:"podIdentityAssociation" type:"structure" required:"true"` + + // The name of the Kubernetes service account inside the cluster to associate + // the IAM credentials with. + // + // Subject is a required field + Subject *Subject `locationName:"subject" type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssumeRoleForPodIdentityOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssumeRoleForPodIdentityOutput) GoString() string { + return s.String() +} + +// SetAssumedRoleUser sets the AssumedRoleUser field's value. +func (s *AssumeRoleForPodIdentityOutput) SetAssumedRoleUser(v *AssumedRoleUser) *AssumeRoleForPodIdentityOutput { + s.AssumedRoleUser = v + return s +} + +// SetAudience sets the Audience field's value. +func (s *AssumeRoleForPodIdentityOutput) SetAudience(v string) *AssumeRoleForPodIdentityOutput { + s.Audience = &v + return s +} + +// SetCredentials sets the Credentials field's value. +func (s *AssumeRoleForPodIdentityOutput) SetCredentials(v *Credentials) *AssumeRoleForPodIdentityOutput { + s.Credentials = v + return s +} + +// SetPodIdentityAssociation sets the PodIdentityAssociation field's value. +func (s *AssumeRoleForPodIdentityOutput) SetPodIdentityAssociation(v *PodIdentityAssociation) *AssumeRoleForPodIdentityOutput { + s.PodIdentityAssociation = v + return s +} + +// SetSubject sets the Subject field's value. +func (s *AssumeRoleForPodIdentityOutput) SetSubject(v *Subject) *AssumeRoleForPodIdentityOutput { + s.Subject = v + return s +} + +// An object with the permanent IAM role identity and the temporary session +// name. +type AssumedRoleUser struct { + _ struct{} `type:"structure"` + + // The ARN of the IAM role that the temporary credentials authenticate to. + // + // Arn is a required field + Arn *string `locationName:"arn" type:"string" required:"true"` + + // The session name of the temporary session requested to STS. The value is + // a unique identifier that contains the role ID, a colon (:), and the role + // session name of the role that is being assumed. The role ID is generated + // by IAM when the role is created. The role session name part of the value + // follows this format: eks-clustername-podname-random UUID + // + // AssumeRoleId is a required field + AssumeRoleId *string `locationName:"assumeRoleId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssumedRoleUser) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssumedRoleUser) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *AssumedRoleUser) SetArn(v string) *AssumedRoleUser { + s.Arn = &v + return s +} + +// SetAssumeRoleId sets the AssumeRoleId field's value. +func (s *AssumedRoleUser) SetAssumeRoleId(v string) *AssumedRoleUser { + s.AssumeRoleId = &v + return s +} + +// The Amazon Web Services Signature Version 4 type of temporary credentials. +type Credentials struct { + _ struct{} `type:"structure" sensitive:"true"` + + // The access key ID that identifies the temporary security credentials. + // + // AccessKeyId is a required field + AccessKeyId *string `locationName:"accessKeyId" type:"string" required:"true"` + + // The Unix epoch timestamp in seconds when the current credentials expire. + // + // Expiration is a required field + Expiration *time.Time `locationName:"expiration" type:"timestamp" required:"true"` + + // The secret access key that applications inside the pods use to sign requests. + // + // SecretAccessKey is a required field + SecretAccessKey *string `locationName:"secretAccessKey" type:"string" required:"true"` + + // The token that applications inside the pods must pass to any service API + // to use the temporary credentials. + // + // SessionToken is a required field + SessionToken *string `locationName:"sessionToken" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Credentials) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Credentials) GoString() string { + return s.String() +} + +// SetAccessKeyId sets the AccessKeyId field's value. +func (s *Credentials) SetAccessKeyId(v string) *Credentials { + s.AccessKeyId = &v + return s +} + +// SetExpiration sets the Expiration field's value. +func (s *Credentials) SetExpiration(v time.Time) *Credentials { + s.Expiration = &v + return s +} + +// SetSecretAccessKey sets the SecretAccessKey field's value. +func (s *Credentials) SetSecretAccessKey(v string) *Credentials { + s.SecretAccessKey = &v + return s +} + +// SetSessionToken sets the SessionToken field's value. +func (s *Credentials) SetSessionToken(v string) *Credentials { + s.SessionToken = &v + return s +} + +// The specified Kubernetes service account token is expired. +type ExpiredTokenException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExpiredTokenException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExpiredTokenException) GoString() string { + return s.String() +} + +func newErrorExpiredTokenException(v protocol.ResponseMetadata) error { + return &ExpiredTokenException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ExpiredTokenException) Code() string { + return "ExpiredTokenException" +} + +// Message returns the exception's message. +func (s *ExpiredTokenException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ExpiredTokenException) OrigErr() error { + return nil +} + +func (s *ExpiredTokenException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ExpiredTokenException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ExpiredTokenException) RequestID() string { + return s.RespMetadata.RequestID +} + +// These errors are usually caused by a server-side issue. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The specified parameter is invalid. Review the available parameters for the +// API request. +type InvalidParameterException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidParameterException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidParameterException) GoString() string { + return s.String() +} + +func newErrorInvalidParameterException(v protocol.ResponseMetadata) error { + return &InvalidParameterException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InvalidParameterException) Code() string { + return "InvalidParameterException" +} + +// Message returns the exception's message. +func (s *InvalidParameterException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InvalidParameterException) OrigErr() error { + return nil +} + +func (s *InvalidParameterException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InvalidParameterException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InvalidParameterException) RequestID() string { + return s.RespMetadata.RequestID +} + +// This exception is thrown if the request contains a semantic error. The precise +// meaning will depend on the API, and will be documented in the error message. +type InvalidRequestException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidRequestException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidRequestException) GoString() string { + return s.String() +} + +func newErrorInvalidRequestException(v protocol.ResponseMetadata) error { + return &InvalidRequestException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InvalidRequestException) Code() string { + return "InvalidRequestException" +} + +// Message returns the exception's message. +func (s *InvalidRequestException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InvalidRequestException) OrigErr() error { + return nil +} + +func (s *InvalidRequestException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InvalidRequestException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InvalidRequestException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The specified Kubernetes service account token is invalid. +type InvalidTokenException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidTokenException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InvalidTokenException) GoString() string { + return s.String() +} + +func newErrorInvalidTokenException(v protocol.ResponseMetadata) error { + return &InvalidTokenException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InvalidTokenException) Code() string { + return "InvalidTokenException" +} + +// Message returns the exception's message. +func (s *InvalidTokenException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InvalidTokenException) OrigErr() error { + return nil +} + +func (s *InvalidTokenException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InvalidTokenException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InvalidTokenException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Amazon EKS Pod Identity associations provide the ability to manage credentials +// for your applications, similar to the way that Amazon EC2 instance profiles +// provide credentials to Amazon EC2 instances. +type PodIdentityAssociation struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the EKS Pod Identity association. + // + // AssociationArn is a required field + AssociationArn *string `locationName:"associationArn" type:"string" required:"true"` + + // The ID of the association. + // + // AssociationId is a required field + AssociationId *string `locationName:"associationId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PodIdentityAssociation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PodIdentityAssociation) GoString() string { + return s.String() +} + +// SetAssociationArn sets the AssociationArn field's value. +func (s *PodIdentityAssociation) SetAssociationArn(v string) *PodIdentityAssociation { + s.AssociationArn = &v + return s +} + +// SetAssociationId sets the AssociationId field's value. +func (s *PodIdentityAssociation) SetAssociationId(v string) *PodIdentityAssociation { + s.AssociationId = &v + return s +} + +// The specified resource could not be found. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The service is unavailable. Back off and retry the operation. +type ServiceUnavailableException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceUnavailableException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceUnavailableException) GoString() string { + return s.String() +} + +func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error { + return &ServiceUnavailableException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ServiceUnavailableException) Code() string { + return "ServiceUnavailableException" +} + +// Message returns the exception's message. +func (s *ServiceUnavailableException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceUnavailableException) OrigErr() error { + return nil +} + +func (s *ServiceUnavailableException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceUnavailableException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServiceUnavailableException) RequestID() string { + return s.RespMetadata.RequestID +} + +// An object containing the name of the Kubernetes service account inside the +// cluster to associate the IAM credentials with. +type Subject struct { + _ struct{} `type:"structure"` + + // The name of the Kubernetes namespace inside the cluster to create the association + // in. The service account and the pods that use the service account must be + // in this namespace. + // + // Namespace is a required field + Namespace *string `locationName:"namespace" type:"string" required:"true"` + + // The name of the Kubernetes service account inside the cluster to associate + // the IAM credentials with. + // + // ServiceAccount is a required field + ServiceAccount *string `locationName:"serviceAccount" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Subject) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Subject) GoString() string { + return s.String() +} + +// SetNamespace sets the Namespace field's value. +func (s *Subject) SetNamespace(v string) *Subject { + s.Namespace = &v + return s +} + +// SetServiceAccount sets the ServiceAccount field's value. +func (s *Subject) SetServiceAccount(v string) *Subject { + s.ServiceAccount = &v + return s +} + +// The request was denied because your request rate is too high. Reduce the +// frequency of requests. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} diff --git a/service/eksauth/doc.go b/service/eksauth/doc.go new file mode 100644 index 00000000000..88bc18f5b3c --- /dev/null +++ b/service/eksauth/doc.go @@ -0,0 +1,29 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package eksauth provides the client and types for making API +// requests to Amazon EKS Auth. +// +// The Amazon EKS Auth API and the AssumeRoleForPodIdentity action are only +// used by the EKS Pod Identity Agent. +// +// See https://docs.aws.amazon.com/goto/WebAPI/eks-auth-2023-11-26 for more information on this service. +// +// See eksauth package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/eksauth/ +// +// # Using the Client +// +// To contact Amazon EKS Auth with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon EKS Auth client EKSAuth for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/eksauth/#New +package eksauth diff --git a/service/eksauth/eksauthiface/interface.go b/service/eksauth/eksauthiface/interface.go new file mode 100644 index 00000000000..45f5c896224 --- /dev/null +++ b/service/eksauth/eksauthiface/interface.go @@ -0,0 +1,68 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package eksauthiface provides an interface to enable mocking the Amazon EKS Auth service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package eksauthiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/eksauth" +) + +// EKSAuthAPI provides an interface to enable mocking the +// eksauth.EKSAuth service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon EKS Auth. +// func myFunc(svc eksauthiface.EKSAuthAPI) bool { +// // Make svc.AssumeRoleForPodIdentity request +// } +// +// func main() { +// sess := session.New() +// svc := eksauth.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockEKSAuthClient struct { +// eksauthiface.EKSAuthAPI +// } +// func (m *mockEKSAuthClient) AssumeRoleForPodIdentity(input *eksauth.AssumeRoleForPodIdentityInput) (*eksauth.AssumeRoleForPodIdentityOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockEKSAuthClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type EKSAuthAPI interface { + AssumeRoleForPodIdentity(*eksauth.AssumeRoleForPodIdentityInput) (*eksauth.AssumeRoleForPodIdentityOutput, error) + AssumeRoleForPodIdentityWithContext(aws.Context, *eksauth.AssumeRoleForPodIdentityInput, ...request.Option) (*eksauth.AssumeRoleForPodIdentityOutput, error) + AssumeRoleForPodIdentityRequest(*eksauth.AssumeRoleForPodIdentityInput) (*request.Request, *eksauth.AssumeRoleForPodIdentityOutput) +} + +var _ EKSAuthAPI = (*eksauth.EKSAuth)(nil) diff --git a/service/eksauth/errors.go b/service/eksauth/errors.go new file mode 100644 index 00000000000..675f0c3272f --- /dev/null +++ b/service/eksauth/errors.go @@ -0,0 +1,83 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package eksauth + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You don't have permissions to perform the requested operation. The IAM principal + // making the request must have at least one IAM permissions policy attached + // that grants the required permissions. For more information, see Access management + // (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) in the IAM + // User Guide. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeExpiredTokenException for service response error code + // "ExpiredTokenException". + // + // The specified Kubernetes service account token is expired. + ErrCodeExpiredTokenException = "ExpiredTokenException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // These errors are usually caused by a server-side issue. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeInvalidParameterException for service response error code + // "InvalidParameterException". + // + // The specified parameter is invalid. Review the available parameters for the + // API request. + ErrCodeInvalidParameterException = "InvalidParameterException" + + // ErrCodeInvalidRequestException for service response error code + // "InvalidRequestException". + // + // This exception is thrown if the request contains a semantic error. The precise + // meaning will depend on the API, and will be documented in the error message. + ErrCodeInvalidRequestException = "InvalidRequestException" + + // ErrCodeInvalidTokenException for service response error code + // "InvalidTokenException". + // + // The specified Kubernetes service account token is invalid. + ErrCodeInvalidTokenException = "InvalidTokenException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified resource could not be found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceUnavailableException for service response error code + // "ServiceUnavailableException". + // + // The service is unavailable. Back off and retry the operation. + ErrCodeServiceUnavailableException = "ServiceUnavailableException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied because your request rate is too high. Reduce the + // frequency of requests. + ErrCodeThrottlingException = "ThrottlingException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "ExpiredTokenException": newErrorExpiredTokenException, + "InternalServerException": newErrorInternalServerException, + "InvalidParameterException": newErrorInvalidParameterException, + "InvalidRequestException": newErrorInvalidRequestException, + "InvalidTokenException": newErrorInvalidTokenException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceUnavailableException": newErrorServiceUnavailableException, + "ThrottlingException": newErrorThrottlingException, +} diff --git a/service/eksauth/service.go b/service/eksauth/service.go new file mode 100644 index 00000000000..298d1befab4 --- /dev/null +++ b/service/eksauth/service.go @@ -0,0 +1,106 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package eksauth + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// EKSAuth provides the API operation methods for making requests to +// Amazon EKS Auth. See this package's package overview docs +// for details on the service. +// +// EKSAuth methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type EKSAuth struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "EKS Auth" // Name of service. + EndpointsID = "eks-auth" // ID to lookup a service endpoint with. + ServiceID = "EKS Auth" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the EKSAuth client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a EKSAuth client from just a session. +// svc := eksauth.New(mySession) +// +// // Create a EKSAuth client with additional configuration +// svc := eksauth.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *EKSAuth { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "eks-auth" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *EKSAuth { + svc := &EKSAuth{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2023-11-26", + ResolvedRegion: resolvedRegion, + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a EKSAuth operation and runs any +// custom request initialization. +func (c *EKSAuth) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/elbv2/api.go b/service/elbv2/api.go index e65c8a3034c..406c1bc7f01 100644 --- a/service/elbv2/api.go +++ b/service/elbv2/api.go @@ -152,7 +152,7 @@ func (c *ELBV2) AddTagsRequest(input *AddTagsInput) (req *request.Request, outpu // // Adds the specified tags to the specified Elastic Load Balancing resource. // You can tag your Application Load Balancers, Network Load Balancers, Gateway -// Load Balancers, target groups, listeners, and rules. +// Load Balancers, target groups, trust stores, listeners, and rules. // // Each tag consists of a key and an optional value. If a resource already has // a tag with the same key, AddTags updates its value. @@ -170,7 +170,7 @@ func (c *ELBV2) AddTagsRequest(input *AddTagsInput) (req *request.Request, outpu // A tag key was specified more than once. // // - ErrCodeTooManyTagsException "TooManyTags" -// You've reached the limit on the number of tags per load balancer. +// You've reached the limit on the number of tags for this resource. // // - ErrCodeLoadBalancerNotFoundException "LoadBalancerNotFound" // The specified load balancer does not exist. @@ -184,6 +184,9 @@ func (c *ELBV2) AddTagsRequest(input *AddTagsInput) (req *request.Request, outpu // - ErrCodeRuleNotFoundException "RuleNotFound" // The specified rule does not exist. // +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/AddTags func (c *ELBV2) AddTags(input *AddTagsInput) (*AddTagsOutput, error) { req, out := c.AddTagsRequest(input) @@ -206,6 +209,94 @@ func (c *ELBV2) AddTagsWithContext(ctx aws.Context, input *AddTagsInput, opts .. return out, req.Send() } +const opAddTrustStoreRevocations = "AddTrustStoreRevocations" + +// AddTrustStoreRevocationsRequest generates a "aws/request.Request" representing the +// client's request for the AddTrustStoreRevocations 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 AddTrustStoreRevocations for more information on using the AddTrustStoreRevocations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the AddTrustStoreRevocationsRequest method. +// req, resp := client.AddTrustStoreRevocationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/AddTrustStoreRevocations +func (c *ELBV2) AddTrustStoreRevocationsRequest(input *AddTrustStoreRevocationsInput) (req *request.Request, output *AddTrustStoreRevocationsOutput) { + op := &request.Operation{ + Name: opAddTrustStoreRevocations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AddTrustStoreRevocationsInput{} + } + + output = &AddTrustStoreRevocationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// AddTrustStoreRevocations API operation for Elastic Load Balancing. +// +// Adds the specified revocation file to the specified trust store. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation AddTrustStoreRevocations for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. +// +// - ErrCodeInvalidRevocationContentException "InvalidRevocationContent" +// The provided revocation file is an invalid format, or uses an incorrect algorithm. +// +// - ErrCodeTooManyTrustStoreRevocationEntriesException "TooManyTrustStoreRevocationEntries" +// The specified trust store has too many revocation entries. +// +// - ErrCodeRevocationContentNotFoundException "RevocationContentNotFound" +// The specified revocation file does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/AddTrustStoreRevocations +func (c *ELBV2) AddTrustStoreRevocations(input *AddTrustStoreRevocationsInput) (*AddTrustStoreRevocationsOutput, error) { + req, out := c.AddTrustStoreRevocationsRequest(input) + return out, req.Send() +} + +// AddTrustStoreRevocationsWithContext is the same as AddTrustStoreRevocations with the addition of +// the ability to pass a context and additional request options. +// +// See AddTrustStoreRevocations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) AddTrustStoreRevocationsWithContext(ctx aws.Context, input *AddTrustStoreRevocationsInput, opts ...request.Option) (*AddTrustStoreRevocationsOutput, error) { + req, out := c.AddTrustStoreRevocationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateListener = "CreateListener" // CreateListenerRequest generates a "aws/request.Request" representing the @@ -328,7 +419,13 @@ func (c *ELBV2) CreateListenerRequest(input *CreateListenerInput) (req *request. // The specified ALPN policy is not supported. // // - ErrCodeTooManyTagsException "TooManyTags" -// You've reached the limit on the number of tags per load balancer. +// You've reached the limit on the number of tags for this resource. +// +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. +// +// - ErrCodeTrustStoreNotReadyException "TrustStoreNotReady" +// The specified trust store is not active. // // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateListener func (c *ELBV2) CreateListener(input *CreateListenerInput) (*CreateListenerOutput, error) { @@ -442,7 +539,7 @@ func (c *ELBV2) CreateLoadBalancerRequest(input *CreateLoadBalancerInput) (req * // The requested scheme is not valid. // // - ErrCodeTooManyTagsException "TooManyTags" -// You've reached the limit on the number of tags per load balancer. +// You've reached the limit on the number of tags for this resource. // // - ErrCodeDuplicateTagKeysException "DuplicateTagKeys" // A tag key was specified more than once. @@ -590,7 +687,7 @@ func (c *ELBV2) CreateRuleRequest(input *CreateRuleInput) (req *request.Request, // load balancer, it is counted as only one use. // // - ErrCodeTooManyTagsException "TooManyTags" -// You've reached the limit on the number of tags per load balancer. +// You've reached the limit on the number of tags for this resource. // // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateRule func (c *ELBV2) CreateRule(input *CreateRuleInput) (*CreateRuleOutput, error) { @@ -691,7 +788,7 @@ func (c *ELBV2) CreateTargetGroupRequest(input *CreateTargetGroupInput) (req *re // The requested configuration is not valid. // // - ErrCodeTooManyTagsException "TooManyTags" -// You've reached the limit on the number of tags per load balancer. +// You've reached the limit on the number of tags for this resource. // // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateTargetGroup func (c *ELBV2) CreateTargetGroup(input *CreateTargetGroupInput) (*CreateTargetGroupOutput, error) { @@ -715,6 +812,101 @@ func (c *ELBV2) CreateTargetGroupWithContext(ctx aws.Context, input *CreateTarge return out, req.Send() } +const opCreateTrustStore = "CreateTrustStore" + +// CreateTrustStoreRequest generates a "aws/request.Request" representing the +// client's request for the CreateTrustStore 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 CreateTrustStore for more information on using the CreateTrustStore +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateTrustStoreRequest method. +// req, resp := client.CreateTrustStoreRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateTrustStore +func (c *ELBV2) CreateTrustStoreRequest(input *CreateTrustStoreInput) (req *request.Request, output *CreateTrustStoreOutput) { + op := &request.Operation{ + Name: opCreateTrustStore, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateTrustStoreInput{} + } + + output = &CreateTrustStoreOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateTrustStore API operation for Elastic Load Balancing. +// +// Creates a trust store. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation CreateTrustStore for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeDuplicateTrustStoreNameException "DuplicateTrustStoreName" +// A trust store with the specified name already exists. +// +// - ErrCodeTooManyTrustStoresException "TooManyTrustStores" +// You've reached the limit on the number of trust stores for your Amazon Web +// Services account. +// +// - ErrCodeInvalidCaCertificatesBundleException "InvalidCaCertificatesBundle" +// The specified ca certificate bundle is in an invalid format, or corrupt. +// +// - ErrCodeCaCertificatesBundleNotFoundException "CaCertificatesBundleNotFound" +// The specified ca certificate bundle does not exist. +// +// - ErrCodeTooManyTagsException "TooManyTags" +// You've reached the limit on the number of tags for this resource. +// +// - ErrCodeDuplicateTagKeysException "DuplicateTagKeys" +// A tag key was specified more than once. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateTrustStore +func (c *ELBV2) CreateTrustStore(input *CreateTrustStoreInput) (*CreateTrustStoreOutput, error) { + req, out := c.CreateTrustStoreRequest(input) + return out, req.Send() +} + +// CreateTrustStoreWithContext is the same as CreateTrustStore with the addition of +// the ability to pass a context and additional request options. +// +// See CreateTrustStore for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) CreateTrustStoreWithContext(ctx aws.Context, input *CreateTrustStoreInput, opts ...request.Option) (*CreateTrustStoreOutput, error) { + req, out := c.CreateTrustStoreRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteListener = "DeleteListener" // DeleteListenerRequest generates a "aws/request.Request" representing the @@ -1065,6 +1257,89 @@ func (c *ELBV2) DeleteTargetGroupWithContext(ctx aws.Context, input *DeleteTarge return out, req.Send() } +const opDeleteTrustStore = "DeleteTrustStore" + +// DeleteTrustStoreRequest generates a "aws/request.Request" representing the +// client's request for the DeleteTrustStore 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 DeleteTrustStore for more information on using the DeleteTrustStore +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteTrustStoreRequest method. +// req, resp := client.DeleteTrustStoreRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteTrustStore +func (c *ELBV2) DeleteTrustStoreRequest(input *DeleteTrustStoreInput) (req *request.Request, output *DeleteTrustStoreOutput) { + op := &request.Operation{ + Name: opDeleteTrustStore, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteTrustStoreInput{} + } + + output = &DeleteTrustStoreOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteTrustStore API operation for Elastic Load Balancing. +// +// Deletes a trust store. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation DeleteTrustStore for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. +// +// - ErrCodeTrustStoreInUseException "TrustStoreInUse" +// The specified trust store is currently in use. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteTrustStore +func (c *ELBV2) DeleteTrustStore(input *DeleteTrustStoreInput) (*DeleteTrustStoreOutput, error) { + req, out := c.DeleteTrustStoreRequest(input) + return out, req.Send() +} + +// DeleteTrustStoreWithContext is the same as DeleteTrustStore with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteTrustStore for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) DeleteTrustStoreWithContext(ctx aws.Context, input *DeleteTrustStoreInput, opts ...request.Option) (*DeleteTrustStoreOutput, error) { + req, out := c.DeleteTrustStoreRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeregisterTargets = "DeregisterTargets" // DeregisterTargetsRequest generates a "aws/request.Request" representing the @@ -1943,6 +2218,9 @@ func (c *ELBV2) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Requ // - ErrCodeRuleNotFoundException "RuleNotFound" // The specified rule does not exist. // +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTags func (c *ELBV2) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) { req, out := c.DescribeTagsRequest(input) @@ -2283,1206 +2561,2583 @@ func (c *ELBV2) DescribeTargetHealthWithContext(ctx aws.Context, input *Describe return out, req.Send() } -const opModifyListener = "ModifyListener" +const opDescribeTrustStoreAssociations = "DescribeTrustStoreAssociations" -// ModifyListenerRequest generates a "aws/request.Request" representing the -// client's request for the ModifyListener operation. The "output" return +// DescribeTrustStoreAssociationsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeTrustStoreAssociations 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 ModifyListener for more information on using the ModifyListener +// See DescribeTrustStoreAssociations for more information on using the DescribeTrustStoreAssociations // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ModifyListenerRequest method. -// req, resp := client.ModifyListenerRequest(params) +// // Example sending a request using the DescribeTrustStoreAssociationsRequest method. +// req, resp := client.DescribeTrustStoreAssociationsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyListener -func (c *ELBV2) ModifyListenerRequest(input *ModifyListenerInput) (req *request.Request, output *ModifyListenerOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTrustStoreAssociations +func (c *ELBV2) DescribeTrustStoreAssociationsRequest(input *DescribeTrustStoreAssociationsInput) (req *request.Request, output *DescribeTrustStoreAssociationsOutput) { op := &request.Operation{ - Name: opModifyListener, + Name: opDescribeTrustStoreAssociations, HTTPMethod: "POST", HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"NextMarker"}, + LimitToken: "PageSize", + TruncationToken: "", + }, } if input == nil { - input = &ModifyListenerInput{} + input = &DescribeTrustStoreAssociationsInput{} } - output = &ModifyListenerOutput{} + output = &DescribeTrustStoreAssociationsOutput{} req = c.newRequest(op, input, output) return } -// ModifyListener API operation for Elastic Load Balancing. -// -// Replaces the specified properties of the specified listener. Any properties -// that you do not specify remain unchanged. -// -// Changing the protocol from HTTPS to HTTP, or from TLS to TCP, removes the -// security policy and default certificate properties. If you change the protocol -// from HTTP to HTTPS, or from TCP to TLS, you must add the security policy -// and default certificate properties. +// DescribeTrustStoreAssociations API operation for Elastic Load Balancing. // -// To add an item to a list, remove an item from a list, or update an item in -// a list, you must provide the entire list. For example, to add an action, -// specify a list with the current actions plus the new action. +// Describes all resources associated with the specified trust store. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation ModifyListener for usage and error information. +// API operation DescribeTrustStoreAssociations for usage and error information. // // Returned Error Codes: +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. // -// - ErrCodeDuplicateListenerException "DuplicateListener" -// A listener with the specified port already exists. -// -// - ErrCodeTooManyListenersException "TooManyListeners" -// You've reached the limit on the number of listeners per load balancer. +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTrustStoreAssociations +func (c *ELBV2) DescribeTrustStoreAssociations(input *DescribeTrustStoreAssociationsInput) (*DescribeTrustStoreAssociationsOutput, error) { + req, out := c.DescribeTrustStoreAssociationsRequest(input) + return out, req.Send() +} + +// DescribeTrustStoreAssociationsWithContext is the same as DescribeTrustStoreAssociations with the addition of +// the ability to pass a context and additional request options. // -// - ErrCodeTooManyCertificatesException "TooManyCertificates" -// You've reached the limit on the number of certificates per load balancer. +// See DescribeTrustStoreAssociations for details on how to use this API operation. // -// - ErrCodeListenerNotFoundException "ListenerNotFound" -// The specified listener does not exist. +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) DescribeTrustStoreAssociationsWithContext(ctx aws.Context, input *DescribeTrustStoreAssociationsInput, opts ...request.Option) (*DescribeTrustStoreAssociationsOutput, error) { + req, out := c.DescribeTrustStoreAssociationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// DescribeTrustStoreAssociationsPages iterates over the pages of a DescribeTrustStoreAssociations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. // -// - ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" -// The specified target group does not exist. +// See DescribeTrustStoreAssociations method for more information on how to use this operation. // -// - ErrCodeTargetGroupAssociationLimitException "TargetGroupAssociationLimit" -// You've reached the limit on the number of load balancers per target group. +// Note: This operation can generate multiple requests to a service. // -// - ErrCodeIncompatibleProtocolsException "IncompatibleProtocols" -// The specified configuration is not valid with this protocol. -// -// - ErrCodeSSLPolicyNotFoundException "SSLPolicyNotFound" -// The specified SSL policy does not exist. -// -// - ErrCodeCertificateNotFoundException "CertificateNotFound" -// The specified certificate does not exist. -// -// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" -// The requested configuration is not valid. -// -// - ErrCodeUnsupportedProtocolException "UnsupportedProtocol" -// The specified protocol is not supported. -// -// - ErrCodeTooManyRegistrationsForTargetIdException "TooManyRegistrationsForTargetId" -// You've reached the limit on the number of times a target can be registered -// with a load balancer. -// -// - ErrCodeTooManyTargetsException "TooManyTargets" -// You've reached the limit on the number of targets. -// -// - ErrCodeTooManyActionsException "TooManyActions" -// You've reached the limit on the number of actions per rule. -// -// - ErrCodeInvalidLoadBalancerActionException "InvalidLoadBalancerAction" -// The requested action is not valid. -// -// - ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException "TooManyUniqueTargetGroupsPerLoadBalancer" -// You've reached the limit on the number of unique target groups per load balancer -// across all listeners. If a target group is used by multiple actions for a -// load balancer, it is counted as only one use. -// -// - ErrCodeALPNPolicyNotSupportedException "ALPNPolicyNotFound" -// The specified ALPN policy is not supported. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyListener -func (c *ELBV2) ModifyListener(input *ModifyListenerInput) (*ModifyListenerOutput, error) { - req, out := c.ModifyListenerRequest(input) - return out, req.Send() -} - -// ModifyListenerWithContext is the same as ModifyListener with the addition of -// the ability to pass a context and additional request options. -// -// See ModifyListener for details on how to use this API operation. +// // Example iterating over at most 3 pages of a DescribeTrustStoreAssociations operation. +// pageNum := 0 +// err := client.DescribeTrustStoreAssociationsPages(params, +// func(page *elbv2.DescribeTrustStoreAssociationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ELBV2) DescribeTrustStoreAssociationsPages(input *DescribeTrustStoreAssociationsInput, fn func(*DescribeTrustStoreAssociationsOutput, bool) bool) error { + return c.DescribeTrustStoreAssociationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// DescribeTrustStoreAssociationsPagesWithContext same as DescribeTrustStoreAssociationsPages 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 *ELBV2) ModifyListenerWithContext(ctx aws.Context, input *ModifyListenerInput, opts ...request.Option) (*ModifyListenerOutput, error) { - req, out := c.ModifyListenerRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() +func (c *ELBV2) DescribeTrustStoreAssociationsPagesWithContext(ctx aws.Context, input *DescribeTrustStoreAssociationsInput, fn func(*DescribeTrustStoreAssociationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeTrustStoreAssociationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeTrustStoreAssociationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*DescribeTrustStoreAssociationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() } -const opModifyLoadBalancerAttributes = "ModifyLoadBalancerAttributes" +const opDescribeTrustStoreRevocations = "DescribeTrustStoreRevocations" -// ModifyLoadBalancerAttributesRequest generates a "aws/request.Request" representing the -// client's request for the ModifyLoadBalancerAttributes operation. The "output" return +// DescribeTrustStoreRevocationsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeTrustStoreRevocations 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 ModifyLoadBalancerAttributes for more information on using the ModifyLoadBalancerAttributes +// See DescribeTrustStoreRevocations for more information on using the DescribeTrustStoreRevocations // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ModifyLoadBalancerAttributesRequest method. -// req, resp := client.ModifyLoadBalancerAttributesRequest(params) +// // Example sending a request using the DescribeTrustStoreRevocationsRequest method. +// req, resp := client.DescribeTrustStoreRevocationsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyLoadBalancerAttributes -func (c *ELBV2) ModifyLoadBalancerAttributesRequest(input *ModifyLoadBalancerAttributesInput) (req *request.Request, output *ModifyLoadBalancerAttributesOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTrustStoreRevocations +func (c *ELBV2) DescribeTrustStoreRevocationsRequest(input *DescribeTrustStoreRevocationsInput) (req *request.Request, output *DescribeTrustStoreRevocationsOutput) { op := &request.Operation{ - Name: opModifyLoadBalancerAttributes, + Name: opDescribeTrustStoreRevocations, HTTPMethod: "POST", HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"NextMarker"}, + LimitToken: "PageSize", + TruncationToken: "", + }, } if input == nil { - input = &ModifyLoadBalancerAttributesInput{} + input = &DescribeTrustStoreRevocationsInput{} } - output = &ModifyLoadBalancerAttributesOutput{} + output = &DescribeTrustStoreRevocationsOutput{} req = c.newRequest(op, input, output) return } -// ModifyLoadBalancerAttributes API operation for Elastic Load Balancing. -// -// Modifies the specified attributes of the specified Application Load Balancer, -// Network Load Balancer, or Gateway Load Balancer. +// DescribeTrustStoreRevocations API operation for Elastic Load Balancing. // -// If any of the specified attributes can't be modified as requested, the call -// fails. Any existing attributes that you do not modify retain their current -// values. +// Describes the revocation files in use by the specified trust store arn, or +// revocation ID. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation ModifyLoadBalancerAttributes for usage and error information. +// API operation DescribeTrustStoreRevocations for usage and error information. // // Returned Error Codes: // -// - ErrCodeLoadBalancerNotFoundException "LoadBalancerNotFound" -// The specified load balancer does not exist. +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. // -// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" -// The requested configuration is not valid. +// - ErrCodeRevocationIdNotFoundException "RevocationIdNotFound" +// The specified revocation ID does not exist. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyLoadBalancerAttributes -func (c *ELBV2) ModifyLoadBalancerAttributes(input *ModifyLoadBalancerAttributesInput) (*ModifyLoadBalancerAttributesOutput, error) { - req, out := c.ModifyLoadBalancerAttributesRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTrustStoreRevocations +func (c *ELBV2) DescribeTrustStoreRevocations(input *DescribeTrustStoreRevocationsInput) (*DescribeTrustStoreRevocationsOutput, error) { + req, out := c.DescribeTrustStoreRevocationsRequest(input) return out, req.Send() } -// ModifyLoadBalancerAttributesWithContext is the same as ModifyLoadBalancerAttributes with the addition of +// DescribeTrustStoreRevocationsWithContext is the same as DescribeTrustStoreRevocations with the addition of // the ability to pass a context and additional request options. // -// See ModifyLoadBalancerAttributes for details on how to use this API operation. +// See DescribeTrustStoreRevocations for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *ELBV2) ModifyLoadBalancerAttributesWithContext(ctx aws.Context, input *ModifyLoadBalancerAttributesInput, opts ...request.Option) (*ModifyLoadBalancerAttributesOutput, error) { - req, out := c.ModifyLoadBalancerAttributesRequest(input) +func (c *ELBV2) DescribeTrustStoreRevocationsWithContext(ctx aws.Context, input *DescribeTrustStoreRevocationsInput, opts ...request.Option) (*DescribeTrustStoreRevocationsOutput, error) { + req, out := c.DescribeTrustStoreRevocationsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opModifyRule = "ModifyRule" +// DescribeTrustStoreRevocationsPages iterates over the pages of a DescribeTrustStoreRevocations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See DescribeTrustStoreRevocations 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 DescribeTrustStoreRevocations operation. +// pageNum := 0 +// err := client.DescribeTrustStoreRevocationsPages(params, +// func(page *elbv2.DescribeTrustStoreRevocationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ELBV2) DescribeTrustStoreRevocationsPages(input *DescribeTrustStoreRevocationsInput, fn func(*DescribeTrustStoreRevocationsOutput, bool) bool) error { + return c.DescribeTrustStoreRevocationsPagesWithContext(aws.BackgroundContext(), input, fn) +} -// ModifyRuleRequest generates a "aws/request.Request" representing the -// client's request for the ModifyRule operation. The "output" return +// DescribeTrustStoreRevocationsPagesWithContext same as DescribeTrustStoreRevocationsPages 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 *ELBV2) DescribeTrustStoreRevocationsPagesWithContext(ctx aws.Context, input *DescribeTrustStoreRevocationsInput, fn func(*DescribeTrustStoreRevocationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeTrustStoreRevocationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeTrustStoreRevocationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*DescribeTrustStoreRevocationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opDescribeTrustStores = "DescribeTrustStores" + +// DescribeTrustStoresRequest generates a "aws/request.Request" representing the +// client's request for the DescribeTrustStores 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 ModifyRule for more information on using the ModifyRule +// See DescribeTrustStores for more information on using the DescribeTrustStores // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ModifyRuleRequest method. -// req, resp := client.ModifyRuleRequest(params) +// // Example sending a request using the DescribeTrustStoresRequest method. +// req, resp := client.DescribeTrustStoresRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyRule -func (c *ELBV2) ModifyRuleRequest(input *ModifyRuleInput) (req *request.Request, output *ModifyRuleOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTrustStores +func (c *ELBV2) DescribeTrustStoresRequest(input *DescribeTrustStoresInput) (req *request.Request, output *DescribeTrustStoresOutput) { op := &request.Operation{ - Name: opModifyRule, + Name: opDescribeTrustStores, HTTPMethod: "POST", HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"NextMarker"}, + LimitToken: "PageSize", + TruncationToken: "", + }, } if input == nil { - input = &ModifyRuleInput{} + input = &DescribeTrustStoresInput{} } - output = &ModifyRuleOutput{} + output = &DescribeTrustStoresOutput{} req = c.newRequest(op, input, output) return } -// ModifyRule API operation for Elastic Load Balancing. +// DescribeTrustStores API operation for Elastic Load Balancing. // -// Replaces the specified properties of the specified rule. Any properties that -// you do not specify are unchanged. -// -// To add an item to a list, remove an item from a list, or update an item in -// a list, you must provide the entire list. For example, to add an action, -// specify a list with the current actions plus the new action. +// Describes all trust stores for a given account by trust store arn’s or +// 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 // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation ModifyRule for usage and error information. +// API operation DescribeTrustStores for usage and error information. // // Returned Error Codes: +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. // -// - ErrCodeTargetGroupAssociationLimitException "TargetGroupAssociationLimit" -// You've reached the limit on the number of load balancers per target group. -// -// - ErrCodeIncompatibleProtocolsException "IncompatibleProtocols" -// The specified configuration is not valid with this protocol. -// -// - ErrCodeRuleNotFoundException "RuleNotFound" -// The specified rule does not exist. -// -// - ErrCodeOperationNotPermittedException "OperationNotPermitted" -// This operation is not allowed. -// -// - ErrCodeTooManyRegistrationsForTargetIdException "TooManyRegistrationsForTargetId" -// You've reached the limit on the number of times a target can be registered -// with a load balancer. -// -// - ErrCodeTooManyTargetsException "TooManyTargets" -// You've reached the limit on the number of targets. -// -// - ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" -// The specified target group does not exist. -// -// - ErrCodeUnsupportedProtocolException "UnsupportedProtocol" -// The specified protocol is not supported. -// -// - ErrCodeTooManyActionsException "TooManyActions" -// You've reached the limit on the number of actions per rule. -// -// - ErrCodeInvalidLoadBalancerActionException "InvalidLoadBalancerAction" -// The requested action is not valid. -// -// - ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException "TooManyUniqueTargetGroupsPerLoadBalancer" -// You've reached the limit on the number of unique target groups per load balancer -// across all listeners. If a target group is used by multiple actions for a -// load balancer, it is counted as only one use. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyRule -func (c *ELBV2) ModifyRule(input *ModifyRuleInput) (*ModifyRuleOutput, error) { - req, out := c.ModifyRuleRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTrustStores +func (c *ELBV2) DescribeTrustStores(input *DescribeTrustStoresInput) (*DescribeTrustStoresOutput, error) { + req, out := c.DescribeTrustStoresRequest(input) return out, req.Send() } -// ModifyRuleWithContext is the same as ModifyRule with the addition of +// DescribeTrustStoresWithContext is the same as DescribeTrustStores with the addition of // the ability to pass a context and additional request options. // -// See ModifyRule for details on how to use this API operation. +// See DescribeTrustStores for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *ELBV2) ModifyRuleWithContext(ctx aws.Context, input *ModifyRuleInput, opts ...request.Option) (*ModifyRuleOutput, error) { - req, out := c.ModifyRuleRequest(input) +func (c *ELBV2) DescribeTrustStoresWithContext(ctx aws.Context, input *DescribeTrustStoresInput, opts ...request.Option) (*DescribeTrustStoresOutput, error) { + req, out := c.DescribeTrustStoresRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opModifyTargetGroup = "ModifyTargetGroup" +// DescribeTrustStoresPages iterates over the pages of a DescribeTrustStores operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See DescribeTrustStores 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 DescribeTrustStores operation. +// pageNum := 0 +// err := client.DescribeTrustStoresPages(params, +// func(page *elbv2.DescribeTrustStoresOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ELBV2) DescribeTrustStoresPages(input *DescribeTrustStoresInput, fn func(*DescribeTrustStoresOutput, bool) bool) error { + return c.DescribeTrustStoresPagesWithContext(aws.BackgroundContext(), input, fn) +} -// ModifyTargetGroupRequest generates a "aws/request.Request" representing the -// client's request for the ModifyTargetGroup operation. The "output" return +// DescribeTrustStoresPagesWithContext same as DescribeTrustStoresPages 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 *ELBV2) DescribeTrustStoresPagesWithContext(ctx aws.Context, input *DescribeTrustStoresInput, fn func(*DescribeTrustStoresOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeTrustStoresInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeTrustStoresRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*DescribeTrustStoresOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opGetTrustStoreCaCertificatesBundle = "GetTrustStoreCaCertificatesBundle" + +// GetTrustStoreCaCertificatesBundleRequest generates a "aws/request.Request" representing the +// client's request for the GetTrustStoreCaCertificatesBundle 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 ModifyTargetGroup for more information on using the ModifyTargetGroup +// See GetTrustStoreCaCertificatesBundle for more information on using the GetTrustStoreCaCertificatesBundle // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ModifyTargetGroupRequest method. -// req, resp := client.ModifyTargetGroupRequest(params) +// // Example sending a request using the GetTrustStoreCaCertificatesBundleRequest method. +// req, resp := client.GetTrustStoreCaCertificatesBundleRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroup -func (c *ELBV2) ModifyTargetGroupRequest(input *ModifyTargetGroupInput) (req *request.Request, output *ModifyTargetGroupOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/GetTrustStoreCaCertificatesBundle +func (c *ELBV2) GetTrustStoreCaCertificatesBundleRequest(input *GetTrustStoreCaCertificatesBundleInput) (req *request.Request, output *GetTrustStoreCaCertificatesBundleOutput) { op := &request.Operation{ - Name: opModifyTargetGroup, + Name: opGetTrustStoreCaCertificatesBundle, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &ModifyTargetGroupInput{} + input = &GetTrustStoreCaCertificatesBundleInput{} } - output = &ModifyTargetGroupOutput{} + output = &GetTrustStoreCaCertificatesBundleOutput{} req = c.newRequest(op, input, output) return } -// ModifyTargetGroup API operation for Elastic Load Balancing. +// GetTrustStoreCaCertificatesBundle API operation for Elastic Load Balancing. // -// Modifies the health checks used when evaluating the health state of the targets -// in the specified target group. +// Retrieves the ca certificate bundle. +// +// This action returns a pre-signed S3 URI which is active for ten minutes. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation ModifyTargetGroup for usage and error information. +// API operation GetTrustStoreCaCertificatesBundle for usage and error information. // // Returned Error Codes: +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. // -// - ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" -// The specified target group does not exist. -// -// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" -// The requested configuration is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroup -func (c *ELBV2) ModifyTargetGroup(input *ModifyTargetGroupInput) (*ModifyTargetGroupOutput, error) { - req, out := c.ModifyTargetGroupRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/GetTrustStoreCaCertificatesBundle +func (c *ELBV2) GetTrustStoreCaCertificatesBundle(input *GetTrustStoreCaCertificatesBundleInput) (*GetTrustStoreCaCertificatesBundleOutput, error) { + req, out := c.GetTrustStoreCaCertificatesBundleRequest(input) return out, req.Send() } -// ModifyTargetGroupWithContext is the same as ModifyTargetGroup with the addition of +// GetTrustStoreCaCertificatesBundleWithContext is the same as GetTrustStoreCaCertificatesBundle with the addition of // the ability to pass a context and additional request options. // -// See ModifyTargetGroup for details on how to use this API operation. +// See GetTrustStoreCaCertificatesBundle for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *ELBV2) ModifyTargetGroupWithContext(ctx aws.Context, input *ModifyTargetGroupInput, opts ...request.Option) (*ModifyTargetGroupOutput, error) { - req, out := c.ModifyTargetGroupRequest(input) +func (c *ELBV2) GetTrustStoreCaCertificatesBundleWithContext(ctx aws.Context, input *GetTrustStoreCaCertificatesBundleInput, opts ...request.Option) (*GetTrustStoreCaCertificatesBundleOutput, error) { + req, out := c.GetTrustStoreCaCertificatesBundleRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opModifyTargetGroupAttributes = "ModifyTargetGroupAttributes" +const opGetTrustStoreRevocationContent = "GetTrustStoreRevocationContent" -// ModifyTargetGroupAttributesRequest generates a "aws/request.Request" representing the -// client's request for the ModifyTargetGroupAttributes operation. The "output" return +// GetTrustStoreRevocationContentRequest generates a "aws/request.Request" representing the +// client's request for the GetTrustStoreRevocationContent 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 ModifyTargetGroupAttributes for more information on using the ModifyTargetGroupAttributes +// See GetTrustStoreRevocationContent for more information on using the GetTrustStoreRevocationContent // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ModifyTargetGroupAttributesRequest method. -// req, resp := client.ModifyTargetGroupAttributesRequest(params) +// // Example sending a request using the GetTrustStoreRevocationContentRequest method. +// req, resp := client.GetTrustStoreRevocationContentRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroupAttributes -func (c *ELBV2) ModifyTargetGroupAttributesRequest(input *ModifyTargetGroupAttributesInput) (req *request.Request, output *ModifyTargetGroupAttributesOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/GetTrustStoreRevocationContent +func (c *ELBV2) GetTrustStoreRevocationContentRequest(input *GetTrustStoreRevocationContentInput) (req *request.Request, output *GetTrustStoreRevocationContentOutput) { op := &request.Operation{ - Name: opModifyTargetGroupAttributes, + Name: opGetTrustStoreRevocationContent, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &ModifyTargetGroupAttributesInput{} + input = &GetTrustStoreRevocationContentInput{} } - output = &ModifyTargetGroupAttributesOutput{} + output = &GetTrustStoreRevocationContentOutput{} req = c.newRequest(op, input, output) return } -// ModifyTargetGroupAttributes API operation for Elastic Load Balancing. +// GetTrustStoreRevocationContent API operation for Elastic Load Balancing. // -// Modifies the specified attributes of the specified target group. +// Retrieves the specified revocation file. +// +// This action returns a pre-signed S3 URI which is active for ten minutes. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation ModifyTargetGroupAttributes for usage and error information. +// API operation GetTrustStoreRevocationContent for usage and error information. // // Returned Error Codes: // -// - ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" -// The specified target group does not exist. +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. // -// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" -// The requested configuration is not valid. +// - ErrCodeRevocationIdNotFoundException "RevocationIdNotFound" +// The specified revocation ID does not exist. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroupAttributes -func (c *ELBV2) ModifyTargetGroupAttributes(input *ModifyTargetGroupAttributesInput) (*ModifyTargetGroupAttributesOutput, error) { - req, out := c.ModifyTargetGroupAttributesRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/GetTrustStoreRevocationContent +func (c *ELBV2) GetTrustStoreRevocationContent(input *GetTrustStoreRevocationContentInput) (*GetTrustStoreRevocationContentOutput, error) { + req, out := c.GetTrustStoreRevocationContentRequest(input) return out, req.Send() } -// ModifyTargetGroupAttributesWithContext is the same as ModifyTargetGroupAttributes with the addition of +// GetTrustStoreRevocationContentWithContext is the same as GetTrustStoreRevocationContent with the addition of // the ability to pass a context and additional request options. // -// See ModifyTargetGroupAttributes for details on how to use this API operation. +// See GetTrustStoreRevocationContent for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *ELBV2) ModifyTargetGroupAttributesWithContext(ctx aws.Context, input *ModifyTargetGroupAttributesInput, opts ...request.Option) (*ModifyTargetGroupAttributesOutput, error) { - req, out := c.ModifyTargetGroupAttributesRequest(input) +func (c *ELBV2) GetTrustStoreRevocationContentWithContext(ctx aws.Context, input *GetTrustStoreRevocationContentInput, opts ...request.Option) (*GetTrustStoreRevocationContentOutput, error) { + req, out := c.GetTrustStoreRevocationContentRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opRegisterTargets = "RegisterTargets" +const opModifyListener = "ModifyListener" -// RegisterTargetsRequest generates a "aws/request.Request" representing the -// client's request for the RegisterTargets operation. The "output" return +// ModifyListenerRequest generates a "aws/request.Request" representing the +// client's request for the ModifyListener 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 RegisterTargets for more information on using the RegisterTargets +// See ModifyListener for more information on using the ModifyListener // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the RegisterTargetsRequest method. -// req, resp := client.RegisterTargetsRequest(params) +// // Example sending a request using the ModifyListenerRequest method. +// req, resp := client.ModifyListenerRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RegisterTargets -func (c *ELBV2) RegisterTargetsRequest(input *RegisterTargetsInput) (req *request.Request, output *RegisterTargetsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyListener +func (c *ELBV2) ModifyListenerRequest(input *ModifyListenerInput) (req *request.Request, output *ModifyListenerOutput) { op := &request.Operation{ - Name: opRegisterTargets, + Name: opModifyListener, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &RegisterTargetsInput{} + input = &ModifyListenerInput{} } - output = &RegisterTargetsOutput{} + output = &ModifyListenerOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// RegisterTargets API operation for Elastic Load Balancing. -// -// Registers the specified targets with the specified target group. +// ModifyListener API operation for Elastic Load Balancing. // -// If the target is an EC2 instance, it must be in the running state when you -// register it. +// Replaces the specified properties of the specified listener. Any properties +// that you do not specify remain unchanged. // -// By default, the load balancer routes requests to registered targets using -// the protocol and port for the target group. Alternatively, you can override -// the port for a target when you register it. You can register each EC2 instance -// or IP address with the same target group multiple times using different ports. +// Changing the protocol from HTTPS to HTTP, or from TLS to TCP, removes the +// security policy and default certificate properties. If you change the protocol +// from HTTP to HTTPS, or from TCP to TLS, you must add the security policy +// and default certificate properties. // -// With a Network Load Balancer, you cannot register instances by instance ID -// if they have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, -// G1, G2, HI1, HS1, M1, M2, M3, and T1. You can register instances of these -// types by IP address. +// To add an item to a list, remove an item from a list, or update an item in +// a list, you must provide the entire list. For example, to add an action, +// specify a list with the current actions plus the new action. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation RegisterTargets for usage and error information. +// API operation ModifyListener for usage and error information. // // Returned Error Codes: // +// - ErrCodeDuplicateListenerException "DuplicateListener" +// A listener with the specified port already exists. +// +// - ErrCodeTooManyListenersException "TooManyListeners" +// You've reached the limit on the number of listeners per load balancer. +// +// - ErrCodeTooManyCertificatesException "TooManyCertificates" +// You've reached the limit on the number of certificates per load balancer. +// +// - ErrCodeListenerNotFoundException "ListenerNotFound" +// The specified listener does not exist. +// // - ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" // The specified target group does not exist. // -// - ErrCodeTooManyTargetsException "TooManyTargets" -// You've reached the limit on the number of targets. +// - ErrCodeTargetGroupAssociationLimitException "TargetGroupAssociationLimit" +// You've reached the limit on the number of load balancers per target group. // -// - ErrCodeInvalidTargetException "InvalidTarget" -// The specified target does not exist, is not in the same VPC as the target -// group, or has an unsupported instance type. +// - ErrCodeIncompatibleProtocolsException "IncompatibleProtocols" +// The specified configuration is not valid with this protocol. +// +// - ErrCodeSSLPolicyNotFoundException "SSLPolicyNotFound" +// The specified SSL policy does not exist. +// +// - ErrCodeCertificateNotFoundException "CertificateNotFound" +// The specified certificate does not exist. +// +// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" +// The requested configuration is not valid. +// +// - ErrCodeUnsupportedProtocolException "UnsupportedProtocol" +// The specified protocol is not supported. // // - ErrCodeTooManyRegistrationsForTargetIdException "TooManyRegistrationsForTargetId" // You've reached the limit on the number of times a target can be registered // with a load balancer. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RegisterTargets -func (c *ELBV2) RegisterTargets(input *RegisterTargetsInput) (*RegisterTargetsOutput, error) { - req, out := c.RegisterTargetsRequest(input) +// - ErrCodeTooManyTargetsException "TooManyTargets" +// You've reached the limit on the number of targets. +// +// - ErrCodeTooManyActionsException "TooManyActions" +// You've reached the limit on the number of actions per rule. +// +// - ErrCodeInvalidLoadBalancerActionException "InvalidLoadBalancerAction" +// The requested action is not valid. +// +// - ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException "TooManyUniqueTargetGroupsPerLoadBalancer" +// You've reached the limit on the number of unique target groups per load balancer +// across all listeners. If a target group is used by multiple actions for a +// load balancer, it is counted as only one use. +// +// - ErrCodeALPNPolicyNotSupportedException "ALPNPolicyNotFound" +// The specified ALPN policy is not supported. +// +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. +// +// - ErrCodeTrustStoreNotReadyException "TrustStoreNotReady" +// The specified trust store is not active. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyListener +func (c *ELBV2) ModifyListener(input *ModifyListenerInput) (*ModifyListenerOutput, error) { + req, out := c.ModifyListenerRequest(input) return out, req.Send() } -// RegisterTargetsWithContext is the same as RegisterTargets with the addition of +// ModifyListenerWithContext is the same as ModifyListener with the addition of // the ability to pass a context and additional request options. // -// See RegisterTargets for details on how to use this API operation. +// See ModifyListener for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *ELBV2) RegisterTargetsWithContext(ctx aws.Context, input *RegisterTargetsInput, opts ...request.Option) (*RegisterTargetsOutput, error) { - req, out := c.RegisterTargetsRequest(input) +func (c *ELBV2) ModifyListenerWithContext(ctx aws.Context, input *ModifyListenerInput, opts ...request.Option) (*ModifyListenerOutput, error) { + req, out := c.ModifyListenerRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opRemoveListenerCertificates = "RemoveListenerCertificates" +const opModifyLoadBalancerAttributes = "ModifyLoadBalancerAttributes" -// RemoveListenerCertificatesRequest generates a "aws/request.Request" representing the -// client's request for the RemoveListenerCertificates operation. The "output" return +// ModifyLoadBalancerAttributesRequest generates a "aws/request.Request" representing the +// client's request for the ModifyLoadBalancerAttributes 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 RemoveListenerCertificates for more information on using the RemoveListenerCertificates +// See ModifyLoadBalancerAttributes for more information on using the ModifyLoadBalancerAttributes // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the RemoveListenerCertificatesRequest method. -// req, resp := client.RemoveListenerCertificatesRequest(params) +// // Example sending a request using the ModifyLoadBalancerAttributesRequest method. +// req, resp := client.ModifyLoadBalancerAttributesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveListenerCertificates -func (c *ELBV2) RemoveListenerCertificatesRequest(input *RemoveListenerCertificatesInput) (req *request.Request, output *RemoveListenerCertificatesOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyLoadBalancerAttributes +func (c *ELBV2) ModifyLoadBalancerAttributesRequest(input *ModifyLoadBalancerAttributesInput) (req *request.Request, output *ModifyLoadBalancerAttributesOutput) { op := &request.Operation{ - Name: opRemoveListenerCertificates, + Name: opModifyLoadBalancerAttributes, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &RemoveListenerCertificatesInput{} + input = &ModifyLoadBalancerAttributesInput{} } - output = &RemoveListenerCertificatesOutput{} + output = &ModifyLoadBalancerAttributesOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// RemoveListenerCertificates API operation for Elastic Load Balancing. +// ModifyLoadBalancerAttributes API operation for Elastic Load Balancing. // -// Removes the specified certificate from the certificate list for the specified -// HTTPS or TLS listener. +// Modifies the specified attributes of the specified Application Load Balancer, +// Network Load Balancer, or Gateway Load Balancer. +// +// If any of the specified attributes can't be modified as requested, the call +// fails. Any existing attributes that you do not modify retain their current +// values. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation RemoveListenerCertificates for usage and error information. +// API operation ModifyLoadBalancerAttributes for usage and error information. // // Returned Error Codes: // -// - ErrCodeListenerNotFoundException "ListenerNotFound" -// The specified listener does not exist. +// - ErrCodeLoadBalancerNotFoundException "LoadBalancerNotFound" +// The specified load balancer does not exist. // -// - ErrCodeOperationNotPermittedException "OperationNotPermitted" -// This operation is not allowed. +// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" +// The requested configuration is not valid. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveListenerCertificates -func (c *ELBV2) RemoveListenerCertificates(input *RemoveListenerCertificatesInput) (*RemoveListenerCertificatesOutput, error) { - req, out := c.RemoveListenerCertificatesRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyLoadBalancerAttributes +func (c *ELBV2) ModifyLoadBalancerAttributes(input *ModifyLoadBalancerAttributesInput) (*ModifyLoadBalancerAttributesOutput, error) { + req, out := c.ModifyLoadBalancerAttributesRequest(input) return out, req.Send() } -// RemoveListenerCertificatesWithContext is the same as RemoveListenerCertificates with the addition of +// ModifyLoadBalancerAttributesWithContext is the same as ModifyLoadBalancerAttributes with the addition of // the ability to pass a context and additional request options. // -// See RemoveListenerCertificates for details on how to use this API operation. +// See ModifyLoadBalancerAttributes for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *ELBV2) RemoveListenerCertificatesWithContext(ctx aws.Context, input *RemoveListenerCertificatesInput, opts ...request.Option) (*RemoveListenerCertificatesOutput, error) { - req, out := c.RemoveListenerCertificatesRequest(input) +func (c *ELBV2) ModifyLoadBalancerAttributesWithContext(ctx aws.Context, input *ModifyLoadBalancerAttributesInput, opts ...request.Option) (*ModifyLoadBalancerAttributesOutput, error) { + req, out := c.ModifyLoadBalancerAttributesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opRemoveTags = "RemoveTags" +const opModifyRule = "ModifyRule" -// RemoveTagsRequest generates a "aws/request.Request" representing the -// client's request for the RemoveTags operation. The "output" return +// ModifyRuleRequest generates a "aws/request.Request" representing the +// client's request for the ModifyRule 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 RemoveTags for more information on using the RemoveTags +// See ModifyRule for more information on using the ModifyRule // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the RemoveTagsRequest method. -// req, resp := client.RemoveTagsRequest(params) +// // Example sending a request using the ModifyRuleRequest method. +// req, resp := client.ModifyRuleRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveTags -func (c *ELBV2) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, output *RemoveTagsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyRule +func (c *ELBV2) ModifyRuleRequest(input *ModifyRuleInput) (req *request.Request, output *ModifyRuleOutput) { op := &request.Operation{ - Name: opRemoveTags, + Name: opModifyRule, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &RemoveTagsInput{} + input = &ModifyRuleInput{} } - output = &RemoveTagsOutput{} + output = &ModifyRuleOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// RemoveTags API operation for Elastic Load Balancing. +// ModifyRule API operation for Elastic Load Balancing. // -// Removes the specified tags from the specified Elastic Load Balancing resources. -// You can remove the tags for one or more Application Load Balancers, Network -// Load Balancers, Gateway Load Balancers, target groups, listeners, or rules. +// Replaces the specified properties of the specified rule. Any properties that +// you do not specify are unchanged. +// +// To add an item to a list, remove an item from a list, or update an item in +// a list, you must provide the entire list. For example, to add an action, +// specify a list with the current actions plus the new action. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation RemoveTags for usage and error information. +// API operation ModifyRule for usage and error information. // // Returned Error Codes: // -// - ErrCodeLoadBalancerNotFoundException "LoadBalancerNotFound" -// The specified load balancer does not exist. +// - ErrCodeTargetGroupAssociationLimitException "TargetGroupAssociationLimit" +// You've reached the limit on the number of load balancers per target group. // -// - ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" -// The specified target group does not exist. -// -// - ErrCodeListenerNotFoundException "ListenerNotFound" -// The specified listener does not exist. +// - ErrCodeIncompatibleProtocolsException "IncompatibleProtocols" +// The specified configuration is not valid with this protocol. // // - ErrCodeRuleNotFoundException "RuleNotFound" // The specified rule does not exist. // -// - ErrCodeTooManyTagsException "TooManyTags" -// You've reached the limit on the number of tags per load balancer. +// - ErrCodeOperationNotPermittedException "OperationNotPermitted" +// This operation is not allowed. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveTags -func (c *ELBV2) RemoveTags(input *RemoveTagsInput) (*RemoveTagsOutput, error) { - req, out := c.RemoveTagsRequest(input) +// - ErrCodeTooManyRegistrationsForTargetIdException "TooManyRegistrationsForTargetId" +// You've reached the limit on the number of times a target can be registered +// with a load balancer. +// +// - ErrCodeTooManyTargetsException "TooManyTargets" +// You've reached the limit on the number of targets. +// +// - ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" +// The specified target group does not exist. +// +// - ErrCodeUnsupportedProtocolException "UnsupportedProtocol" +// The specified protocol is not supported. +// +// - ErrCodeTooManyActionsException "TooManyActions" +// You've reached the limit on the number of actions per rule. +// +// - ErrCodeInvalidLoadBalancerActionException "InvalidLoadBalancerAction" +// The requested action is not valid. +// +// - ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException "TooManyUniqueTargetGroupsPerLoadBalancer" +// You've reached the limit on the number of unique target groups per load balancer +// across all listeners. If a target group is used by multiple actions for a +// load balancer, it is counted as only one use. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyRule +func (c *ELBV2) ModifyRule(input *ModifyRuleInput) (*ModifyRuleOutput, error) { + req, out := c.ModifyRuleRequest(input) return out, req.Send() } -// RemoveTagsWithContext is the same as RemoveTags with the addition of +// ModifyRuleWithContext is the same as ModifyRule with the addition of // the ability to pass a context and additional request options. // -// See RemoveTags for details on how to use this API operation. +// See ModifyRule for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *ELBV2) RemoveTagsWithContext(ctx aws.Context, input *RemoveTagsInput, opts ...request.Option) (*RemoveTagsOutput, error) { - req, out := c.RemoveTagsRequest(input) +func (c *ELBV2) ModifyRuleWithContext(ctx aws.Context, input *ModifyRuleInput, opts ...request.Option) (*ModifyRuleOutput, error) { + req, out := c.ModifyRuleRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opSetIpAddressType = "SetIpAddressType" +const opModifyTargetGroup = "ModifyTargetGroup" -// SetIpAddressTypeRequest generates a "aws/request.Request" representing the -// client's request for the SetIpAddressType operation. The "output" return +// ModifyTargetGroupRequest generates a "aws/request.Request" representing the +// client's request for the ModifyTargetGroup 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 SetIpAddressType for more information on using the SetIpAddressType +// See ModifyTargetGroup for more information on using the ModifyTargetGroup // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the SetIpAddressTypeRequest method. -// req, resp := client.SetIpAddressTypeRequest(params) +// // Example sending a request using the ModifyTargetGroupRequest method. +// req, resp := client.ModifyTargetGroupRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetIpAddressType -func (c *ELBV2) SetIpAddressTypeRequest(input *SetIpAddressTypeInput) (req *request.Request, output *SetIpAddressTypeOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroup +func (c *ELBV2) ModifyTargetGroupRequest(input *ModifyTargetGroupInput) (req *request.Request, output *ModifyTargetGroupOutput) { op := &request.Operation{ - Name: opSetIpAddressType, + Name: opModifyTargetGroup, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &SetIpAddressTypeInput{} + input = &ModifyTargetGroupInput{} } - output = &SetIpAddressTypeOutput{} + output = &ModifyTargetGroupOutput{} req = c.newRequest(op, input, output) return } -// SetIpAddressType API operation for Elastic Load Balancing. +// ModifyTargetGroup API operation for Elastic Load Balancing. // -// Sets the type of IP addresses used by the subnets of the specified load balancer. +// Modifies the health checks used when evaluating the health state of the targets +// in the specified target group. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation SetIpAddressType for usage and error information. +// API operation ModifyTargetGroup for usage and error information. // // Returned Error Codes: // -// - ErrCodeLoadBalancerNotFoundException "LoadBalancerNotFound" -// The specified load balancer does not exist. +// - ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" +// The specified target group does not exist. // // - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" // The requested configuration is not valid. // -// - ErrCodeInvalidSubnetException "InvalidSubnet" -// The specified subnet is out of available addresses. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetIpAddressType -func (c *ELBV2) SetIpAddressType(input *SetIpAddressTypeInput) (*SetIpAddressTypeOutput, error) { - req, out := c.SetIpAddressTypeRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroup +func (c *ELBV2) ModifyTargetGroup(input *ModifyTargetGroupInput) (*ModifyTargetGroupOutput, error) { + req, out := c.ModifyTargetGroupRequest(input) return out, req.Send() } -// SetIpAddressTypeWithContext is the same as SetIpAddressType with the addition of +// ModifyTargetGroupWithContext is the same as ModifyTargetGroup with the addition of // the ability to pass a context and additional request options. // -// See SetIpAddressType for details on how to use this API operation. +// See ModifyTargetGroup for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *ELBV2) SetIpAddressTypeWithContext(ctx aws.Context, input *SetIpAddressTypeInput, opts ...request.Option) (*SetIpAddressTypeOutput, error) { - req, out := c.SetIpAddressTypeRequest(input) +func (c *ELBV2) ModifyTargetGroupWithContext(ctx aws.Context, input *ModifyTargetGroupInput, opts ...request.Option) (*ModifyTargetGroupOutput, error) { + req, out := c.ModifyTargetGroupRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opSetRulePriorities = "SetRulePriorities" +const opModifyTargetGroupAttributes = "ModifyTargetGroupAttributes" -// SetRulePrioritiesRequest generates a "aws/request.Request" representing the -// client's request for the SetRulePriorities operation. The "output" return +// ModifyTargetGroupAttributesRequest generates a "aws/request.Request" representing the +// client's request for the ModifyTargetGroupAttributes 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 SetRulePriorities for more information on using the SetRulePriorities +// See ModifyTargetGroupAttributes for more information on using the ModifyTargetGroupAttributes // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the SetRulePrioritiesRequest method. -// req, resp := client.SetRulePrioritiesRequest(params) +// // Example sending a request using the ModifyTargetGroupAttributesRequest method. +// req, resp := client.ModifyTargetGroupAttributesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetRulePriorities -func (c *ELBV2) SetRulePrioritiesRequest(input *SetRulePrioritiesInput) (req *request.Request, output *SetRulePrioritiesOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroupAttributes +func (c *ELBV2) ModifyTargetGroupAttributesRequest(input *ModifyTargetGroupAttributesInput) (req *request.Request, output *ModifyTargetGroupAttributesOutput) { op := &request.Operation{ - Name: opSetRulePriorities, + Name: opModifyTargetGroupAttributes, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &SetRulePrioritiesInput{} + input = &ModifyTargetGroupAttributesInput{} } - output = &SetRulePrioritiesOutput{} + output = &ModifyTargetGroupAttributesOutput{} req = c.newRequest(op, input, output) return } -// SetRulePriorities API operation for Elastic Load Balancing. -// -// Sets the priorities of the specified rules. +// ModifyTargetGroupAttributes API operation for Elastic Load Balancing. // -// You can reorder the rules as long as there are no priority conflicts in the -// new order. Any existing rules that you do not specify retain their current -// priority. +// Modifies the specified attributes of the specified target group. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation SetRulePriorities for usage and error information. +// API operation ModifyTargetGroupAttributes for usage and error information. // // Returned Error Codes: // -// - ErrCodeRuleNotFoundException "RuleNotFound" -// The specified rule does not exist. -// -// - ErrCodePriorityInUseException "PriorityInUse" -// The specified priority is in use. +// - ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" +// The specified target group does not exist. // -// - ErrCodeOperationNotPermittedException "OperationNotPermitted" -// This operation is not allowed. +// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" +// The requested configuration is not valid. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetRulePriorities -func (c *ELBV2) SetRulePriorities(input *SetRulePrioritiesInput) (*SetRulePrioritiesOutput, error) { - req, out := c.SetRulePrioritiesRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroupAttributes +func (c *ELBV2) ModifyTargetGroupAttributes(input *ModifyTargetGroupAttributesInput) (*ModifyTargetGroupAttributesOutput, error) { + req, out := c.ModifyTargetGroupAttributesRequest(input) return out, req.Send() } -// SetRulePrioritiesWithContext is the same as SetRulePriorities with the addition of +// ModifyTargetGroupAttributesWithContext is the same as ModifyTargetGroupAttributes with the addition of // the ability to pass a context and additional request options. // -// See SetRulePriorities for details on how to use this API operation. +// See ModifyTargetGroupAttributes for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *ELBV2) SetRulePrioritiesWithContext(ctx aws.Context, input *SetRulePrioritiesInput, opts ...request.Option) (*SetRulePrioritiesOutput, error) { - req, out := c.SetRulePrioritiesRequest(input) +func (c *ELBV2) ModifyTargetGroupAttributesWithContext(ctx aws.Context, input *ModifyTargetGroupAttributesInput, opts ...request.Option) (*ModifyTargetGroupAttributesOutput, error) { + req, out := c.ModifyTargetGroupAttributesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opSetSecurityGroups = "SetSecurityGroups" +const opModifyTrustStore = "ModifyTrustStore" -// SetSecurityGroupsRequest generates a "aws/request.Request" representing the -// client's request for the SetSecurityGroups operation. The "output" return +// ModifyTrustStoreRequest generates a "aws/request.Request" representing the +// client's request for the ModifyTrustStore 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 SetSecurityGroups for more information on using the SetSecurityGroups +// See ModifyTrustStore for more information on using the ModifyTrustStore // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the SetSecurityGroupsRequest method. -// req, resp := client.SetSecurityGroupsRequest(params) +// // Example sending a request using the ModifyTrustStoreRequest method. +// req, resp := client.ModifyTrustStoreRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSecurityGroups -func (c *ELBV2) SetSecurityGroupsRequest(input *SetSecurityGroupsInput) (req *request.Request, output *SetSecurityGroupsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTrustStore +func (c *ELBV2) ModifyTrustStoreRequest(input *ModifyTrustStoreInput) (req *request.Request, output *ModifyTrustStoreOutput) { op := &request.Operation{ - Name: opSetSecurityGroups, + Name: opModifyTrustStore, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &SetSecurityGroupsInput{} + input = &ModifyTrustStoreInput{} } - output = &SetSecurityGroupsOutput{} + output = &ModifyTrustStoreOutput{} req = c.newRequest(op, input, output) return } -// SetSecurityGroups API operation for Elastic Load Balancing. -// -// Associates the specified security groups with the specified Application Load -// Balancer or Network Load Balancer. The specified security groups override -// the previously associated security groups. -// -// You can't perform this operation on a Network Load Balancer unless you specified -// a security group for the load balancer when you created it. +// ModifyTrustStore API operation for Elastic Load Balancing. // -// You can't associate a security group with a Gateway Load Balancer. +// Update the ca certificate bundle for a given trust store. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation SetSecurityGroups for usage and error information. +// API operation ModifyTrustStore for usage and error information. // // Returned Error Codes: // -// - ErrCodeLoadBalancerNotFoundException "LoadBalancerNotFound" -// The specified load balancer does not exist. +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. // -// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" -// The requested configuration is not valid. +// - ErrCodeInvalidCaCertificatesBundleException "InvalidCaCertificatesBundle" +// The specified ca certificate bundle is in an invalid format, or corrupt. // -// - ErrCodeInvalidSecurityGroupException "InvalidSecurityGroup" -// The specified security group does not exist. +// - ErrCodeCaCertificatesBundleNotFoundException "CaCertificatesBundleNotFound" +// The specified ca certificate bundle does not exist. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSecurityGroups -func (c *ELBV2) SetSecurityGroups(input *SetSecurityGroupsInput) (*SetSecurityGroupsOutput, error) { - req, out := c.SetSecurityGroupsRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTrustStore +func (c *ELBV2) ModifyTrustStore(input *ModifyTrustStoreInput) (*ModifyTrustStoreOutput, error) { + req, out := c.ModifyTrustStoreRequest(input) return out, req.Send() } -// SetSecurityGroupsWithContext is the same as SetSecurityGroups with the addition of +// ModifyTrustStoreWithContext is the same as ModifyTrustStore with the addition of // the ability to pass a context and additional request options. // -// See SetSecurityGroups for details on how to use this API operation. +// See ModifyTrustStore for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *ELBV2) SetSecurityGroupsWithContext(ctx aws.Context, input *SetSecurityGroupsInput, opts ...request.Option) (*SetSecurityGroupsOutput, error) { - req, out := c.SetSecurityGroupsRequest(input) +func (c *ELBV2) ModifyTrustStoreWithContext(ctx aws.Context, input *ModifyTrustStoreInput, opts ...request.Option) (*ModifyTrustStoreOutput, error) { + req, out := c.ModifyTrustStoreRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opSetSubnets = "SetSubnets" +const opRegisterTargets = "RegisterTargets" -// SetSubnetsRequest generates a "aws/request.Request" representing the -// client's request for the SetSubnets operation. The "output" return +// RegisterTargetsRequest generates a "aws/request.Request" representing the +// client's request for the RegisterTargets 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 SetSubnets for more information on using the SetSubnets +// See RegisterTargets for more information on using the RegisterTargets // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the SetSubnetsRequest method. -// req, resp := client.SetSubnetsRequest(params) +// // Example sending a request using the RegisterTargetsRequest method. +// req, resp := client.RegisterTargetsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnets -func (c *ELBV2) SetSubnetsRequest(input *SetSubnetsInput) (req *request.Request, output *SetSubnetsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RegisterTargets +func (c *ELBV2) RegisterTargetsRequest(input *RegisterTargetsInput) (req *request.Request, output *RegisterTargetsOutput) { op := &request.Operation{ - Name: opSetSubnets, + Name: opRegisterTargets, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &SetSubnetsInput{} + input = &RegisterTargetsInput{} } - output = &SetSubnetsOutput{} + output = &RegisterTargetsOutput{} req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// SetSubnets API operation for Elastic Load Balancing. +// RegisterTargets API operation for Elastic Load Balancing. // -// Enables the Availability Zones for the specified public subnets for the specified -// Application Load Balancer, Network Load Balancer or Gateway Load Balancer. -// The specified subnets replace the previously enabled subnets. +// Registers the specified targets with the specified target group. // -// When you specify subnets for a Network Load Balancer, or Gateway Load Balancer -// you must include all subnets that were enabled previously, with their existing -// configurations, plus any additional subnets. +// If the target is an EC2 instance, it must be in the running state when you +// register it. +// +// By default, the load balancer routes requests to registered targets using +// the protocol and port for the target group. Alternatively, you can override +// the port for a target when you register it. You can register each EC2 instance +// or IP address with the same target group multiple times using different ports. +// +// With a Network Load Balancer, you cannot register instances by instance ID +// if they have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, +// G1, G2, HI1, HS1, M1, M2, M3, and T1. You can register instances of these +// types by IP address. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Elastic Load Balancing's -// API operation SetSubnets for usage and error information. +// API operation RegisterTargets for usage and error information. // // Returned Error Codes: // -// - ErrCodeLoadBalancerNotFoundException "LoadBalancerNotFound" -// The specified load balancer does not exist. -// -// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" -// The requested configuration is not valid. +// - ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" +// The specified target group does not exist. // -// - ErrCodeSubnetNotFoundException "SubnetNotFound" -// The specified subnet does not exist. +// - ErrCodeTooManyTargetsException "TooManyTargets" +// You've reached the limit on the number of targets. // -// - ErrCodeInvalidSubnetException "InvalidSubnet" -// The specified subnet is out of available addresses. +// - ErrCodeInvalidTargetException "InvalidTarget" +// The specified target does not exist, is not in the same VPC as the target +// group, or has an unsupported instance type. // -// - ErrCodeAllocationIdNotFoundException "AllocationIdNotFound" -// The specified allocation ID does not exist. +// - ErrCodeTooManyRegistrationsForTargetIdException "TooManyRegistrationsForTargetId" +// You've reached the limit on the number of times a target can be registered +// with a load balancer. // -// - ErrCodeAvailabilityZoneNotSupportedException "AvailabilityZoneNotSupported" -// The specified Availability Zone is not supported. +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RegisterTargets +func (c *ELBV2) RegisterTargets(input *RegisterTargetsInput) (*RegisterTargetsOutput, error) { + req, out := c.RegisterTargetsRequest(input) + return out, req.Send() +} + +// RegisterTargetsWithContext is the same as RegisterTargets with the addition of +// the ability to pass a context and additional request options. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnets -func (c *ELBV2) SetSubnets(input *SetSubnetsInput) (*SetSubnetsOutput, error) { - req, out := c.SetSubnetsRequest(input) +// See RegisterTargets for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) RegisterTargetsWithContext(ctx aws.Context, input *RegisterTargetsInput, opts ...request.Option) (*RegisterTargetsOutput, error) { + req, out := c.RegisterTargetsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opRemoveListenerCertificates = "RemoveListenerCertificates" + +// RemoveListenerCertificatesRequest generates a "aws/request.Request" representing the +// client's request for the RemoveListenerCertificates 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 RemoveListenerCertificates for more information on using the RemoveListenerCertificates +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the RemoveListenerCertificatesRequest method. +// req, resp := client.RemoveListenerCertificatesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveListenerCertificates +func (c *ELBV2) RemoveListenerCertificatesRequest(input *RemoveListenerCertificatesInput) (req *request.Request, output *RemoveListenerCertificatesOutput) { + op := &request.Operation{ + Name: opRemoveListenerCertificates, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RemoveListenerCertificatesInput{} + } + + output = &RemoveListenerCertificatesOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// RemoveListenerCertificates API operation for Elastic Load Balancing. +// +// Removes the specified certificate from the certificate list for the specified +// HTTPS or TLS listener. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation RemoveListenerCertificates for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeListenerNotFoundException "ListenerNotFound" +// The specified listener does not exist. +// +// - ErrCodeOperationNotPermittedException "OperationNotPermitted" +// This operation is not allowed. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveListenerCertificates +func (c *ELBV2) RemoveListenerCertificates(input *RemoveListenerCertificatesInput) (*RemoveListenerCertificatesOutput, error) { + req, out := c.RemoveListenerCertificatesRequest(input) + return out, req.Send() +} + +// RemoveListenerCertificatesWithContext is the same as RemoveListenerCertificates with the addition of +// the ability to pass a context and additional request options. +// +// See RemoveListenerCertificates for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) RemoveListenerCertificatesWithContext(ctx aws.Context, input *RemoveListenerCertificatesInput, opts ...request.Option) (*RemoveListenerCertificatesOutput, error) { + req, out := c.RemoveListenerCertificatesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opRemoveTags = "RemoveTags" + +// RemoveTagsRequest generates a "aws/request.Request" representing the +// client's request for the RemoveTags 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 RemoveTags for more information on using the RemoveTags +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the RemoveTagsRequest method. +// req, resp := client.RemoveTagsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveTags +func (c *ELBV2) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, output *RemoveTagsOutput) { + op := &request.Operation{ + Name: opRemoveTags, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RemoveTagsInput{} + } + + output = &RemoveTagsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// RemoveTags API operation for Elastic Load Balancing. +// +// Removes the specified tags from the specified Elastic Load Balancing resources. +// You can remove the tags for one or more Application Load Balancers, Network +// Load Balancers, Gateway Load Balancers, target groups, listeners, or rules. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation RemoveTags for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeLoadBalancerNotFoundException "LoadBalancerNotFound" +// The specified load balancer does not exist. +// +// - ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" +// The specified target group does not exist. +// +// - ErrCodeListenerNotFoundException "ListenerNotFound" +// The specified listener does not exist. +// +// - ErrCodeRuleNotFoundException "RuleNotFound" +// The specified rule does not exist. +// +// - ErrCodeTooManyTagsException "TooManyTags" +// You've reached the limit on the number of tags for this resource. +// +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveTags +func (c *ELBV2) RemoveTags(input *RemoveTagsInput) (*RemoveTagsOutput, error) { + req, out := c.RemoveTagsRequest(input) + return out, req.Send() +} + +// RemoveTagsWithContext is the same as RemoveTags with the addition of +// the ability to pass a context and additional request options. +// +// See RemoveTags for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) RemoveTagsWithContext(ctx aws.Context, input *RemoveTagsInput, opts ...request.Option) (*RemoveTagsOutput, error) { + req, out := c.RemoveTagsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opRemoveTrustStoreRevocations = "RemoveTrustStoreRevocations" + +// RemoveTrustStoreRevocationsRequest generates a "aws/request.Request" representing the +// client's request for the RemoveTrustStoreRevocations 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 RemoveTrustStoreRevocations for more information on using the RemoveTrustStoreRevocations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the RemoveTrustStoreRevocationsRequest method. +// req, resp := client.RemoveTrustStoreRevocationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveTrustStoreRevocations +func (c *ELBV2) RemoveTrustStoreRevocationsRequest(input *RemoveTrustStoreRevocationsInput) (req *request.Request, output *RemoveTrustStoreRevocationsOutput) { + op := &request.Operation{ + Name: opRemoveTrustStoreRevocations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RemoveTrustStoreRevocationsInput{} + } + + output = &RemoveTrustStoreRevocationsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// RemoveTrustStoreRevocations API operation for Elastic Load Balancing. +// +// Removes the specified revocation file from the specified trust store. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation RemoveTrustStoreRevocations for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeTrustStoreNotFoundException "TrustStoreNotFound" +// The specified trust store does not exist. +// +// - ErrCodeRevocationIdNotFoundException "RevocationIdNotFound" +// The specified revocation ID does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveTrustStoreRevocations +func (c *ELBV2) RemoveTrustStoreRevocations(input *RemoveTrustStoreRevocationsInput) (*RemoveTrustStoreRevocationsOutput, error) { + req, out := c.RemoveTrustStoreRevocationsRequest(input) return out, req.Send() } -// SetSubnetsWithContext is the same as SetSubnets with the addition of -// the ability to pass a context and additional request options. -// -// See SetSubnets for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *ELBV2) SetSubnetsWithContext(ctx aws.Context, input *SetSubnetsInput, opts ...request.Option) (*SetSubnetsOutput, error) { - req, out := c.SetSubnetsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() +// RemoveTrustStoreRevocationsWithContext is the same as RemoveTrustStoreRevocations with the addition of +// the ability to pass a context and additional request options. +// +// See RemoveTrustStoreRevocations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) RemoveTrustStoreRevocationsWithContext(ctx aws.Context, input *RemoveTrustStoreRevocationsInput, opts ...request.Option) (*RemoveTrustStoreRevocationsOutput, error) { + req, out := c.RemoveTrustStoreRevocationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opSetIpAddressType = "SetIpAddressType" + +// SetIpAddressTypeRequest generates a "aws/request.Request" representing the +// client's request for the SetIpAddressType 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 SetIpAddressType for more information on using the SetIpAddressType +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the SetIpAddressTypeRequest method. +// req, resp := client.SetIpAddressTypeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetIpAddressType +func (c *ELBV2) SetIpAddressTypeRequest(input *SetIpAddressTypeInput) (req *request.Request, output *SetIpAddressTypeOutput) { + op := &request.Operation{ + Name: opSetIpAddressType, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SetIpAddressTypeInput{} + } + + output = &SetIpAddressTypeOutput{} + req = c.newRequest(op, input, output) + return +} + +// SetIpAddressType API operation for Elastic Load Balancing. +// +// Sets the type of IP addresses used by the subnets of the specified load balancer. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation SetIpAddressType for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeLoadBalancerNotFoundException "LoadBalancerNotFound" +// The specified load balancer does not exist. +// +// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" +// The requested configuration is not valid. +// +// - ErrCodeInvalidSubnetException "InvalidSubnet" +// The specified subnet is out of available addresses. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetIpAddressType +func (c *ELBV2) SetIpAddressType(input *SetIpAddressTypeInput) (*SetIpAddressTypeOutput, error) { + req, out := c.SetIpAddressTypeRequest(input) + return out, req.Send() +} + +// SetIpAddressTypeWithContext is the same as SetIpAddressType with the addition of +// the ability to pass a context and additional request options. +// +// See SetIpAddressType for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) SetIpAddressTypeWithContext(ctx aws.Context, input *SetIpAddressTypeInput, opts ...request.Option) (*SetIpAddressTypeOutput, error) { + req, out := c.SetIpAddressTypeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opSetRulePriorities = "SetRulePriorities" + +// SetRulePrioritiesRequest generates a "aws/request.Request" representing the +// client's request for the SetRulePriorities 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 SetRulePriorities for more information on using the SetRulePriorities +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the SetRulePrioritiesRequest method. +// req, resp := client.SetRulePrioritiesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetRulePriorities +func (c *ELBV2) SetRulePrioritiesRequest(input *SetRulePrioritiesInput) (req *request.Request, output *SetRulePrioritiesOutput) { + op := &request.Operation{ + Name: opSetRulePriorities, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SetRulePrioritiesInput{} + } + + output = &SetRulePrioritiesOutput{} + req = c.newRequest(op, input, output) + return +} + +// SetRulePriorities API operation for Elastic Load Balancing. +// +// Sets the priorities of the specified rules. +// +// You can reorder the rules as long as there are no priority conflicts in the +// new order. Any existing rules that you do not specify retain their current +// priority. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation SetRulePriorities for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeRuleNotFoundException "RuleNotFound" +// The specified rule does not exist. +// +// - ErrCodePriorityInUseException "PriorityInUse" +// The specified priority is in use. +// +// - ErrCodeOperationNotPermittedException "OperationNotPermitted" +// This operation is not allowed. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetRulePriorities +func (c *ELBV2) SetRulePriorities(input *SetRulePrioritiesInput) (*SetRulePrioritiesOutput, error) { + req, out := c.SetRulePrioritiesRequest(input) + return out, req.Send() +} + +// SetRulePrioritiesWithContext is the same as SetRulePriorities with the addition of +// the ability to pass a context and additional request options. +// +// See SetRulePriorities for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) SetRulePrioritiesWithContext(ctx aws.Context, input *SetRulePrioritiesInput, opts ...request.Option) (*SetRulePrioritiesOutput, error) { + req, out := c.SetRulePrioritiesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opSetSecurityGroups = "SetSecurityGroups" + +// SetSecurityGroupsRequest generates a "aws/request.Request" representing the +// client's request for the SetSecurityGroups 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 SetSecurityGroups for more information on using the SetSecurityGroups +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the SetSecurityGroupsRequest method. +// req, resp := client.SetSecurityGroupsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSecurityGroups +func (c *ELBV2) SetSecurityGroupsRequest(input *SetSecurityGroupsInput) (req *request.Request, output *SetSecurityGroupsOutput) { + op := &request.Operation{ + Name: opSetSecurityGroups, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SetSecurityGroupsInput{} + } + + output = &SetSecurityGroupsOutput{} + req = c.newRequest(op, input, output) + return +} + +// SetSecurityGroups API operation for Elastic Load Balancing. +// +// Associates the specified security groups with the specified Application Load +// Balancer or Network Load Balancer. The specified security groups override +// the previously associated security groups. +// +// You can't perform this operation on a Network Load Balancer unless you specified +// a security group for the load balancer when you created it. +// +// You can't associate a security group with a Gateway Load Balancer. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation SetSecurityGroups for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeLoadBalancerNotFoundException "LoadBalancerNotFound" +// The specified load balancer does not exist. +// +// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" +// The requested configuration is not valid. +// +// - ErrCodeInvalidSecurityGroupException "InvalidSecurityGroup" +// The specified security group does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSecurityGroups +func (c *ELBV2) SetSecurityGroups(input *SetSecurityGroupsInput) (*SetSecurityGroupsOutput, error) { + req, out := c.SetSecurityGroupsRequest(input) + return out, req.Send() +} + +// SetSecurityGroupsWithContext is the same as SetSecurityGroups with the addition of +// the ability to pass a context and additional request options. +// +// See SetSecurityGroups for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) SetSecurityGroupsWithContext(ctx aws.Context, input *SetSecurityGroupsInput, opts ...request.Option) (*SetSecurityGroupsOutput, error) { + req, out := c.SetSecurityGroupsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opSetSubnets = "SetSubnets" + +// SetSubnetsRequest generates a "aws/request.Request" representing the +// client's request for the SetSubnets 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 SetSubnets for more information on using the SetSubnets +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the SetSubnetsRequest method. +// req, resp := client.SetSubnetsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnets +func (c *ELBV2) SetSubnetsRequest(input *SetSubnetsInput) (req *request.Request, output *SetSubnetsOutput) { + op := &request.Operation{ + Name: opSetSubnets, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SetSubnetsInput{} + } + + output = &SetSubnetsOutput{} + req = c.newRequest(op, input, output) + return +} + +// SetSubnets API operation for Elastic Load Balancing. +// +// Enables the Availability Zones for the specified public subnets for the specified +// Application Load Balancer, Network Load Balancer or Gateway Load Balancer. +// The specified subnets replace the previously enabled subnets. +// +// When you specify subnets for a Network Load Balancer, or Gateway Load Balancer +// you must include all subnets that were enabled previously, with their existing +// configurations, plus any additional subnets. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Elastic Load Balancing's +// API operation SetSubnets for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeLoadBalancerNotFoundException "LoadBalancerNotFound" +// The specified load balancer does not exist. +// +// - ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" +// The requested configuration is not valid. +// +// - ErrCodeSubnetNotFoundException "SubnetNotFound" +// The specified subnet does not exist. +// +// - ErrCodeInvalidSubnetException "InvalidSubnet" +// The specified subnet is out of available addresses. +// +// - ErrCodeAllocationIdNotFoundException "AllocationIdNotFound" +// The specified allocation ID does not exist. +// +// - ErrCodeAvailabilityZoneNotSupportedException "AvailabilityZoneNotSupported" +// The specified Availability Zone is not supported. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnets +func (c *ELBV2) SetSubnets(input *SetSubnetsInput) (*SetSubnetsOutput, error) { + req, out := c.SetSubnetsRequest(input) + return out, req.Send() +} + +// SetSubnetsWithContext is the same as SetSubnets with the addition of +// the ability to pass a context and additional request options. +// +// See SetSubnets for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ELBV2) SetSubnetsWithContext(ctx aws.Context, input *SetSubnetsInput, opts ...request.Option) (*SetSubnetsOutput, error) { + req, out := c.SetSubnetsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// Information about an action. +// +// Each rule must include exactly one of the following types of actions: forward, +// fixed-response, or redirect, and it must be the last action to be performed. +type Action struct { + _ struct{} `type:"structure"` + + // [HTTPS listeners] Information for using Amazon Cognito to authenticate users. + // Specify only when Type is authenticate-cognito. + AuthenticateCognitoConfig *AuthenticateCognitoActionConfig `type:"structure"` + + // [HTTPS listeners] Information about an identity provider that is compliant + // with OpenID Connect (OIDC). Specify only when Type is authenticate-oidc. + AuthenticateOidcConfig *AuthenticateOidcActionConfig `type:"structure"` + + // [Application Load Balancer] Information for creating an action that returns + // a custom HTTP response. Specify only when Type is fixed-response. + FixedResponseConfig *FixedResponseActionConfig `type:"structure"` + + // Information for creating an action that distributes requests among one or + // more target groups. For Network Load Balancers, you can specify a single + // target group. Specify only when Type is forward. If you specify both ForwardConfig + // and TargetGroupArn, you can specify only one target group using ForwardConfig + // and it must be the same target group specified in TargetGroupArn. + ForwardConfig *ForwardActionConfig `type:"structure"` + + // The order for the action. This value is required for rules with multiple + // actions. The action with the lowest value for order is performed first. + Order *int64 `min:"1" type:"integer"` + + // [Application Load Balancer] Information for creating a redirect action. Specify + // only when Type is redirect. + RedirectConfig *RedirectActionConfig `type:"structure"` + + // The Amazon Resource Name (ARN) of the target group. Specify only when Type + // is forward and you want to route to a single target group. To route to one + // or more target groups, use ForwardConfig instead. + TargetGroupArn *string `type:"string"` + + // The type of action. + // + // Type is a required field + Type *string `type:"string" required:"true" enum:"ActionTypeEnum"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Action) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +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.Order != nil && *s.Order < 1 { + invalidParams.Add(request.NewErrParamMinValue("Order", 1)) + } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.AuthenticateCognitoConfig != nil { + if err := s.AuthenticateCognitoConfig.Validate(); err != nil { + invalidParams.AddNested("AuthenticateCognitoConfig", err.(request.ErrInvalidParams)) + } + } + if s.AuthenticateOidcConfig != nil { + if err := s.AuthenticateOidcConfig.Validate(); err != nil { + invalidParams.AddNested("AuthenticateOidcConfig", err.(request.ErrInvalidParams)) + } + } + if s.FixedResponseConfig != nil { + if err := s.FixedResponseConfig.Validate(); err != nil { + invalidParams.AddNested("FixedResponseConfig", err.(request.ErrInvalidParams)) + } + } + if s.RedirectConfig != nil { + if err := s.RedirectConfig.Validate(); err != nil { + invalidParams.AddNested("RedirectConfig", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAuthenticateCognitoConfig sets the AuthenticateCognitoConfig field's value. +func (s *Action) SetAuthenticateCognitoConfig(v *AuthenticateCognitoActionConfig) *Action { + s.AuthenticateCognitoConfig = v + return s +} + +// SetAuthenticateOidcConfig sets the AuthenticateOidcConfig field's value. +func (s *Action) SetAuthenticateOidcConfig(v *AuthenticateOidcActionConfig) *Action { + s.AuthenticateOidcConfig = v + return s +} + +// SetFixedResponseConfig sets the FixedResponseConfig field's value. +func (s *Action) SetFixedResponseConfig(v *FixedResponseActionConfig) *Action { + s.FixedResponseConfig = v + return s +} + +// SetForwardConfig sets the ForwardConfig field's value. +func (s *Action) SetForwardConfig(v *ForwardActionConfig) *Action { + s.ForwardConfig = v + return s +} + +// SetOrder sets the Order field's value. +func (s *Action) SetOrder(v int64) *Action { + s.Order = &v + return s +} + +// SetRedirectConfig sets the RedirectConfig field's value. +func (s *Action) SetRedirectConfig(v *RedirectActionConfig) *Action { + s.RedirectConfig = v + return s +} + +// SetTargetGroupArn sets the TargetGroupArn field's value. +func (s *Action) SetTargetGroupArn(v string) *Action { + s.TargetGroupArn = &v + return s +} + +// SetType sets the Type field's value. +func (s *Action) SetType(v string) *Action { + s.Type = &v + return s +} + +type AddListenerCertificatesInput struct { + _ struct{} `type:"structure"` + + // The certificate to add. You can specify one certificate per call. Set CertificateArn + // to the certificate ARN but do not set IsDefault. + // + // Certificates is a required field + Certificates []*Certificate `type:"list" required:"true"` + + // The Amazon Resource Name (ARN) of the listener. + // + // ListenerArn is a required field + ListenerArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddListenerCertificatesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddListenerCertificatesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddListenerCertificatesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AddListenerCertificatesInput"} + if s.Certificates == nil { + invalidParams.Add(request.NewErrParamRequired("Certificates")) + } + if s.ListenerArn == nil { + invalidParams.Add(request.NewErrParamRequired("ListenerArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCertificates sets the Certificates field's value. +func (s *AddListenerCertificatesInput) SetCertificates(v []*Certificate) *AddListenerCertificatesInput { + s.Certificates = v + return s +} + +// SetListenerArn sets the ListenerArn field's value. +func (s *AddListenerCertificatesInput) SetListenerArn(v string) *AddListenerCertificatesInput { + s.ListenerArn = &v + return s +} + +type AddListenerCertificatesOutput struct { + _ struct{} `type:"structure"` + + // Information about the certificates in the certificate list. + Certificates []*Certificate `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddListenerCertificatesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddListenerCertificatesOutput) GoString() string { + return s.String() +} + +// SetCertificates sets the Certificates field's value. +func (s *AddListenerCertificatesOutput) SetCertificates(v []*Certificate) *AddListenerCertificatesOutput { + s.Certificates = v + return s +} + +type AddTagsInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceArns is a required field + ResourceArns []*string `type:"list" required:"true"` + + // The tags. + // + // Tags is a required field + Tags []*Tag `min:"1" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddTagsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddTagsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddTagsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AddTagsInput"} + if s.ResourceArns == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArns")) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 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 + } + return nil +} + +// SetResourceArns sets the ResourceArns field's value. +func (s *AddTagsInput) SetResourceArns(v []*string) *AddTagsInput { + s.ResourceArns = v + return s +} + +// SetTags sets the Tags field's value. +func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput { + s.Tags = v + return s +} + +type AddTagsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddTagsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddTagsOutput) GoString() string { + return s.String() +} + +type AddTrustStoreRevocationsInput struct { + _ struct{} `type:"structure"` + + // The revocation file to add. + RevocationContents []*RevocationContent `type:"list"` + + // The Amazon Resource Name (ARN) of the trust store. + // + // TrustStoreArn is a required field + TrustStoreArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddTrustStoreRevocationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddTrustStoreRevocationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddTrustStoreRevocationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AddTrustStoreRevocationsInput"} + if s.TrustStoreArn == nil { + invalidParams.Add(request.NewErrParamRequired("TrustStoreArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRevocationContents sets the RevocationContents field's value. +func (s *AddTrustStoreRevocationsInput) SetRevocationContents(v []*RevocationContent) *AddTrustStoreRevocationsInput { + s.RevocationContents = v + return s +} + +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *AddTrustStoreRevocationsInput) SetTrustStoreArn(v string) *AddTrustStoreRevocationsInput { + s.TrustStoreArn = &v + return s +} + +type AddTrustStoreRevocationsOutput struct { + _ struct{} `type:"structure"` + + // Information about the revocation file added to the trust store. + TrustStoreRevocations []*TrustStoreRevocation `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddTrustStoreRevocationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AddTrustStoreRevocationsOutput) GoString() string { + return s.String() +} + +// SetTrustStoreRevocations sets the TrustStoreRevocations field's value. +func (s *AddTrustStoreRevocationsOutput) SetTrustStoreRevocations(v []*TrustStoreRevocation) *AddTrustStoreRevocationsOutput { + s.TrustStoreRevocations = v + return s +} + +// Information about anomaly detection and mitigation. +type AnomalyDetection struct { + _ struct{} `type:"structure"` + + // Indicates whether anomaly mitigation is in progress. + MitigationInEffect *string `type:"string" enum:"MitigationInEffectEnum"` + + // The latest anomaly detection result. + Result *string `type:"string" enum:"AnomalyResultEnum"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AnomalyDetection) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AnomalyDetection) GoString() string { + return s.String() +} + +// SetMitigationInEffect sets the MitigationInEffect field's value. +func (s *AnomalyDetection) SetMitigationInEffect(v string) *AnomalyDetection { + s.MitigationInEffect = &v + return s +} + +// SetResult sets the Result field's value. +func (s *AnomalyDetection) SetResult(v string) *AnomalyDetection { + s.Result = &v + return s +} + +// Request parameters to use when integrating with Amazon Cognito to authenticate +// users. +type AuthenticateCognitoActionConfig struct { + _ struct{} `type:"structure"` + + // The query parameters (up to 10) to include in the redirect request to the + // authorization endpoint. + AuthenticationRequestExtraParams map[string]*string `type:"map"` + + // The behavior if the user is not authenticated. The following are possible + // values: + // + // * deny - Return an HTTP 401 Unauthorized error. + // + // * allow - Allow the request to be forwarded to the target. + // + // * authenticate - Redirect the request to the IdP authorization endpoint. + // This is the default value. + OnUnauthenticatedRequest *string `type:"string" enum:"AuthenticateCognitoActionConditionalBehaviorEnum"` + + // The set of user claims to be requested from the IdP. The default is openid. + // + // To verify which scope values your IdP supports and how to separate multiple + // values, see the documentation for your IdP. + Scope *string `type:"string"` + + // The name of the cookie used to maintain session information. The default + // is AWSELBAuthSessionCookie. + SessionCookieName *string `type:"string"` + + // The maximum duration of the authentication session, in seconds. The default + // is 604800 seconds (7 days). + SessionTimeout *int64 `type:"long"` + + // The Amazon Resource Name (ARN) of the Amazon Cognito user pool. + // + // UserPoolArn is a required field + UserPoolArn *string `type:"string" required:"true"` + + // The ID of the Amazon Cognito user pool client. + // + // UserPoolClientId is a required field + UserPoolClientId *string `type:"string" required:"true"` + + // The domain prefix or fully-qualified domain name of the Amazon Cognito user + // pool. + // + // UserPoolDomain is a required field + UserPoolDomain *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AuthenticateCognitoActionConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AuthenticateCognitoActionConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AuthenticateCognitoActionConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AuthenticateCognitoActionConfig"} + if s.UserPoolArn == nil { + invalidParams.Add(request.NewErrParamRequired("UserPoolArn")) + } + if s.UserPoolClientId == nil { + invalidParams.Add(request.NewErrParamRequired("UserPoolClientId")) + } + if s.UserPoolDomain == nil { + invalidParams.Add(request.NewErrParamRequired("UserPoolDomain")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAuthenticationRequestExtraParams sets the AuthenticationRequestExtraParams field's value. +func (s *AuthenticateCognitoActionConfig) SetAuthenticationRequestExtraParams(v map[string]*string) *AuthenticateCognitoActionConfig { + s.AuthenticationRequestExtraParams = v + return s } -// Information about an action. -// -// Each rule must include exactly one of the following types of actions: forward, -// fixed-response, or redirect, and it must be the last action to be performed. -type Action struct { +// SetOnUnauthenticatedRequest sets the OnUnauthenticatedRequest field's value. +func (s *AuthenticateCognitoActionConfig) SetOnUnauthenticatedRequest(v string) *AuthenticateCognitoActionConfig { + s.OnUnauthenticatedRequest = &v + return s +} + +// SetScope sets the Scope field's value. +func (s *AuthenticateCognitoActionConfig) SetScope(v string) *AuthenticateCognitoActionConfig { + s.Scope = &v + return s +} + +// SetSessionCookieName sets the SessionCookieName field's value. +func (s *AuthenticateCognitoActionConfig) SetSessionCookieName(v string) *AuthenticateCognitoActionConfig { + s.SessionCookieName = &v + return s +} + +// SetSessionTimeout sets the SessionTimeout field's value. +func (s *AuthenticateCognitoActionConfig) SetSessionTimeout(v int64) *AuthenticateCognitoActionConfig { + s.SessionTimeout = &v + return s +} + +// SetUserPoolArn sets the UserPoolArn field's value. +func (s *AuthenticateCognitoActionConfig) SetUserPoolArn(v string) *AuthenticateCognitoActionConfig { + s.UserPoolArn = &v + return s +} + +// SetUserPoolClientId sets the UserPoolClientId field's value. +func (s *AuthenticateCognitoActionConfig) SetUserPoolClientId(v string) *AuthenticateCognitoActionConfig { + s.UserPoolClientId = &v + return s +} + +// SetUserPoolDomain sets the UserPoolDomain field's value. +func (s *AuthenticateCognitoActionConfig) SetUserPoolDomain(v string) *AuthenticateCognitoActionConfig { + s.UserPoolDomain = &v + return s +} + +// Request parameters when using an identity provider (IdP) that is compliant +// with OpenID Connect (OIDC) to authenticate users. +type AuthenticateOidcActionConfig struct { _ struct{} `type:"structure"` - // [HTTPS listeners] Information for using Amazon Cognito to authenticate users. - // Specify only when Type is authenticate-cognito. - AuthenticateCognitoConfig *AuthenticateCognitoActionConfig `type:"structure"` + // The query parameters (up to 10) to include in the redirect request to the + // authorization endpoint. + AuthenticationRequestExtraParams map[string]*string `type:"map"` - // [HTTPS listeners] Information about an identity provider that is compliant - // with OpenID Connect (OIDC). Specify only when Type is authenticate-oidc. - AuthenticateOidcConfig *AuthenticateOidcActionConfig `type:"structure"` + // The authorization endpoint of the IdP. This must be a full URL, including + // the HTTPS protocol, the domain, and the path. + // + // AuthorizationEndpoint is a required field + AuthorizationEndpoint *string `type:"string" required:"true"` - // [Application Load Balancer] Information for creating an action that returns - // a custom HTTP response. Specify only when Type is fixed-response. - FixedResponseConfig *FixedResponseActionConfig `type:"structure"` + // The OAuth 2.0 client identifier. + // + // ClientId is a required field + ClientId *string `type:"string" required:"true"` - // Information for creating an action that distributes requests among one or - // more target groups. For Network Load Balancers, you can specify a single - // target group. Specify only when Type is forward. If you specify both ForwardConfig - // and TargetGroupArn, you can specify only one target group using ForwardConfig - // and it must be the same target group specified in TargetGroupArn. - ForwardConfig *ForwardActionConfig `type:"structure"` + // 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 order for the action. This value is required for rules with multiple - // actions. The action with the lowest value for order is performed first. - Order *int64 `min:"1" type:"integer"` + // The OIDC issuer identifier of the IdP. This must be a full URL, including + // the HTTPS protocol, the domain, and the path. + // + // Issuer is a required field + Issuer *string `type:"string" required:"true"` - // [Application Load Balancer] Information for creating a redirect action. Specify - // only when Type is redirect. - RedirectConfig *RedirectActionConfig `type:"structure"` + // The behavior if the user is not authenticated. The following are possible + // values: + // + // * deny - Return an HTTP 401 Unauthorized error. + // + // * allow - Allow the request to be forwarded to the target. + // + // * authenticate - Redirect the request to the IdP authorization endpoint. + // This is the default value. + OnUnauthenticatedRequest *string `type:"string" enum:"AuthenticateOidcActionConditionalBehaviorEnum"` - // The Amazon Resource Name (ARN) of the target group. Specify only when Type - // is forward and you want to route to a single target group. To route to one - // or more target groups, use ForwardConfig instead. - TargetGroupArn *string `type:"string"` + // The set of user claims to be requested from the IdP. The default is openid. + // + // To verify which scope values your IdP supports and how to separate multiple + // values, see the documentation for your IdP. + Scope *string `type:"string"` - // The type of action. + // The name of the cookie used to maintain session information. The default + // is AWSELBAuthSessionCookie. + SessionCookieName *string `type:"string"` + + // The maximum duration of the authentication session, in seconds. The default + // is 604800 seconds (7 days). + SessionTimeout *int64 `type:"long"` + + // The token endpoint of the IdP. This must be a full URL, including the HTTPS + // protocol, the domain, and the path. // - // Type is a required field - Type *string `type:"string" required:"true" enum:"ActionTypeEnum"` + // 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. + // + // UserInfoEndpoint is a required field + UserInfoEndpoint *string `type:"string" required:"true"` } // String returns the string representation. @@ -3490,7 +5145,7 @@ type Action struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Action) String() string { +func (s AuthenticateOidcActionConfig) String() string { return awsutil.Prettify(s) } @@ -3499,38 +5154,27 @@ func (s Action) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Action) GoString() string { +func (s AuthenticateOidcActionConfig) 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.Order != nil && *s.Order < 1 { - invalidParams.Add(request.NewErrParamMinValue("Order", 1)) - } - if s.Type == nil { - invalidParams.Add(request.NewErrParamRequired("Type")) +func (s *AuthenticateOidcActionConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AuthenticateOidcActionConfig"} + if s.AuthorizationEndpoint == nil { + invalidParams.Add(request.NewErrParamRequired("AuthorizationEndpoint")) } - if s.AuthenticateCognitoConfig != nil { - if err := s.AuthenticateCognitoConfig.Validate(); err != nil { - invalidParams.AddNested("AuthenticateCognitoConfig", err.(request.ErrInvalidParams)) - } + if s.ClientId == nil { + invalidParams.Add(request.NewErrParamRequired("ClientId")) } - if s.AuthenticateOidcConfig != nil { - if err := s.AuthenticateOidcConfig.Validate(); err != nil { - invalidParams.AddNested("AuthenticateOidcConfig", err.(request.ErrInvalidParams)) - } + if s.Issuer == nil { + invalidParams.Add(request.NewErrParamRequired("Issuer")) } - if s.FixedResponseConfig != nil { - if err := s.FixedResponseConfig.Validate(); err != nil { - invalidParams.AddNested("FixedResponseConfig", err.(request.ErrInvalidParams)) - } + if s.TokenEndpoint == nil { + invalidParams.Add(request.NewErrParamRequired("TokenEndpoint")) } - if s.RedirectConfig != nil { - if err := s.RedirectConfig.Validate(); err != nil { - invalidParams.AddNested("RedirectConfig", err.(request.ErrInvalidParams)) - } + if s.UserInfoEndpoint == nil { + invalidParams.Add(request.NewErrParamRequired("UserInfoEndpoint")) } if invalidParams.Len() > 0 { @@ -3539,67 +5183,96 @@ func (s *Action) Validate() error { return nil } -// SetAuthenticateCognitoConfig sets the AuthenticateCognitoConfig field's value. -func (s *Action) SetAuthenticateCognitoConfig(v *AuthenticateCognitoActionConfig) *Action { - s.AuthenticateCognitoConfig = v +// SetAuthenticationRequestExtraParams sets the AuthenticationRequestExtraParams field's value. +func (s *AuthenticateOidcActionConfig) SetAuthenticationRequestExtraParams(v map[string]*string) *AuthenticateOidcActionConfig { + s.AuthenticationRequestExtraParams = v return s } -// SetAuthenticateOidcConfig sets the AuthenticateOidcConfig field's value. -func (s *Action) SetAuthenticateOidcConfig(v *AuthenticateOidcActionConfig) *Action { - s.AuthenticateOidcConfig = v +// SetAuthorizationEndpoint sets the AuthorizationEndpoint field's value. +func (s *AuthenticateOidcActionConfig) SetAuthorizationEndpoint(v string) *AuthenticateOidcActionConfig { + s.AuthorizationEndpoint = &v return s } -// SetFixedResponseConfig sets the FixedResponseConfig field's value. -func (s *Action) SetFixedResponseConfig(v *FixedResponseActionConfig) *Action { - s.FixedResponseConfig = v +// SetClientId sets the ClientId field's value. +func (s *AuthenticateOidcActionConfig) SetClientId(v string) *AuthenticateOidcActionConfig { + s.ClientId = &v return s } -// SetForwardConfig sets the ForwardConfig field's value. -func (s *Action) SetForwardConfig(v *ForwardActionConfig) *Action { - s.ForwardConfig = v +// SetClientSecret sets the ClientSecret field's value. +func (s *AuthenticateOidcActionConfig) SetClientSecret(v string) *AuthenticateOidcActionConfig { + s.ClientSecret = &v + return s +} + +// SetIssuer sets the Issuer field's value. +func (s *AuthenticateOidcActionConfig) SetIssuer(v string) *AuthenticateOidcActionConfig { + s.Issuer = &v + return s +} + +// SetOnUnauthenticatedRequest sets the OnUnauthenticatedRequest field's value. +func (s *AuthenticateOidcActionConfig) SetOnUnauthenticatedRequest(v string) *AuthenticateOidcActionConfig { + s.OnUnauthenticatedRequest = &v + return s +} + +// SetScope sets the Scope field's value. +func (s *AuthenticateOidcActionConfig) SetScope(v string) *AuthenticateOidcActionConfig { + s.Scope = &v + return s +} + +// SetSessionCookieName sets the SessionCookieName field's value. +func (s *AuthenticateOidcActionConfig) SetSessionCookieName(v string) *AuthenticateOidcActionConfig { + s.SessionCookieName = &v return s } -// SetOrder sets the Order field's value. -func (s *Action) SetOrder(v int64) *Action { - s.Order = &v +// SetSessionTimeout sets the SessionTimeout field's value. +func (s *AuthenticateOidcActionConfig) SetSessionTimeout(v int64) *AuthenticateOidcActionConfig { + s.SessionTimeout = &v return s } -// SetRedirectConfig sets the RedirectConfig field's value. -func (s *Action) SetRedirectConfig(v *RedirectActionConfig) *Action { - s.RedirectConfig = v +// SetTokenEndpoint sets the TokenEndpoint field's value. +func (s *AuthenticateOidcActionConfig) SetTokenEndpoint(v string) *AuthenticateOidcActionConfig { + s.TokenEndpoint = &v return s } -// SetTargetGroupArn sets the TargetGroupArn field's value. -func (s *Action) SetTargetGroupArn(v string) *Action { - s.TargetGroupArn = &v +// SetUseExistingClientSecret sets the UseExistingClientSecret field's value. +func (s *AuthenticateOidcActionConfig) SetUseExistingClientSecret(v bool) *AuthenticateOidcActionConfig { + s.UseExistingClientSecret = &v return s } -// SetType sets the Type field's value. -func (s *Action) SetType(v string) *Action { - s.Type = &v +// SetUserInfoEndpoint sets the UserInfoEndpoint field's value. +func (s *AuthenticateOidcActionConfig) SetUserInfoEndpoint(v string) *AuthenticateOidcActionConfig { + s.UserInfoEndpoint = &v return s } -type AddListenerCertificatesInput struct { +// Information about an Availability Zone. +type AvailabilityZone struct { _ struct{} `type:"structure"` - // The certificate to add. You can specify one certificate per call. Set CertificateArn - // to the certificate ARN but do not set IsDefault. - // - // Certificates is a required field - Certificates []*Certificate `type:"list" required:"true"` + // [Network Load Balancers] If you need static IP addresses for your load balancer, + // you can specify one Elastic IP address per Availability Zone when you create + // an internal-facing load balancer. For internal load balancers, you can specify + // a private IP address from the IPv4 range of the subnet. + LoadBalancerAddresses []*LoadBalancerAddress `type:"list"` - // The Amazon Resource Name (ARN) of the listener. - // - // ListenerArn is a required field - ListenerArn *string `type:"string" required:"true"` + // [Application Load Balancers on Outposts] The ID of the Outpost. + OutpostId *string `type:"string"` + + // The ID of the subnet. You can specify one subnet per Availability Zone. + SubnetId *string `type:"string"` + + // The name of the Availability Zone. + ZoneName *string `type:"string"` } // String returns the string representation. @@ -3607,7 +5280,7 @@ type AddListenerCertificatesInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AddListenerCertificatesInput) String() string { +func (s AvailabilityZone) String() string { return awsutil.Prettify(s) } @@ -3616,43 +5289,46 @@ func (s AddListenerCertificatesInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AddListenerCertificatesInput) GoString() string { +func (s AvailabilityZone) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *AddListenerCertificatesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AddListenerCertificatesInput"} - if s.Certificates == nil { - invalidParams.Add(request.NewErrParamRequired("Certificates")) - } - if s.ListenerArn == nil { - invalidParams.Add(request.NewErrParamRequired("ListenerArn")) - } +// SetLoadBalancerAddresses sets the LoadBalancerAddresses field's value. +func (s *AvailabilityZone) SetLoadBalancerAddresses(v []*LoadBalancerAddress) *AvailabilityZone { + s.LoadBalancerAddresses = v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetOutpostId sets the OutpostId field's value. +func (s *AvailabilityZone) SetOutpostId(v string) *AvailabilityZone { + s.OutpostId = &v + return s } -// SetCertificates sets the Certificates field's value. -func (s *AddListenerCertificatesInput) SetCertificates(v []*Certificate) *AddListenerCertificatesInput { - s.Certificates = v +// SetSubnetId sets the SubnetId field's value. +func (s *AvailabilityZone) SetSubnetId(v string) *AvailabilityZone { + s.SubnetId = &v return s } -// SetListenerArn sets the ListenerArn field's value. -func (s *AddListenerCertificatesInput) SetListenerArn(v string) *AddListenerCertificatesInput { - s.ListenerArn = &v +// SetZoneName sets the ZoneName field's value. +func (s *AvailabilityZone) SetZoneName(v string) *AvailabilityZone { + s.ZoneName = &v return s } -type AddListenerCertificatesOutput struct { +// Information about an SSL server certificate. +type Certificate struct { _ struct{} `type:"structure"` - // Information about the certificates in the certificate list. - Certificates []*Certificate `type:"list"` + // The Amazon Resource Name (ARN) of the certificate. + CertificateArn *string `type:"string"` + + // Indicates whether the certificate is the default certificate. Do not set + // this value when specifying a certificate as an input. This value is not included + // in the output when describing a listener, but is included when describing + // listener certificates. + IsDefault *bool `type:"boolean"` } // String returns the string representation. @@ -3660,7 +5336,7 @@ type AddListenerCertificatesOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AddListenerCertificatesOutput) String() string { +func (s Certificate) String() string { return awsutil.Prettify(s) } @@ -3669,28 +5345,31 @@ func (s AddListenerCertificatesOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AddListenerCertificatesOutput) GoString() string { +func (s Certificate) GoString() string { return s.String() } -// SetCertificates sets the Certificates field's value. -func (s *AddListenerCertificatesOutput) SetCertificates(v []*Certificate) *AddListenerCertificatesOutput { - s.Certificates = v +// SetCertificateArn sets the CertificateArn field's value. +func (s *Certificate) SetCertificateArn(v string) *Certificate { + s.CertificateArn = &v return s } -type AddTagsInput struct { +// SetIsDefault sets the IsDefault field's value. +func (s *Certificate) SetIsDefault(v bool) *Certificate { + s.IsDefault = &v + return s +} + +// Information about a cipher used in a policy. +type Cipher struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the resource. - // - // ResourceArns is a required field - ResourceArns []*string `type:"list" required:"true"` + // The name of the cipher. + Name *string `type:"string"` - // The tags. - // - // Tags is a required field - Tags []*Tag `min:"1" type:"list" required:"true"` + // The priority of the cipher. + Priority *int64 `type:"integer"` } // String returns the string representation. @@ -3698,7 +5377,7 @@ type AddTagsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AddTagsInput) String() string { +func (s Cipher) String() string { return awsutil.Prettify(s) } @@ -3707,122 +5386,81 @@ func (s AddTagsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AddTagsInput) GoString() string { +func (s Cipher) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *AddTagsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AddTagsInput"} - if s.ResourceArns == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceArns")) - } - if s.Tags == nil { - invalidParams.Add(request.NewErrParamRequired("Tags")) - } - if s.Tags != nil && len(s.Tags) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Tags", 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 - } - return nil -} - -// SetResourceArns sets the ResourceArns field's value. -func (s *AddTagsInput) SetResourceArns(v []*string) *AddTagsInput { - s.ResourceArns = v +// SetName sets the Name field's value. +func (s *Cipher) SetName(v string) *Cipher { + s.Name = &v return s } -// SetTags sets the Tags field's value. -func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput { - s.Tags = v +// SetPriority sets the Priority field's value. +func (s *Cipher) SetPriority(v int64) *Cipher { + s.Priority = &v return s } -type AddTagsOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s AddTagsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s AddTagsOutput) GoString() string { - return s.String() -} - -// Request parameters to use when integrating with Amazon Cognito to authenticate -// users. -type AuthenticateCognitoActionConfig struct { +type CreateListenerInput struct { _ struct{} `type:"structure"` - // The query parameters (up to 10) to include in the redirect request to the - // authorization endpoint. - AuthenticationRequestExtraParams map[string]*string `type:"map"` - - // The behavior if the user is not authenticated. The following are possible - // values: + // [TLS listeners] The name of the Application-Layer Protocol Negotiation (ALPN) + // policy. You can specify one policy name. The following are the possible values: // - // * deny - Return an HTTP 401 Unauthorized error. + // * HTTP1Only // - // * allow - Allow the request to be forwarded to the target. + // * HTTP2Only // - // * authenticate - Redirect the request to the IdP authorization endpoint. - // This is the default value. - OnUnauthenticatedRequest *string `type:"string" enum:"AuthenticateCognitoActionConditionalBehaviorEnum"` - - // The set of user claims to be requested from the IdP. The default is openid. + // * HTTP2Optional // - // To verify which scope values your IdP supports and how to separate multiple - // values, see the documentation for your IdP. - Scope *string `type:"string"` + // * HTTP2Preferred + // + // * None + // + // For more information, see ALPN policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies) + // in the Network Load Balancers Guide. + AlpnPolicy []*string `type:"list"` - // The name of the cookie used to maintain session information. The default - // is AWSELBAuthSessionCookie. - SessionCookieName *string `type:"string"` + // [HTTPS and TLS listeners] The default certificate for the listener. You must + // provide exactly one certificate. Set CertificateArn to the certificate ARN + // but do not set IsDefault. + Certificates []*Certificate `type:"list"` - // The maximum duration of the authentication session, in seconds. The default - // is 604800 seconds (7 days). - SessionTimeout *int64 `type:"long"` + // The actions for the default rule. + // + // DefaultActions is a required field + DefaultActions []*Action `type:"list" required:"true"` - // The Amazon Resource Name (ARN) of the Amazon Cognito user pool. + // The Amazon Resource Name (ARN) of the load balancer. // - // UserPoolArn is a required field - UserPoolArn *string `type:"string" required:"true"` + // LoadBalancerArn is a required field + LoadBalancerArn *string `type:"string" required:"true"` + + // The mutual authentication configuration information. + MutualAuthentication *MutualAuthenticationAttributes `type:"structure"` + + // The port on which the load balancer is listening. You cannot specify a port + // for a Gateway Load Balancer. + Port *int64 `min:"1" type:"integer"` - // The ID of the Amazon Cognito user pool client. - // - // UserPoolClientId is a required field - UserPoolClientId *string `type:"string" required:"true"` + // The protocol for connections from clients to the load balancer. For Application + // Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load + // Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t + // specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot + // specify a protocol for a Gateway Load Balancer. + Protocol *string `type:"string" enum:"ProtocolEnum"` - // The domain prefix or fully-qualified domain name of the Amazon Cognito user - // pool. + // [HTTPS and TLS listeners] The security policy that defines which protocols + // and ciphers are supported. // - // UserPoolDomain is a required field - UserPoolDomain *string `type:"string" required:"true"` + // 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 and Security policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) + // in the Network Load Balancers Guide. + SslPolicy *string `type:"string"` + + // The tags to assign to the listener. + Tags []*Tag `min:"1" type:"list"` } // String returns the string representation. @@ -3830,7 +5468,7 @@ type AuthenticateCognitoActionConfig struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AuthenticateCognitoActionConfig) String() string { +func (s CreateListenerInput) String() string { return awsutil.Prettify(s) } @@ -3839,21 +5477,44 @@ func (s AuthenticateCognitoActionConfig) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AuthenticateCognitoActionConfig) GoString() string { +func (s CreateListenerInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *AuthenticateCognitoActionConfig) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AuthenticateCognitoActionConfig"} - if s.UserPoolArn == nil { - invalidParams.Add(request.NewErrParamRequired("UserPoolArn")) +func (s *CreateListenerInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateListenerInput"} + if s.DefaultActions == nil { + invalidParams.Add(request.NewErrParamRequired("DefaultActions")) } - if s.UserPoolClientId == nil { - invalidParams.Add(request.NewErrParamRequired("UserPoolClientId")) + if s.LoadBalancerArn == nil { + invalidParams.Add(request.NewErrParamRequired("LoadBalancerArn")) } - if s.UserPoolDomain == nil { - invalidParams.Add(request.NewErrParamRequired("UserPoolDomain")) + if s.Port != nil && *s.Port < 1 { + invalidParams.Add(request.NewErrParamMinValue("Port", 1)) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + if s.DefaultActions != nil { + for i, v := range s.DefaultActions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultActions", i), err.(request.ErrInvalidParams)) + } + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } } if invalidParams.Len() > 0 { @@ -3862,125 +5523,177 @@ func (s *AuthenticateCognitoActionConfig) Validate() error { return nil } -// SetAuthenticationRequestExtraParams sets the AuthenticationRequestExtraParams field's value. -func (s *AuthenticateCognitoActionConfig) SetAuthenticationRequestExtraParams(v map[string]*string) *AuthenticateCognitoActionConfig { - s.AuthenticationRequestExtraParams = v +// SetAlpnPolicy sets the AlpnPolicy field's value. +func (s *CreateListenerInput) SetAlpnPolicy(v []*string) *CreateListenerInput { + s.AlpnPolicy = v return s } -// SetOnUnauthenticatedRequest sets the OnUnauthenticatedRequest field's value. -func (s *AuthenticateCognitoActionConfig) SetOnUnauthenticatedRequest(v string) *AuthenticateCognitoActionConfig { - s.OnUnauthenticatedRequest = &v +// SetCertificates sets the Certificates field's value. +func (s *CreateListenerInput) SetCertificates(v []*Certificate) *CreateListenerInput { + s.Certificates = v return s } -// SetScope sets the Scope field's value. -func (s *AuthenticateCognitoActionConfig) SetScope(v string) *AuthenticateCognitoActionConfig { - s.Scope = &v +// SetDefaultActions sets the DefaultActions field's value. +func (s *CreateListenerInput) SetDefaultActions(v []*Action) *CreateListenerInput { + s.DefaultActions = v return s } -// SetSessionCookieName sets the SessionCookieName field's value. -func (s *AuthenticateCognitoActionConfig) SetSessionCookieName(v string) *AuthenticateCognitoActionConfig { - s.SessionCookieName = &v +// SetLoadBalancerArn sets the LoadBalancerArn field's value. +func (s *CreateListenerInput) SetLoadBalancerArn(v string) *CreateListenerInput { + s.LoadBalancerArn = &v return s } -// SetSessionTimeout sets the SessionTimeout field's value. -func (s *AuthenticateCognitoActionConfig) SetSessionTimeout(v int64) *AuthenticateCognitoActionConfig { - s.SessionTimeout = &v +// SetMutualAuthentication sets the MutualAuthentication field's value. +func (s *CreateListenerInput) SetMutualAuthentication(v *MutualAuthenticationAttributes) *CreateListenerInput { + s.MutualAuthentication = v return s } -// SetUserPoolArn sets the UserPoolArn field's value. -func (s *AuthenticateCognitoActionConfig) SetUserPoolArn(v string) *AuthenticateCognitoActionConfig { - s.UserPoolArn = &v +// SetPort sets the Port field's value. +func (s *CreateListenerInput) SetPort(v int64) *CreateListenerInput { + s.Port = &v return s } -// SetUserPoolClientId sets the UserPoolClientId field's value. -func (s *AuthenticateCognitoActionConfig) SetUserPoolClientId(v string) *AuthenticateCognitoActionConfig { - s.UserPoolClientId = &v +// SetProtocol sets the Protocol field's value. +func (s *CreateListenerInput) SetProtocol(v string) *CreateListenerInput { + s.Protocol = &v return s } -// SetUserPoolDomain sets the UserPoolDomain field's value. -func (s *AuthenticateCognitoActionConfig) SetUserPoolDomain(v string) *AuthenticateCognitoActionConfig { - s.UserPoolDomain = &v +// SetSslPolicy sets the SslPolicy field's value. +func (s *CreateListenerInput) SetSslPolicy(v string) *CreateListenerInput { + s.SslPolicy = &v return s } -// Request parameters when using an identity provider (IdP) that is compliant -// with OpenID Connect (OIDC) to authenticate users. -type AuthenticateOidcActionConfig struct { +// SetTags sets the Tags field's value. +func (s *CreateListenerInput) SetTags(v []*Tag) *CreateListenerInput { + s.Tags = v + return s +} + +type CreateListenerOutput struct { _ struct{} `type:"structure"` - // The query parameters (up to 10) to include in the redirect request to the - // authorization endpoint. - AuthenticationRequestExtraParams map[string]*string `type:"map"` + // Information about the listener. + Listeners []*Listener `type:"list"` +} - // The authorization endpoint of the IdP. This must be a full URL, including - // the HTTPS protocol, the domain, and the path. - // - // AuthorizationEndpoint is a required field - AuthorizationEndpoint *string `type:"string" required:"true"` +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateListenerOutput) String() string { + return awsutil.Prettify(s) +} - // The OAuth 2.0 client identifier. - // - // ClientId is a required field - ClientId *string `type:"string" required:"true"` +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateListenerOutput) GoString() string { + return s.String() +} - // 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"` +// SetListeners sets the Listeners field's value. +func (s *CreateListenerOutput) SetListeners(v []*Listener) *CreateListenerOutput { + s.Listeners = v + return s +} - // The OIDC issuer identifier of the IdP. This must be a full URL, including - // the HTTPS protocol, the domain, and the path. - // - // Issuer is a required field - Issuer *string `type:"string" required:"true"` +type CreateLoadBalancerInput struct { + _ struct{} `type:"structure"` - // The behavior if the user is not authenticated. The following are possible - // values: - // - // * deny - Return an HTTP 401 Unauthorized error. + // [Application Load Balancers on Outposts] The ID of the customer-owned address + // pool (CoIP pool). + CustomerOwnedIpv4Pool *string `type:"string"` + + // The type of IP addresses used by the subnets for your load balancer. The + // possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and + // IPv6 addresses). + IpAddressType *string `type:"string" enum:"IpAddressType"` + + // The name of the load balancer. // - // * allow - Allow the request to be forwarded to the target. + // This name must be unique per region per account, can have a maximum of 32 + // characters, must contain only alphanumeric characters or hyphens, must not + // begin or end with a hyphen, and must not begin with "internal-". // - // * authenticate - Redirect the request to the IdP authorization endpoint. - // This is the default value. - OnUnauthenticatedRequest *string `type:"string" enum:"AuthenticateOidcActionConditionalBehaviorEnum"` + // Name is a required field + Name *string `type:"string" required:"true"` - // The set of user claims to be requested from the IdP. The default is openid. + // The nodes of an Internet-facing load balancer have public IP addresses. The + // DNS name of an Internet-facing load balancer is publicly resolvable to the + // public IP addresses of the nodes. Therefore, Internet-facing load balancers + // can route requests from clients over the internet. // - // To verify which scope values your IdP supports and how to separate multiple - // values, see the documentation for your IdP. - Scope *string `type:"string"` + // The nodes of an internal load balancer have only private IP addresses. The + // DNS name of an internal load balancer is publicly resolvable to the private + // IP addresses of the nodes. Therefore, internal load balancers can route requests + // only from clients with access to the VPC for the load balancer. + // + // The default is an Internet-facing load balancer. + // + // You cannot specify a scheme for a Gateway Load Balancer. + Scheme *string `type:"string" enum:"LoadBalancerSchemeEnum"` - // The name of the cookie used to maintain session information. The default - // is AWSELBAuthSessionCookie. - SessionCookieName *string `type:"string"` + // [Application Load Balancers and Network Load Balancers] The IDs of the security + // groups for the load balancer. + SecurityGroups []*string `type:"list"` - // The maximum duration of the authentication session, in seconds. The default - // is 604800 seconds (7 days). - SessionTimeout *int64 `type:"long"` + // The IDs of the public subnets. You can specify only one subnet per Availability + // Zone. You must specify either subnets or subnet mappings, but not both. + // + // [Application Load Balancers] You must specify subnets from at least two Availability + // Zones. You cannot specify Elastic IP addresses for your subnets. + // + // [Application Load Balancers on Outposts] You must specify one Outpost subnet. + // + // [Application Load Balancers on Local Zones] You can specify subnets from + // one or more Local Zones. + // + // [Network Load Balancers] You can specify subnets from one or more Availability + // Zones. You can specify one Elastic IP address per subnet if you need static + // IP addresses for your internet-facing load balancer. For internal load balancers, + // you can specify one private IP address per subnet from the IPv4 range of + // the subnet. For internet-facing load balancer, you can specify one IPv6 address + // per subnet. + // + // [Gateway Load Balancers] You can specify subnets from one or more Availability + // Zones. You cannot specify Elastic IP addresses for your subnets. + SubnetMappings []*SubnetMapping `type:"list"` - // The token endpoint of the IdP. This must be a full URL, including the HTTPS - // protocol, the domain, and the path. + // The IDs of the public subnets. You can specify only one subnet per Availability + // Zone. You must specify either subnets or subnet mappings, but not both. To + // specify an Elastic IP address, specify subnet mappings instead of subnets. + // + // [Application Load Balancers] You must specify subnets from at least two Availability + // Zones. + // + // [Application Load Balancers on Outposts] You must specify one Outpost subnet. + // + // [Application Load Balancers on Local Zones] You can specify subnets from + // one or more Local Zones. + // + // [Network Load Balancers] You can specify subnets from one or more Availability + // Zones. // - // TokenEndpoint is a required field - TokenEndpoint *string `type:"string" required:"true"` + // [Gateway Load Balancers] You can specify subnets from one or more Availability + // Zones. + Subnets []*string `type:"list"` - // 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 tags to assign to the load balancer. + Tags []*Tag `min:"1" type:"list"` - // The user info endpoint of the IdP. This must be a full URL, including the - // HTTPS protocol, the domain, and the path. - // - // UserInfoEndpoint is a required field - UserInfoEndpoint *string `type:"string" required:"true"` + // The type of load balancer. The default is application. + Type *string `type:"string" enum:"LoadBalancerTypeEnum"` } // String returns the string representation. @@ -3988,7 +5701,7 @@ type AuthenticateOidcActionConfig struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AuthenticateOidcActionConfig) String() string { +func (s CreateLoadBalancerInput) String() string { return awsutil.Prettify(s) } @@ -3997,27 +5710,28 @@ func (s AuthenticateOidcActionConfig) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AuthenticateOidcActionConfig) GoString() string { +func (s CreateLoadBalancerInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *AuthenticateOidcActionConfig) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AuthenticateOidcActionConfig"} - if s.AuthorizationEndpoint == nil { - invalidParams.Add(request.NewErrParamRequired("AuthorizationEndpoint")) - } - if s.ClientId == nil { - invalidParams.Add(request.NewErrParamRequired("ClientId")) - } - if s.Issuer == nil { - invalidParams.Add(request.NewErrParamRequired("Issuer")) +func (s *CreateLoadBalancerInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateLoadBalancerInput"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } - if s.TokenEndpoint == nil { - invalidParams.Add(request.NewErrParamRequired("TokenEndpoint")) + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) } - if s.UserInfoEndpoint == nil { - invalidParams.Add(request.NewErrParamRequired("UserInfoEndpoint")) + 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 { @@ -4026,96 +5740,116 @@ func (s *AuthenticateOidcActionConfig) Validate() error { return nil } -// SetAuthenticationRequestExtraParams sets the AuthenticationRequestExtraParams field's value. -func (s *AuthenticateOidcActionConfig) SetAuthenticationRequestExtraParams(v map[string]*string) *AuthenticateOidcActionConfig { - s.AuthenticationRequestExtraParams = v +// SetCustomerOwnedIpv4Pool sets the CustomerOwnedIpv4Pool field's value. +func (s *CreateLoadBalancerInput) SetCustomerOwnedIpv4Pool(v string) *CreateLoadBalancerInput { + s.CustomerOwnedIpv4Pool = &v return s } -// SetAuthorizationEndpoint sets the AuthorizationEndpoint field's value. -func (s *AuthenticateOidcActionConfig) SetAuthorizationEndpoint(v string) *AuthenticateOidcActionConfig { - s.AuthorizationEndpoint = &v +// SetIpAddressType sets the IpAddressType field's value. +func (s *CreateLoadBalancerInput) SetIpAddressType(v string) *CreateLoadBalancerInput { + s.IpAddressType = &v return s } -// SetClientId sets the ClientId field's value. -func (s *AuthenticateOidcActionConfig) SetClientId(v string) *AuthenticateOidcActionConfig { - s.ClientId = &v +// SetName sets the Name field's value. +func (s *CreateLoadBalancerInput) SetName(v string) *CreateLoadBalancerInput { + s.Name = &v return s } -// SetClientSecret sets the ClientSecret field's value. -func (s *AuthenticateOidcActionConfig) SetClientSecret(v string) *AuthenticateOidcActionConfig { - s.ClientSecret = &v +// SetScheme sets the Scheme field's value. +func (s *CreateLoadBalancerInput) SetScheme(v string) *CreateLoadBalancerInput { + s.Scheme = &v return s } -// SetIssuer sets the Issuer field's value. -func (s *AuthenticateOidcActionConfig) SetIssuer(v string) *AuthenticateOidcActionConfig { - s.Issuer = &v +// SetSecurityGroups sets the SecurityGroups field's value. +func (s *CreateLoadBalancerInput) SetSecurityGroups(v []*string) *CreateLoadBalancerInput { + s.SecurityGroups = v return s } -// SetOnUnauthenticatedRequest sets the OnUnauthenticatedRequest field's value. -func (s *AuthenticateOidcActionConfig) SetOnUnauthenticatedRequest(v string) *AuthenticateOidcActionConfig { - s.OnUnauthenticatedRequest = &v +// SetSubnetMappings sets the SubnetMappings field's value. +func (s *CreateLoadBalancerInput) SetSubnetMappings(v []*SubnetMapping) *CreateLoadBalancerInput { + s.SubnetMappings = v return s } -// SetScope sets the Scope field's value. -func (s *AuthenticateOidcActionConfig) SetScope(v string) *AuthenticateOidcActionConfig { - s.Scope = &v +// SetSubnets sets the Subnets field's value. +func (s *CreateLoadBalancerInput) SetSubnets(v []*string) *CreateLoadBalancerInput { + s.Subnets = v return s } -// SetSessionCookieName sets the SessionCookieName field's value. -func (s *AuthenticateOidcActionConfig) SetSessionCookieName(v string) *AuthenticateOidcActionConfig { - s.SessionCookieName = &v +// SetTags sets the Tags field's value. +func (s *CreateLoadBalancerInput) SetTags(v []*Tag) *CreateLoadBalancerInput { + s.Tags = v return s } -// SetSessionTimeout sets the SessionTimeout field's value. -func (s *AuthenticateOidcActionConfig) SetSessionTimeout(v int64) *AuthenticateOidcActionConfig { - s.SessionTimeout = &v +// SetType sets the Type field's value. +func (s *CreateLoadBalancerInput) SetType(v string) *CreateLoadBalancerInput { + s.Type = &v return s } -// SetTokenEndpoint sets the TokenEndpoint field's value. -func (s *AuthenticateOidcActionConfig) SetTokenEndpoint(v string) *AuthenticateOidcActionConfig { - s.TokenEndpoint = &v - return s +type CreateLoadBalancerOutput struct { + _ struct{} `type:"structure"` + + // Information about the load balancer. + LoadBalancers []*LoadBalancer `type:"list"` } -// SetUseExistingClientSecret sets the UseExistingClientSecret field's value. -func (s *AuthenticateOidcActionConfig) SetUseExistingClientSecret(v bool) *AuthenticateOidcActionConfig { - s.UseExistingClientSecret = &v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateLoadBalancerOutput) String() string { + return awsutil.Prettify(s) } -// SetUserInfoEndpoint sets the UserInfoEndpoint field's value. -func (s *AuthenticateOidcActionConfig) SetUserInfoEndpoint(v string) *AuthenticateOidcActionConfig { - s.UserInfoEndpoint = &v +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateLoadBalancerOutput) GoString() string { + return s.String() +} + +// SetLoadBalancers sets the LoadBalancers field's value. +func (s *CreateLoadBalancerOutput) SetLoadBalancers(v []*LoadBalancer) *CreateLoadBalancerOutput { + s.LoadBalancers = v return s } -// Information about an Availability Zone. -type AvailabilityZone struct { +type CreateRuleInput struct { _ struct{} `type:"structure"` - // [Network Load Balancers] If you need static IP addresses for your load balancer, - // you can specify one Elastic IP address per Availability Zone when you create - // an internal-facing load balancer. For internal load balancers, you can specify - // a private IP address from the IPv4 range of the subnet. - LoadBalancerAddresses []*LoadBalancerAddress `type:"list"` + // The actions. + // + // Actions is a required field + Actions []*Action `type:"list" required:"true"` - // [Application Load Balancers on Outposts] The ID of the Outpost. - OutpostId *string `type:"string"` + // The conditions. + // + // Conditions is a required field + Conditions []*RuleCondition `type:"list" required:"true"` - // The ID of the subnet. You can specify one subnet per Availability Zone. - SubnetId *string `type:"string"` + // The Amazon Resource Name (ARN) of the listener. + // + // ListenerArn is a required field + ListenerArn *string `type:"string" required:"true"` - // The name of the Availability Zone. - ZoneName *string `type:"string"` + // The rule priority. A listener can't have multiple rules with the same priority. + // + // Priority is a required field + Priority *int64 `min:"1" type:"integer" required:"true"` + + // The tags to assign to the rule. + Tags []*Tag `min:"1" type:"list"` } // String returns the string representation. @@ -4123,7 +5857,7 @@ type AvailabilityZone struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AvailabilityZone) String() string { +func (s CreateRuleInput) String() string { return awsutil.Prettify(s) } @@ -4132,87 +5866,93 @@ func (s AvailabilityZone) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AvailabilityZone) GoString() string { +func (s CreateRuleInput) GoString() string { return s.String() } -// SetLoadBalancerAddresses sets the LoadBalancerAddresses field's value. -func (s *AvailabilityZone) SetLoadBalancerAddresses(v []*LoadBalancerAddress) *AvailabilityZone { - s.LoadBalancerAddresses = v - return s -} - -// SetOutpostId sets the OutpostId field's value. -func (s *AvailabilityZone) SetOutpostId(v string) *AvailabilityZone { - s.OutpostId = &v - return s -} +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateRuleInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateRuleInput"} + if s.Actions == nil { + invalidParams.Add(request.NewErrParamRequired("Actions")) + } + if s.Conditions == nil { + invalidParams.Add(request.NewErrParamRequired("Conditions")) + } + if s.ListenerArn == nil { + invalidParams.Add(request.NewErrParamRequired("ListenerArn")) + } + if s.Priority == nil { + invalidParams.Add(request.NewErrParamRequired("Priority")) + } + if s.Priority != nil && *s.Priority < 1 { + invalidParams.Add(request.NewErrParamMinValue("Priority", 1)) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 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.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)) + } + } + } -// SetSubnetId sets the SubnetId field's value. -func (s *AvailabilityZone) SetSubnetId(v string) *AvailabilityZone { - s.SubnetId = &v - return s + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetZoneName sets the ZoneName field's value. -func (s *AvailabilityZone) SetZoneName(v string) *AvailabilityZone { - s.ZoneName = &v +// SetActions sets the Actions field's value. +func (s *CreateRuleInput) SetActions(v []*Action) *CreateRuleInput { + s.Actions = v return s } -// Information about an SSL server certificate. -type Certificate struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of the certificate. - CertificateArn *string `type:"string"` - - // Indicates whether the certificate is the default certificate. Do not set - // this value when specifying a certificate as an input. This value is not included - // in the output when describing a listener, but is included when describing - // listener certificates. - IsDefault *bool `type:"boolean"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s Certificate) String() string { - return awsutil.Prettify(s) +// SetConditions sets the Conditions field's value. +func (s *CreateRuleInput) SetConditions(v []*RuleCondition) *CreateRuleInput { + s.Conditions = v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s Certificate) GoString() string { - return s.String() +// SetListenerArn sets the ListenerArn field's value. +func (s *CreateRuleInput) SetListenerArn(v string) *CreateRuleInput { + s.ListenerArn = &v + return s } -// SetCertificateArn sets the CertificateArn field's value. -func (s *Certificate) SetCertificateArn(v string) *Certificate { - s.CertificateArn = &v +// SetPriority sets the Priority field's value. +func (s *CreateRuleInput) SetPriority(v int64) *CreateRuleInput { + s.Priority = &v return s } -// SetIsDefault sets the IsDefault field's value. -func (s *Certificate) SetIsDefault(v bool) *Certificate { - s.IsDefault = &v +// SetTags sets the Tags field's value. +func (s *CreateRuleInput) SetTags(v []*Tag) *CreateRuleInput { + s.Tags = v return s } -// Information about a cipher used in a policy. -type Cipher struct { +type CreateRuleOutput struct { _ struct{} `type:"structure"` - // The name of the cipher. - Name *string `type:"string"` - - // The priority of the cipher. - Priority *int64 `type:"integer"` + // Information about the rule. + Rules []*Rule `type:"list"` } // String returns the string representation. @@ -4220,7 +5960,7 @@ type Cipher struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Cipher) String() string { +func (s CreateRuleOutput) String() string { return awsutil.Prettify(s) } @@ -4229,78 +5969,137 @@ func (s Cipher) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Cipher) GoString() string { +func (s CreateRuleOutput) GoString() string { return s.String() } -// SetName sets the Name field's value. -func (s *Cipher) SetName(v string) *Cipher { - s.Name = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *Cipher) SetPriority(v int64) *Cipher { - s.Priority = &v +// SetRules sets the Rules field's value. +func (s *CreateRuleOutput) SetRules(v []*Rule) *CreateRuleOutput { + s.Rules = v return s } -type CreateListenerInput struct { +type CreateTargetGroupInput struct { _ struct{} `type:"structure"` - // [TLS listeners] The name of the Application-Layer Protocol Negotiation (ALPN) - // policy. You can specify one policy name. The following are the possible values: - // - // * HTTP1Only - // - // * HTTP2Only - // - // * HTTP2Optional - // - // * HTTP2Preferred + // Indicates whether health checks are enabled. If the target type is lambda, + // health checks are disabled by default but can be enabled. If the target type + // is instance, ip, or alb, health checks are always enabled and cannot be disabled. + HealthCheckEnabled *bool `type:"boolean"` + + // The approximate amount of time, in seconds, between health checks of an individual + // target. The range is 5-300. If the target group protocol is TCP, TLS, UDP, + // TCP_UDP, HTTP or HTTPS, the default is 30 seconds. If the target group protocol + // is GENEVE, the default is 10 seconds. If the target type is lambda, the default + // is 35 seconds. + HealthCheckIntervalSeconds *int64 `min:"5" type:"integer"` + + // [HTTP/HTTPS health checks] The destination for health checks on the targets. // - // * None + // [HTTP1 or HTTP2 protocol version] The ping path. The default is /. // - // For more information, see ALPN policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies) - // in the Network Load Balancers Guide. - AlpnPolicy []*string `type:"list"` + // [GRPC protocol version] The path of a custom health check method with the + // format /package.service/method. The default is /Amazon Web Services.ALB/healthcheck. + HealthCheckPath *string `min:"1" type:"string"` - // [HTTPS and TLS listeners] The default certificate for the listener. You must - // provide exactly one certificate. Set CertificateArn to the certificate ARN - // but do not set IsDefault. - Certificates []*Certificate `type:"list"` + // The port the load balancer uses when performing health checks on targets. + // If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is + // traffic-port, which is the port on which each target receives traffic from + // the load balancer. If the protocol is GENEVE, the default is port 80. + HealthCheckPort *string `type:"string"` - // The actions for the default rule. - // - // DefaultActions is a required field - DefaultActions []*Action `type:"list" required:"true"` + // The protocol the load balancer uses when performing health checks on targets. + // For Application Load Balancers, the default is HTTP. For Network Load Balancers + // and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported + // for health checks if the protocol of the target group is HTTP or HTTPS. The + // GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health checks. + HealthCheckProtocol *string `type:"string" enum:"ProtocolEnum"` - // The Amazon Resource Name (ARN) of the load balancer. + // The amount of time, in seconds, during which no response from a target means + // a failed health check. The range is 2–120 seconds. For target groups with + // a protocol of HTTP, the default is 6 seconds. For target groups with a protocol + // of TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a + // protocol of GENEVE, the default is 5 seconds. If the target type is lambda, + // the default is 30 seconds. + HealthCheckTimeoutSeconds *int64 `min:"2" type:"integer"` + + // The number of consecutive health check successes required before considering + // a target healthy. The range is 2-10. If the target group protocol is TCP, + // TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 5. For target groups with + // a protocol of GENEVE, the default is 5. If the target type is lambda, the + // default is 5. + HealthyThresholdCount *int64 `min:"2" type:"integer"` + + // The type of IP address used for this target group. The possible values are + // ipv4 and ipv6. This is an optional parameter. If not specified, the IP address + // type defaults to ipv4. + IpAddressType *string `type:"string" enum:"TargetGroupIpAddressTypeEnum"` + + // [HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for + // a successful response from a target. For target groups with a protocol of + // TCP, TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol + // of HTTP or HTTPS, the range is 200-499. For target groups with a protocol + // of GENEVE, the range is 200-399. + Matcher *Matcher `type:"structure"` + + // The name of the target group. // - // LoadBalancerArn is a required field - LoadBalancerArn *string `type:"string" required:"true"` + // This name must be unique per region per account, can have a maximum of 32 + // characters, must contain only alphanumeric characters or hyphens, and must + // not begin or end with a hyphen. + // + // Name is a required field + Name *string `type:"string" required:"true"` - // The port on which the load balancer is listening. You cannot specify a port - // for a Gateway Load Balancer. + // The port on which the targets receive traffic. This port is used unless you + // specify a port override when registering the target. If the target is a Lambda + // function, this parameter does not apply. If the protocol is GENEVE, the supported + // port is 6081. Port *int64 `min:"1" type:"integer"` - // The protocol for connections from clients to the load balancer. For Application - // Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load - // Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t - // specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot - // specify a protocol for a Gateway Load Balancer. + // The protocol to use for routing traffic to the targets. For Application Load + // Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, + // the supported protocols are TCP, TLS, UDP, or TCP_UDP. For Gateway Load Balancers, + // the supported protocol is GENEVE. A TCP_UDP listener must be associated with + // a TCP_UDP target group. If the target is a Lambda function, this parameter + // does not apply. 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 (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) - // in the Application Load Balancers Guide and Security policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) - // in the Network Load Balancers Guide. - SslPolicy *string `type:"string"` + // [HTTP/HTTPS protocol] The protocol version. Specify GRPC to send requests + // to targets using gRPC. Specify HTTP2 to send requests to targets using HTTP/2. + // The default is HTTP1, which sends requests to targets using HTTP/1.1. + ProtocolVersion *string `type:"string"` - // The tags to assign to the listener. + // The tags to assign to the target group. Tags []*Tag `min:"1" type:"list"` + + // The type of target that you must specify when registering targets with this + // target group. You can't specify targets for a target group using more than + // one target type. + // + // * instance - Register targets by instance ID. This is the default value. + // + // * ip - Register targets by IP address. You can specify IP addresses from + // the subnets of the virtual private cloud (VPC) for the target group, the + // RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the + // RFC 6598 range (100.64.0.0/10). You can't specify publicly routable IP + // addresses. + // + // * lambda - Register a single Lambda function as a target. + // + // * alb - Register a single Application Load Balancer as a target. + TargetType *string `type:"string" enum:"TargetTypeEnum"` + + // The number of consecutive health check failures required before considering + // a target unhealthy. The range is 2-10. If the target group protocol is TCP, + // TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 2. For target groups with + // a protocol of GENEVE, the default is 2. If the target type is lambda, the + // default is 5. + UnhealthyThresholdCount *int64 `min:"2" type:"integer"` + + // The identifier of the virtual private cloud (VPC). If the target is a Lambda + // function, this parameter does not apply. Otherwise, this parameter is required. + VpcId *string `type:"string"` } // String returns the string representation. @@ -4308,7 +6107,7 @@ type CreateListenerInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateListenerInput) String() string { +func (s CreateTargetGroupInput) String() string { return awsutil.Prettify(s) } @@ -4317,18 +6116,27 @@ func (s CreateListenerInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateListenerInput) GoString() string { +func (s CreateTargetGroupInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateListenerInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateListenerInput"} - if s.DefaultActions == nil { - invalidParams.Add(request.NewErrParamRequired("DefaultActions")) +func (s *CreateTargetGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateTargetGroupInput"} + if s.HealthCheckIntervalSeconds != nil && *s.HealthCheckIntervalSeconds < 5 { + invalidParams.Add(request.NewErrParamMinValue("HealthCheckIntervalSeconds", 5)) } - if s.LoadBalancerArn == nil { - invalidParams.Add(request.NewErrParamRequired("LoadBalancerArn")) + if s.HealthCheckPath != nil && len(*s.HealthCheckPath) < 1 { + invalidParams.Add(request.NewErrParamMinLen("HealthCheckPath", 1)) + } + if s.HealthCheckTimeoutSeconds != nil && *s.HealthCheckTimeoutSeconds < 2 { + invalidParams.Add(request.NewErrParamMinValue("HealthCheckTimeoutSeconds", 2)) + } + if s.HealthyThresholdCount != nil && *s.HealthyThresholdCount < 2 { + invalidParams.Add(request.NewErrParamMinValue("HealthyThresholdCount", 2)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } if s.Port != nil && *s.Port < 1 { invalidParams.Add(request.NewErrParamMinValue("Port", 1)) @@ -4336,15 +6144,8 @@ func (s *CreateListenerInput) Validate() error { if s.Tags != nil && len(s.Tags) < 1 { invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) } - if s.DefaultActions != nil { - for i, v := range s.DefaultActions { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultActions", i), err.(request.ErrInvalidParams)) - } - } + if s.UnhealthyThresholdCount != nil && *s.UnhealthyThresholdCount < 2 { + invalidParams.Add(request.NewErrParamMinValue("UnhealthyThresholdCount", 2)) } if s.Tags != nil { for i, v := range s.Tags { @@ -4357,65 +6158,119 @@ func (s *CreateListenerInput) Validate() error { } } - if invalidParams.Len() > 0 { - return invalidParams - } - return nil + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetHealthCheckEnabled sets the HealthCheckEnabled field's value. +func (s *CreateTargetGroupInput) SetHealthCheckEnabled(v bool) *CreateTargetGroupInput { + s.HealthCheckEnabled = &v + return s +} + +// SetHealthCheckIntervalSeconds sets the HealthCheckIntervalSeconds field's value. +func (s *CreateTargetGroupInput) SetHealthCheckIntervalSeconds(v int64) *CreateTargetGroupInput { + s.HealthCheckIntervalSeconds = &v + return s +} + +// SetHealthCheckPath sets the HealthCheckPath field's value. +func (s *CreateTargetGroupInput) SetHealthCheckPath(v string) *CreateTargetGroupInput { + s.HealthCheckPath = &v + return s } -// SetAlpnPolicy sets the AlpnPolicy field's value. -func (s *CreateListenerInput) SetAlpnPolicy(v []*string) *CreateListenerInput { - s.AlpnPolicy = v +// SetHealthCheckPort sets the HealthCheckPort field's value. +func (s *CreateTargetGroupInput) SetHealthCheckPort(v string) *CreateTargetGroupInput { + s.HealthCheckPort = &v return s } -// SetCertificates sets the Certificates field's value. -func (s *CreateListenerInput) SetCertificates(v []*Certificate) *CreateListenerInput { - s.Certificates = v +// SetHealthCheckProtocol sets the HealthCheckProtocol field's value. +func (s *CreateTargetGroupInput) SetHealthCheckProtocol(v string) *CreateTargetGroupInput { + s.HealthCheckProtocol = &v return s } -// SetDefaultActions sets the DefaultActions field's value. -func (s *CreateListenerInput) SetDefaultActions(v []*Action) *CreateListenerInput { - s.DefaultActions = v +// SetHealthCheckTimeoutSeconds sets the HealthCheckTimeoutSeconds field's value. +func (s *CreateTargetGroupInput) SetHealthCheckTimeoutSeconds(v int64) *CreateTargetGroupInput { + s.HealthCheckTimeoutSeconds = &v return s } -// SetLoadBalancerArn sets the LoadBalancerArn field's value. -func (s *CreateListenerInput) SetLoadBalancerArn(v string) *CreateListenerInput { - s.LoadBalancerArn = &v +// SetHealthyThresholdCount sets the HealthyThresholdCount field's value. +func (s *CreateTargetGroupInput) SetHealthyThresholdCount(v int64) *CreateTargetGroupInput { + s.HealthyThresholdCount = &v + return s +} + +// SetIpAddressType sets the IpAddressType field's value. +func (s *CreateTargetGroupInput) SetIpAddressType(v string) *CreateTargetGroupInput { + s.IpAddressType = &v + return s +} + +// SetMatcher sets the Matcher field's value. +func (s *CreateTargetGroupInput) SetMatcher(v *Matcher) *CreateTargetGroupInput { + s.Matcher = v + return s +} + +// SetName sets the Name field's value. +func (s *CreateTargetGroupInput) SetName(v string) *CreateTargetGroupInput { + s.Name = &v return s } // SetPort sets the Port field's value. -func (s *CreateListenerInput) SetPort(v int64) *CreateListenerInput { +func (s *CreateTargetGroupInput) SetPort(v int64) *CreateTargetGroupInput { s.Port = &v return s } // SetProtocol sets the Protocol field's value. -func (s *CreateListenerInput) SetProtocol(v string) *CreateListenerInput { +func (s *CreateTargetGroupInput) SetProtocol(v string) *CreateTargetGroupInput { s.Protocol = &v return s } -// SetSslPolicy sets the SslPolicy field's value. -func (s *CreateListenerInput) SetSslPolicy(v string) *CreateListenerInput { - s.SslPolicy = &v +// SetProtocolVersion sets the ProtocolVersion field's value. +func (s *CreateTargetGroupInput) SetProtocolVersion(v string) *CreateTargetGroupInput { + s.ProtocolVersion = &v return s } // SetTags sets the Tags field's value. -func (s *CreateListenerInput) SetTags(v []*Tag) *CreateListenerInput { +func (s *CreateTargetGroupInput) SetTags(v []*Tag) *CreateTargetGroupInput { s.Tags = v return s } -type CreateListenerOutput struct { +// SetTargetType sets the TargetType field's value. +func (s *CreateTargetGroupInput) SetTargetType(v string) *CreateTargetGroupInput { + s.TargetType = &v + return s +} + +// SetUnhealthyThresholdCount sets the UnhealthyThresholdCount field's value. +func (s *CreateTargetGroupInput) SetUnhealthyThresholdCount(v int64) *CreateTargetGroupInput { + s.UnhealthyThresholdCount = &v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *CreateTargetGroupInput) SetVpcId(v string) *CreateTargetGroupInput { + s.VpcId = &v + return s +} + +type CreateTargetGroupOutput struct { _ struct{} `type:"structure"` - // Information about the listener. - Listeners []*Listener `type:"list"` + // Information about the target group. + TargetGroups []*TargetGroup `type:"list"` } // String returns the string representation. @@ -4423,7 +6278,7 @@ type CreateListenerOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateListenerOutput) String() string { +func (s CreateTargetGroupOutput) String() string { return awsutil.Prettify(s) } @@ -4432,102 +6287,42 @@ func (s CreateListenerOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateListenerOutput) GoString() string { +func (s CreateTargetGroupOutput) GoString() string { return s.String() } -// SetListeners sets the Listeners field's value. -func (s *CreateListenerOutput) SetListeners(v []*Listener) *CreateListenerOutput { - s.Listeners = v +// SetTargetGroups sets the TargetGroups field's value. +func (s *CreateTargetGroupOutput) SetTargetGroups(v []*TargetGroup) *CreateTargetGroupOutput { + s.TargetGroups = v return s } -type CreateLoadBalancerInput struct { +type CreateTrustStoreInput struct { _ struct{} `type:"structure"` - // [Application Load Balancers on Outposts] The ID of the customer-owned address - // pool (CoIP pool). - CustomerOwnedIpv4Pool *string `type:"string"` - - // The type of IP addresses used by the subnets for your load balancer. The - // possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and - // IPv6 addresses). - IpAddressType *string `type:"string" enum:"IpAddressType"` - - // The name of the load balancer. + // The Amazon S3 bucket for the ca certificates bundle. // - // This name must be unique per region per account, can have a maximum of 32 - // characters, must contain only alphanumeric characters or hyphens, must not - // begin or end with a hyphen, and must not begin with "internal-". - // - // Name is a required field - Name *string `type:"string" required:"true"` + // CaCertificatesBundleS3Bucket is a required field + CaCertificatesBundleS3Bucket *string `type:"string" required:"true"` - // The nodes of an Internet-facing load balancer have public IP addresses. The - // DNS name of an Internet-facing load balancer is publicly resolvable to the - // public IP addresses of the nodes. Therefore, Internet-facing load balancers - // can route requests from clients over the internet. - // - // The nodes of an internal load balancer have only private IP addresses. The - // DNS name of an internal load balancer is publicly resolvable to the private - // IP addresses of the nodes. Therefore, internal load balancers can route requests - // only from clients with access to the VPC for the load balancer. - // - // The default is an Internet-facing load balancer. + // The Amazon S3 path for the ca certificates bundle. // - // You cannot specify a scheme for a Gateway Load Balancer. - Scheme *string `type:"string" enum:"LoadBalancerSchemeEnum"` - - // [Application Load Balancers and Network Load Balancers] The IDs of the security - // groups for the load balancer. - SecurityGroups []*string `type:"list"` + // CaCertificatesBundleS3Key is a required field + CaCertificatesBundleS3Key *string `type:"string" required:"true"` - // The IDs of the public subnets. You can specify only one subnet per Availability - // Zone. You must specify either subnets or subnet mappings, but not both. - // - // [Application Load Balancers] You must specify subnets from at least two Availability - // Zones. You cannot specify Elastic IP addresses for your subnets. - // - // [Application Load Balancers on Outposts] You must specify one Outpost subnet. - // - // [Application Load Balancers on Local Zones] You can specify subnets from - // one or more Local Zones. - // - // [Network Load Balancers] You can specify subnets from one or more Availability - // Zones. You can specify one Elastic IP address per subnet if you need static - // IP addresses for your internet-facing load balancer. For internal load balancers, - // you can specify one private IP address per subnet from the IPv4 range of - // the subnet. For internet-facing load balancer, you can specify one IPv6 address - // per subnet. - // - // [Gateway Load Balancers] You can specify subnets from one or more Availability - // Zones. You cannot specify Elastic IP addresses for your subnets. - SubnetMappings []*SubnetMapping `type:"list"` + // The Amazon S3 object version for the ca certificates bundle. If undefined + // the current version is used. + CaCertificatesBundleS3ObjectVersion *string `type:"string"` - // The IDs of the public subnets. You can specify only one subnet per Availability - // Zone. You must specify either subnets or subnet mappings, but not both. To - // specify an Elastic IP address, specify subnet mappings instead of subnets. - // - // [Application Load Balancers] You must specify subnets from at least two Availability - // Zones. - // - // [Application Load Balancers on Outposts] You must specify one Outpost subnet. + // The name of the trust store. // - // [Application Load Balancers on Local Zones] You can specify subnets from - // one or more Local Zones. - // - // [Network Load Balancers] You can specify subnets from one or more Availability - // Zones. + // This name must be unique per region and cannot be changed after creation. // - // [Gateway Load Balancers] You can specify subnets from one or more Availability - // Zones. - Subnets []*string `type:"list"` + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` - // The tags to assign to the load balancer. + // The tags to assign to the trust store. Tags []*Tag `min:"1" type:"list"` - - // The type of load balancer. The default is application. - Type *string `type:"string" enum:"LoadBalancerTypeEnum"` } // String returns the string representation. @@ -4535,7 +6330,7 @@ type CreateLoadBalancerInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateLoadBalancerInput) String() string { +func (s CreateTrustStoreInput) String() string { return awsutil.Prettify(s) } @@ -4544,16 +6339,25 @@ func (s CreateLoadBalancerInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateLoadBalancerInput) GoString() string { +func (s CreateTrustStoreInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateLoadBalancerInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateLoadBalancerInput"} +func (s *CreateTrustStoreInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateTrustStoreInput"} + if s.CaCertificatesBundleS3Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("CaCertificatesBundleS3Bucket")) + } + if s.CaCertificatesBundleS3Key == nil { + invalidParams.Add(request.NewErrParamRequired("CaCertificatesBundleS3Key")) + } if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } if s.Tags != nil && len(s.Tags) < 1 { invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) } @@ -4574,65 +6378,115 @@ func (s *CreateLoadBalancerInput) Validate() error { return nil } -// SetCustomerOwnedIpv4Pool sets the CustomerOwnedIpv4Pool field's value. -func (s *CreateLoadBalancerInput) SetCustomerOwnedIpv4Pool(v string) *CreateLoadBalancerInput { - s.CustomerOwnedIpv4Pool = &v +// SetCaCertificatesBundleS3Bucket sets the CaCertificatesBundleS3Bucket field's value. +func (s *CreateTrustStoreInput) SetCaCertificatesBundleS3Bucket(v string) *CreateTrustStoreInput { + s.CaCertificatesBundleS3Bucket = &v return s } -// SetIpAddressType sets the IpAddressType field's value. -func (s *CreateLoadBalancerInput) SetIpAddressType(v string) *CreateLoadBalancerInput { - s.IpAddressType = &v +// SetCaCertificatesBundleS3Key sets the CaCertificatesBundleS3Key field's value. +func (s *CreateTrustStoreInput) SetCaCertificatesBundleS3Key(v string) *CreateTrustStoreInput { + s.CaCertificatesBundleS3Key = &v + return s +} + +// SetCaCertificatesBundleS3ObjectVersion sets the CaCertificatesBundleS3ObjectVersion field's value. +func (s *CreateTrustStoreInput) SetCaCertificatesBundleS3ObjectVersion(v string) *CreateTrustStoreInput { + s.CaCertificatesBundleS3ObjectVersion = &v return s } // SetName sets the Name field's value. -func (s *CreateLoadBalancerInput) SetName(v string) *CreateLoadBalancerInput { +func (s *CreateTrustStoreInput) SetName(v string) *CreateTrustStoreInput { s.Name = &v return s } -// SetScheme sets the Scheme field's value. -func (s *CreateLoadBalancerInput) SetScheme(v string) *CreateLoadBalancerInput { - s.Scheme = &v +// SetTags sets the Tags field's value. +func (s *CreateTrustStoreInput) SetTags(v []*Tag) *CreateTrustStoreInput { + s.Tags = v return s } -// SetSecurityGroups sets the SecurityGroups field's value. -func (s *CreateLoadBalancerInput) SetSecurityGroups(v []*string) *CreateLoadBalancerInput { - s.SecurityGroups = v - return s +type CreateTrustStoreOutput struct { + _ struct{} `type:"structure"` + + // Information about the trust store created. + TrustStores []*TrustStore `type:"list"` } -// SetSubnetMappings sets the SubnetMappings field's value. -func (s *CreateLoadBalancerInput) SetSubnetMappings(v []*SubnetMapping) *CreateLoadBalancerInput { - s.SubnetMappings = v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateTrustStoreOutput) String() string { + return awsutil.Prettify(s) } -// SetSubnets sets the Subnets field's value. -func (s *CreateLoadBalancerInput) SetSubnets(v []*string) *CreateLoadBalancerInput { - s.Subnets = v +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateTrustStoreOutput) GoString() string { + return s.String() +} + +// SetTrustStores sets the TrustStores field's value. +func (s *CreateTrustStoreOutput) SetTrustStores(v []*TrustStore) *CreateTrustStoreOutput { + s.TrustStores = v return s } -// SetTags sets the Tags field's value. -func (s *CreateLoadBalancerInput) SetTags(v []*Tag) *CreateLoadBalancerInput { - s.Tags = v - return s +type DeleteListenerInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the listener. + // + // ListenerArn is a required field + ListenerArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteListenerInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteListenerInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteListenerInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteListenerInput"} + if s.ListenerArn == nil { + invalidParams.Add(request.NewErrParamRequired("ListenerArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetType sets the Type field's value. -func (s *CreateLoadBalancerInput) SetType(v string) *CreateLoadBalancerInput { - s.Type = &v +// SetListenerArn sets the ListenerArn field's value. +func (s *DeleteListenerInput) SetListenerArn(v string) *DeleteListenerInput { + s.ListenerArn = &v return s } -type CreateLoadBalancerOutput struct { +type DeleteListenerOutput struct { _ struct{} `type:"structure"` - - // Information about the load balancer. - LoadBalancers []*LoadBalancer `type:"list"` } // String returns the string representation. @@ -4640,7 +6494,7 @@ type CreateLoadBalancerOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateLoadBalancerOutput) String() string { +func (s DeleteListenerOutput) String() string { return awsutil.Prettify(s) } @@ -4649,41 +6503,17 @@ func (s CreateLoadBalancerOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateLoadBalancerOutput) GoString() string { +func (s DeleteListenerOutput) GoString() string { return s.String() } -// SetLoadBalancers sets the LoadBalancers field's value. -func (s *CreateLoadBalancerOutput) SetLoadBalancers(v []*LoadBalancer) *CreateLoadBalancerOutput { - s.LoadBalancers = v - return s -} - -type CreateRuleInput struct { +type DeleteLoadBalancerInput struct { _ struct{} `type:"structure"` - // The actions. - // - // Actions is a required field - Actions []*Action `type:"list" required:"true"` - - // The conditions. - // - // Conditions is a required field - Conditions []*RuleCondition `type:"list" required:"true"` - - // The Amazon Resource Name (ARN) of the listener. - // - // ListenerArn is a required field - ListenerArn *string `type:"string" required:"true"` - - // The rule priority. A listener can't have multiple rules with the same priority. + // The Amazon Resource Name (ARN) of the load balancer. // - // Priority is a required field - Priority *int64 `min:"1" type:"integer" required:"true"` - - // The tags to assign to the rule. - Tags []*Tag `min:"1" type:"list"` + // LoadBalancerArn is a required field + LoadBalancerArn *string `type:"string" required:"true"` } // String returns the string representation. @@ -4691,7 +6521,7 @@ type CreateRuleInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateRuleInput) String() string { +func (s DeleteLoadBalancerInput) String() string { return awsutil.Prettify(s) } @@ -4700,50 +6530,15 @@ func (s CreateRuleInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateRuleInput) GoString() string { +func (s DeleteLoadBalancerInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateRuleInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateRuleInput"} - if s.Actions == nil { - invalidParams.Add(request.NewErrParamRequired("Actions")) - } - if s.Conditions == nil { - invalidParams.Add(request.NewErrParamRequired("Conditions")) - } - if s.ListenerArn == nil { - invalidParams.Add(request.NewErrParamRequired("ListenerArn")) - } - if s.Priority == nil { - invalidParams.Add(request.NewErrParamRequired("Priority")) - } - if s.Priority != nil && *s.Priority < 1 { - invalidParams.Add(request.NewErrParamMinValue("Priority", 1)) - } - if s.Tags != nil && len(s.Tags) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Tags", 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.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)) - } - } +func (s *DeleteLoadBalancerInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteLoadBalancerInput"} + if s.LoadBalancerArn == nil { + invalidParams.Add(request.NewErrParamRequired("LoadBalancerArn")) } if invalidParams.Len() > 0 { @@ -4752,41 +6547,41 @@ func (s *CreateRuleInput) Validate() error { return nil } -// SetActions sets the Actions field's value. -func (s *CreateRuleInput) SetActions(v []*Action) *CreateRuleInput { - s.Actions = v - return s -} - -// SetConditions sets the Conditions field's value. -func (s *CreateRuleInput) SetConditions(v []*RuleCondition) *CreateRuleInput { - s.Conditions = v +// SetLoadBalancerArn sets the LoadBalancerArn field's value. +func (s *DeleteLoadBalancerInput) SetLoadBalancerArn(v string) *DeleteLoadBalancerInput { + s.LoadBalancerArn = &v return s } -// SetListenerArn sets the ListenerArn field's value. -func (s *CreateRuleInput) SetListenerArn(v string) *CreateRuleInput { - s.ListenerArn = &v - return s +type DeleteLoadBalancerOutput struct { + _ struct{} `type:"structure"` } -// SetPriority sets the Priority field's value. -func (s *CreateRuleInput) SetPriority(v int64) *CreateRuleInput { - s.Priority = &v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLoadBalancerOutput) String() string { + return awsutil.Prettify(s) } -// SetTags sets the Tags field's value. -func (s *CreateRuleInput) SetTags(v []*Tag) *CreateRuleInput { - s.Tags = v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLoadBalancerOutput) GoString() string { + return s.String() } -type CreateRuleOutput struct { +type DeleteRuleInput struct { _ struct{} `type:"structure"` - // Information about the rule. - Rules []*Rule `type:"list"` + // The Amazon Resource Name (ARN) of the rule. + // + // RuleArn is a required field + RuleArn *string `type:"string" required:"true"` } // String returns the string representation. @@ -4794,7 +6589,7 @@ type CreateRuleOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateRuleOutput) String() string { +func (s DeleteRuleInput) String() string { return awsutil.Prettify(s) } @@ -4803,137 +6598,58 @@ func (s CreateRuleOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateRuleOutput) GoString() string { +func (s DeleteRuleInput) GoString() string { return s.String() } -// SetRules sets the Rules field's value. -func (s *CreateRuleOutput) SetRules(v []*Rule) *CreateRuleOutput { - s.Rules = v - return s -} - -type CreateTargetGroupInput struct { - _ struct{} `type:"structure"` - - // Indicates whether health checks are enabled. If the target type is lambda, - // health checks are disabled by default but can be enabled. If the target type - // is instance, ip, or alb, health checks are always enabled and cannot be disabled. - HealthCheckEnabled *bool `type:"boolean"` - - // The approximate amount of time, in seconds, between health checks of an individual - // target. The range is 5-300. If the target group protocol is TCP, TLS, UDP, - // TCP_UDP, HTTP or HTTPS, the default is 30 seconds. If the target group protocol - // is GENEVE, the default is 10 seconds. If the target type is lambda, the default - // is 35 seconds. - HealthCheckIntervalSeconds *int64 `min:"5" type:"integer"` - - // [HTTP/HTTPS health checks] The destination for health checks on the targets. - // - // [HTTP1 or HTTP2 protocol version] The ping path. The default is /. - // - // [GRPC protocol version] The path of a custom health check method with the - // format /package.service/method. The default is /Amazon Web Services.ALB/healthcheck. - HealthCheckPath *string `min:"1" type:"string"` - - // The port the load balancer uses when performing health checks on targets. - // If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is - // traffic-port, which is the port on which each target receives traffic from - // the load balancer. If the protocol is GENEVE, the default is port 80. - HealthCheckPort *string `type:"string"` - - // The protocol the load balancer uses when performing health checks on targets. - // For Application Load Balancers, the default is HTTP. For Network Load Balancers - // and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported - // for health checks if the protocol of the target group is HTTP or HTTPS. The - // GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health checks. - HealthCheckProtocol *string `type:"string" enum:"ProtocolEnum"` - - // The amount of time, in seconds, during which no response from a target means - // a failed health check. The range is 2–120 seconds. For target groups with - // a protocol of HTTP, the default is 6 seconds. For target groups with a protocol - // of TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a - // protocol of GENEVE, the default is 5 seconds. If the target type is lambda, - // the default is 30 seconds. - HealthCheckTimeoutSeconds *int64 `min:"2" type:"integer"` - - // The number of consecutive health check successes required before considering - // a target healthy. The range is 2-10. If the target group protocol is TCP, - // TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 5. For target groups with - // a protocol of GENEVE, the default is 5. If the target type is lambda, the - // default is 5. - HealthyThresholdCount *int64 `min:"2" type:"integer"` - - // The type of IP address used for this target group. The possible values are - // ipv4 and ipv6. This is an optional parameter. If not specified, the IP address - // type defaults to ipv4. - IpAddressType *string `type:"string" enum:"TargetGroupIpAddressTypeEnum"` - - // [HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for - // a successful response from a target. For target groups with a protocol of - // TCP, TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol - // of HTTP or HTTPS, the range is 200-499. For target groups with a protocol - // of GENEVE, the range is 200-399. - Matcher *Matcher `type:"structure"` - - // The name of the target group. - // - // This name must be unique per region per account, can have a maximum of 32 - // characters, must contain only alphanumeric characters or hyphens, and must - // not begin or end with a hyphen. - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // The port on which the targets receive traffic. This port is used unless you - // specify a port override when registering the target. If the target is a Lambda - // function, this parameter does not apply. If the protocol is GENEVE, the supported - // port is 6081. - Port *int64 `min:"1" type:"integer"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteRuleInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteRuleInput"} + if s.RuleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RuleArn")) + } - // The protocol to use for routing traffic to the targets. For Application Load - // Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, - // the supported protocols are TCP, TLS, UDP, or TCP_UDP. For Gateway Load Balancers, - // the supported protocol is GENEVE. A TCP_UDP listener must be associated with - // a TCP_UDP target group. If the target is a Lambda function, this parameter - // does not apply. - Protocol *string `type:"string" enum:"ProtocolEnum"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} - // [HTTP/HTTPS protocol] The protocol version. Specify GRPC to send requests - // to targets using gRPC. Specify HTTP2 to send requests to targets using HTTP/2. - // The default is HTTP1, which sends requests to targets using HTTP/1.1. - ProtocolVersion *string `type:"string"` +// SetRuleArn sets the RuleArn field's value. +func (s *DeleteRuleInput) SetRuleArn(v string) *DeleteRuleInput { + s.RuleArn = &v + return s +} - // The tags to assign to the target group. - Tags []*Tag `min:"1" type:"list"` +type DeleteRuleOutput struct { + _ struct{} `type:"structure"` +} - // The type of target that you must specify when registering targets with this - // target group. You can't specify targets for a target group using more than - // one target type. - // - // * instance - Register targets by instance ID. This is the default value. - // - // * ip - Register targets by IP address. You can specify IP addresses from - // the subnets of the virtual private cloud (VPC) for the target group, the - // RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the - // RFC 6598 range (100.64.0.0/10). You can't specify publicly routable IP - // addresses. - // - // * lambda - Register a single Lambda function as a target. - // - // * alb - Register a single Application Load Balancer as a target. - TargetType *string `type:"string" enum:"TargetTypeEnum"` +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteRuleOutput) String() string { + return awsutil.Prettify(s) +} - // The number of consecutive health check failures required before considering - // a target unhealthy. The range is 2-10. If the target group protocol is TCP, - // TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 2. For target groups with - // a protocol of GENEVE, the default is 2. If the target type is lambda, the - // default is 5. - UnhealthyThresholdCount *int64 `min:"2" type:"integer"` +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteRuleOutput) GoString() string { + return s.String() +} - // The identifier of the virtual private cloud (VPC). If the target is a Lambda - // function, this parameter does not apply. Otherwise, this parameter is required. - VpcId *string `type:"string"` +type DeleteTargetGroupInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the target group. + // + // TargetGroupArn is a required field + TargetGroupArn *string `type:"string" required:"true"` } // String returns the string representation. @@ -4941,7 +6657,7 @@ type CreateTargetGroupInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateTargetGroupInput) String() string { +func (s DeleteTargetGroupInput) String() string { return awsutil.Prettify(s) } @@ -4950,46 +6666,15 @@ func (s CreateTargetGroupInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateTargetGroupInput) GoString() string { +func (s DeleteTargetGroupInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateTargetGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateTargetGroupInput"} - if s.HealthCheckIntervalSeconds != nil && *s.HealthCheckIntervalSeconds < 5 { - invalidParams.Add(request.NewErrParamMinValue("HealthCheckIntervalSeconds", 5)) - } - if s.HealthCheckPath != nil && len(*s.HealthCheckPath) < 1 { - invalidParams.Add(request.NewErrParamMinLen("HealthCheckPath", 1)) - } - if s.HealthCheckTimeoutSeconds != nil && *s.HealthCheckTimeoutSeconds < 2 { - invalidParams.Add(request.NewErrParamMinValue("HealthCheckTimeoutSeconds", 2)) - } - if s.HealthyThresholdCount != nil && *s.HealthyThresholdCount < 2 { - invalidParams.Add(request.NewErrParamMinValue("HealthyThresholdCount", 2)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Port != nil && *s.Port < 1 { - invalidParams.Add(request.NewErrParamMinValue("Port", 1)) - } - if s.Tags != nil && len(s.Tags) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) - } - if s.UnhealthyThresholdCount != nil && *s.UnhealthyThresholdCount < 2 { - invalidParams.Add(request.NewErrParamMinValue("UnhealthyThresholdCount", 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)) - } - } +func (s *DeleteTargetGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteTargetGroupInput"} + if s.TargetGroupArn == nil { + invalidParams.Add(request.NewErrParamRequired("TargetGroupArn")) } if invalidParams.Len() > 0 { @@ -4998,113 +6683,175 @@ func (s *CreateTargetGroupInput) Validate() error { return nil } -// SetHealthCheckEnabled sets the HealthCheckEnabled field's value. -func (s *CreateTargetGroupInput) SetHealthCheckEnabled(v bool) *CreateTargetGroupInput { - s.HealthCheckEnabled = &v +// SetTargetGroupArn sets the TargetGroupArn field's value. +func (s *DeleteTargetGroupInput) SetTargetGroupArn(v string) *DeleteTargetGroupInput { + s.TargetGroupArn = &v return s } -// SetHealthCheckIntervalSeconds sets the HealthCheckIntervalSeconds field's value. -func (s *CreateTargetGroupInput) SetHealthCheckIntervalSeconds(v int64) *CreateTargetGroupInput { - s.HealthCheckIntervalSeconds = &v - return s +type DeleteTargetGroupOutput struct { + _ struct{} `type:"structure"` } -// SetHealthCheckPath sets the HealthCheckPath field's value. -func (s *CreateTargetGroupInput) SetHealthCheckPath(v string) *CreateTargetGroupInput { - s.HealthCheckPath = &v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteTargetGroupOutput) String() string { + return awsutil.Prettify(s) } -// SetHealthCheckPort sets the HealthCheckPort field's value. -func (s *CreateTargetGroupInput) SetHealthCheckPort(v string) *CreateTargetGroupInput { - s.HealthCheckPort = &v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteTargetGroupOutput) GoString() string { + return s.String() } -// SetHealthCheckProtocol sets the HealthCheckProtocol field's value. -func (s *CreateTargetGroupInput) SetHealthCheckProtocol(v string) *CreateTargetGroupInput { - s.HealthCheckProtocol = &v - return s +type DeleteTrustStoreInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the trust store. + // + // TrustStoreArn is a required field + TrustStoreArn *string `type:"string" required:"true"` } -// SetHealthCheckTimeoutSeconds sets the HealthCheckTimeoutSeconds field's value. -func (s *CreateTargetGroupInput) SetHealthCheckTimeoutSeconds(v int64) *CreateTargetGroupInput { - s.HealthCheckTimeoutSeconds = &v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteTrustStoreInput) String() string { + return awsutil.Prettify(s) } -// SetHealthyThresholdCount sets the HealthyThresholdCount field's value. -func (s *CreateTargetGroupInput) SetHealthyThresholdCount(v int64) *CreateTargetGroupInput { - s.HealthyThresholdCount = &v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteTrustStoreInput) GoString() string { + return s.String() } -// SetIpAddressType sets the IpAddressType field's value. -func (s *CreateTargetGroupInput) SetIpAddressType(v string) *CreateTargetGroupInput { - s.IpAddressType = &v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteTrustStoreInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteTrustStoreInput"} + if s.TrustStoreArn == nil { + invalidParams.Add(request.NewErrParamRequired("TrustStoreArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetMatcher sets the Matcher field's value. -func (s *CreateTargetGroupInput) SetMatcher(v *Matcher) *CreateTargetGroupInput { - s.Matcher = v +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *DeleteTrustStoreInput) SetTrustStoreArn(v string) *DeleteTrustStoreInput { + s.TrustStoreArn = &v return s } -// SetName sets the Name field's value. -func (s *CreateTargetGroupInput) SetName(v string) *CreateTargetGroupInput { - s.Name = &v - return s +type DeleteTrustStoreOutput struct { + _ struct{} `type:"structure"` } -// SetPort sets the Port field's value. -func (s *CreateTargetGroupInput) SetPort(v int64) *CreateTargetGroupInput { - s.Port = &v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteTrustStoreOutput) String() string { + return awsutil.Prettify(s) } -// SetProtocol sets the Protocol field's value. -func (s *CreateTargetGroupInput) SetProtocol(v string) *CreateTargetGroupInput { - s.Protocol = &v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteTrustStoreOutput) GoString() string { + return s.String() } -// SetProtocolVersion sets the ProtocolVersion field's value. -func (s *CreateTargetGroupInput) SetProtocolVersion(v string) *CreateTargetGroupInput { - s.ProtocolVersion = &v - return s +type DeregisterTargetsInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the target group. + // + // TargetGroupArn is a required field + TargetGroupArn *string `type:"string" required:"true"` + + // The targets. If you specified a port override when you registered a target, + // you must specify both the target ID and the port when you deregister it. + // + // Targets is a required field + Targets []*TargetDescription `type:"list" required:"true"` } -// SetTags sets the Tags field's value. -func (s *CreateTargetGroupInput) SetTags(v []*Tag) *CreateTargetGroupInput { - s.Tags = v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeregisterTargetsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeregisterTargetsInput) GoString() string { + return s.String() } -// SetTargetType sets the TargetType field's value. -func (s *CreateTargetGroupInput) SetTargetType(v string) *CreateTargetGroupInput { - s.TargetType = &v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeregisterTargetsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeregisterTargetsInput"} + if s.TargetGroupArn == nil { + invalidParams.Add(request.NewErrParamRequired("TargetGroupArn")) + } + if s.Targets == nil { + invalidParams.Add(request.NewErrParamRequired("Targets")) + } + 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 } -// SetUnhealthyThresholdCount sets the UnhealthyThresholdCount field's value. -func (s *CreateTargetGroupInput) SetUnhealthyThresholdCount(v int64) *CreateTargetGroupInput { - s.UnhealthyThresholdCount = &v +// SetTargetGroupArn sets the TargetGroupArn field's value. +func (s *DeregisterTargetsInput) SetTargetGroupArn(v string) *DeregisterTargetsInput { + s.TargetGroupArn = &v return s } -// SetVpcId sets the VpcId field's value. -func (s *CreateTargetGroupInput) SetVpcId(v string) *CreateTargetGroupInput { - s.VpcId = &v +// SetTargets sets the Targets field's value. +func (s *DeregisterTargetsInput) SetTargets(v []*TargetDescription) *DeregisterTargetsInput { + s.Targets = v return s } -type CreateTargetGroupOutput struct { +type DeregisterTargetsOutput struct { _ struct{} `type:"structure"` - - // Information about the target group. - TargetGroups []*TargetGroup `type:"list"` } // String returns the string representation. @@ -5112,7 +6859,7 @@ type CreateTargetGroupOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateTargetGroupOutput) String() string { +func (s DeregisterTargetsOutput) String() string { return awsutil.Prettify(s) } @@ -5121,23 +6868,19 @@ func (s CreateTargetGroupOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateTargetGroupOutput) GoString() string { +func (s DeregisterTargetsOutput) GoString() string { return s.String() } -// SetTargetGroups sets the TargetGroups field's value. -func (s *CreateTargetGroupOutput) SetTargetGroups(v []*TargetGroup) *CreateTargetGroupOutput { - s.TargetGroups = v - return s -} - -type DeleteListenerInput struct { +type DescribeAccountLimitsInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the listener. - // - // ListenerArn is a required field - ListenerArn *string `type:"string" required:"true"` + // The marker for the next set of results. (You received this marker from a + // previous call.) + Marker *string `type:"string"` + + // The maximum number of results to return with this call. + PageSize *int64 `min:"1" type:"integer"` } // String returns the string representation. @@ -5145,7 +6888,7 @@ type DeleteListenerInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteListenerInput) String() string { +func (s DescribeAccountLimitsInput) String() string { return awsutil.Prettify(s) } @@ -5154,15 +6897,15 @@ func (s DeleteListenerInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteListenerInput) GoString() string { +func (s DescribeAccountLimitsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteListenerInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteListenerInput"} - if s.ListenerArn == nil { - invalidParams.Add(request.NewErrParamRequired("ListenerArn")) +func (s *DescribeAccountLimitsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeAccountLimitsInput"} + if s.PageSize != nil && *s.PageSize < 1 { + invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) } if invalidParams.Len() > 0 { @@ -5171,14 +6914,27 @@ func (s *DeleteListenerInput) Validate() error { return nil } -// SetListenerArn sets the ListenerArn field's value. -func (s *DeleteListenerInput) SetListenerArn(v string) *DeleteListenerInput { - s.ListenerArn = &v +// SetMarker sets the Marker field's value. +func (s *DescribeAccountLimitsInput) SetMarker(v string) *DescribeAccountLimitsInput { + s.Marker = &v return s } -type DeleteListenerOutput struct { +// SetPageSize sets the PageSize field's value. +func (s *DescribeAccountLimitsInput) SetPageSize(v int64) *DescribeAccountLimitsInput { + s.PageSize = &v + return s +} + +type DescribeAccountLimitsOutput struct { _ struct{} `type:"structure"` + + // Information about the limits. + Limits []*Limit `type:"list"` + + // If there are additional results, this is the marker for the next set of results. + // Otherwise, this is null. + NextMarker *string `type:"string"` } // String returns the string representation. @@ -5186,7 +6942,7 @@ type DeleteListenerOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteListenerOutput) String() string { +func (s DescribeAccountLimitsOutput) String() string { return awsutil.Prettify(s) } @@ -5195,17 +6951,36 @@ func (s DeleteListenerOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteListenerOutput) GoString() string { +func (s DescribeAccountLimitsOutput) GoString() string { return s.String() } -type DeleteLoadBalancerInput struct { +// SetLimits sets the Limits field's value. +func (s *DescribeAccountLimitsOutput) SetLimits(v []*Limit) *DescribeAccountLimitsOutput { + s.Limits = v + return s +} + +// SetNextMarker sets the NextMarker field's value. +func (s *DescribeAccountLimitsOutput) SetNextMarker(v string) *DescribeAccountLimitsOutput { + s.NextMarker = &v + return s +} + +type DescribeListenerCertificatesInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the load balancer. + // The Amazon Resource Names (ARN) of the listener. // - // LoadBalancerArn is a required field - LoadBalancerArn *string `type:"string" required:"true"` + // ListenerArn is a required field + ListenerArn *string `type:"string" required:"true"` + + // The marker for the next set of results. (You received this marker from a + // previous call.) + Marker *string `type:"string"` + + // The maximum number of results to return with this call. + PageSize *int64 `min:"1" type:"integer"` } // String returns the string representation. @@ -5213,7 +6988,7 @@ type DeleteLoadBalancerInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteLoadBalancerInput) String() string { +func (s DescribeListenerCertificatesInput) String() string { return awsutil.Prettify(s) } @@ -5222,15 +6997,18 @@ func (s DeleteLoadBalancerInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteLoadBalancerInput) GoString() string { +func (s DescribeListenerCertificatesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteLoadBalancerInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteLoadBalancerInput"} - if s.LoadBalancerArn == nil { - invalidParams.Add(request.NewErrParamRequired("LoadBalancerArn")) +func (s *DescribeListenerCertificatesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeListenerCertificatesInput"} + if s.ListenerArn == nil { + invalidParams.Add(request.NewErrParamRequired("ListenerArn")) + } + if s.PageSize != nil && *s.PageSize < 1 { + invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) } if invalidParams.Len() > 0 { @@ -5239,14 +7017,33 @@ func (s *DeleteLoadBalancerInput) Validate() error { return nil } -// SetLoadBalancerArn sets the LoadBalancerArn field's value. -func (s *DeleteLoadBalancerInput) SetLoadBalancerArn(v string) *DeleteLoadBalancerInput { - s.LoadBalancerArn = &v +// SetListenerArn sets the ListenerArn field's value. +func (s *DescribeListenerCertificatesInput) SetListenerArn(v string) *DescribeListenerCertificatesInput { + s.ListenerArn = &v return s } -type DeleteLoadBalancerOutput struct { +// SetMarker sets the Marker field's value. +func (s *DescribeListenerCertificatesInput) SetMarker(v string) *DescribeListenerCertificatesInput { + s.Marker = &v + return s +} + +// SetPageSize sets the PageSize field's value. +func (s *DescribeListenerCertificatesInput) SetPageSize(v int64) *DescribeListenerCertificatesInput { + s.PageSize = &v + return s +} + +type DescribeListenerCertificatesOutput struct { _ struct{} `type:"structure"` + + // Information about the certificates. + Certificates []*Certificate `type:"list"` + + // If there are additional results, this is the marker for the next set of results. + // Otherwise, this is null. + NextMarker *string `type:"string"` } // String returns the string representation. @@ -5254,7 +7051,7 @@ type DeleteLoadBalancerOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteLoadBalancerOutput) String() string { +func (s DescribeListenerCertificatesOutput) String() string { return awsutil.Prettify(s) } @@ -5263,17 +7060,37 @@ func (s DeleteLoadBalancerOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteLoadBalancerOutput) GoString() string { +func (s DescribeListenerCertificatesOutput) GoString() string { return s.String() } -type DeleteRuleInput struct { +// SetCertificates sets the Certificates field's value. +func (s *DescribeListenerCertificatesOutput) SetCertificates(v []*Certificate) *DescribeListenerCertificatesOutput { + s.Certificates = v + return s +} + +// SetNextMarker sets the NextMarker field's value. +func (s *DescribeListenerCertificatesOutput) SetNextMarker(v string) *DescribeListenerCertificatesOutput { + s.NextMarker = &v + return s +} + +type DescribeListenersInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the rule. - // - // RuleArn is a required field - RuleArn *string `type:"string" required:"true"` + // The Amazon Resource Names (ARN) of the listeners. + ListenerArns []*string `type:"list"` + + // The Amazon Resource Name (ARN) of the load balancer. + LoadBalancerArn *string `type:"string"` + + // The marker for the next set of results. (You received this marker from a + // previous call.) + Marker *string `type:"string"` + + // The maximum number of results to return with this call. + PageSize *int64 `min:"1" type:"integer"` } // String returns the string representation. @@ -5281,7 +7098,7 @@ type DeleteRuleInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteRuleInput) String() string { +func (s DescribeListenersInput) String() string { return awsutil.Prettify(s) } @@ -5290,15 +7107,15 @@ func (s DeleteRuleInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteRuleInput) GoString() string { +func (s DescribeListenersInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteRuleInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteRuleInput"} - if s.RuleArn == nil { - invalidParams.Add(request.NewErrParamRequired("RuleArn")) +func (s *DescribeListenersInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeListenersInput"} + if s.PageSize != nil && *s.PageSize < 1 { + invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) } if invalidParams.Len() > 0 { @@ -5307,14 +7124,39 @@ func (s *DeleteRuleInput) Validate() error { return nil } -// SetRuleArn sets the RuleArn field's value. -func (s *DeleteRuleInput) SetRuleArn(v string) *DeleteRuleInput { - s.RuleArn = &v +// SetListenerArns sets the ListenerArns field's value. +func (s *DescribeListenersInput) SetListenerArns(v []*string) *DescribeListenersInput { + s.ListenerArns = v return s } -type DeleteRuleOutput struct { +// SetLoadBalancerArn sets the LoadBalancerArn field's value. +func (s *DescribeListenersInput) SetLoadBalancerArn(v string) *DescribeListenersInput { + s.LoadBalancerArn = &v + return s +} + +// SetMarker sets the Marker field's value. +func (s *DescribeListenersInput) SetMarker(v string) *DescribeListenersInput { + s.Marker = &v + return s +} + +// SetPageSize sets the PageSize field's value. +func (s *DescribeListenersInput) SetPageSize(v int64) *DescribeListenersInput { + s.PageSize = &v + return s +} + +type DescribeListenersOutput struct { _ struct{} `type:"structure"` + + // Information about the listeners. + Listeners []*Listener `type:"list"` + + // If there are additional results, this is the marker for the next set of results. + // Otherwise, this is null. + NextMarker *string `type:"string"` } // String returns the string representation. @@ -5322,7 +7164,7 @@ type DeleteRuleOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteRuleOutput) String() string { +func (s DescribeListenersOutput) String() string { return awsutil.Prettify(s) } @@ -5331,17 +7173,29 @@ func (s DeleteRuleOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteRuleOutput) GoString() string { +func (s DescribeListenersOutput) GoString() string { return s.String() } -type DeleteTargetGroupInput struct { +// SetListeners sets the Listeners field's value. +func (s *DescribeListenersOutput) SetListeners(v []*Listener) *DescribeListenersOutput { + s.Listeners = v + return s +} + +// SetNextMarker sets the NextMarker field's value. +func (s *DescribeListenersOutput) SetNextMarker(v string) *DescribeListenersOutput { + s.NextMarker = &v + return s +} + +type DescribeLoadBalancerAttributesInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the target group. + // The Amazon Resource Name (ARN) of the load balancer. // - // TargetGroupArn is a required field - TargetGroupArn *string `type:"string" required:"true"` + // LoadBalancerArn is a required field + LoadBalancerArn *string `type:"string" required:"true"` } // String returns the string representation. @@ -5349,7 +7203,7 @@ type DeleteTargetGroupInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteTargetGroupInput) String() string { +func (s DescribeLoadBalancerAttributesInput) String() string { return awsutil.Prettify(s) } @@ -5358,15 +7212,15 @@ func (s DeleteTargetGroupInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteTargetGroupInput) GoString() string { +func (s DescribeLoadBalancerAttributesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteTargetGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteTargetGroupInput"} - if s.TargetGroupArn == nil { - invalidParams.Add(request.NewErrParamRequired("TargetGroupArn")) +func (s *DescribeLoadBalancerAttributesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeLoadBalancerAttributesInput"} + if s.LoadBalancerArn == nil { + invalidParams.Add(request.NewErrParamRequired("LoadBalancerArn")) } if invalidParams.Len() > 0 { @@ -5375,14 +7229,17 @@ func (s *DeleteTargetGroupInput) Validate() error { return nil } -// SetTargetGroupArn sets the TargetGroupArn field's value. -func (s *DeleteTargetGroupInput) SetTargetGroupArn(v string) *DeleteTargetGroupInput { - s.TargetGroupArn = &v +// SetLoadBalancerArn sets the LoadBalancerArn field's value. +func (s *DescribeLoadBalancerAttributesInput) SetLoadBalancerArn(v string) *DescribeLoadBalancerAttributesInput { + s.LoadBalancerArn = &v return s } -type DeleteTargetGroupOutput struct { +type DescribeLoadBalancerAttributesOutput struct { _ struct{} `type:"structure"` + + // Information about the load balancer attributes. + Attributes []*LoadBalancerAttribute `type:"list"` } // String returns the string representation. @@ -5390,7 +7247,7 @@ type DeleteTargetGroupOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteTargetGroupOutput) String() string { +func (s DescribeLoadBalancerAttributesOutput) String() string { return awsutil.Prettify(s) } @@ -5399,23 +7256,32 @@ func (s DeleteTargetGroupOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteTargetGroupOutput) GoString() string { +func (s DescribeLoadBalancerAttributesOutput) GoString() string { return s.String() } -type DeregisterTargetsInput struct { +// SetAttributes sets the Attributes field's value. +func (s *DescribeLoadBalancerAttributesOutput) SetAttributes(v []*LoadBalancerAttribute) *DescribeLoadBalancerAttributesOutput { + s.Attributes = v + return s +} + +type DescribeLoadBalancersInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the target group. - // - // TargetGroupArn is a required field - TargetGroupArn *string `type:"string" required:"true"` + // The Amazon Resource Names (ARN) of the load balancers. You can specify up + // to 20 load balancers in a single call. + LoadBalancerArns []*string `type:"list"` - // The targets. If you specified a port override when you registered a target, - // you must specify both the target ID and the port when you deregister it. - // - // Targets is a required field - Targets []*TargetDescription `type:"list" required:"true"` + // The marker for the next set of results. (You received this marker from a + // previous call.) + Marker *string `type:"string"` + + // The names of the load balancers. + Names []*string `type:"list"` + + // The maximum number of results to return with this call. + PageSize *int64 `min:"1" type:"integer"` } // String returns the string representation. @@ -5423,7 +7289,7 @@ type DeregisterTargetsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeregisterTargetsInput) String() string { +func (s DescribeLoadBalancersInput) String() string { return awsutil.Prettify(s) } @@ -5432,28 +7298,15 @@ func (s DeregisterTargetsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeregisterTargetsInput) GoString() string { +func (s DescribeLoadBalancersInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeregisterTargetsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeregisterTargetsInput"} - if s.TargetGroupArn == nil { - invalidParams.Add(request.NewErrParamRequired("TargetGroupArn")) - } - if s.Targets == nil { - invalidParams.Add(request.NewErrParamRequired("Targets")) - } - 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)) - } - } +func (s *DescribeLoadBalancersInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeLoadBalancersInput"} + if s.PageSize != nil && *s.PageSize < 1 { + invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) } if invalidParams.Len() > 0 { @@ -5462,20 +7315,39 @@ func (s *DeregisterTargetsInput) Validate() error { return nil } -// SetTargetGroupArn sets the TargetGroupArn field's value. -func (s *DeregisterTargetsInput) SetTargetGroupArn(v string) *DeregisterTargetsInput { - s.TargetGroupArn = &v +// SetLoadBalancerArns sets the LoadBalancerArns field's value. +func (s *DescribeLoadBalancersInput) SetLoadBalancerArns(v []*string) *DescribeLoadBalancersInput { + s.LoadBalancerArns = v return s } -// SetTargets sets the Targets field's value. -func (s *DeregisterTargetsInput) SetTargets(v []*TargetDescription) *DeregisterTargetsInput { - s.Targets = v +// SetMarker sets the Marker field's value. +func (s *DescribeLoadBalancersInput) SetMarker(v string) *DescribeLoadBalancersInput { + s.Marker = &v return s } -type DeregisterTargetsOutput struct { +// SetNames sets the Names field's value. +func (s *DescribeLoadBalancersInput) SetNames(v []*string) *DescribeLoadBalancersInput { + s.Names = v + return s +} + +// SetPageSize sets the PageSize field's value. +func (s *DescribeLoadBalancersInput) SetPageSize(v int64) *DescribeLoadBalancersInput { + s.PageSize = &v + return s +} + +type DescribeLoadBalancersOutput struct { _ struct{} `type:"structure"` + + // Information about the load balancers. + LoadBalancers []*LoadBalancer `type:"list"` + + // If there are additional results, this is the marker for the next set of results. + // Otherwise, this is null. + NextMarker *string `type:"string"` } // String returns the string representation. @@ -5483,7 +7355,7 @@ type DeregisterTargetsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeregisterTargetsOutput) String() string { +func (s DescribeLoadBalancersOutput) String() string { return awsutil.Prettify(s) } @@ -5492,19 +7364,37 @@ func (s DeregisterTargetsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeregisterTargetsOutput) GoString() string { +func (s DescribeLoadBalancersOutput) GoString() string { return s.String() } -type DescribeAccountLimitsInput struct { +// SetLoadBalancers sets the LoadBalancers field's value. +func (s *DescribeLoadBalancersOutput) SetLoadBalancers(v []*LoadBalancer) *DescribeLoadBalancersOutput { + s.LoadBalancers = v + return s +} + +// SetNextMarker sets the NextMarker field's value. +func (s *DescribeLoadBalancersOutput) SetNextMarker(v string) *DescribeLoadBalancersOutput { + s.NextMarker = &v + return s +} + +type DescribeRulesInput struct { _ struct{} `type:"structure"` + // The Amazon Resource Name (ARN) of the listener. + ListenerArn *string `type:"string"` + // The marker for the next set of results. (You received this marker from a // previous call.) Marker *string `type:"string"` // The maximum number of results to return with this call. PageSize *int64 `min:"1" type:"integer"` + + // The Amazon Resource Names (ARN) of the rules. + RuleArns []*string `type:"list"` } // String returns the string representation. @@ -5512,7 +7402,7 @@ type DescribeAccountLimitsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeAccountLimitsInput) String() string { +func (s DescribeRulesInput) String() string { return awsutil.Prettify(s) } @@ -5521,13 +7411,13 @@ func (s DescribeAccountLimitsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeAccountLimitsInput) GoString() string { +func (s DescribeRulesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeAccountLimitsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeAccountLimitsInput"} +func (s *DescribeRulesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeRulesInput"} if s.PageSize != nil && *s.PageSize < 1 { invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) } @@ -5538,27 +7428,39 @@ func (s *DescribeAccountLimitsInput) Validate() error { return nil } +// SetListenerArn sets the ListenerArn field's value. +func (s *DescribeRulesInput) SetListenerArn(v string) *DescribeRulesInput { + s.ListenerArn = &v + return s +} + // SetMarker sets the Marker field's value. -func (s *DescribeAccountLimitsInput) SetMarker(v string) *DescribeAccountLimitsInput { +func (s *DescribeRulesInput) SetMarker(v string) *DescribeRulesInput { s.Marker = &v return s } // SetPageSize sets the PageSize field's value. -func (s *DescribeAccountLimitsInput) SetPageSize(v int64) *DescribeAccountLimitsInput { +func (s *DescribeRulesInput) SetPageSize(v int64) *DescribeRulesInput { s.PageSize = &v return s } -type DescribeAccountLimitsOutput struct { - _ struct{} `type:"structure"` +// SetRuleArns sets the RuleArns field's value. +func (s *DescribeRulesInput) SetRuleArns(v []*string) *DescribeRulesInput { + s.RuleArns = v + return s +} - // Information about the limits. - Limits []*Limit `type:"list"` +type DescribeRulesOutput struct { + _ struct{} `type:"structure"` // If there are additional results, this is the marker for the next set of results. // Otherwise, this is null. NextMarker *string `type:"string"` + + // Information about the rules. + Rules []*Rule `type:"list"` } // String returns the string representation. @@ -5566,7 +7468,7 @@ type DescribeAccountLimitsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeAccountLimitsOutput) String() string { +func (s DescribeRulesOutput) String() string { return awsutil.Prettify(s) } @@ -5575,34 +7477,36 @@ func (s DescribeAccountLimitsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeAccountLimitsOutput) GoString() string { +func (s DescribeRulesOutput) GoString() string { return s.String() } -// SetLimits sets the Limits field's value. -func (s *DescribeAccountLimitsOutput) SetLimits(v []*Limit) *DescribeAccountLimitsOutput { - s.Limits = v +// SetNextMarker sets the NextMarker field's value. +func (s *DescribeRulesOutput) SetNextMarker(v string) *DescribeRulesOutput { + s.NextMarker = &v return s } -// SetNextMarker sets the NextMarker field's value. -func (s *DescribeAccountLimitsOutput) SetNextMarker(v string) *DescribeAccountLimitsOutput { - s.NextMarker = &v +// SetRules sets the Rules field's value. +func (s *DescribeRulesOutput) SetRules(v []*Rule) *DescribeRulesOutput { + s.Rules = v return s } -type DescribeListenerCertificatesInput struct { +type DescribeSSLPoliciesInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Names (ARN) of the listener. - // - // ListenerArn is a required field - ListenerArn *string `type:"string" required:"true"` + // The type of load balancer. The default lists the SSL policies for all load + // balancers. + LoadBalancerType *string `type:"string" enum:"LoadBalancerTypeEnum"` // The marker for the next set of results. (You received this marker from a // previous call.) Marker *string `type:"string"` + // The names of the policies. + Names []*string `type:"list"` + // The maximum number of results to return with this call. PageSize *int64 `min:"1" type:"integer"` } @@ -5612,7 +7516,7 @@ type DescribeListenerCertificatesInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeListenerCertificatesInput) String() string { +func (s DescribeSSLPoliciesInput) String() string { return awsutil.Prettify(s) } @@ -5621,16 +7525,13 @@ func (s DescribeListenerCertificatesInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeListenerCertificatesInput) GoString() string { +func (s DescribeSSLPoliciesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeListenerCertificatesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeListenerCertificatesInput"} - if s.ListenerArn == nil { - invalidParams.Add(request.NewErrParamRequired("ListenerArn")) - } +func (s *DescribeSSLPoliciesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeSSLPoliciesInput"} if s.PageSize != nil && *s.PageSize < 1 { invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) } @@ -5641,33 +7542,39 @@ func (s *DescribeListenerCertificatesInput) Validate() error { return nil } -// SetListenerArn sets the ListenerArn field's value. -func (s *DescribeListenerCertificatesInput) SetListenerArn(v string) *DescribeListenerCertificatesInput { - s.ListenerArn = &v +// SetLoadBalancerType sets the LoadBalancerType field's value. +func (s *DescribeSSLPoliciesInput) SetLoadBalancerType(v string) *DescribeSSLPoliciesInput { + s.LoadBalancerType = &v return s } // SetMarker sets the Marker field's value. -func (s *DescribeListenerCertificatesInput) SetMarker(v string) *DescribeListenerCertificatesInput { +func (s *DescribeSSLPoliciesInput) SetMarker(v string) *DescribeSSLPoliciesInput { s.Marker = &v return s } +// SetNames sets the Names field's value. +func (s *DescribeSSLPoliciesInput) SetNames(v []*string) *DescribeSSLPoliciesInput { + s.Names = v + return s +} + // SetPageSize sets the PageSize field's value. -func (s *DescribeListenerCertificatesInput) SetPageSize(v int64) *DescribeListenerCertificatesInput { +func (s *DescribeSSLPoliciesInput) SetPageSize(v int64) *DescribeSSLPoliciesInput { s.PageSize = &v return s } -type DescribeListenerCertificatesOutput struct { +type DescribeSSLPoliciesOutput struct { _ struct{} `type:"structure"` - // Information about the certificates. - Certificates []*Certificate `type:"list"` - // If there are additional results, this is the marker for the next set of results. // Otherwise, this is null. NextMarker *string `type:"string"` + + // Information about the security policies. + SslPolicies []*SslPolicy `type:"list"` } // String returns the string representation. @@ -5675,7 +7582,7 @@ type DescribeListenerCertificatesOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeListenerCertificatesOutput) String() string { +func (s DescribeSSLPoliciesOutput) String() string { return awsutil.Prettify(s) } @@ -5684,37 +7591,30 @@ func (s DescribeListenerCertificatesOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeListenerCertificatesOutput) GoString() string { +func (s DescribeSSLPoliciesOutput) GoString() string { return s.String() } -// SetCertificates sets the Certificates field's value. -func (s *DescribeListenerCertificatesOutput) SetCertificates(v []*Certificate) *DescribeListenerCertificatesOutput { - s.Certificates = v +// SetNextMarker sets the NextMarker field's value. +func (s *DescribeSSLPoliciesOutput) SetNextMarker(v string) *DescribeSSLPoliciesOutput { + s.NextMarker = &v return s } -// SetNextMarker sets the NextMarker field's value. -func (s *DescribeListenerCertificatesOutput) SetNextMarker(v string) *DescribeListenerCertificatesOutput { - s.NextMarker = &v +// SetSslPolicies sets the SslPolicies field's value. +func (s *DescribeSSLPoliciesOutput) SetSslPolicies(v []*SslPolicy) *DescribeSSLPoliciesOutput { + s.SslPolicies = v return s } -type DescribeListenersInput struct { +type DescribeTagsInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Names (ARN) of the listeners. - ListenerArns []*string `type:"list"` - - // The Amazon Resource Name (ARN) of the load balancer. - LoadBalancerArn *string `type:"string"` - - // The marker for the next set of results. (You received this marker from a - // previous call.) - Marker *string `type:"string"` - - // The maximum number of results to return with this call. - PageSize *int64 `min:"1" type:"integer"` + // The Amazon Resource Names (ARN) of the resources. You can specify up to 20 + // resources in a single call. + // + // ResourceArns is a required field + ResourceArns []*string `type:"list" required:"true"` } // String returns the string representation. @@ -5722,7 +7622,7 @@ type DescribeListenersInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeListenersInput) String() string { +func (s DescribeTagsInput) String() string { return awsutil.Prettify(s) } @@ -5731,15 +7631,15 @@ func (s DescribeListenersInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeListenersInput) GoString() string { +func (s DescribeTagsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeListenersInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeListenersInput"} - if s.PageSize != nil && *s.PageSize < 1 { - invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) +func (s *DescribeTagsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeTagsInput"} + if s.ResourceArns == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArns")) } if invalidParams.Len() > 0 { @@ -5748,39 +7648,17 @@ func (s *DescribeListenersInput) Validate() error { return nil } -// SetListenerArns sets the ListenerArns field's value. -func (s *DescribeListenersInput) SetListenerArns(v []*string) *DescribeListenersInput { - s.ListenerArns = v - return s -} - -// SetLoadBalancerArn sets the LoadBalancerArn field's value. -func (s *DescribeListenersInput) SetLoadBalancerArn(v string) *DescribeListenersInput { - s.LoadBalancerArn = &v - return s -} - -// SetMarker sets the Marker field's value. -func (s *DescribeListenersInput) SetMarker(v string) *DescribeListenersInput { - s.Marker = &v - return s -} - -// SetPageSize sets the PageSize field's value. -func (s *DescribeListenersInput) SetPageSize(v int64) *DescribeListenersInput { - s.PageSize = &v +// SetResourceArns sets the ResourceArns field's value. +func (s *DescribeTagsInput) SetResourceArns(v []*string) *DescribeTagsInput { + s.ResourceArns = v return s } -type DescribeListenersOutput struct { +type DescribeTagsOutput struct { _ struct{} `type:"structure"` - // Information about the listeners. - Listeners []*Listener `type:"list"` - - // If there are additional results, this is the marker for the next set of results. - // Otherwise, this is null. - NextMarker *string `type:"string"` + // Information about the tags. + TagDescriptions []*TagDescription `type:"list"` } // String returns the string representation. @@ -5788,7 +7666,7 @@ type DescribeListenersOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeListenersOutput) String() string { +func (s DescribeTagsOutput) String() string { return awsutil.Prettify(s) } @@ -5797,29 +7675,23 @@ func (s DescribeListenersOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeListenersOutput) GoString() string { +func (s DescribeTagsOutput) GoString() string { return s.String() } -// SetListeners sets the Listeners field's value. -func (s *DescribeListenersOutput) SetListeners(v []*Listener) *DescribeListenersOutput { - s.Listeners = v - return s -} - -// SetNextMarker sets the NextMarker field's value. -func (s *DescribeListenersOutput) SetNextMarker(v string) *DescribeListenersOutput { - s.NextMarker = &v +// SetTagDescriptions sets the TagDescriptions field's value. +func (s *DescribeTagsOutput) SetTagDescriptions(v []*TagDescription) *DescribeTagsOutput { + s.TagDescriptions = v return s } -type DescribeLoadBalancerAttributesInput struct { +type DescribeTargetGroupAttributesInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the load balancer. + // The Amazon Resource Name (ARN) of the target group. // - // LoadBalancerArn is a required field - LoadBalancerArn *string `type:"string" required:"true"` + // TargetGroupArn is a required field + TargetGroupArn *string `type:"string" required:"true"` } // String returns the string representation. @@ -5827,7 +7699,7 @@ type DescribeLoadBalancerAttributesInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeLoadBalancerAttributesInput) String() string { +func (s DescribeTargetGroupAttributesInput) String() string { return awsutil.Prettify(s) } @@ -5836,15 +7708,15 @@ func (s DescribeLoadBalancerAttributesInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeLoadBalancerAttributesInput) GoString() string { +func (s DescribeTargetGroupAttributesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeLoadBalancerAttributesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeLoadBalancerAttributesInput"} - if s.LoadBalancerArn == nil { - invalidParams.Add(request.NewErrParamRequired("LoadBalancerArn")) +func (s *DescribeTargetGroupAttributesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeTargetGroupAttributesInput"} + if s.TargetGroupArn == nil { + invalidParams.Add(request.NewErrParamRequired("TargetGroupArn")) } if invalidParams.Len() > 0 { @@ -5853,17 +7725,17 @@ func (s *DescribeLoadBalancerAttributesInput) Validate() error { return nil } -// SetLoadBalancerArn sets the LoadBalancerArn field's value. -func (s *DescribeLoadBalancerAttributesInput) SetLoadBalancerArn(v string) *DescribeLoadBalancerAttributesInput { - s.LoadBalancerArn = &v +// SetTargetGroupArn sets the TargetGroupArn field's value. +func (s *DescribeTargetGroupAttributesInput) SetTargetGroupArn(v string) *DescribeTargetGroupAttributesInput { + s.TargetGroupArn = &v return s } -type DescribeLoadBalancerAttributesOutput struct { +type DescribeTargetGroupAttributesOutput struct { _ struct{} `type:"structure"` - // Information about the load balancer attributes. - Attributes []*LoadBalancerAttribute `type:"list"` + // Information about the target group attributes + Attributes []*TargetGroupAttribute `type:"list"` } // String returns the string representation. @@ -5871,7 +7743,7 @@ type DescribeLoadBalancerAttributesOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeLoadBalancerAttributesOutput) String() string { +func (s DescribeTargetGroupAttributesOutput) String() string { return awsutil.Prettify(s) } @@ -5880,32 +7752,34 @@ func (s DescribeLoadBalancerAttributesOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeLoadBalancerAttributesOutput) GoString() string { +func (s DescribeTargetGroupAttributesOutput) GoString() string { return s.String() } // SetAttributes sets the Attributes field's value. -func (s *DescribeLoadBalancerAttributesOutput) SetAttributes(v []*LoadBalancerAttribute) *DescribeLoadBalancerAttributesOutput { +func (s *DescribeTargetGroupAttributesOutput) SetAttributes(v []*TargetGroupAttribute) *DescribeTargetGroupAttributesOutput { s.Attributes = v return s } -type DescribeLoadBalancersInput struct { +type DescribeTargetGroupsInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Names (ARN) of the load balancers. You can specify up - // to 20 load balancers in a single call. - LoadBalancerArns []*string `type:"list"` + // The Amazon Resource Name (ARN) of the load balancer. + LoadBalancerArn *string `type:"string"` // The marker for the next set of results. (You received this marker from a // previous call.) Marker *string `type:"string"` - // The names of the load balancers. + // The names of the target groups. Names []*string `type:"list"` // The maximum number of results to return with this call. PageSize *int64 `min:"1" type:"integer"` + + // The Amazon Resource Names (ARN) of the target groups. + TargetGroupArns []*string `type:"list"` } // String returns the string representation. @@ -5913,7 +7787,7 @@ type DescribeLoadBalancersInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeLoadBalancersInput) String() string { +func (s DescribeTargetGroupsInput) String() string { return awsutil.Prettify(s) } @@ -5922,13 +7796,13 @@ func (s DescribeLoadBalancersInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeLoadBalancersInput) GoString() string { +func (s DescribeTargetGroupsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeLoadBalancersInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeLoadBalancersInput"} +func (s *DescribeTargetGroupsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeTargetGroupsInput"} if s.PageSize != nil && *s.PageSize < 1 { invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) } @@ -5939,39 +7813,45 @@ func (s *DescribeLoadBalancersInput) Validate() error { return nil } -// SetLoadBalancerArns sets the LoadBalancerArns field's value. -func (s *DescribeLoadBalancersInput) SetLoadBalancerArns(v []*string) *DescribeLoadBalancersInput { - s.LoadBalancerArns = v +// SetLoadBalancerArn sets the LoadBalancerArn field's value. +func (s *DescribeTargetGroupsInput) SetLoadBalancerArn(v string) *DescribeTargetGroupsInput { + s.LoadBalancerArn = &v return s } // SetMarker sets the Marker field's value. -func (s *DescribeLoadBalancersInput) SetMarker(v string) *DescribeLoadBalancersInput { +func (s *DescribeTargetGroupsInput) SetMarker(v string) *DescribeTargetGroupsInput { s.Marker = &v return s } // SetNames sets the Names field's value. -func (s *DescribeLoadBalancersInput) SetNames(v []*string) *DescribeLoadBalancersInput { +func (s *DescribeTargetGroupsInput) SetNames(v []*string) *DescribeTargetGroupsInput { s.Names = v return s } // SetPageSize sets the PageSize field's value. -func (s *DescribeLoadBalancersInput) SetPageSize(v int64) *DescribeLoadBalancersInput { +func (s *DescribeTargetGroupsInput) SetPageSize(v int64) *DescribeTargetGroupsInput { s.PageSize = &v return s } -type DescribeLoadBalancersOutput struct { - _ struct{} `type:"structure"` +// SetTargetGroupArns sets the TargetGroupArns field's value. +func (s *DescribeTargetGroupsInput) SetTargetGroupArns(v []*string) *DescribeTargetGroupsInput { + s.TargetGroupArns = v + return s +} - // Information about the load balancers. - LoadBalancers []*LoadBalancer `type:"list"` +type DescribeTargetGroupsOutput struct { + _ struct{} `type:"structure"` // If there are additional results, this is the marker for the next set of results. // Otherwise, this is null. NextMarker *string `type:"string"` + + // Information about the target groups. + TargetGroups []*TargetGroup `type:"list"` } // String returns the string representation. @@ -5979,7 +7859,7 @@ type DescribeLoadBalancersOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeLoadBalancersOutput) String() string { +func (s DescribeTargetGroupsOutput) String() string { return awsutil.Prettify(s) } @@ -5988,37 +7868,35 @@ func (s DescribeLoadBalancersOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeLoadBalancersOutput) GoString() string { +func (s DescribeTargetGroupsOutput) GoString() string { return s.String() } -// SetLoadBalancers sets the LoadBalancers field's value. -func (s *DescribeLoadBalancersOutput) SetLoadBalancers(v []*LoadBalancer) *DescribeLoadBalancersOutput { - s.LoadBalancers = v +// SetNextMarker sets the NextMarker field's value. +func (s *DescribeTargetGroupsOutput) SetNextMarker(v string) *DescribeTargetGroupsOutput { + s.NextMarker = &v return s } -// SetNextMarker sets the NextMarker field's value. -func (s *DescribeLoadBalancersOutput) SetNextMarker(v string) *DescribeLoadBalancersOutput { - s.NextMarker = &v +// SetTargetGroups sets the TargetGroups field's value. +func (s *DescribeTargetGroupsOutput) SetTargetGroups(v []*TargetGroup) *DescribeTargetGroupsOutput { + s.TargetGroups = v return s } -type DescribeRulesInput struct { +type DescribeTargetHealthInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the listener. - ListenerArn *string `type:"string"` - - // The marker for the next set of results. (You received this marker from a - // previous call.) - Marker *string `type:"string"` + // Used to inclue anomaly detection information. + Include []*string `type:"list" enum:"DescribeTargetHealthInputIncludeEnum"` - // The maximum number of results to return with this call. - PageSize *int64 `min:"1" type:"integer"` + // The Amazon Resource Name (ARN) of the target group. + // + // TargetGroupArn is a required field + TargetGroupArn *string `type:"string" required:"true"` - // The Amazon Resource Names (ARN) of the rules. - RuleArns []*string `type:"list"` + // The targets. + Targets []*TargetDescription `type:"list"` } // String returns the string representation. @@ -6026,7 +7904,7 @@ type DescribeRulesInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeRulesInput) String() string { +func (s DescribeTargetHealthInput) String() string { return awsutil.Prettify(s) } @@ -6035,15 +7913,25 @@ func (s DescribeRulesInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeRulesInput) GoString() string { +func (s DescribeTargetHealthInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeRulesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeRulesInput"} - if s.PageSize != nil && *s.PageSize < 1 { - invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) +func (s *DescribeTargetHealthInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeTargetHealthInput"} + if s.TargetGroupArn == nil { + invalidParams.Add(request.NewErrParamRequired("TargetGroupArn")) + } + 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 { @@ -6052,39 +7940,29 @@ func (s *DescribeRulesInput) Validate() error { return nil } -// SetListenerArn sets the ListenerArn field's value. -func (s *DescribeRulesInput) SetListenerArn(v string) *DescribeRulesInput { - s.ListenerArn = &v - return s -} - -// SetMarker sets the Marker field's value. -func (s *DescribeRulesInput) SetMarker(v string) *DescribeRulesInput { - s.Marker = &v +// SetInclude sets the Include field's value. +func (s *DescribeTargetHealthInput) SetInclude(v []*string) *DescribeTargetHealthInput { + s.Include = v return s } -// SetPageSize sets the PageSize field's value. -func (s *DescribeRulesInput) SetPageSize(v int64) *DescribeRulesInput { - s.PageSize = &v +// SetTargetGroupArn sets the TargetGroupArn field's value. +func (s *DescribeTargetHealthInput) SetTargetGroupArn(v string) *DescribeTargetHealthInput { + s.TargetGroupArn = &v return s } -// SetRuleArns sets the RuleArns field's value. -func (s *DescribeRulesInput) SetRuleArns(v []*string) *DescribeRulesInput { - s.RuleArns = v +// SetTargets sets the Targets field's value. +func (s *DescribeTargetHealthInput) SetTargets(v []*TargetDescription) *DescribeTargetHealthInput { + s.Targets = v return s } -type DescribeRulesOutput struct { +type DescribeTargetHealthOutput struct { _ struct{} `type:"structure"` - // If there are additional results, this is the marker for the next set of results. - // Otherwise, this is null. - NextMarker *string `type:"string"` - - // Information about the rules. - Rules []*Rule `type:"list"` + // Information about the health of the targets. + TargetHealthDescriptions []*TargetHealthDescription `type:"list"` } // String returns the string representation. @@ -6092,7 +7970,7 @@ type DescribeRulesOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeRulesOutput) String() string { +func (s DescribeTargetHealthOutput) String() string { return awsutil.Prettify(s) } @@ -6101,38 +7979,30 @@ func (s DescribeRulesOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeRulesOutput) GoString() string { +func (s DescribeTargetHealthOutput) GoString() string { return s.String() } -// SetNextMarker sets the NextMarker field's value. -func (s *DescribeRulesOutput) SetNextMarker(v string) *DescribeRulesOutput { - s.NextMarker = &v - return s -} - -// SetRules sets the Rules field's value. -func (s *DescribeRulesOutput) SetRules(v []*Rule) *DescribeRulesOutput { - s.Rules = v +// SetTargetHealthDescriptions sets the TargetHealthDescriptions field's value. +func (s *DescribeTargetHealthOutput) SetTargetHealthDescriptions(v []*TargetHealthDescription) *DescribeTargetHealthOutput { + s.TargetHealthDescriptions = v return s } -type DescribeSSLPoliciesInput struct { +type DescribeTrustStoreAssociationsInput struct { _ struct{} `type:"structure"` - // The type of load balancer. The default lists the SSL policies for all load - // balancers. - LoadBalancerType *string `type:"string" enum:"LoadBalancerTypeEnum"` - // The marker for the next set of results. (You received this marker from a // previous call.) Marker *string `type:"string"` - // The names of the policies. - Names []*string `type:"list"` - // The maximum number of results to return with this call. PageSize *int64 `min:"1" type:"integer"` + + // The Amazon Resource Name (ARN) of the trust store. + // + // TrustStoreArn is a required field + TrustStoreArn *string `type:"string" required:"true"` } // String returns the string representation. @@ -6140,7 +8010,7 @@ type DescribeSSLPoliciesInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeSSLPoliciesInput) String() string { +func (s DescribeTrustStoreAssociationsInput) String() string { return awsutil.Prettify(s) } @@ -6149,16 +8019,19 @@ func (s DescribeSSLPoliciesInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeSSLPoliciesInput) GoString() string { +func (s DescribeTrustStoreAssociationsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeSSLPoliciesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeSSLPoliciesInput"} +func (s *DescribeTrustStoreAssociationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeTrustStoreAssociationsInput"} if s.PageSize != nil && *s.PageSize < 1 { invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) } + if s.TrustStoreArn == nil { + invalidParams.Add(request.NewErrParamRequired("TrustStoreArn")) + } if invalidParams.Len() > 0 { return invalidParams @@ -6166,39 +8039,33 @@ func (s *DescribeSSLPoliciesInput) Validate() error { return nil } -// SetLoadBalancerType sets the LoadBalancerType field's value. -func (s *DescribeSSLPoliciesInput) SetLoadBalancerType(v string) *DescribeSSLPoliciesInput { - s.LoadBalancerType = &v - return s -} - // SetMarker sets the Marker field's value. -func (s *DescribeSSLPoliciesInput) SetMarker(v string) *DescribeSSLPoliciesInput { +func (s *DescribeTrustStoreAssociationsInput) SetMarker(v string) *DescribeTrustStoreAssociationsInput { s.Marker = &v return s } -// SetNames sets the Names field's value. -func (s *DescribeSSLPoliciesInput) SetNames(v []*string) *DescribeSSLPoliciesInput { - s.Names = v +// SetPageSize sets the PageSize field's value. +func (s *DescribeTrustStoreAssociationsInput) SetPageSize(v int64) *DescribeTrustStoreAssociationsInput { + s.PageSize = &v return s } -// SetPageSize sets the PageSize field's value. -func (s *DescribeSSLPoliciesInput) SetPageSize(v int64) *DescribeSSLPoliciesInput { - s.PageSize = &v +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *DescribeTrustStoreAssociationsInput) SetTrustStoreArn(v string) *DescribeTrustStoreAssociationsInput { + s.TrustStoreArn = &v return s } -type DescribeSSLPoliciesOutput struct { +type DescribeTrustStoreAssociationsOutput struct { _ struct{} `type:"structure"` // If there are additional results, this is the marker for the next set of results. // Otherwise, this is null. NextMarker *string `type:"string"` - // Information about the security policies. - SslPolicies []*SslPolicy `type:"list"` + // Information about the resources the trust store is associated to. + TrustStoreAssociations []*TrustStoreAssociation `type:"list"` } // String returns the string representation. @@ -6206,7 +8073,7 @@ type DescribeSSLPoliciesOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeSSLPoliciesOutput) String() string { +func (s DescribeTrustStoreAssociationsOutput) String() string { return awsutil.Prettify(s) } @@ -6215,30 +8082,98 @@ func (s DescribeSSLPoliciesOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeSSLPoliciesOutput) GoString() string { +func (s DescribeTrustStoreAssociationsOutput) GoString() string { return s.String() } // SetNextMarker sets the NextMarker field's value. -func (s *DescribeSSLPoliciesOutput) SetNextMarker(v string) *DescribeSSLPoliciesOutput { +func (s *DescribeTrustStoreAssociationsOutput) SetNextMarker(v string) *DescribeTrustStoreAssociationsOutput { s.NextMarker = &v return s } -// SetSslPolicies sets the SslPolicies field's value. -func (s *DescribeSSLPoliciesOutput) SetSslPolicies(v []*SslPolicy) *DescribeSSLPoliciesOutput { - s.SslPolicies = v +// SetTrustStoreAssociations sets the TrustStoreAssociations field's value. +func (s *DescribeTrustStoreAssociationsOutput) SetTrustStoreAssociations(v []*TrustStoreAssociation) *DescribeTrustStoreAssociationsOutput { + s.TrustStoreAssociations = v return s } -type DescribeTagsInput struct { +// Information about the revocations used by a trust store. +type DescribeTrustStoreRevocation struct { _ struct{} `type:"structure"` - // The Amazon Resource Names (ARN) of the resources. You can specify up to 20 - // resources in a single call. + // The number of revoked certificates. + NumberOfRevokedEntries *int64 `type:"long"` + + // The revocation ID of a revocation file in use. + RevocationId *int64 `type:"long"` + + // The type of revocation file. + RevocationType *string `type:"string" enum:"RevocationType"` + + // The Amazon Resource Name (ARN) of the trust store. + TrustStoreArn *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeTrustStoreRevocation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeTrustStoreRevocation) GoString() string { + return s.String() +} + +// SetNumberOfRevokedEntries sets the NumberOfRevokedEntries field's value. +func (s *DescribeTrustStoreRevocation) SetNumberOfRevokedEntries(v int64) *DescribeTrustStoreRevocation { + s.NumberOfRevokedEntries = &v + return s +} + +// SetRevocationId sets the RevocationId field's value. +func (s *DescribeTrustStoreRevocation) SetRevocationId(v int64) *DescribeTrustStoreRevocation { + s.RevocationId = &v + return s +} + +// SetRevocationType sets the RevocationType field's value. +func (s *DescribeTrustStoreRevocation) SetRevocationType(v string) *DescribeTrustStoreRevocation { + s.RevocationType = &v + return s +} + +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *DescribeTrustStoreRevocation) SetTrustStoreArn(v string) *DescribeTrustStoreRevocation { + s.TrustStoreArn = &v + return s +} + +type DescribeTrustStoreRevocationsInput struct { + _ struct{} `type:"structure"` + + // The marker for the next set of results. (You received this marker from a + // previous call.) + Marker *string `type:"string"` + + // The maximum number of results to return with this call. + PageSize *int64 `min:"1" type:"integer"` + + // The revocation IDs of the revocation files you want to describe. + RevocationIds []*int64 `type:"list"` + + // The Amazon Resource Name (ARN) of the trust store. // - // ResourceArns is a required field - ResourceArns []*string `type:"list" required:"true"` + // TrustStoreArn is a required field + TrustStoreArn *string `type:"string" required:"true"` } // String returns the string representation. @@ -6246,7 +8181,7 @@ type DescribeTagsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTagsInput) String() string { +func (s DescribeTrustStoreRevocationsInput) String() string { return awsutil.Prettify(s) } @@ -6255,15 +8190,18 @@ func (s DescribeTagsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTagsInput) GoString() string { +func (s DescribeTrustStoreRevocationsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeTagsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeTagsInput"} - if s.ResourceArns == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceArns")) +func (s *DescribeTrustStoreRevocationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeTrustStoreRevocationsInput"} + if s.PageSize != nil && *s.PageSize < 1 { + invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) + } + if s.TrustStoreArn == nil { + invalidParams.Add(request.NewErrParamRequired("TrustStoreArn")) } if invalidParams.Len() > 0 { @@ -6272,17 +8210,39 @@ func (s *DescribeTagsInput) Validate() error { return nil } -// SetResourceArns sets the ResourceArns field's value. -func (s *DescribeTagsInput) SetResourceArns(v []*string) *DescribeTagsInput { - s.ResourceArns = v +// SetMarker sets the Marker field's value. +func (s *DescribeTrustStoreRevocationsInput) SetMarker(v string) *DescribeTrustStoreRevocationsInput { + s.Marker = &v return s } -type DescribeTagsOutput struct { +// SetPageSize sets the PageSize field's value. +func (s *DescribeTrustStoreRevocationsInput) SetPageSize(v int64) *DescribeTrustStoreRevocationsInput { + s.PageSize = &v + return s +} + +// SetRevocationIds sets the RevocationIds field's value. +func (s *DescribeTrustStoreRevocationsInput) SetRevocationIds(v []*int64) *DescribeTrustStoreRevocationsInput { + s.RevocationIds = v + return s +} + +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *DescribeTrustStoreRevocationsInput) SetTrustStoreArn(v string) *DescribeTrustStoreRevocationsInput { + s.TrustStoreArn = &v + return s +} + +type DescribeTrustStoreRevocationsOutput struct { _ struct{} `type:"structure"` - // Information about the tags. - TagDescriptions []*TagDescription `type:"list"` + // If there are additional results, this is the marker for the next set of results. + // Otherwise, this is null. + NextMarker *string `type:"string"` + + // Information about the revocation file in the trust store. + TrustStoreRevocations []*DescribeTrustStoreRevocation `type:"list"` } // String returns the string representation. @@ -6290,7 +8250,7 @@ type DescribeTagsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTagsOutput) String() string { +func (s DescribeTrustStoreRevocationsOutput) String() string { return awsutil.Prettify(s) } @@ -6299,23 +8259,37 @@ func (s DescribeTagsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTagsOutput) GoString() string { +func (s DescribeTrustStoreRevocationsOutput) GoString() string { return s.String() } -// SetTagDescriptions sets the TagDescriptions field's value. -func (s *DescribeTagsOutput) SetTagDescriptions(v []*TagDescription) *DescribeTagsOutput { - s.TagDescriptions = v +// SetNextMarker sets the NextMarker field's value. +func (s *DescribeTrustStoreRevocationsOutput) SetNextMarker(v string) *DescribeTrustStoreRevocationsOutput { + s.NextMarker = &v return s } -type DescribeTargetGroupAttributesInput struct { +// SetTrustStoreRevocations sets the TrustStoreRevocations field's value. +func (s *DescribeTrustStoreRevocationsOutput) SetTrustStoreRevocations(v []*DescribeTrustStoreRevocation) *DescribeTrustStoreRevocationsOutput { + s.TrustStoreRevocations = v + return s +} + +type DescribeTrustStoresInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the target group. - // - // TargetGroupArn is a required field - TargetGroupArn *string `type:"string" required:"true"` + // The marker for the next set of results. (You received this marker from a + // previous call.) + Marker *string `type:"string"` + + // The names of the trust stores. + Names []*string `type:"list"` + + // The maximum number of results to return with this call. + PageSize *int64 `min:"1" type:"integer"` + + // The Amazon Resource Name (ARN) of the trust store. + TrustStoreArns []*string `type:"list"` } // String returns the string representation. @@ -6323,7 +8297,7 @@ type DescribeTargetGroupAttributesInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetGroupAttributesInput) String() string { +func (s DescribeTrustStoresInput) String() string { return awsutil.Prettify(s) } @@ -6332,15 +8306,15 @@ func (s DescribeTargetGroupAttributesInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetGroupAttributesInput) GoString() string { +func (s DescribeTrustStoresInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeTargetGroupAttributesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeTargetGroupAttributesInput"} - if s.TargetGroupArn == nil { - invalidParams.Add(request.NewErrParamRequired("TargetGroupArn")) +func (s *DescribeTrustStoresInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeTrustStoresInput"} + if s.PageSize != nil && *s.PageSize < 1 { + invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) } if invalidParams.Len() > 0 { @@ -6349,17 +8323,39 @@ func (s *DescribeTargetGroupAttributesInput) Validate() error { return nil } -// SetTargetGroupArn sets the TargetGroupArn field's value. -func (s *DescribeTargetGroupAttributesInput) SetTargetGroupArn(v string) *DescribeTargetGroupAttributesInput { - s.TargetGroupArn = &v +// SetMarker sets the Marker field's value. +func (s *DescribeTrustStoresInput) SetMarker(v string) *DescribeTrustStoresInput { + s.Marker = &v return s } -type DescribeTargetGroupAttributesOutput struct { +// SetNames sets the Names field's value. +func (s *DescribeTrustStoresInput) SetNames(v []*string) *DescribeTrustStoresInput { + s.Names = v + return s +} + +// SetPageSize sets the PageSize field's value. +func (s *DescribeTrustStoresInput) SetPageSize(v int64) *DescribeTrustStoresInput { + s.PageSize = &v + return s +} + +// SetTrustStoreArns sets the TrustStoreArns field's value. +func (s *DescribeTrustStoresInput) SetTrustStoreArns(v []*string) *DescribeTrustStoresInput { + s.TrustStoreArns = v + return s +} + +type DescribeTrustStoresOutput struct { _ struct{} `type:"structure"` - // Information about the target group attributes - Attributes []*TargetGroupAttribute `type:"list"` + // If there are additional results, this is the marker for the next set of results. + // Otherwise, this is null. + NextMarker *string `type:"string"` + + // Information about the trust stores. + TrustStores []*TrustStore `type:"list"` } // String returns the string representation. @@ -6367,7 +8363,7 @@ type DescribeTargetGroupAttributesOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetGroupAttributesOutput) String() string { +func (s DescribeTrustStoresOutput) String() string { return awsutil.Prettify(s) } @@ -6376,34 +8372,39 @@ func (s DescribeTargetGroupAttributesOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetGroupAttributesOutput) GoString() string { +func (s DescribeTrustStoresOutput) GoString() string { return s.String() } -// SetAttributes sets the Attributes field's value. -func (s *DescribeTargetGroupAttributesOutput) SetAttributes(v []*TargetGroupAttribute) *DescribeTargetGroupAttributesOutput { - s.Attributes = v +// SetNextMarker sets the NextMarker field's value. +func (s *DescribeTrustStoresOutput) SetNextMarker(v string) *DescribeTrustStoresOutput { + s.NextMarker = &v return s } -type DescribeTargetGroupsInput struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of the load balancer. - LoadBalancerArn *string `type:"string"` +// SetTrustStores sets the TrustStores field's value. +func (s *DescribeTrustStoresOutput) SetTrustStores(v []*TrustStore) *DescribeTrustStoresOutput { + s.TrustStores = v + return s +} - // The marker for the next set of results. (You received this marker from a - // previous call.) - Marker *string `type:"string"` +// Information about an action that returns a custom HTTP response. +type FixedResponseActionConfig struct { + _ struct{} `type:"structure"` - // The names of the target groups. - Names []*string `type:"list"` + // The content type. + // + // Valid Values: text/plain | text/css | text/html | application/javascript + // | application/json + ContentType *string `type:"string"` - // The maximum number of results to return with this call. - PageSize *int64 `min:"1" type:"integer"` + // The message. + MessageBody *string `type:"string"` - // The Amazon Resource Names (ARN) of the target groups. - TargetGroupArns []*string `type:"list"` + // The HTTP response code (2XX, 4XX, or 5XX). + // + // StatusCode is a required field + StatusCode *string `type:"string" required:"true"` } // String returns the string representation. @@ -6411,7 +8412,7 @@ type DescribeTargetGroupsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetGroupsInput) String() string { +func (s FixedResponseActionConfig) String() string { return awsutil.Prettify(s) } @@ -6420,62 +8421,51 @@ func (s DescribeTargetGroupsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetGroupsInput) GoString() string { +func (s FixedResponseActionConfig) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeTargetGroupsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeTargetGroupsInput"} - if s.PageSize != nil && *s.PageSize < 1 { - invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetLoadBalancerArn sets the LoadBalancerArn field's value. -func (s *DescribeTargetGroupsInput) SetLoadBalancerArn(v string) *DescribeTargetGroupsInput { - s.LoadBalancerArn = &v - return s -} - -// SetMarker sets the Marker field's value. -func (s *DescribeTargetGroupsInput) SetMarker(v string) *DescribeTargetGroupsInput { - s.Marker = &v - return s +func (s *FixedResponseActionConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "FixedResponseActionConfig"} + if s.StatusCode == nil { + invalidParams.Add(request.NewErrParamRequired("StatusCode")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetNames sets the Names field's value. -func (s *DescribeTargetGroupsInput) SetNames(v []*string) *DescribeTargetGroupsInput { - s.Names = v +// SetContentType sets the ContentType field's value. +func (s *FixedResponseActionConfig) SetContentType(v string) *FixedResponseActionConfig { + s.ContentType = &v return s } -// SetPageSize sets the PageSize field's value. -func (s *DescribeTargetGroupsInput) SetPageSize(v int64) *DescribeTargetGroupsInput { - s.PageSize = &v +// SetMessageBody sets the MessageBody field's value. +func (s *FixedResponseActionConfig) SetMessageBody(v string) *FixedResponseActionConfig { + s.MessageBody = &v return s } -// SetTargetGroupArns sets the TargetGroupArns field's value. -func (s *DescribeTargetGroupsInput) SetTargetGroupArns(v []*string) *DescribeTargetGroupsInput { - s.TargetGroupArns = v +// SetStatusCode sets the StatusCode field's value. +func (s *FixedResponseActionConfig) SetStatusCode(v string) *FixedResponseActionConfig { + s.StatusCode = &v return s } -type DescribeTargetGroupsOutput struct { +// Information about a forward action. +type ForwardActionConfig struct { _ struct{} `type:"structure"` - // If there are additional results, this is the marker for the next set of results. - // Otherwise, this is null. - NextMarker *string `type:"string"` + // The target group stickiness for the rule. + TargetGroupStickinessConfig *TargetGroupStickinessConfig `type:"structure"` - // Information about the target groups. - TargetGroups []*TargetGroup `type:"list"` + // The target groups. For Network Load Balancers, you can specify a single target + // group. + TargetGroups []*TargetGroupTuple `type:"list"` } // String returns the string representation. @@ -6483,7 +8473,7 @@ type DescribeTargetGroupsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetGroupsOutput) String() string { +func (s ForwardActionConfig) String() string { return awsutil.Prettify(s) } @@ -6492,32 +8482,29 @@ func (s DescribeTargetGroupsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetGroupsOutput) GoString() string { +func (s ForwardActionConfig) GoString() string { return s.String() } -// SetNextMarker sets the NextMarker field's value. -func (s *DescribeTargetGroupsOutput) SetNextMarker(v string) *DescribeTargetGroupsOutput { - s.NextMarker = &v +// SetTargetGroupStickinessConfig sets the TargetGroupStickinessConfig field's value. +func (s *ForwardActionConfig) SetTargetGroupStickinessConfig(v *TargetGroupStickinessConfig) *ForwardActionConfig { + s.TargetGroupStickinessConfig = v return s } // SetTargetGroups sets the TargetGroups field's value. -func (s *DescribeTargetGroupsOutput) SetTargetGroups(v []*TargetGroup) *DescribeTargetGroupsOutput { +func (s *ForwardActionConfig) SetTargetGroups(v []*TargetGroupTuple) *ForwardActionConfig { s.TargetGroups = v return s } -type DescribeTargetHealthInput struct { +type GetTrustStoreCaCertificatesBundleInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the target group. + // The Amazon Resource Name (ARN) of the trust store. // - // TargetGroupArn is a required field - TargetGroupArn *string `type:"string" required:"true"` - - // The targets. - Targets []*TargetDescription `type:"list"` + // TrustStoreArn is a required field + TrustStoreArn *string `type:"string" required:"true"` } // String returns the string representation. @@ -6525,7 +8512,7 @@ type DescribeTargetHealthInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetHealthInput) String() string { +func (s GetTrustStoreCaCertificatesBundleInput) String() string { return awsutil.Prettify(s) } @@ -6534,25 +8521,15 @@ func (s DescribeTargetHealthInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetHealthInput) GoString() string { +func (s GetTrustStoreCaCertificatesBundleInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeTargetHealthInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeTargetHealthInput"} - if s.TargetGroupArn == nil { - invalidParams.Add(request.NewErrParamRequired("TargetGroupArn")) - } - 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)) - } - } +func (s *GetTrustStoreCaCertificatesBundleInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetTrustStoreCaCertificatesBundleInput"} + if s.TrustStoreArn == nil { + invalidParams.Add(request.NewErrParamRequired("TrustStoreArn")) } if invalidParams.Len() > 0 { @@ -6561,23 +8538,17 @@ func (s *DescribeTargetHealthInput) Validate() error { return nil } -// SetTargetGroupArn sets the TargetGroupArn field's value. -func (s *DescribeTargetHealthInput) SetTargetGroupArn(v string) *DescribeTargetHealthInput { - s.TargetGroupArn = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *DescribeTargetHealthInput) SetTargets(v []*TargetDescription) *DescribeTargetHealthInput { - s.Targets = v +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *GetTrustStoreCaCertificatesBundleInput) SetTrustStoreArn(v string) *GetTrustStoreCaCertificatesBundleInput { + s.TrustStoreArn = &v return s } -type DescribeTargetHealthOutput struct { +type GetTrustStoreCaCertificatesBundleOutput struct { _ struct{} `type:"structure"` - // Information about the health of the targets. - TargetHealthDescriptions []*TargetHealthDescription `type:"list"` + // The ca certificate bundles Amazon S3 URI. + Location *string `type:"string"` } // String returns the string representation. @@ -6585,7 +8556,7 @@ type DescribeTargetHealthOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetHealthOutput) String() string { +func (s GetTrustStoreCaCertificatesBundleOutput) String() string { return awsutil.Prettify(s) } @@ -6594,33 +8565,28 @@ func (s DescribeTargetHealthOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeTargetHealthOutput) GoString() string { +func (s GetTrustStoreCaCertificatesBundleOutput) GoString() string { return s.String() } -// SetTargetHealthDescriptions sets the TargetHealthDescriptions field's value. -func (s *DescribeTargetHealthOutput) SetTargetHealthDescriptions(v []*TargetHealthDescription) *DescribeTargetHealthOutput { - s.TargetHealthDescriptions = v +// SetLocation sets the Location field's value. +func (s *GetTrustStoreCaCertificatesBundleOutput) SetLocation(v string) *GetTrustStoreCaCertificatesBundleOutput { + s.Location = &v return s } -// Information about an action that returns a custom HTTP response. -type FixedResponseActionConfig struct { +type GetTrustStoreRevocationContentInput struct { _ struct{} `type:"structure"` - // The content type. + // The revocation ID of the revocation file. // - // Valid Values: text/plain | text/css | text/html | application/javascript - // | application/json - ContentType *string `type:"string"` + // RevocationId is a required field + RevocationId *int64 `type:"long" required:"true"` - // The message. - MessageBody *string `type:"string"` - - // The HTTP response code (2XX, 4XX, or 5XX). + // The Amazon Resource Name (ARN) of the trust store. // - // StatusCode is a required field - StatusCode *string `type:"string" required:"true"` + // TrustStoreArn is a required field + TrustStoreArn *string `type:"string" required:"true"` } // String returns the string representation. @@ -6628,7 +8594,7 @@ type FixedResponseActionConfig struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s FixedResponseActionConfig) String() string { +func (s GetTrustStoreRevocationContentInput) String() string { return awsutil.Prettify(s) } @@ -6637,15 +8603,18 @@ func (s FixedResponseActionConfig) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s FixedResponseActionConfig) GoString() string { +func (s GetTrustStoreRevocationContentInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *FixedResponseActionConfig) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "FixedResponseActionConfig"} - if s.StatusCode == nil { - invalidParams.Add(request.NewErrParamRequired("StatusCode")) +func (s *GetTrustStoreRevocationContentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetTrustStoreRevocationContentInput"} + if s.RevocationId == nil { + invalidParams.Add(request.NewErrParamRequired("RevocationId")) + } + if s.TrustStoreArn == nil { + invalidParams.Add(request.NewErrParamRequired("TrustStoreArn")) } if invalidParams.Len() > 0 { @@ -6654,34 +8623,23 @@ func (s *FixedResponseActionConfig) Validate() error { return nil } -// SetContentType sets the ContentType field's value. -func (s *FixedResponseActionConfig) SetContentType(v string) *FixedResponseActionConfig { - s.ContentType = &v - return s -} - -// SetMessageBody sets the MessageBody field's value. -func (s *FixedResponseActionConfig) SetMessageBody(v string) *FixedResponseActionConfig { - s.MessageBody = &v +// SetRevocationId sets the RevocationId field's value. +func (s *GetTrustStoreRevocationContentInput) SetRevocationId(v int64) *GetTrustStoreRevocationContentInput { + s.RevocationId = &v return s } -// SetStatusCode sets the StatusCode field's value. -func (s *FixedResponseActionConfig) SetStatusCode(v string) *FixedResponseActionConfig { - s.StatusCode = &v +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *GetTrustStoreRevocationContentInput) SetTrustStoreArn(v string) *GetTrustStoreRevocationContentInput { + s.TrustStoreArn = &v return s } -// Information about a forward action. -type ForwardActionConfig struct { +type GetTrustStoreRevocationContentOutput struct { _ struct{} `type:"structure"` - // The target group stickiness for the rule. - TargetGroupStickinessConfig *TargetGroupStickinessConfig `type:"structure"` - - // The target groups. For Network Load Balancers, you can specify a single target - // group. - TargetGroups []*TargetGroupTuple `type:"list"` + // The revocation files Amazon S3 URI. + Location *string `type:"string"` } // String returns the string representation. @@ -6689,7 +8647,7 @@ type ForwardActionConfig struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ForwardActionConfig) String() string { +func (s GetTrustStoreRevocationContentOutput) String() string { return awsutil.Prettify(s) } @@ -6698,19 +8656,13 @@ func (s ForwardActionConfig) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ForwardActionConfig) GoString() string { +func (s GetTrustStoreRevocationContentOutput) GoString() string { return s.String() } -// SetTargetGroupStickinessConfig sets the TargetGroupStickinessConfig field's value. -func (s *ForwardActionConfig) SetTargetGroupStickinessConfig(v *TargetGroupStickinessConfig) *ForwardActionConfig { - s.TargetGroupStickinessConfig = v - return s -} - -// SetTargetGroups sets the TargetGroups field's value. -func (s *ForwardActionConfig) SetTargetGroups(v []*TargetGroupTuple) *ForwardActionConfig { - s.TargetGroups = v +// SetLocation sets the Location field's value. +func (s *GetTrustStoreRevocationContentOutput) SetLocation(v string) *GetTrustStoreRevocationContentOutput { + s.Location = &v return s } @@ -6960,6 +8912,9 @@ type Listener struct { // The Amazon Resource Name (ARN) of the load balancer. LoadBalancerArn *string `type:"string"` + // The mutual authentication configuration information. + MutualAuthentication *MutualAuthenticationAttributes `type:"structure"` + // The port on which the load balancer is listening. Port *int64 `min:"1" type:"integer"` @@ -7019,6 +8974,12 @@ func (s *Listener) SetLoadBalancerArn(v string) *Listener { return s } +// SetMutualAuthentication sets the MutualAuthentication field's value. +func (s *Listener) SetMutualAuthentication(v *MutualAuthenticationAttributes) *Listener { + s.MutualAuthentication = v + return s +} + // SetPort sets the Port field's value. func (s *Listener) SetPort(v int64) *Listener { s.Port = &v @@ -7298,6 +9259,17 @@ type LoadBalancerAttribute struct { // * idle_timeout.timeout_seconds - The idle timeout value, in seconds. The // valid range is 1-4000 seconds. The default is 60 seconds. // + // * connection_logs.s3.enabled - Indicates whether connection logs are enabled. + // The value is true or false. The default is false. + // + // * connection_logs.s3.bucket - The name of the S3 bucket for the connection + // logs. This attribute is required if connection logs are enabled. The bucket + // must exist in the same region as the load balancer and have a bucket policy + // that grants Elastic Load Balancing permissions to write to the bucket. + // + // * connection_logs.s3.prefix - The prefix for the location in the S3 bucket + // for the connection logs. + // // * routing.http.desync_mitigation_mode - Determines how the load balancer // handles requests that might pose a security risk to your application. // The possible values are monitor, defensive, and strictest. The default @@ -7526,6 +9498,9 @@ type ModifyListenerInput struct { // ListenerArn is a required field ListenerArn *string `type:"string" required:"true"` + // The mutual authentication configuration information. + MutualAuthentication *MutualAuthenticationAttributes `type:"structure"` + // The port for connections from clients to the load balancer. You cannot specify // a port for a Gateway Load Balancer. Port *int64 `min:"1" type:"integer"` @@ -7614,6 +9589,12 @@ func (s *ModifyListenerInput) SetListenerArn(v string) *ModifyListenerInput { return s } +// SetMutualAuthentication sets the MutualAuthentication field's value. +func (s *ModifyListenerInput) SetMutualAuthentication(v *MutualAuthenticationAttributes) *ModifyListenerInput { + s.MutualAuthentication = v + return s +} + // SetPort sets the Port field's value. func (s *ModifyListenerInput) SetPort(v int64) *ModifyListenerInput { s.Port = &v @@ -8114,8 +10095,162 @@ func (s *ModifyTargetGroupInput) SetUnhealthyThresholdCount(v int64) *ModifyTarg type ModifyTargetGroupOutput struct { _ struct{} `type:"structure"` - // Information about the modified target group. - TargetGroups []*TargetGroup `type:"list"` + // Information about the modified target group. + TargetGroups []*TargetGroup `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ModifyTargetGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ModifyTargetGroupOutput) GoString() string { + return s.String() +} + +// SetTargetGroups sets the TargetGroups field's value. +func (s *ModifyTargetGroupOutput) SetTargetGroups(v []*TargetGroup) *ModifyTargetGroupOutput { + s.TargetGroups = v + return s +} + +type ModifyTrustStoreInput struct { + _ struct{} `type:"structure"` + + // The Amazon S3 bucket for the ca certificates bundle. + // + // CaCertificatesBundleS3Bucket is a required field + CaCertificatesBundleS3Bucket *string `type:"string" required:"true"` + + // The Amazon S3 path for the ca certificates bundle. + // + // CaCertificatesBundleS3Key is a required field + CaCertificatesBundleS3Key *string `type:"string" required:"true"` + + // The Amazon S3 object version for the ca certificates bundle. If undefined + // the current version is used. + CaCertificatesBundleS3ObjectVersion *string `type:"string"` + + // The Amazon Resource Name (ARN) of the trust store. + // + // TrustStoreArn is a required field + TrustStoreArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ModifyTrustStoreInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ModifyTrustStoreInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ModifyTrustStoreInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ModifyTrustStoreInput"} + if s.CaCertificatesBundleS3Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("CaCertificatesBundleS3Bucket")) + } + if s.CaCertificatesBundleS3Key == nil { + invalidParams.Add(request.NewErrParamRequired("CaCertificatesBundleS3Key")) + } + if s.TrustStoreArn == nil { + invalidParams.Add(request.NewErrParamRequired("TrustStoreArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCaCertificatesBundleS3Bucket sets the CaCertificatesBundleS3Bucket field's value. +func (s *ModifyTrustStoreInput) SetCaCertificatesBundleS3Bucket(v string) *ModifyTrustStoreInput { + s.CaCertificatesBundleS3Bucket = &v + return s +} + +// SetCaCertificatesBundleS3Key sets the CaCertificatesBundleS3Key field's value. +func (s *ModifyTrustStoreInput) SetCaCertificatesBundleS3Key(v string) *ModifyTrustStoreInput { + s.CaCertificatesBundleS3Key = &v + return s +} + +// SetCaCertificatesBundleS3ObjectVersion sets the CaCertificatesBundleS3ObjectVersion field's value. +func (s *ModifyTrustStoreInput) SetCaCertificatesBundleS3ObjectVersion(v string) *ModifyTrustStoreInput { + s.CaCertificatesBundleS3ObjectVersion = &v + return s +} + +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *ModifyTrustStoreInput) SetTrustStoreArn(v string) *ModifyTrustStoreInput { + s.TrustStoreArn = &v + return s +} + +type ModifyTrustStoreOutput struct { + _ struct{} `type:"structure"` + + // Information about the modified trust store. + TrustStores []*TrustStore `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ModifyTrustStoreOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ModifyTrustStoreOutput) GoString() string { + return s.String() +} + +// SetTrustStores sets the TrustStores field's value. +func (s *ModifyTrustStoreOutput) SetTrustStores(v []*TrustStore) *ModifyTrustStoreOutput { + s.TrustStores = v + return s +} + +// Information about the mutual authentication attributes of a listener. +type MutualAuthenticationAttributes struct { + _ struct{} `type:"structure"` + + // Indicates whether expired client certificates are ignored. + IgnoreClientCertificateExpiry *bool `type:"boolean"` + + // The client certificate handling method. Options are off, passthrough or verify. + // The default value is off. + Mode *string `type:"string"` + + // The Amazon Resource Name (ARN) of the trust store. + TrustStoreArn *string `type:"string"` } // String returns the string representation. @@ -8123,7 +10258,7 @@ type ModifyTargetGroupOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ModifyTargetGroupOutput) String() string { +func (s MutualAuthenticationAttributes) String() string { return awsutil.Prettify(s) } @@ -8132,13 +10267,25 @@ func (s ModifyTargetGroupOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ModifyTargetGroupOutput) GoString() string { +func (s MutualAuthenticationAttributes) GoString() string { return s.String() } -// SetTargetGroups sets the TargetGroups field's value. -func (s *ModifyTargetGroupOutput) SetTargetGroups(v []*TargetGroup) *ModifyTargetGroupOutput { - s.TargetGroups = v +// SetIgnoreClientCertificateExpiry sets the IgnoreClientCertificateExpiry field's value. +func (s *MutualAuthenticationAttributes) SetIgnoreClientCertificateExpiry(v bool) *MutualAuthenticationAttributes { + s.IgnoreClientCertificateExpiry = &v + return s +} + +// SetMode sets the Mode field's value. +func (s *MutualAuthenticationAttributes) SetMode(v string) *MutualAuthenticationAttributes { + s.Mode = &v + return s +} + +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *MutualAuthenticationAttributes) SetTrustStoreArn(v string) *MutualAuthenticationAttributes { + s.TrustStoreArn = &v return s } @@ -8650,6 +10797,147 @@ func (s RemoveTagsOutput) GoString() string { return s.String() } +type RemoveTrustStoreRevocationsInput struct { + _ struct{} `type:"structure"` + + // The revocation IDs of the revocation files you want to remove. + // + // RevocationIds is a required field + RevocationIds []*int64 `type:"list" required:"true"` + + // The Amazon Resource Name (ARN) of the trust store. + // + // TrustStoreArn is a required field + TrustStoreArn *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RemoveTrustStoreRevocationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RemoveTrustStoreRevocationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RemoveTrustStoreRevocationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RemoveTrustStoreRevocationsInput"} + if s.RevocationIds == nil { + invalidParams.Add(request.NewErrParamRequired("RevocationIds")) + } + if s.TrustStoreArn == nil { + invalidParams.Add(request.NewErrParamRequired("TrustStoreArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRevocationIds sets the RevocationIds field's value. +func (s *RemoveTrustStoreRevocationsInput) SetRevocationIds(v []*int64) *RemoveTrustStoreRevocationsInput { + s.RevocationIds = v + return s +} + +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *RemoveTrustStoreRevocationsInput) SetTrustStoreArn(v string) *RemoveTrustStoreRevocationsInput { + s.TrustStoreArn = &v + return s +} + +type RemoveTrustStoreRevocationsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RemoveTrustStoreRevocationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RemoveTrustStoreRevocationsOutput) GoString() string { + return s.String() +} + +// Information about a revocation file. +type RevocationContent struct { + _ struct{} `type:"structure"` + + // The type of revocation file. + RevocationType *string `type:"string" enum:"RevocationType"` + + // The Amazon S3 bucket for the revocation file. + S3Bucket *string `type:"string"` + + // The Amazon S3 path for the revocation file. + S3Key *string `type:"string"` + + // The Amazon S3 object version of the revocation file. + S3ObjectVersion *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RevocationContent) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RevocationContent) GoString() string { + return s.String() +} + +// SetRevocationType sets the RevocationType field's value. +func (s *RevocationContent) SetRevocationType(v string) *RevocationContent { + s.RevocationType = &v + return s +} + +// SetS3Bucket sets the S3Bucket field's value. +func (s *RevocationContent) SetS3Bucket(v string) *RevocationContent { + s.S3Bucket = &v + return s +} + +// SetS3Key sets the S3Key field's value. +func (s *RevocationContent) SetS3Key(v string) *RevocationContent { + s.S3Key = &v + return s +} + +// SetS3ObjectVersion sets the S3ObjectVersion field's value. +func (s *RevocationContent) SetS3ObjectVersion(v string) *RevocationContent { + s.S3ObjectVersion = &v + return s +} + // Information about a rule. type Rule struct { _ struct{} `type:"structure"` @@ -9986,7 +12274,12 @@ type TargetGroupAttribute struct { // // * load_balancing.algorithm.type - The load balancing algorithm determines // how the load balancer selects targets when routing requests. The value - // is round_robin or least_outstanding_requests. The default is round_robin. + // is round_robin, least_outstanding_requests, or weighted_random. The default + // is round_robin. + // + // * load_balancing.algorithm.anomaly_mitigation - Only available when load_balancing.algorithm.type + // is weighted_random. Indicates whether anomaly mitigation is enabled. The + // value is on or off. The default is off. // // * slow_start.duration_seconds - The time period, in seconds, during which // a newly registered target receives an increasing share of the traffic @@ -10287,6 +12580,13 @@ func (s *TargetHealth) SetState(v string) *TargetHealth { type TargetHealthDescription struct { _ struct{} `type:"structure"` + // The anomaly detection result for the target. + // + // If no anomalies were detected, the result is normal. + // + // If anomalies were detected, the result is anomalous. + AnomalyDetection *AnomalyDetection `type:"structure"` + // The port to use to connect with the target. HealthCheckPort *string `type:"string"` @@ -10315,6 +12615,12 @@ func (s TargetHealthDescription) GoString() string { return s.String() } +// SetAnomalyDetection sets the AnomalyDetection field's value. +func (s *TargetHealthDescription) SetAnomalyDetection(v *AnomalyDetection) *TargetHealthDescription { + s.AnomalyDetection = v + return s +} + // SetHealthCheckPort sets the HealthCheckPort field's value. func (s *TargetHealthDescription) SetHealthCheckPort(v string) *TargetHealthDescription { s.HealthCheckPort = &v @@ -10333,6 +12639,165 @@ func (s *TargetHealthDescription) SetTargetHealth(v *TargetHealth) *TargetHealth return s } +// Information about a trust store. +type TrustStore struct { + _ struct{} `type:"structure"` + + // The name of the trust store. + Name *string `min:"1" type:"string"` + + // The number of ca certificates in the trust store. + NumberOfCaCertificates *int64 `type:"integer"` + + // The current status of the trust store. + Status *string `type:"string" enum:"TrustStoreStatus"` + + // The number of revoked certificates in the trust store. + TotalRevokedEntries *int64 `type:"long"` + + // The Amazon Resource Name (ARN) of the trust store. + TrustStoreArn *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TrustStore) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TrustStore) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *TrustStore) SetName(v string) *TrustStore { + s.Name = &v + return s +} + +// SetNumberOfCaCertificates sets the NumberOfCaCertificates field's value. +func (s *TrustStore) SetNumberOfCaCertificates(v int64) *TrustStore { + s.NumberOfCaCertificates = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *TrustStore) SetStatus(v string) *TrustStore { + s.Status = &v + return s +} + +// SetTotalRevokedEntries sets the TotalRevokedEntries field's value. +func (s *TrustStore) SetTotalRevokedEntries(v int64) *TrustStore { + s.TotalRevokedEntries = &v + return s +} + +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *TrustStore) SetTrustStoreArn(v string) *TrustStore { + s.TrustStoreArn = &v + return s +} + +// Information about the resources a trust store is associated with. +type TrustStoreAssociation struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + ResourceArn *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TrustStoreAssociation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TrustStoreAssociation) GoString() string { + return s.String() +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *TrustStoreAssociation) SetResourceArn(v string) *TrustStoreAssociation { + s.ResourceArn = &v + return s +} + +// Information about a revocation file in use by a trust store. +type TrustStoreRevocation struct { + _ struct{} `type:"structure"` + + // The number of revoked certificates. + NumberOfRevokedEntries *int64 `type:"long"` + + // The revocation ID of the revocation file. + RevocationId *int64 `type:"long"` + + // The type of revocation file. + RevocationType *string `type:"string" enum:"RevocationType"` + + // The Amazon Resource Name (ARN) of the trust store. + TrustStoreArn *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TrustStoreRevocation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TrustStoreRevocation) GoString() string { + return s.String() +} + +// SetNumberOfRevokedEntries sets the NumberOfRevokedEntries field's value. +func (s *TrustStoreRevocation) SetNumberOfRevokedEntries(v int64) *TrustStoreRevocation { + s.NumberOfRevokedEntries = &v + return s +} + +// SetRevocationId sets the RevocationId field's value. +func (s *TrustStoreRevocation) SetRevocationId(v int64) *TrustStoreRevocation { + s.RevocationId = &v + return s +} + +// SetRevocationType sets the RevocationType field's value. +func (s *TrustStoreRevocation) SetRevocationType(v string) *TrustStoreRevocation { + s.RevocationType = &v + return s +} + +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *TrustStoreRevocation) SetTrustStoreArn(v string) *TrustStoreRevocation { + s.TrustStoreArn = &v + return s +} + const ( // ActionTypeEnumForward is a ActionTypeEnum enum value ActionTypeEnumForward = "forward" @@ -10361,6 +12826,22 @@ func ActionTypeEnum_Values() []string { } } +const ( + // AnomalyResultEnumAnomalous is a AnomalyResultEnum enum value + AnomalyResultEnumAnomalous = "anomalous" + + // AnomalyResultEnumNormal is a AnomalyResultEnum enum value + AnomalyResultEnumNormal = "normal" +) + +// AnomalyResultEnum_Values returns all elements of the AnomalyResultEnum enum +func AnomalyResultEnum_Values() []string { + return []string{ + AnomalyResultEnumAnomalous, + AnomalyResultEnumNormal, + } +} + const ( // AuthenticateCognitoActionConditionalBehaviorEnumDeny is a AuthenticateCognitoActionConditionalBehaviorEnum enum value AuthenticateCognitoActionConditionalBehaviorEnumDeny = "deny" @@ -10401,6 +12882,22 @@ func AuthenticateOidcActionConditionalBehaviorEnum_Values() []string { } } +const ( + // DescribeTargetHealthInputIncludeEnumAnomalyDetection is a DescribeTargetHealthInputIncludeEnum enum value + DescribeTargetHealthInputIncludeEnumAnomalyDetection = "AnomalyDetection" + + // DescribeTargetHealthInputIncludeEnumAll is a DescribeTargetHealthInputIncludeEnum enum value + DescribeTargetHealthInputIncludeEnumAll = "All" +) + +// DescribeTargetHealthInputIncludeEnum_Values returns all elements of the DescribeTargetHealthInputIncludeEnum enum +func DescribeTargetHealthInputIncludeEnum_Values() []string { + return []string{ + DescribeTargetHealthInputIncludeEnumAnomalyDetection, + DescribeTargetHealthInputIncludeEnumAll, + } +} + const ( // EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnumOn is a EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum enum value EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnumOn = "on" @@ -10493,6 +12990,22 @@ func LoadBalancerTypeEnum_Values() []string { } } +const ( + // MitigationInEffectEnumYes is a MitigationInEffectEnum enum value + MitigationInEffectEnumYes = "yes" + + // MitigationInEffectEnumNo is a MitigationInEffectEnum enum value + MitigationInEffectEnumNo = "no" +) + +// MitigationInEffectEnum_Values returns all elements of the MitigationInEffectEnum enum +func MitigationInEffectEnum_Values() []string { + return []string{ + MitigationInEffectEnumYes, + MitigationInEffectEnumNo, + } +} + const ( // ProtocolEnumHttp is a ProtocolEnum enum value ProtocolEnumHttp = "HTTP" @@ -10545,6 +13058,18 @@ func RedirectActionStatusCodeEnum_Values() []string { } } +const ( + // RevocationTypeCrl is a RevocationType enum value + RevocationTypeCrl = "CRL" +) + +// RevocationType_Values returns all elements of the RevocationType enum +func RevocationType_Values() []string { + return []string{ + RevocationTypeCrl, + } +} + const ( // TargetGroupIpAddressTypeEnumIpv4 is a TargetGroupIpAddressTypeEnum enum value TargetGroupIpAddressTypeEnumIpv4 = "ipv4" @@ -10672,3 +13197,19 @@ func TargetTypeEnum_Values() []string { TargetTypeEnumAlb, } } + +const ( + // TrustStoreStatusActive is a TrustStoreStatus enum value + TrustStoreStatusActive = "ACTIVE" + + // TrustStoreStatusCreating is a TrustStoreStatus enum value + TrustStoreStatusCreating = "CREATING" +) + +// TrustStoreStatus_Values returns all elements of the TrustStoreStatus enum +func TrustStoreStatus_Values() []string { + return []string{ + TrustStoreStatusActive, + TrustStoreStatusCreating, + } +} diff --git a/service/elbv2/elbv2iface/interface.go b/service/elbv2/elbv2iface/interface.go index a80cdb1f530..90aefdc62b8 100644 --- a/service/elbv2/elbv2iface/interface.go +++ b/service/elbv2/elbv2iface/interface.go @@ -68,6 +68,10 @@ type ELBV2API interface { AddTagsWithContext(aws.Context, *elbv2.AddTagsInput, ...request.Option) (*elbv2.AddTagsOutput, error) AddTagsRequest(*elbv2.AddTagsInput) (*request.Request, *elbv2.AddTagsOutput) + AddTrustStoreRevocations(*elbv2.AddTrustStoreRevocationsInput) (*elbv2.AddTrustStoreRevocationsOutput, error) + AddTrustStoreRevocationsWithContext(aws.Context, *elbv2.AddTrustStoreRevocationsInput, ...request.Option) (*elbv2.AddTrustStoreRevocationsOutput, error) + AddTrustStoreRevocationsRequest(*elbv2.AddTrustStoreRevocationsInput) (*request.Request, *elbv2.AddTrustStoreRevocationsOutput) + CreateListener(*elbv2.CreateListenerInput) (*elbv2.CreateListenerOutput, error) CreateListenerWithContext(aws.Context, *elbv2.CreateListenerInput, ...request.Option) (*elbv2.CreateListenerOutput, error) CreateListenerRequest(*elbv2.CreateListenerInput) (*request.Request, *elbv2.CreateListenerOutput) @@ -84,6 +88,10 @@ type ELBV2API interface { CreateTargetGroupWithContext(aws.Context, *elbv2.CreateTargetGroupInput, ...request.Option) (*elbv2.CreateTargetGroupOutput, error) CreateTargetGroupRequest(*elbv2.CreateTargetGroupInput) (*request.Request, *elbv2.CreateTargetGroupOutput) + CreateTrustStore(*elbv2.CreateTrustStoreInput) (*elbv2.CreateTrustStoreOutput, error) + CreateTrustStoreWithContext(aws.Context, *elbv2.CreateTrustStoreInput, ...request.Option) (*elbv2.CreateTrustStoreOutput, error) + CreateTrustStoreRequest(*elbv2.CreateTrustStoreInput) (*request.Request, *elbv2.CreateTrustStoreOutput) + DeleteListener(*elbv2.DeleteListenerInput) (*elbv2.DeleteListenerOutput, error) DeleteListenerWithContext(aws.Context, *elbv2.DeleteListenerInput, ...request.Option) (*elbv2.DeleteListenerOutput, error) DeleteListenerRequest(*elbv2.DeleteListenerInput) (*request.Request, *elbv2.DeleteListenerOutput) @@ -100,6 +108,10 @@ type ELBV2API interface { DeleteTargetGroupWithContext(aws.Context, *elbv2.DeleteTargetGroupInput, ...request.Option) (*elbv2.DeleteTargetGroupOutput, error) DeleteTargetGroupRequest(*elbv2.DeleteTargetGroupInput) (*request.Request, *elbv2.DeleteTargetGroupOutput) + DeleteTrustStore(*elbv2.DeleteTrustStoreInput) (*elbv2.DeleteTrustStoreOutput, error) + DeleteTrustStoreWithContext(aws.Context, *elbv2.DeleteTrustStoreInput, ...request.Option) (*elbv2.DeleteTrustStoreOutput, error) + DeleteTrustStoreRequest(*elbv2.DeleteTrustStoreInput) (*request.Request, *elbv2.DeleteTrustStoreOutput) + DeregisterTargets(*elbv2.DeregisterTargetsInput) (*elbv2.DeregisterTargetsOutput, error) DeregisterTargetsWithContext(aws.Context, *elbv2.DeregisterTargetsInput, ...request.Option) (*elbv2.DeregisterTargetsOutput, error) DeregisterTargetsRequest(*elbv2.DeregisterTargetsInput) (*request.Request, *elbv2.DeregisterTargetsOutput) @@ -157,6 +169,35 @@ type ELBV2API interface { DescribeTargetHealthWithContext(aws.Context, *elbv2.DescribeTargetHealthInput, ...request.Option) (*elbv2.DescribeTargetHealthOutput, error) DescribeTargetHealthRequest(*elbv2.DescribeTargetHealthInput) (*request.Request, *elbv2.DescribeTargetHealthOutput) + DescribeTrustStoreAssociations(*elbv2.DescribeTrustStoreAssociationsInput) (*elbv2.DescribeTrustStoreAssociationsOutput, error) + DescribeTrustStoreAssociationsWithContext(aws.Context, *elbv2.DescribeTrustStoreAssociationsInput, ...request.Option) (*elbv2.DescribeTrustStoreAssociationsOutput, error) + DescribeTrustStoreAssociationsRequest(*elbv2.DescribeTrustStoreAssociationsInput) (*request.Request, *elbv2.DescribeTrustStoreAssociationsOutput) + + DescribeTrustStoreAssociationsPages(*elbv2.DescribeTrustStoreAssociationsInput, func(*elbv2.DescribeTrustStoreAssociationsOutput, bool) bool) error + DescribeTrustStoreAssociationsPagesWithContext(aws.Context, *elbv2.DescribeTrustStoreAssociationsInput, func(*elbv2.DescribeTrustStoreAssociationsOutput, bool) bool, ...request.Option) error + + DescribeTrustStoreRevocations(*elbv2.DescribeTrustStoreRevocationsInput) (*elbv2.DescribeTrustStoreRevocationsOutput, error) + DescribeTrustStoreRevocationsWithContext(aws.Context, *elbv2.DescribeTrustStoreRevocationsInput, ...request.Option) (*elbv2.DescribeTrustStoreRevocationsOutput, error) + DescribeTrustStoreRevocationsRequest(*elbv2.DescribeTrustStoreRevocationsInput) (*request.Request, *elbv2.DescribeTrustStoreRevocationsOutput) + + DescribeTrustStoreRevocationsPages(*elbv2.DescribeTrustStoreRevocationsInput, func(*elbv2.DescribeTrustStoreRevocationsOutput, bool) bool) error + DescribeTrustStoreRevocationsPagesWithContext(aws.Context, *elbv2.DescribeTrustStoreRevocationsInput, func(*elbv2.DescribeTrustStoreRevocationsOutput, bool) bool, ...request.Option) error + + DescribeTrustStores(*elbv2.DescribeTrustStoresInput) (*elbv2.DescribeTrustStoresOutput, error) + DescribeTrustStoresWithContext(aws.Context, *elbv2.DescribeTrustStoresInput, ...request.Option) (*elbv2.DescribeTrustStoresOutput, error) + DescribeTrustStoresRequest(*elbv2.DescribeTrustStoresInput) (*request.Request, *elbv2.DescribeTrustStoresOutput) + + DescribeTrustStoresPages(*elbv2.DescribeTrustStoresInput, func(*elbv2.DescribeTrustStoresOutput, bool) bool) error + DescribeTrustStoresPagesWithContext(aws.Context, *elbv2.DescribeTrustStoresInput, func(*elbv2.DescribeTrustStoresOutput, bool) bool, ...request.Option) error + + GetTrustStoreCaCertificatesBundle(*elbv2.GetTrustStoreCaCertificatesBundleInput) (*elbv2.GetTrustStoreCaCertificatesBundleOutput, error) + GetTrustStoreCaCertificatesBundleWithContext(aws.Context, *elbv2.GetTrustStoreCaCertificatesBundleInput, ...request.Option) (*elbv2.GetTrustStoreCaCertificatesBundleOutput, error) + GetTrustStoreCaCertificatesBundleRequest(*elbv2.GetTrustStoreCaCertificatesBundleInput) (*request.Request, *elbv2.GetTrustStoreCaCertificatesBundleOutput) + + GetTrustStoreRevocationContent(*elbv2.GetTrustStoreRevocationContentInput) (*elbv2.GetTrustStoreRevocationContentOutput, error) + GetTrustStoreRevocationContentWithContext(aws.Context, *elbv2.GetTrustStoreRevocationContentInput, ...request.Option) (*elbv2.GetTrustStoreRevocationContentOutput, error) + GetTrustStoreRevocationContentRequest(*elbv2.GetTrustStoreRevocationContentInput) (*request.Request, *elbv2.GetTrustStoreRevocationContentOutput) + ModifyListener(*elbv2.ModifyListenerInput) (*elbv2.ModifyListenerOutput, error) ModifyListenerWithContext(aws.Context, *elbv2.ModifyListenerInput, ...request.Option) (*elbv2.ModifyListenerOutput, error) ModifyListenerRequest(*elbv2.ModifyListenerInput) (*request.Request, *elbv2.ModifyListenerOutput) @@ -177,6 +218,10 @@ type ELBV2API interface { ModifyTargetGroupAttributesWithContext(aws.Context, *elbv2.ModifyTargetGroupAttributesInput, ...request.Option) (*elbv2.ModifyTargetGroupAttributesOutput, error) ModifyTargetGroupAttributesRequest(*elbv2.ModifyTargetGroupAttributesInput) (*request.Request, *elbv2.ModifyTargetGroupAttributesOutput) + ModifyTrustStore(*elbv2.ModifyTrustStoreInput) (*elbv2.ModifyTrustStoreOutput, error) + ModifyTrustStoreWithContext(aws.Context, *elbv2.ModifyTrustStoreInput, ...request.Option) (*elbv2.ModifyTrustStoreOutput, error) + ModifyTrustStoreRequest(*elbv2.ModifyTrustStoreInput) (*request.Request, *elbv2.ModifyTrustStoreOutput) + RegisterTargets(*elbv2.RegisterTargetsInput) (*elbv2.RegisterTargetsOutput, error) RegisterTargetsWithContext(aws.Context, *elbv2.RegisterTargetsInput, ...request.Option) (*elbv2.RegisterTargetsOutput, error) RegisterTargetsRequest(*elbv2.RegisterTargetsInput) (*request.Request, *elbv2.RegisterTargetsOutput) @@ -189,6 +234,10 @@ type ELBV2API interface { RemoveTagsWithContext(aws.Context, *elbv2.RemoveTagsInput, ...request.Option) (*elbv2.RemoveTagsOutput, error) RemoveTagsRequest(*elbv2.RemoveTagsInput) (*request.Request, *elbv2.RemoveTagsOutput) + RemoveTrustStoreRevocations(*elbv2.RemoveTrustStoreRevocationsInput) (*elbv2.RemoveTrustStoreRevocationsOutput, error) + RemoveTrustStoreRevocationsWithContext(aws.Context, *elbv2.RemoveTrustStoreRevocationsInput, ...request.Option) (*elbv2.RemoveTrustStoreRevocationsOutput, error) + RemoveTrustStoreRevocationsRequest(*elbv2.RemoveTrustStoreRevocationsInput) (*request.Request, *elbv2.RemoveTrustStoreRevocationsOutput) + SetIpAddressType(*elbv2.SetIpAddressTypeInput) (*elbv2.SetIpAddressTypeOutput, error) SetIpAddressTypeWithContext(aws.Context, *elbv2.SetIpAddressTypeInput, ...request.Option) (*elbv2.SetIpAddressTypeOutput, error) SetIpAddressTypeRequest(*elbv2.SetIpAddressTypeInput) (*request.Request, *elbv2.SetIpAddressTypeOutput) diff --git a/service/elbv2/errors.go b/service/elbv2/errors.go index 7ac5a2ff964..2b8ccd93ed5 100644 --- a/service/elbv2/errors.go +++ b/service/elbv2/errors.go @@ -22,6 +22,12 @@ const ( // The specified Availability Zone is not supported. ErrCodeAvailabilityZoneNotSupportedException = "AvailabilityZoneNotSupported" + // ErrCodeCaCertificatesBundleNotFoundException for service response error code + // "CaCertificatesBundleNotFound". + // + // The specified ca certificate bundle does not exist. + ErrCodeCaCertificatesBundleNotFoundException = "CaCertificatesBundleNotFound" + // ErrCodeCertificateNotFoundException for service response error code // "CertificateNotFound". // @@ -52,6 +58,12 @@ const ( // A target group with the specified name already exists. ErrCodeDuplicateTargetGroupNameException = "DuplicateTargetGroupName" + // ErrCodeDuplicateTrustStoreNameException for service response error code + // "DuplicateTrustStoreName". + // + // A trust store with the specified name already exists. + ErrCodeDuplicateTrustStoreNameException = "DuplicateTrustStoreName" + // ErrCodeHealthUnavailableException for service response error code // "HealthUnavailable". // @@ -65,6 +77,12 @@ const ( // The specified configuration is not valid with this protocol. ErrCodeIncompatibleProtocolsException = "IncompatibleProtocols" + // ErrCodeInvalidCaCertificatesBundleException for service response error code + // "InvalidCaCertificatesBundle". + // + // The specified ca certificate bundle is in an invalid format, or corrupt. + ErrCodeInvalidCaCertificatesBundleException = "InvalidCaCertificatesBundle" + // ErrCodeInvalidConfigurationRequestException for service response error code // "InvalidConfigurationRequest". // @@ -77,6 +95,12 @@ const ( // The requested action is not valid. ErrCodeInvalidLoadBalancerActionException = "InvalidLoadBalancerAction" + // ErrCodeInvalidRevocationContentException for service response error code + // "InvalidRevocationContent". + // + // The provided revocation file is an invalid format, or uses an incorrect algorithm. + ErrCodeInvalidRevocationContentException = "InvalidRevocationContent" + // ErrCodeInvalidSchemeException for service response error code // "InvalidScheme". // @@ -132,6 +156,18 @@ const ( // A specified resource is in use. ErrCodeResourceInUseException = "ResourceInUse" + // ErrCodeRevocationContentNotFoundException for service response error code + // "RevocationContentNotFound". + // + // The specified revocation file does not exist. + ErrCodeRevocationContentNotFoundException = "RevocationContentNotFound" + + // ErrCodeRevocationIdNotFoundException for service response error code + // "RevocationIdNotFound". + // + // The specified revocation ID does not exist. + ErrCodeRevocationIdNotFoundException = "RevocationIdNotFound" + // ErrCodeRuleNotFoundException for service response error code // "RuleNotFound". // @@ -203,7 +239,7 @@ const ( // ErrCodeTooManyTagsException for service response error code // "TooManyTags". // - // You've reached the limit on the number of tags per load balancer. + // You've reached the limit on the number of tags for this resource. ErrCodeTooManyTagsException = "TooManyTags" // ErrCodeTooManyTargetGroupsException for service response error code @@ -219,6 +255,19 @@ const ( // You've reached the limit on the number of targets. ErrCodeTooManyTargetsException = "TooManyTargets" + // ErrCodeTooManyTrustStoreRevocationEntriesException for service response error code + // "TooManyTrustStoreRevocationEntries". + // + // The specified trust store has too many revocation entries. + ErrCodeTooManyTrustStoreRevocationEntriesException = "TooManyTrustStoreRevocationEntries" + + // ErrCodeTooManyTrustStoresException for service response error code + // "TooManyTrustStores". + // + // You've reached the limit on the number of trust stores for your Amazon Web + // Services account. + ErrCodeTooManyTrustStoresException = "TooManyTrustStores" + // ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException for service response error code // "TooManyUniqueTargetGroupsPerLoadBalancer". // @@ -227,6 +276,24 @@ const ( // load balancer, it is counted as only one use. ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException = "TooManyUniqueTargetGroupsPerLoadBalancer" + // ErrCodeTrustStoreInUseException for service response error code + // "TrustStoreInUse". + // + // The specified trust store is currently in use. + ErrCodeTrustStoreInUseException = "TrustStoreInUse" + + // ErrCodeTrustStoreNotFoundException for service response error code + // "TrustStoreNotFound". + // + // The specified trust store does not exist. + ErrCodeTrustStoreNotFoundException = "TrustStoreNotFound" + + // ErrCodeTrustStoreNotReadyException for service response error code + // "TrustStoreNotReady". + // + // The specified trust store is not active. + ErrCodeTrustStoreNotReadyException = "TrustStoreNotReady" + // ErrCodeUnsupportedProtocolException for service response error code // "UnsupportedProtocol". // diff --git a/service/elbv2/examples_test.go b/service/elbv2/examples_test.go index 8254b7a909d..65de2e06b2c 100644 --- a/service/elbv2/examples_test.go +++ b/service/elbv2/examples_test.go @@ -61,6 +61,8 @@ func ExampleELBV2_AddTags_shared00() { fmt.Println(elbv2.ErrCodeListenerNotFoundException, aerr.Error()) case elbv2.ErrCodeRuleNotFoundException: fmt.Println(elbv2.ErrCodeRuleNotFoundException, aerr.Error()) + case elbv2.ErrCodeTrustStoreNotFoundException: + fmt.Println(elbv2.ErrCodeTrustStoreNotFoundException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -132,6 +134,10 @@ func ExampleELBV2_CreateListener_shared00() { fmt.Println(elbv2.ErrCodeALPNPolicyNotSupportedException, aerr.Error()) case elbv2.ErrCodeTooManyTagsException: fmt.Println(elbv2.ErrCodeTooManyTagsException, aerr.Error()) + case elbv2.ErrCodeTrustStoreNotFoundException: + fmt.Println(elbv2.ErrCodeTrustStoreNotFoundException, aerr.Error()) + case elbv2.ErrCodeTrustStoreNotReadyException: + fmt.Println(elbv2.ErrCodeTrustStoreNotReadyException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -213,6 +219,10 @@ func ExampleELBV2_CreateListener_shared01() { fmt.Println(elbv2.ErrCodeALPNPolicyNotSupportedException, aerr.Error()) case elbv2.ErrCodeTooManyTagsException: fmt.Println(elbv2.ErrCodeTooManyTagsException, aerr.Error()) + case elbv2.ErrCodeTrustStoreNotFoundException: + fmt.Println(elbv2.ErrCodeTrustStoreNotFoundException, aerr.Error()) + case elbv2.ErrCodeTrustStoreNotReadyException: + fmt.Println(elbv2.ErrCodeTrustStoreNotReadyException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -785,6 +795,8 @@ func ExampleELBV2_DescribeTags_shared00() { fmt.Println(elbv2.ErrCodeListenerNotFoundException, aerr.Error()) case elbv2.ErrCodeRuleNotFoundException: fmt.Println(elbv2.ErrCodeRuleNotFoundException, aerr.Error()) + case elbv2.ErrCodeTrustStoreNotFoundException: + fmt.Println(elbv2.ErrCodeTrustStoreNotFoundException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -983,6 +995,10 @@ func ExampleELBV2_ModifyListener_shared00() { fmt.Println(elbv2.ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException, aerr.Error()) case elbv2.ErrCodeALPNPolicyNotSupportedException: fmt.Println(elbv2.ErrCodeALPNPolicyNotSupportedException, aerr.Error()) + case elbv2.ErrCodeTrustStoreNotFoundException: + fmt.Println(elbv2.ErrCodeTrustStoreNotFoundException, aerr.Error()) + case elbv2.ErrCodeTrustStoreNotReadyException: + fmt.Println(elbv2.ErrCodeTrustStoreNotReadyException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -1048,6 +1064,10 @@ func ExampleELBV2_ModifyListener_shared01() { fmt.Println(elbv2.ErrCodeTooManyUniqueTargetGroupsPerLoadBalancerException, aerr.Error()) case elbv2.ErrCodeALPNPolicyNotSupportedException: fmt.Println(elbv2.ErrCodeALPNPolicyNotSupportedException, aerr.Error()) + case elbv2.ErrCodeTrustStoreNotFoundException: + fmt.Println(elbv2.ErrCodeTrustStoreNotFoundException, aerr.Error()) + case elbv2.ErrCodeTrustStoreNotReadyException: + fmt.Println(elbv2.ErrCodeTrustStoreNotReadyException, aerr.Error()) default: fmt.Println(aerr.Error()) } @@ -1422,6 +1442,8 @@ func ExampleELBV2_RemoveTags_shared00() { fmt.Println(elbv2.ErrCodeRuleNotFoundException, aerr.Error()) case elbv2.ErrCodeTooManyTagsException: fmt.Println(elbv2.ErrCodeTooManyTagsException, aerr.Error()) + case elbv2.ErrCodeTrustStoreNotFoundException: + fmt.Println(elbv2.ErrCodeTrustStoreNotFoundException, aerr.Error()) default: fmt.Println(aerr.Error()) } diff --git a/service/freetier/api.go b/service/freetier/api.go new file mode 100644 index 00000000000..5d613a0aefd --- /dev/null +++ b/service/freetier/api.go @@ -0,0 +1,852 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package freetier + +import ( + "fmt" + + "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" +) + +const opGetFreeTierUsage = "GetFreeTierUsage" + +// GetFreeTierUsageRequest generates a "aws/request.Request" representing the +// client's request for the GetFreeTierUsage 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 GetFreeTierUsage for more information on using the GetFreeTierUsage +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetFreeTierUsageRequest method. +// req, resp := client.GetFreeTierUsageRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/freetier-2023-09-07/GetFreeTierUsage +func (c *FreeTier) GetFreeTierUsageRequest(input *GetFreeTierUsageInput) (req *request.Request, output *GetFreeTierUsageOutput) { + op := &request.Operation{ + Name: opGetFreeTierUsage, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetFreeTierUsageInput{} + } + + output = &GetFreeTierUsageOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetFreeTierUsage API operation for AWS Free Tier. +// +// Returns a list of all Free Tier usage objects that match your filters. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Free Tier's +// API operation GetFreeTierUsage for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An unexpected error occurred during the processing of your request. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an Amazon Web Service. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/freetier-2023-09-07/GetFreeTierUsage +func (c *FreeTier) GetFreeTierUsage(input *GetFreeTierUsageInput) (*GetFreeTierUsageOutput, error) { + req, out := c.GetFreeTierUsageRequest(input) + return out, req.Send() +} + +// GetFreeTierUsageWithContext is the same as GetFreeTierUsage with the addition of +// the ability to pass a context and additional request options. +// +// See GetFreeTierUsage for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FreeTier) GetFreeTierUsageWithContext(ctx aws.Context, input *GetFreeTierUsageInput, opts ...request.Option) (*GetFreeTierUsageOutput, error) { + req, out := c.GetFreeTierUsageRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// GetFreeTierUsagePages iterates over the pages of a GetFreeTierUsage operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See GetFreeTierUsage 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 GetFreeTierUsage operation. +// pageNum := 0 +// err := client.GetFreeTierUsagePages(params, +// func(page *freetier.GetFreeTierUsageOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *FreeTier) GetFreeTierUsagePages(input *GetFreeTierUsageInput, fn func(*GetFreeTierUsageOutput, bool) bool) error { + return c.GetFreeTierUsagePagesWithContext(aws.BackgroundContext(), input, fn) +} + +// GetFreeTierUsagePagesWithContext same as GetFreeTierUsagePages 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 *FreeTier) GetFreeTierUsagePagesWithContext(ctx aws.Context, input *GetFreeTierUsageInput, fn func(*GetFreeTierUsageOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *GetFreeTierUsageInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.GetFreeTierUsageRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*GetFreeTierUsageOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +// Contains the specifications for the filters to use for your request. +type DimensionValues struct { + _ struct{} `type:"structure"` + + // The name of the dimension that you want to filter on. + // + // Key is a required field + Key *string `type:"string" required:"true" enum:"Dimension"` + + // The match options that you can use to filter your results. You can specify + // only one of these values in the array. + // + // MatchOptions is a required field + MatchOptions []*string `type:"list" required:"true" enum:"MatchOption"` + + // The metadata values you can specify to filter upon, so that the results all + // match at least one of the specified values. + // + // Values is a required field + Values []*string `min:"1" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DimensionValues) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DimensionValues) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DimensionValues) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DimensionValues"} + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.MatchOptions == nil { + invalidParams.Add(request.NewErrParamRequired("MatchOptions")) + } + if s.Values == nil { + invalidParams.Add(request.NewErrParamRequired("Values")) + } + if s.Values != nil && len(s.Values) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Values", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *DimensionValues) SetKey(v string) *DimensionValues { + s.Key = &v + return s +} + +// SetMatchOptions sets the MatchOptions field's value. +func (s *DimensionValues) SetMatchOptions(v []*string) *DimensionValues { + s.MatchOptions = v + return s +} + +// SetValues sets the Values field's value. +func (s *DimensionValues) SetValues(v []*string) *DimensionValues { + s.Values = v + return s +} + +// Use Expression to filter in the GetFreeTierUsage API operation. +// +// You can use the following patterns: +// +// - Simple dimension values (Dimensions root operator) +// +// - Complex expressions with logical operators (AND, NOT, and OR root operators). +// +// For simple dimension values, you can set the dimension name, values, and +// match type for the filters that you plan to use. +// +// # Example for simple dimension values +// +// You can filter to match exactly for REGION==us-east-1 OR REGION==us-west-1. +// +// The corresponding Expression appears like the following: { "Dimensions": +// { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ], "MatchOptions": +// ["EQUALS"] } } +// +// As shown in the previous example, lists of dimension values are combined +// with OR when you apply the filter. +// +// For complex expressions with logical operators, you can have nested expressions +// to use the logical operators and specify advanced filtering. +// +// # Example for complex expressions with logical operators +// +// You can filter by ((REGION == us-east-1 OR REGION == us-west-1) OR (SERVICE +// CONTAINS AWSLambda)) AND (USAGE_TYPE !CONTAINS DataTransfer). +// +// The corresponding Expression appears like the following: { "And": [ {"Or": +// [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" +// ], "MatchOptions": ["EQUALS"] }}, {"Dimensions": { "Key": "SERVICE", "Values": +// ["AWSLambda"], "MatchOptions": ["CONTAINS"] } } ]}, {"Not": {"Dimensions": +// { "Key": "USAGE_TYPE", "Values": ["DataTransfer"], "MatchOptions": ["CONTAINS"] +// }}} ] } +// +// In the following Contents, you must specify exactly one of the following +// root operators. +type Expression struct { + _ struct{} `type:"structure"` + + // Return results that match all Expressions that you specified in the array. + And []*Expression `type:"list"` + + // The specific dimension, values, and match type to filter objects with. + Dimensions *DimensionValues `type:"structure"` + + // Return results that don’t match the Expression that you specified. + Not *Expression `type:"structure"` + + // Return results that match any of the Expressions that you specified. in the + // array. + Or []*Expression `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Expression) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Expression) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Expression) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Expression"} + if s.Dimensions != nil { + if err := s.Dimensions.Validate(); err != nil { + invalidParams.AddNested("Dimensions", err.(request.ErrInvalidParams)) + } + } + if s.Not != nil { + if err := s.Not.Validate(); err != nil { + invalidParams.AddNested("Not", err.(request.ErrInvalidParams)) + } + } + if s.Or != nil { + for i, v := range s.Or { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Or", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnd sets the And field's value. +func (s *Expression) SetAnd(v []*Expression) *Expression { + s.And = v + return s +} + +// SetDimensions sets the Dimensions field's value. +func (s *Expression) SetDimensions(v *DimensionValues) *Expression { + s.Dimensions = v + return s +} + +// SetNot sets the Not field's value. +func (s *Expression) SetNot(v *Expression) *Expression { + s.Not = v + return s +} + +// SetOr sets the Or field's value. +func (s *Expression) SetOr(v []*Expression) *Expression { + s.Or = v + return s +} + +// Consists of a Amazon Web Services Free Tier offer’s metadata and your data +// usage for the offer. +type FreeTierUsage struct { + _ struct{} `type:"structure"` + + // Describes the actual usage accrued month-to-day (MTD) that you've used so + // far. + ActualUsageAmount *float64 `locationName:"actualUsageAmount" type:"double"` + + // The description of the Free Tier offer. + Description *string `locationName:"description" type:"string"` + + // Describes the forecasted usage by the month that you're expected to use. + ForecastedUsageAmount *float64 `locationName:"forecastedUsageAmount" type:"double"` + + // Describes the type of the Free Tier offer. For example, the offer can be + // "12 Months Free", "Always Free", and "Free Trial". + FreeTierType *string `locationName:"freeTierType" type:"string"` + + // Describes the maximum usage allowed in Free Tier. + Limit *float64 `locationName:"limit" type:"double"` + + // Describes usageType more granularly with the specific Amazon Web Service + // API operation. For example, this can be the RunInstances API operation for + // Amazon Elastic Compute Cloud. + Operation *string `locationName:"operation" type:"string"` + + // Describes the Amazon Web Services Region for which this offer is applicable + Region *string `locationName:"region" type:"string"` + + // The name of the Amazon Web Service providing the Free Tier offer. For example, + // this can be Amazon Elastic Compute Cloud. + Service *string `locationName:"service" type:"string"` + + // Describes the unit of the usageType, such as Hrs. + Unit *string `locationName:"unit" type:"string"` + + // Describes the usage details of the offer. For example, this might be Global-BoxUsage:freetrial. + UsageType *string `locationName:"usageType" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FreeTierUsage) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FreeTierUsage) GoString() string { + return s.String() +} + +// SetActualUsageAmount sets the ActualUsageAmount field's value. +func (s *FreeTierUsage) SetActualUsageAmount(v float64) *FreeTierUsage { + s.ActualUsageAmount = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *FreeTierUsage) SetDescription(v string) *FreeTierUsage { + s.Description = &v + return s +} + +// SetForecastedUsageAmount sets the ForecastedUsageAmount field's value. +func (s *FreeTierUsage) SetForecastedUsageAmount(v float64) *FreeTierUsage { + s.ForecastedUsageAmount = &v + return s +} + +// SetFreeTierType sets the FreeTierType field's value. +func (s *FreeTierUsage) SetFreeTierType(v string) *FreeTierUsage { + s.FreeTierType = &v + return s +} + +// SetLimit sets the Limit field's value. +func (s *FreeTierUsage) SetLimit(v float64) *FreeTierUsage { + s.Limit = &v + return s +} + +// SetOperation sets the Operation field's value. +func (s *FreeTierUsage) SetOperation(v string) *FreeTierUsage { + s.Operation = &v + return s +} + +// SetRegion sets the Region field's value. +func (s *FreeTierUsage) SetRegion(v string) *FreeTierUsage { + s.Region = &v + return s +} + +// SetService sets the Service field's value. +func (s *FreeTierUsage) SetService(v string) *FreeTierUsage { + s.Service = &v + return s +} + +// SetUnit sets the Unit field's value. +func (s *FreeTierUsage) SetUnit(v string) *FreeTierUsage { + s.Unit = &v + return s +} + +// SetUsageType sets the UsageType field's value. +func (s *FreeTierUsage) SetUsageType(v string) *FreeTierUsage { + s.UsageType = &v + return s +} + +type GetFreeTierUsageInput struct { + _ struct{} `type:"structure"` + + // An expression that specifies the conditions that you want each FreeTierUsage + // object to meet. + Filter *Expression `locationName:"filter" type:"structure"` + + // The maximum number of results to return in the response. MaxResults means + // that there can be up to the specified number of values, but there might be + // fewer results based on your filters. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // The pagination token that indicates the next set of results to retrieve. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetFreeTierUsageInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetFreeTierUsageInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetFreeTierUsageInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetFreeTierUsageInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilter sets the Filter field's value. +func (s *GetFreeTierUsageInput) SetFilter(v *Expression) *GetFreeTierUsageInput { + s.Filter = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *GetFreeTierUsageInput) SetMaxResults(v int64) *GetFreeTierUsageInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *GetFreeTierUsageInput) SetNextToken(v string) *GetFreeTierUsageInput { + s.NextToken = &v + return s +} + +type GetFreeTierUsageOutput struct { + _ struct{} `type:"structure"` + + // The list of Free Tier usage objects that meet your filter expression. + // + // FreeTierUsages is a required field + FreeTierUsages []*FreeTierUsage `locationName:"freeTierUsages" type:"list" required:"true"` + + // The pagination token that indicates the next set of results to retrieve. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetFreeTierUsageOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetFreeTierUsageOutput) GoString() string { + return s.String() +} + +// SetFreeTierUsages sets the FreeTierUsages field's value. +func (s *GetFreeTierUsageOutput) SetFreeTierUsages(v []*FreeTierUsage) *GetFreeTierUsageOutput { + s.FreeTierUsages = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *GetFreeTierUsageOutput) SetNextToken(v string) *GetFreeTierUsageOutput { + s.NextToken = &v + return s +} + +// An unexpected error occurred during the processing of your request. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The request was denied due to request throttling. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The input fails to satisfy the constraints specified by an Amazon Web Service. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) GoString() string { + return s.String() +} + +func newErrorValidationException(v protocol.ResponseMetadata) error { + return &ValidationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ValidationException) Code() string { + return "ValidationException" +} + +// Message returns the exception's message. +func (s *ValidationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ValidationException) OrigErr() error { + return nil +} + +func (s *ValidationException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ValidationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ValidationException) RequestID() string { + return s.RespMetadata.RequestID +} + +const ( + // DimensionService is a Dimension enum value + DimensionService = "SERVICE" + + // DimensionOperation is a Dimension enum value + DimensionOperation = "OPERATION" + + // DimensionUsageType is a Dimension enum value + DimensionUsageType = "USAGE_TYPE" + + // DimensionRegion is a Dimension enum value + DimensionRegion = "REGION" + + // DimensionFreeTierType is a Dimension enum value + DimensionFreeTierType = "FREE_TIER_TYPE" + + // DimensionDescription is a Dimension enum value + DimensionDescription = "DESCRIPTION" + + // DimensionUsagePercentage is a Dimension enum value + DimensionUsagePercentage = "USAGE_PERCENTAGE" +) + +// Dimension_Values returns all elements of the Dimension enum +func Dimension_Values() []string { + return []string{ + DimensionService, + DimensionOperation, + DimensionUsageType, + DimensionRegion, + DimensionFreeTierType, + DimensionDescription, + DimensionUsagePercentage, + } +} + +const ( + // MatchOptionEquals is a MatchOption enum value + MatchOptionEquals = "EQUALS" + + // MatchOptionStartsWith is a MatchOption enum value + MatchOptionStartsWith = "STARTS_WITH" + + // MatchOptionEndsWith is a MatchOption enum value + MatchOptionEndsWith = "ENDS_WITH" + + // MatchOptionContains is a MatchOption enum value + MatchOptionContains = "CONTAINS" + + // MatchOptionGreaterThanOrEqual is a MatchOption enum value + MatchOptionGreaterThanOrEqual = "GREATER_THAN_OR_EQUAL" +) + +// MatchOption_Values returns all elements of the MatchOption enum +func MatchOption_Values() []string { + return []string{ + MatchOptionEquals, + MatchOptionStartsWith, + MatchOptionEndsWith, + MatchOptionContains, + MatchOptionGreaterThanOrEqual, + } +} diff --git a/service/freetier/doc.go b/service/freetier/doc.go new file mode 100644 index 00000000000..9d21989bee5 --- /dev/null +++ b/service/freetier/doc.go @@ -0,0 +1,42 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package freetier provides the client and types for making API +// requests to AWS Free Tier. +// +// You can use the Amazon Web Services Free Tier API to query programmatically +// your Free Tier usage data. +// +// Free Tier tracks your monthly usage data for all free tier offers that are +// associated with your Amazon Web Services account. You can use the Free Tier +// API to filter and show only the data that you want. +// +// # Service endpoint +// +// The Free Tier API provides the following endpoint: +// +// - https://freetier.us-east-1.api.aws +// +// For more information, see Using the Amazon Web Services Free Tier (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-free-tier.html) +// in the Billing User Guide. +// +// See https://docs.aws.amazon.com/goto/WebAPI/freetier-2023-09-07 for more information on this service. +// +// See freetier package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/freetier/ +// +// # Using the Client +// +// To contact AWS Free Tier with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AWS Free Tier client FreeTier for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/freetier/#New +package freetier diff --git a/service/freetier/errors.go b/service/freetier/errors.go new file mode 100644 index 00000000000..a87d2f10083 --- /dev/null +++ b/service/freetier/errors.go @@ -0,0 +1,34 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package freetier + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // An unexpected error occurred during the processing of your request. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input fails to satisfy the constraints specified by an Amazon Web Service. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "InternalServerException": newErrorInternalServerException, + "ThrottlingException": newErrorThrottlingException, + "ValidationException": newErrorValidationException, +} diff --git a/service/freetier/freetieriface/interface.go b/service/freetier/freetieriface/interface.go new file mode 100644 index 00000000000..7fc10a8ba74 --- /dev/null +++ b/service/freetier/freetieriface/interface.go @@ -0,0 +1,71 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package freetieriface provides an interface to enable mocking the AWS Free Tier service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package freetieriface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/freetier" +) + +// FreeTierAPI provides an interface to enable mocking the +// freetier.FreeTier service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // AWS Free Tier. +// func myFunc(svc freetieriface.FreeTierAPI) bool { +// // Make svc.GetFreeTierUsage request +// } +// +// func main() { +// sess := session.New() +// svc := freetier.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockFreeTierClient struct { +// freetieriface.FreeTierAPI +// } +// func (m *mockFreeTierClient) GetFreeTierUsage(input *freetier.GetFreeTierUsageInput) (*freetier.GetFreeTierUsageOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockFreeTierClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type FreeTierAPI interface { + GetFreeTierUsage(*freetier.GetFreeTierUsageInput) (*freetier.GetFreeTierUsageOutput, error) + GetFreeTierUsageWithContext(aws.Context, *freetier.GetFreeTierUsageInput, ...request.Option) (*freetier.GetFreeTierUsageOutput, error) + GetFreeTierUsageRequest(*freetier.GetFreeTierUsageInput) (*request.Request, *freetier.GetFreeTierUsageOutput) + + GetFreeTierUsagePages(*freetier.GetFreeTierUsageInput, func(*freetier.GetFreeTierUsageOutput, bool) bool) error + GetFreeTierUsagePagesWithContext(aws.Context, *freetier.GetFreeTierUsageInput, func(*freetier.GetFreeTierUsageOutput, bool) bool, ...request.Option) error +} + +var _ FreeTierAPI = (*freetier.FreeTier)(nil) diff --git a/service/freetier/service.go b/service/freetier/service.go new file mode 100644 index 00000000000..768eb13778e --- /dev/null +++ b/service/freetier/service.go @@ -0,0 +1,108 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package freetier + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" +) + +// FreeTier provides the API operation methods for making requests to +// AWS Free Tier. See this package's package overview docs +// for details on the service. +// +// FreeTier methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type FreeTier struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "FreeTier" // Name of service. + EndpointsID = "freetier" // ID to lookup a service endpoint with. + ServiceID = "FreeTier" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the FreeTier client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a FreeTier client from just a session. +// svc := freetier.New(mySession) +// +// // Create a FreeTier client with additional configuration +// svc := freetier.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *FreeTier { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "freetier" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *FreeTier { + svc := &FreeTier{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2023-09-07", + ResolvedRegion: resolvedRegion, + JSONVersion: "1.0", + TargetPrefix: "AWSFreeTierService", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(jsonrpc.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a FreeTier operation and runs any +// custom request initialization. +func (c *FreeTier) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/fsx/api.go b/service/fsx/api.go index 13fea25c7cb..2ca9280e049 100644 --- a/service/fsx/api.go +++ b/service/fsx/api.go @@ -356,6 +356,100 @@ func (c *FSx) CopyBackupWithContext(ctx aws.Context, input *CopyBackupInput, opt return out, req.Send() } +const opCopySnapshotAndUpdateVolume = "CopySnapshotAndUpdateVolume" + +// CopySnapshotAndUpdateVolumeRequest generates a "aws/request.Request" representing the +// client's request for the CopySnapshotAndUpdateVolume 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 CopySnapshotAndUpdateVolume for more information on using the CopySnapshotAndUpdateVolume +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CopySnapshotAndUpdateVolumeRequest method. +// req, resp := client.CopySnapshotAndUpdateVolumeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CopySnapshotAndUpdateVolume +func (c *FSx) CopySnapshotAndUpdateVolumeRequest(input *CopySnapshotAndUpdateVolumeInput) (req *request.Request, output *CopySnapshotAndUpdateVolumeOutput) { + op := &request.Operation{ + Name: opCopySnapshotAndUpdateVolume, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CopySnapshotAndUpdateVolumeInput{} + } + + output = &CopySnapshotAndUpdateVolumeOutput{} + req = c.newRequest(op, input, output) + return +} + +// CopySnapshotAndUpdateVolume API operation for Amazon FSx. +// +// Updates an existing volume by using a snapshot from another Amazon FSx for +// OpenZFS file system. For more information, see on-demand data replication +// (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/on-demand-replication.html) +// in the Amazon FSx for OpenZFS 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 +// the error. +// +// See the AWS API reference guide for Amazon FSx's +// API operation CopySnapshotAndUpdateVolume for usage and error information. +// +// Returned Error Types: +// +// - BadRequest +// A generic error indicating a failure with a client request. +// +// - IncompatibleParameterError +// The error returned when a second request is received with the same client +// request token but different parameters settings. A client request token should +// always uniquely identify a single request. +// +// - InternalServerError +// A generic error indicating a server-side failure. +// +// - ServiceLimitExceeded +// An error indicating that a particular service limit was exceeded. You can +// increase some service limits by contacting Amazon Web Services Support. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CopySnapshotAndUpdateVolume +func (c *FSx) CopySnapshotAndUpdateVolume(input *CopySnapshotAndUpdateVolumeInput) (*CopySnapshotAndUpdateVolumeOutput, error) { + req, out := c.CopySnapshotAndUpdateVolumeRequest(input) + return out, req.Send() +} + +// CopySnapshotAndUpdateVolumeWithContext is the same as CopySnapshotAndUpdateVolume with the addition of +// the ability to pass a context and additional request options. +// +// See CopySnapshotAndUpdateVolume for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FSx) CopySnapshotAndUpdateVolumeWithContext(ctx aws.Context, input *CopySnapshotAndUpdateVolumeInput, opts ...request.Option) (*CopySnapshotAndUpdateVolumeOutput, error) { + req, out := c.CopySnapshotAndUpdateVolumeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateBackup = "CreateBackup" // CreateBackupRequest generates a "aws/request.Request" representing the @@ -3257,6 +3351,91 @@ func (c *FSx) DescribeFileSystemsPagesWithContext(ctx aws.Context, input *Descri return p.Err() } +const opDescribeSharedVpcConfiguration = "DescribeSharedVpcConfiguration" + +// DescribeSharedVpcConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DescribeSharedVpcConfiguration 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 DescribeSharedVpcConfiguration for more information on using the DescribeSharedVpcConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DescribeSharedVpcConfigurationRequest method. +// req, resp := client.DescribeSharedVpcConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeSharedVpcConfiguration +func (c *FSx) DescribeSharedVpcConfigurationRequest(input *DescribeSharedVpcConfigurationInput) (req *request.Request, output *DescribeSharedVpcConfigurationOutput) { + op := &request.Operation{ + Name: opDescribeSharedVpcConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeSharedVpcConfigurationInput{} + } + + output = &DescribeSharedVpcConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeSharedVpcConfiguration API operation for Amazon FSx. +// +// Indicates whether participant accounts in your organization can create Amazon +// FSx for NetApp ONTAP Multi-AZ file systems in subnets that are shared by +// a virtual private cloud (VPC) owner. For more information, see the Amazon +// FSx for NetApp ONTAP User Guide (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/maz-shared-vpc.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon FSx's +// API operation DescribeSharedVpcConfiguration for usage and error information. +// +// Returned Error Types: +// +// - BadRequest +// A generic error indicating a failure with a client request. +// +// - InternalServerError +// A generic error indicating a server-side failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeSharedVpcConfiguration +func (c *FSx) DescribeSharedVpcConfiguration(input *DescribeSharedVpcConfigurationInput) (*DescribeSharedVpcConfigurationOutput, error) { + req, out := c.DescribeSharedVpcConfigurationRequest(input) + return out, req.Send() +} + +// DescribeSharedVpcConfigurationWithContext is the same as DescribeSharedVpcConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeSharedVpcConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FSx) DescribeSharedVpcConfigurationWithContext(ctx aws.Context, input *DescribeSharedVpcConfigurationInput, opts ...request.Option) (*DescribeSharedVpcConfigurationOutput, error) { + req, out := c.DescribeSharedVpcConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeSnapshots = "DescribeSnapshots" // DescribeSnapshotsRequest generates a "aws/request.Request" representing the @@ -3754,8 +3933,8 @@ func (c *FSx) DisassociateFileSystemAliasesRequest(input *DisassociateFileSystem // Use this action to disassociate, or remove, one or more Domain Name Service // (DNS) aliases from an Amazon FSx for Windows File Server file system. If // you attempt to disassociate a DNS alias that is not associated with the file -// system, Amazon FSx responds with a 400 Bad Request. For more information, -// see Working with DNS Aliases (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html). +// system, Amazon FSx responds with an HTTP status code 400 (Bad Request). For +// more information, see Working with DNS Aliases (https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html). // // The system generated response showing the DNS aliases that Amazon FSx is // attempting to disassociate from the file system. Use the API operation to @@ -4721,12 +4900,16 @@ func (c *FSx) UpdateFileSystemRequest(input *UpdateFileSystemInput) (req *reques // // - FsxAdminPassword // +// - HAPairs +// // - RemoveRouteTableIds // // - StorageCapacity // // - ThroughputCapacity // +// - ThroughputCapacityPerHAPair +// // - WeeklyMaintenanceStartTime // // For FSx for OpenZFS file systems, you can update the following properties: @@ -4809,6 +4992,102 @@ func (c *FSx) UpdateFileSystemWithContext(ctx aws.Context, input *UpdateFileSyst return out, req.Send() } +const opUpdateSharedVpcConfiguration = "UpdateSharedVpcConfiguration" + +// UpdateSharedVpcConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the UpdateSharedVpcConfiguration 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 UpdateSharedVpcConfiguration for more information on using the UpdateSharedVpcConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateSharedVpcConfigurationRequest method. +// req, resp := client.UpdateSharedVpcConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateSharedVpcConfiguration +func (c *FSx) UpdateSharedVpcConfigurationRequest(input *UpdateSharedVpcConfigurationInput) (req *request.Request, output *UpdateSharedVpcConfigurationOutput) { + op := &request.Operation{ + Name: opUpdateSharedVpcConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateSharedVpcConfigurationInput{} + } + + output = &UpdateSharedVpcConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateSharedVpcConfiguration API operation for Amazon FSx. +// +// Configures whether participant accounts in your organization can create Amazon +// FSx for NetApp ONTAP Multi-AZ file systems in subnets that are shared by +// a virtual private cloud (VPC) owner. For more information, see the Amazon +// FSx for NetApp ONTAP User Guide (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/maz-shared-vpc.html). +// +// We strongly recommend that participant-created Multi-AZ file systems in the +// shared VPC are deleted before you disable this feature. Once the feature +// is disabled, these file systems will enter a MISCONFIGURED state and behave +// like Single-AZ file systems. For more information, see Important considerations +// before disabling shared VPC support for Multi-AZ file systems (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/maz-shared-vpc.html#disabling-maz-vpc-sharing). +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 FSx's +// API operation UpdateSharedVpcConfiguration for usage and error information. +// +// Returned Error Types: +// +// - BadRequest +// A generic error indicating a failure with a client request. +// +// - IncompatibleParameterError +// The error returned when a second request is received with the same client +// request token but different parameters settings. A client request token should +// always uniquely identify a single request. +// +// - InternalServerError +// A generic error indicating a server-side failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateSharedVpcConfiguration +func (c *FSx) UpdateSharedVpcConfiguration(input *UpdateSharedVpcConfigurationInput) (*UpdateSharedVpcConfigurationOutput, error) { + req, out := c.UpdateSharedVpcConfigurationRequest(input) + return out, req.Send() +} + +// UpdateSharedVpcConfigurationWithContext is the same as UpdateSharedVpcConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateSharedVpcConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FSx) UpdateSharedVpcConfigurationWithContext(ctx aws.Context, input *UpdateSharedVpcConfigurationInput, opts ...request.Option) (*UpdateSharedVpcConfigurationOutput, error) { + req, out := c.UpdateSharedVpcConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateSnapshot = "UpdateSnapshot" // UpdateSnapshotRequest generates a "aws/request.Request" representing the @@ -5211,7 +5490,7 @@ func (s *ActiveDirectoryError) RequestID() string { } // Describes a specific Amazon FSx administrative action for the current Windows, -// Lustre, or OpenZFS file system. +// Lustre, OpenZFS, or ONTAP file system or volume. type AdministrativeAction struct { _ struct{} `type:"structure"` @@ -5267,9 +5546,8 @@ type AdministrativeAction struct { // has been completed successfully, the parent FILE_SYSTEM_UPDATE action // status changes to COMPLETED. // - // * VOLUME_UPDATE - A volume update to an Amazon FSx for NetApp ONTAP or - // Amazon FSx for OpenZFS volume initiated from the Amazon FSx console, API - // (UpdateVolume), or CLI (update-volume). + // * VOLUME_UPDATE - A volume update to an Amazon FSx for OpenZFS volume + // initiated from the Amazon FSx console, API (UpdateVolume), or CLI (update-volume). // // * VOLUME_RESTORE - An Amazon FSx for OpenZFS volume is returned to the // state saved by the specified snapshot, initiated from an API (RestoreVolumeFromSnapshot) @@ -5280,6 +5558,15 @@ type AdministrativeAction struct { // // * RELEASE_NFS_V3_LOCKS - Tracks the release of Network File System (NFS) // V3 locks on an Amazon FSx for OpenZFS file system. + // + // * VOLUME_INITIALIZE_WITH_SNAPSHOT - A volume is being created from a snapshot + // on a different FSx for OpenZFS file system. You can initiate this from + // the Amazon FSx console, API (CreateVolume), or CLI (create-volume) when + // using the using the FULL_COPY strategy. + // + // * VOLUME_UPDATE_WITH_SNAPSHOT - A volume is being updated from a snapshot + // on a different FSx for OpenZFS file system. You can initiate this from + // the Amazon FSx console, API (CopySnapshotAndUpdateVolume), or CLI (copy-snapshot-and-update-volume). AdministrativeActionType *string `type:"string" enum:"AdministrativeActionType"` // Provides information about a failed administrative action. @@ -5289,10 +5576,14 @@ type AdministrativeAction struct { // Does not apply to any other administrative action type. ProgressPercent *int64 `type:"integer"` + // The remaining bytes to transfer for the FSx for OpenZFS snapshot that you're + // copying. + RemainingTransferBytes *int64 `type:"long"` + // The time that the administrative action request was received. RequestTime *time.Time `type:"timestamp"` - // Describes the status of the administrative action, as follows: + // The status of the administrative action, as follows: // // * FAILED - Amazon FSx failed to process the administrative action successfully. // @@ -5307,16 +5598,19 @@ type AdministrativeAction struct { // now performing the storage-optimization process. Status *string `type:"string" enum:"Status"` - // Describes the target value for the administration action, provided in the - // UpdateFileSystem operation. Returned for FILE_SYSTEM_UPDATE administrative - // actions. + // The target value for the administration action, provided in the UpdateFileSystem + // operation. Returned for FILE_SYSTEM_UPDATE administrative actions. TargetFileSystemValues *FileSystem `type:"structure"` // A snapshot of an Amazon FSx for OpenZFS volume. TargetSnapshotValues *Snapshot `type:"structure"` - // Describes an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volume. + // Describes an Amazon FSx volume. TargetVolumeValues *Volume `type:"structure"` + + // The number of bytes that have transferred for the FSx for OpenZFS snapshot + // that you're copying. + TotalTransferBytes *int64 `type:"long"` } // String returns the string representation. @@ -5355,6 +5649,12 @@ func (s *AdministrativeAction) SetProgressPercent(v int64) *AdministrativeAction return s } +// SetRemainingTransferBytes sets the RemainingTransferBytes field's value. +func (s *AdministrativeAction) SetRemainingTransferBytes(v int64) *AdministrativeAction { + s.RemainingTransferBytes = &v + return s +} + // SetRequestTime sets the RequestTime field's value. func (s *AdministrativeAction) SetRequestTime(v time.Time) *AdministrativeAction { s.RequestTime = &v @@ -5385,6 +5685,12 @@ func (s *AdministrativeAction) SetTargetVolumeValues(v *Volume) *AdministrativeA return s } +// SetTotalTransferBytes sets the TotalTransferBytes field's value. +func (s *AdministrativeAction) SetTotalTransferBytes(v int64) *AdministrativeAction { + s.TotalTransferBytes = &v + return s +} + // Provides information about a failed administrative action. type AdministrativeActionFailureDetails struct { _ struct{} `type:"structure"` @@ -5417,6 +5723,64 @@ func (s *AdministrativeActionFailureDetails) SetMessage(v string) *Administrativ return s } +// Used to specify configuration options for a volume’s storage aggregate +// or aggregates. +type AggregateConfiguration struct { + _ struct{} `type:"structure"` + + // The list of aggregates that this volume resides on. Aggregates are storage + // pools which make up your primary storage tier. Each high-availability (HA) + // pair has one aggregate. The names of the aggregates map to the names of the + // aggregates in the ONTAP CLI and REST API. For FlexVols, there will always + // be a single entry. + // + // Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following + // conditions: + // + // * The strings in the value of Aggregates are not are not formatted as + // aggrX, where X is a number between 1 and 6. + // + // * The value of Aggregates contains aggregates that are not present. + // + // * One or more of the aggregates supplied are too close to the volume limit + // to support adding more volumes. + Aggregates []*string `type:"list"` + + // The total number of constituents this FlexGroup volume has. Not applicable + // for FlexVols. + TotalConstituents *int64 `min:"1" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AggregateConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AggregateConfiguration) GoString() string { + return s.String() +} + +// SetAggregates sets the Aggregates field's value. +func (s *AggregateConfiguration) SetAggregates(v []*string) *AggregateConfiguration { + s.Aggregates = v + return s +} + +// SetTotalConstituents sets the TotalConstituents field's value. +func (s *AggregateConfiguration) SetTotalConstituents(v int64) *AggregateConfiguration { + s.TotalConstituents = &v + return s +} + // A DNS alias that is associated with the file system. You can use a DNS alias // to access a file system using user-defined DNS names, in addition to the // default DNS name that Amazon FSx assigns to the file system. For more information, @@ -5878,7 +6242,7 @@ type Backup struct { // Type is a required field Type *string `type:"string" required:"true" enum:"BackupType"` - // Describes an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volume. + // Describes an Amazon FSx volume. Volume *Volume `type:"structure"` } @@ -6739,6 +7103,240 @@ func (s *CopyBackupOutput) SetBackup(v *Backup) *CopyBackupOutput { return s } +type CopySnapshotAndUpdateVolumeInput struct { + _ struct{} `type:"structure"` + + // (Optional) An idempotency token for resource creation, in a string of up + // to 63 ASCII characters. This token is automatically filled on your behalf + // when you use the Command Line Interface (CLI) or an Amazon Web Services SDK. + ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` + + // Specifies the strategy to use when copying data from a snapshot to the volume. + // + // * FULL_COPY - Copies all data from the snapshot to the volume. + // + // * INCREMENTAL_COPY - Copies only the snapshot data that's changed since + // the previous replication. + // + // CLONE isn't a valid copy strategy option for the CopySnapshotAndUpdateVolume + // operation. + CopyStrategy *string `type:"string" enum:"OpenZFSCopyStrategy"` + + // Confirms that you want to delete data on the destination volume that wasn’t + // there during the previous snapshot replication. + // + // Your replication will fail if you don’t include an option for a specific + // type of data and that data is on your destination. For example, if you don’t + // include DELETE_INTERMEDIATE_SNAPSHOTS and there are intermediate snapshots + // on the destination, you can’t copy the snapshot. + // + // * DELETE_INTERMEDIATE_SNAPSHOTS - Deletes snapshots on the destination + // volume that aren’t on the source volume. + // + // * DELETE_CLONED_VOLUMES - Deletes snapshot clones on the destination volume + // that aren't on the source volume. + // + // * DELETE_INTERMEDIATE_DATA - Overwrites snapshots on the destination volume + // that don’t match the source snapshot that you’re copying. + Options []*string `type:"list" enum:"UpdateOpenZFSVolumeOption"` + + // The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify + // Amazon Web Services resources. We require an ARN when you need to specify + // a resource unambiguously across all of Amazon Web Services. For more information, + // see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + // in the Amazon Web Services General Reference. + // + // SourceSnapshotARN is a required field + SourceSnapshotARN *string `min:"8" type:"string" required:"true"` + + // Specifies the ID of the volume that you are copying the snapshot to. + // + // VolumeId is a required field + VolumeId *string `min:"23" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CopySnapshotAndUpdateVolumeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CopySnapshotAndUpdateVolumeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CopySnapshotAndUpdateVolumeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CopySnapshotAndUpdateVolumeInput"} + if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1)) + } + if s.SourceSnapshotARN == nil { + invalidParams.Add(request.NewErrParamRequired("SourceSnapshotARN")) + } + if s.SourceSnapshotARN != nil && len(*s.SourceSnapshotARN) < 8 { + invalidParams.Add(request.NewErrParamMinLen("SourceSnapshotARN", 8)) + } + if s.VolumeId == nil { + invalidParams.Add(request.NewErrParamRequired("VolumeId")) + } + if s.VolumeId != nil && len(*s.VolumeId) < 23 { + invalidParams.Add(request.NewErrParamMinLen("VolumeId", 23)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientRequestToken sets the ClientRequestToken field's value. +func (s *CopySnapshotAndUpdateVolumeInput) SetClientRequestToken(v string) *CopySnapshotAndUpdateVolumeInput { + s.ClientRequestToken = &v + return s +} + +// SetCopyStrategy sets the CopyStrategy field's value. +func (s *CopySnapshotAndUpdateVolumeInput) SetCopyStrategy(v string) *CopySnapshotAndUpdateVolumeInput { + s.CopyStrategy = &v + return s +} + +// SetOptions sets the Options field's value. +func (s *CopySnapshotAndUpdateVolumeInput) SetOptions(v []*string) *CopySnapshotAndUpdateVolumeInput { + s.Options = v + return s +} + +// SetSourceSnapshotARN sets the SourceSnapshotARN field's value. +func (s *CopySnapshotAndUpdateVolumeInput) SetSourceSnapshotARN(v string) *CopySnapshotAndUpdateVolumeInput { + s.SourceSnapshotARN = &v + return s +} + +// SetVolumeId sets the VolumeId field's value. +func (s *CopySnapshotAndUpdateVolumeInput) SetVolumeId(v string) *CopySnapshotAndUpdateVolumeInput { + s.VolumeId = &v + return s +} + +type CopySnapshotAndUpdateVolumeOutput struct { + _ struct{} `type:"structure"` + + // A list of administrative actions for the file system that are in process + // or waiting to be processed. Administrative actions describe changes to the + // Amazon FSx system. + AdministrativeActions []*AdministrativeAction `type:"list"` + + // The lifecycle state of the destination volume. + Lifecycle *string `type:"string" enum:"VolumeLifecycle"` + + // The ID of the volume that you copied the snapshot to. + VolumeId *string `min:"23" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CopySnapshotAndUpdateVolumeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CopySnapshotAndUpdateVolumeOutput) GoString() string { + return s.String() +} + +// SetAdministrativeActions sets the AdministrativeActions field's value. +func (s *CopySnapshotAndUpdateVolumeOutput) SetAdministrativeActions(v []*AdministrativeAction) *CopySnapshotAndUpdateVolumeOutput { + s.AdministrativeActions = v + return s +} + +// SetLifecycle sets the Lifecycle field's value. +func (s *CopySnapshotAndUpdateVolumeOutput) SetLifecycle(v string) *CopySnapshotAndUpdateVolumeOutput { + s.Lifecycle = &v + return s +} + +// SetVolumeId sets the VolumeId field's value. +func (s *CopySnapshotAndUpdateVolumeOutput) SetVolumeId(v string) *CopySnapshotAndUpdateVolumeOutput { + s.VolumeId = &v + return s +} + +// Used to specify the configuration options for a volume's storage aggregate +// or aggregates. +type CreateAggregateConfiguration struct { + _ struct{} `type:"structure"` + + // Used to specify the names of aggregates on which the volume will be created. + Aggregates []*string `type:"list"` + + // Used to explicitly set the number of constituents within the FlexGroup per + // storage aggregate. This field is optional when creating a FlexGroup volume. + // If unspecified, the default value will be 8. This field cannot be provided + // when creating a FlexVol volume. + ConstituentsPerAggregate *int64 `min:"1" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAggregateConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAggregateConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAggregateConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAggregateConfiguration"} + if s.ConstituentsPerAggregate != nil && *s.ConstituentsPerAggregate < 1 { + invalidParams.Add(request.NewErrParamMinValue("ConstituentsPerAggregate", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAggregates sets the Aggregates field's value. +func (s *CreateAggregateConfiguration) SetAggregates(v []*string) *CreateAggregateConfiguration { + s.Aggregates = v + return s +} + +// SetConstituentsPerAggregate sets the ConstituentsPerAggregate field's value. +func (s *CreateAggregateConfiguration) SetConstituentsPerAggregate(v int64) *CreateAggregateConfiguration { + s.ConstituentsPerAggregate = &v + return s +} + // The request object for the CreateBackup operation. type CreateBackupInput struct { _ struct{} `type:"structure"` @@ -7721,7 +8319,7 @@ type CreateFileSystemFromBackupInput struct { // // If used to create a file system other than OpenZFS, you must provide a value // that matches the backup's StorageCapacity value. If you provide any other - // value, Amazon FSx responds with a 400 Bad Request. + // value, Amazon FSx responds with with an HTTP status code 400 Bad Request. StorageCapacity *int64 `type:"integer"` // Sets the storage type for the Windows or OpenZFS file system that you're @@ -8035,7 +8633,9 @@ type CreateFileSystemInput struct { // and increments of 3600 GiB. // // FSx for ONTAP file systems - The amount of storage capacity that you can - // configure is from 1024 GiB up to 196,608 GiB (192 TiB). + // configure depends on the value of the HAPairs property. The minimum value + // is calculated as 1,024 * HAPairs and the maxium is calculated as 524,288 + // * HAPairs.. // // FSx for OpenZFS file systems - The amount of storage capacity that you can // configure is from 64 GiB up to 524,288 GiB (512 TiB). @@ -8612,6 +9212,9 @@ type CreateFileSystemOntapConfiguration struct { // // * SINGLE_AZ_1 - A file system configured for Single-AZ redundancy. // + // * SINGLE_AZ_2 - A file system configured with multiple high-availability + // (HA) pairs for Single-AZ redundancy. + // // For information about the use cases for Multi-AZ and Single-AZ deployments, // refer to Choosing a file system deployment type (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-AZ.html). // @@ -8639,6 +9242,21 @@ type CreateFileSystemOntapConfiguration struct { // String and GoString methods. FsxAdminPassword *string `min:"8" type:"string" sensitive:"true"` + // Specifies how many high-availability (HA) pairs the file system will have. + // The default value is 1. The value of this property affects the values of + // StorageCapacity, Iops, and ThroughputCapacity. For more information, see + // High-availability (HA) pairs (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/HA-pairs.html) + // in the FSx for ONTAP user guide. + // + // Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following + // conditions: + // + // * The value of HAPairs is less than 1 or greater than 6. + // + // * The value of HAPairs is greater than 1 and the value of DeploymentType + // is SINGLE_AZ_1 or MULTI_AZ_1. + HAPairs *int64 `min:"1" type:"integer"` + // Required when DeploymentType is set to MULTI_AZ_1. This specifies the subnet // in which you want the preferred file server to be located. PreferredSubnetId *string `min:"15" type:"string"` @@ -8650,11 +9268,43 @@ type CreateFileSystemOntapConfiguration struct { // default route table. RouteTableIds []*string `type:"list"` - // Sets the throughput capacity for the file system that you're creating. Valid - // values are 128, 256, 512, 1024, 2048, and 4096 MBps. + // Sets the throughput capacity for the file system that you're creating in + // megabytes per second (MBps). For more information, see Managing throughput + // capacity (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-throughput-capacity.html) + // in the FSx for ONTAP User Guide. // - // ThroughputCapacity is a required field - ThroughputCapacity *int64 `min:"8" type:"integer" required:"true"` + // Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following + // conditions: + // + // * The value of ThroughputCapacity and ThroughputCapacityPerHAPair are + // not the same value. + // + // * The value of ThroughputCapacity when divided by the value of HAPairs + // is outside of the valid range for ThroughputCapacity. + ThroughputCapacity *int64 `min:"8" type:"integer"` + + // Use to choose the throughput capacity per HA pair, rather than the total + // throughput for the file system. + // + // This field and ThroughputCapacity cannot be defined in the same API call, + // but one is required. + // + // This field and ThroughputCapacity are the same for file systems with one + // HA pair. + // + // * For SINGLE_AZ_1 and MULTI_AZ_1, valid values are 128, 256, 512, 1024, + // 2048, or 4096 MBps. + // + // * For SINGLE_AZ_2, valid values are 3072 or 6144 MBps. + // + // Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following + // conditions: + // + // * The value of ThroughputCapacity and ThroughputCapacityPerHAPair are + // not the same value + // + // * The value of ThroughputCapacityPerHAPair is not a valid value. + ThroughputCapacityPerHAPair *int64 `min:"128" type:"integer"` // A recurring weekly time, in the format D:HH:MM. // @@ -8702,15 +9352,18 @@ func (s *CreateFileSystemOntapConfiguration) Validate() error { if s.FsxAdminPassword != nil && len(*s.FsxAdminPassword) < 8 { invalidParams.Add(request.NewErrParamMinLen("FsxAdminPassword", 8)) } + if s.HAPairs != nil && *s.HAPairs < 1 { + invalidParams.Add(request.NewErrParamMinValue("HAPairs", 1)) + } if s.PreferredSubnetId != nil && len(*s.PreferredSubnetId) < 15 { invalidParams.Add(request.NewErrParamMinLen("PreferredSubnetId", 15)) } - if s.ThroughputCapacity == nil { - invalidParams.Add(request.NewErrParamRequired("ThroughputCapacity")) - } if s.ThroughputCapacity != nil && *s.ThroughputCapacity < 8 { invalidParams.Add(request.NewErrParamMinValue("ThroughputCapacity", 8)) } + if s.ThroughputCapacityPerHAPair != nil && *s.ThroughputCapacityPerHAPair < 128 { + invalidParams.Add(request.NewErrParamMinValue("ThroughputCapacityPerHAPair", 128)) + } if s.WeeklyMaintenanceStartTime != nil && len(*s.WeeklyMaintenanceStartTime) < 7 { invalidParams.Add(request.NewErrParamMinLen("WeeklyMaintenanceStartTime", 7)) } @@ -8757,6 +9410,12 @@ func (s *CreateFileSystemOntapConfiguration) SetFsxAdminPassword(v string) *Crea return s } +// SetHAPairs sets the HAPairs field's value. +func (s *CreateFileSystemOntapConfiguration) SetHAPairs(v int64) *CreateFileSystemOntapConfiguration { + s.HAPairs = &v + return s +} + // SetPreferredSubnetId sets the PreferredSubnetId field's value. func (s *CreateFileSystemOntapConfiguration) SetPreferredSubnetId(v string) *CreateFileSystemOntapConfiguration { s.PreferredSubnetId = &v @@ -8775,6 +9434,12 @@ func (s *CreateFileSystemOntapConfiguration) SetThroughputCapacity(v int64) *Cre return s } +// SetThroughputCapacityPerHAPair sets the ThroughputCapacityPerHAPair field's value. +func (s *CreateFileSystemOntapConfiguration) SetThroughputCapacityPerHAPair(v int64) *CreateFileSystemOntapConfiguration { + s.ThroughputCapacityPerHAPair = &v + return s +} + // SetWeeklyMaintenanceStartTime sets the WeeklyMaintenanceStartTime field's value. func (s *CreateFileSystemOntapConfiguration) SetWeeklyMaintenanceStartTime(v string) *CreateFileSystemOntapConfiguration { s.WeeklyMaintenanceStartTime = &v @@ -9304,6 +9969,10 @@ func (s *CreateFileSystemWindowsConfiguration) SetWeeklyMaintenanceStartTime(v s type CreateOntapVolumeConfiguration struct { _ struct{} `type:"structure"` + // Use to specify configuration options for a volume’s storage aggregate or + // aggregates. + AggregateConfiguration *CreateAggregateConfiguration `type:"structure"` + // A boolean flag indicating whether tags for the volume should be copied to // backups. This value defaults to false. If it's set to true, all tags for // the volume are copied to all automatic and user-initiated backups where the @@ -9349,10 +10018,13 @@ type CreateOntapVolumeConfiguration struct { // and users consist of both NFS and SMB clients. SecurityStyle *string `type:"string" enum:"SecurityStyle"` + // The configured size of the volume, in bytes. + SizeInBytes *int64 `type:"long"` + // Specifies the size of the volume, in megabytes (MB), that you are creating. // - // SizeInMegabytes is a required field - SizeInMegabytes *int64 `type:"integer" required:"true"` + // Deprecated: This property is deprecated, use SizeInBytes instead + SizeInMegabytes *int64 `deprecated:"true" type:"integer"` // Specifies the SnapLock configuration for an FSx for ONTAP volume. SnaplockConfiguration *CreateSnaplockConfiguration `type:"structure"` @@ -9407,6 +10079,11 @@ type CreateOntapVolumeConfiguration struct { // * NONE - keeps a volume's data in the primary storage tier, preventing // it from being moved to the capacity pool tier. TieringPolicy *TieringPolicy `type:"structure"` + + // Use to specify the style of an ONTAP volume. For more information about FlexVols + // and FlexGroups, see Volume types (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-types.html) + // in Amazon FSx for NetApp ONTAP User Guide. + VolumeStyle *string `type:"string" enum:"VolumeStyle"` } // String returns the string representation. @@ -9433,9 +10110,6 @@ func (s *CreateOntapVolumeConfiguration) Validate() error { if s.JunctionPath != nil && len(*s.JunctionPath) < 1 { invalidParams.Add(request.NewErrParamMinLen("JunctionPath", 1)) } - if s.SizeInMegabytes == nil { - invalidParams.Add(request.NewErrParamRequired("SizeInMegabytes")) - } if s.SnapshotPolicy != nil && len(*s.SnapshotPolicy) < 1 { invalidParams.Add(request.NewErrParamMinLen("SnapshotPolicy", 1)) } @@ -9445,6 +10119,11 @@ func (s *CreateOntapVolumeConfiguration) Validate() error { if s.StorageVirtualMachineId != nil && len(*s.StorageVirtualMachineId) < 21 { invalidParams.Add(request.NewErrParamMinLen("StorageVirtualMachineId", 21)) } + if s.AggregateConfiguration != nil { + if err := s.AggregateConfiguration.Validate(); err != nil { + invalidParams.AddNested("AggregateConfiguration", err.(request.ErrInvalidParams)) + } + } if s.SnaplockConfiguration != nil { if err := s.SnaplockConfiguration.Validate(); err != nil { invalidParams.AddNested("SnaplockConfiguration", err.(request.ErrInvalidParams)) @@ -9462,6 +10141,12 @@ func (s *CreateOntapVolumeConfiguration) Validate() error { return nil } +// SetAggregateConfiguration sets the AggregateConfiguration field's value. +func (s *CreateOntapVolumeConfiguration) SetAggregateConfiguration(v *CreateAggregateConfiguration) *CreateOntapVolumeConfiguration { + s.AggregateConfiguration = v + return s +} + // SetCopyTagsToBackups sets the CopyTagsToBackups field's value. func (s *CreateOntapVolumeConfiguration) SetCopyTagsToBackups(v bool) *CreateOntapVolumeConfiguration { s.CopyTagsToBackups = &v @@ -9486,6 +10171,12 @@ func (s *CreateOntapVolumeConfiguration) SetSecurityStyle(v string) *CreateOntap return s } +// SetSizeInBytes sets the SizeInBytes field's value. +func (s *CreateOntapVolumeConfiguration) SetSizeInBytes(v int64) *CreateOntapVolumeConfiguration { + s.SizeInBytes = &v + return s +} + // SetSizeInMegabytes sets the SizeInMegabytes field's value. func (s *CreateOntapVolumeConfiguration) SetSizeInMegabytes(v int64) *CreateOntapVolumeConfiguration { s.SizeInMegabytes = &v @@ -9522,19 +10213,32 @@ func (s *CreateOntapVolumeConfiguration) SetTieringPolicy(v *TieringPolicy) *Cre return s } -// The snapshot configuration to use when creating an OpenZFS volume from a -// snapshot. +// SetVolumeStyle sets the VolumeStyle field's value. +func (s *CreateOntapVolumeConfiguration) SetVolumeStyle(v string) *CreateOntapVolumeConfiguration { + s.VolumeStyle = &v + return s +} + +// The snapshot configuration to use when creating an Amazon FSx for OpenZFS +// volume from a snapshot. type CreateOpenZFSOriginSnapshotConfiguration struct { _ struct{} `type:"structure"` - // The strategy used when copying data from the snapshot to the new volume. + // Specifies the strategy used when copying data from the snapshot to the new + // volume. // // * CLONE - The new volume references the data in the origin snapshot. Cloning // a snapshot is faster than copying data from the snapshot to a new volume // and doesn't consume disk throughput. However, the origin snapshot can't // be deleted if there is a volume using its copied data. // - // * FULL_COPY - Copies all data from the snapshot to the new volume. + // * FULL_COPY - Copies all data from the snapshot to the new volume. Specify + // this option to create the volume from a snapshot on another FSx for OpenZFS + // file system. + // + // The INCREMENTAL_COPY option is only for updating an existing volume by using + // a snapshot from another FSx for OpenZFS file system. For more information, + // see CopySnapshotAndUpdateVolume (https://docs.aws.amazon.com/fsx/latest/APIReference/API_CopySnapshotAndUpdateVolume.html). // // CopyStrategy is a required field CopyStrategy *string `type:"string" required:"true" enum:"OpenZFSCopyStrategy"` @@ -13836,6 +14540,60 @@ func (s *DescribeFileSystemsOutput) SetNextToken(v string) *DescribeFileSystemsO return s } +type DescribeSharedVpcConfigurationInput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeSharedVpcConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeSharedVpcConfigurationInput) GoString() string { + return s.String() +} + +type DescribeSharedVpcConfigurationOutput struct { + _ struct{} `type:"structure"` + + // Indicates whether participant accounts can create FSx for ONTAP Multi-AZ + // file systems in shared subnets. + EnableFsxRouteTableUpdatesFromParticipantAccounts *string `min:"4" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeSharedVpcConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeSharedVpcConfigurationOutput) GoString() string { + return s.String() +} + +// SetEnableFsxRouteTableUpdatesFromParticipantAccounts sets the EnableFsxRouteTableUpdatesFromParticipantAccounts field's value. +func (s *DescribeSharedVpcConfigurationOutput) SetEnableFsxRouteTableUpdatesFromParticipantAccounts(v string) *DescribeSharedVpcConfigurationOutput { + s.EnableFsxRouteTableUpdatesFromParticipantAccounts = &v + return s +} + type DescribeSnapshotsInput struct { _ struct{} `type:"structure"` @@ -14321,6 +15079,14 @@ type DiskIopsConfiguration struct { _ struct{} `type:"structure"` // The total number of SSD IOPS provisioned for the file system. + // + // The minimum and maximum values for this property depend on the value of HAPairs + // and StorageCapacity. The minimum value is calculated as StorageCapacity * + // 3 * HAPairs (3 IOPS per GB of StorageCapacity). The maximum value is calculated + // as 200,000 * HAPairs. + // + // Amazon FSx responds with an HTTP status code 400 (Bad Request) if the value + // of Iops is outside of the minimum or maximum values. Iops *int64 `type:"long"` // Specifies whether the file system is using the AUTOMATIC setting of SSD IOPS @@ -15345,6 +16111,9 @@ type FileSystem struct { ResourceARN *string `min:"8" type:"string"` // The storage capacity of the file system in gibibytes (GiB). + // + // Amazon FSx responds with an HTTP status code 400 (Bad Request) if the value + // of StorageCapacity is outside of the minimum or maximum values. StorageCapacity *int64 `type:"integer"` // The type of storage the file system is using. If set to SSD, the file system @@ -17407,6 +18176,9 @@ type OntapFileSystemConfiguration struct { // // * SINGLE_AZ_1 - A file system configured for Single-AZ redundancy. // + // * SINGLE_AZ_2 - A file system configured with multiple high-availability + // (HA) pairs for Single-AZ redundancy. + // // For information about the use cases for Multi-AZ and Single-AZ deployments, // refer to Choosing Multi-AZ or Single-AZ file system deployment (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-multiAZ.html). DeploymentType *string `type:"string" enum:"OntapDeploymentType"` @@ -17437,6 +18209,21 @@ type OntapFileSystemConfiguration struct { // String and GoString methods. FsxAdminPassword *string `min:"8" type:"string" sensitive:"true"` + // Specifies how many high-availability (HA) file server pairs the file system + // will have. The default value is 1. The value of this property affects the + // values of StorageCapacity, Iops, and ThroughputCapacity. For more information, + // see High-availability (HA) pairs (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/HA-pairs.html) + // in the FSx for ONTAP user guide. + // + // Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following + // conditions: + // + // * The value of HAPairs is less than 1 or greater than 6. + // + // * The value of HAPairs is greater than 1 and the value of DeploymentType + // is SINGLE_AZ_1 or MULTI_AZ_1. + HAPairs *int64 `min:"1" type:"integer"` + // The ID for a subnet. A subnet is a range of IP addresses in your virtual // private cloud (VPC). For more information, see VPC and subnets (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html) // in the Amazon VPC User Guide. @@ -17450,6 +18237,34 @@ type OntapFileSystemConfiguration struct { // (MBps). ThroughputCapacity *int64 `min:"8" type:"integer"` + // Use to choose the throughput capacity per HA pair. When the value of HAPairs + // is equal to 1, the value of ThroughputCapacityPerHAPair is the total throughput + // for the file system. + // + // This field and ThroughputCapacity cannot be defined in the same API call, + // but one is required. + // + // This field and ThroughputCapacity are the same for file systems with one + // HA pair. + // + // * For SINGLE_AZ_1 and MULTI_AZ_1, valid values are 128, 256, 512, 1024, + // 2048, or 4096 MBps. + // + // * For SINGLE_AZ_2, valid values are 3072 or 6144 MBps. + // + // Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following + // conditions: + // + // * The value of ThroughputCapacity and ThroughputCapacityPerHAPair are + // not the same value. + // + // * The value of deployment type is SINGLE_AZ_2 and ThroughputCapacity / + // ThroughputCapacityPerHAPair is a valid HA pair (a value between 2 and + // 6). + // + // * The value of ThroughputCapacityPerHAPair is not a valid value. + ThroughputCapacityPerHAPair *int64 `min:"128" type:"integer"` + // A recurring weekly time, in the format D:HH:MM. // // D is the day of the week, for which 1 represents Monday and 7 represents @@ -17523,6 +18338,12 @@ func (s *OntapFileSystemConfiguration) SetFsxAdminPassword(v string) *OntapFileS return s } +// SetHAPairs sets the HAPairs field's value. +func (s *OntapFileSystemConfiguration) SetHAPairs(v int64) *OntapFileSystemConfiguration { + s.HAPairs = &v + return s +} + // SetPreferredSubnetId sets the PreferredSubnetId field's value. func (s *OntapFileSystemConfiguration) SetPreferredSubnetId(v string) *OntapFileSystemConfiguration { s.PreferredSubnetId = &v @@ -17541,6 +18362,12 @@ func (s *OntapFileSystemConfiguration) SetThroughputCapacity(v int64) *OntapFile return s } +// SetThroughputCapacityPerHAPair sets the ThroughputCapacityPerHAPair field's value. +func (s *OntapFileSystemConfiguration) SetThroughputCapacityPerHAPair(v int64) *OntapFileSystemConfiguration { + s.ThroughputCapacityPerHAPair = &v + return s +} + // SetWeeklyMaintenanceStartTime sets the WeeklyMaintenanceStartTime field's value. func (s *OntapFileSystemConfiguration) SetWeeklyMaintenanceStartTime(v string) *OntapFileSystemConfiguration { s.WeeklyMaintenanceStartTime = &v @@ -17551,6 +18378,10 @@ func (s *OntapFileSystemConfiguration) SetWeeklyMaintenanceStartTime(v string) * type OntapVolumeConfiguration struct { _ struct{} `type:"structure"` + // This structure specifies configuration options for a volume’s storage aggregate + // or aggregates. + AggregateConfiguration *AggregateConfiguration `type:"structure"` + // A boolean flag indicating whether tags for the volume should be copied to // backups. This value defaults to false. If it's set to true, all tags for // the volume are copied to all automatic and user-initiated backups where the @@ -17596,6 +18427,9 @@ type OntapVolumeConfiguration struct { // The security style for the volume, which can be UNIX, NTFS, or MIXED. SecurityStyle *string `type:"string" enum:"SecurityStyle"` + // The configured size of the volume, in bytes. + SizeInBytes *int64 `type:"long"` + // The configured size of the volume, in megabytes (MBs). SizeInMegabytes *int64 `type:"integer"` @@ -17644,6 +18478,11 @@ type OntapVolumeConfiguration struct { // The volume's universally unique identifier (UUID). UUID *string `type:"string"` + + // Use to specify the style of an ONTAP volume. For more information about FlexVols + // and FlexGroups, see Volume types (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-types.html) + // in Amazon FSx for NetApp ONTAP User Guide. + VolumeStyle *string `type:"string" enum:"VolumeStyle"` } // String returns the string representation. @@ -17664,6 +18503,12 @@ func (s OntapVolumeConfiguration) GoString() string { return s.String() } +// SetAggregateConfiguration sets the AggregateConfiguration field's value. +func (s *OntapVolumeConfiguration) SetAggregateConfiguration(v *AggregateConfiguration) *OntapVolumeConfiguration { + s.AggregateConfiguration = v + return s +} + // SetCopyTagsToBackups sets the CopyTagsToBackups field's value. func (s *OntapVolumeConfiguration) SetCopyTagsToBackups(v bool) *OntapVolumeConfiguration { s.CopyTagsToBackups = &v @@ -17694,6 +18539,12 @@ func (s *OntapVolumeConfiguration) SetSecurityStyle(v string) *OntapVolumeConfig return s } +// SetSizeInBytes sets the SizeInBytes field's value. +func (s *OntapVolumeConfiguration) SetSizeInBytes(v int64) *OntapVolumeConfiguration { + s.SizeInBytes = &v + return s +} + // SetSizeInMegabytes sets the SizeInMegabytes field's value. func (s *OntapVolumeConfiguration) SetSizeInMegabytes(v int64) *OntapVolumeConfiguration { s.SizeInMegabytes = &v @@ -17742,6 +18593,12 @@ func (s *OntapVolumeConfiguration) SetUUID(v string) *OntapVolumeConfiguration { return s } +// SetVolumeStyle sets the VolumeStyle field's value. +func (s *OntapVolumeConfiguration) SetVolumeStyle(v string) *OntapVolumeConfiguration { + s.VolumeStyle = &v + return s +} + // Specifies who can mount an OpenZFS file system and the options available // while mounting the file system. type OpenZFSClientConfiguration struct { @@ -18194,8 +19051,8 @@ func (s *OpenZFSNfsExport) SetClientConfigurations(v []*OpenZFSClientConfigurati return s } -// The snapshot configuration to use when creating an OpenZFS volume from a -// snapshot. +// The snapshot configuration used when creating an Amazon FSx for OpenZFS volume +// from a snapshot. type OpenZFSOriginSnapshotConfiguration struct { _ struct{} `type:"structure"` @@ -18207,6 +19064,10 @@ type OpenZFSOriginSnapshotConfiguration struct { // be deleted if there is a volume using its copied data. // // * FULL_COPY - Copies all data from the snapshot to the new volume. + // + // The INCREMENTAL_COPY option is only for updating an existing volume by using + // a snapshot from another FSx for OpenZFS file system. For more information, + // see CopySnapshotAndUpdateVolume (https://docs.aws.amazon.com/fsx/latest/APIReference/API_CopySnapshotAndUpdateVolume.html). CopyStrategy *string `type:"string" enum:"OpenZFSCopyStrategy"` // The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify @@ -18352,10 +19213,19 @@ type OpenZFSVolumeConfiguration struct { // snapshots should be deleted when a volume is restored from snapshot. DeleteClonedVolumes *bool `type:"boolean"` + // A Boolean value indicating whether snapshot data that differs between the + // current state and the specified snapshot should be overwritten when a volume + // is restored from a snapshot. + DeleteIntermediateData *bool `type:"boolean"` + // A Boolean value indicating whether snapshots between the current state and // the specified snapshot should be deleted when a volume is restored from snapshot. DeleteIntermediateSnaphots *bool `type:"boolean"` + // The ID of the snapshot that's being copied or was most recently copied to + // the destination volume. + DestinationSnapshot *string `min:"11" type:"string"` + // The configuration object for mounting a Network File System (NFS) file system. NfsExports []*OpenZFSNfsExport `type:"list"` @@ -18378,6 +19248,13 @@ type OpenZFSVolumeConfiguration struct { // Specifies the ID of the snapshot to which the volume was restored. RestoreToSnapshot *string `min:"11" type:"string"` + // The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify + // Amazon Web Services resources. We require an ARN when you need to specify + // a resource unambiguously across all of Amazon Web Services. For more information, + // see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + // in the Amazon Web Services General Reference. + SourceSnapshotARN *string `min:"8" type:"string"` + // The maximum amount of storage in gibibtyes (GiB) that the volume can use // from its parent. You can specify a quota larger than the storage on the parent // volume. @@ -18430,12 +19307,24 @@ func (s *OpenZFSVolumeConfiguration) SetDeleteClonedVolumes(v bool) *OpenZFSVolu return s } +// SetDeleteIntermediateData sets the DeleteIntermediateData field's value. +func (s *OpenZFSVolumeConfiguration) SetDeleteIntermediateData(v bool) *OpenZFSVolumeConfiguration { + s.DeleteIntermediateData = &v + return s +} + // SetDeleteIntermediateSnaphots sets the DeleteIntermediateSnaphots field's value. func (s *OpenZFSVolumeConfiguration) SetDeleteIntermediateSnaphots(v bool) *OpenZFSVolumeConfiguration { s.DeleteIntermediateSnaphots = &v return s } +// SetDestinationSnapshot sets the DestinationSnapshot field's value. +func (s *OpenZFSVolumeConfiguration) SetDestinationSnapshot(v string) *OpenZFSVolumeConfiguration { + s.DestinationSnapshot = &v + return s +} + // SetNfsExports sets the NfsExports field's value. func (s *OpenZFSVolumeConfiguration) SetNfsExports(v []*OpenZFSNfsExport) *OpenZFSVolumeConfiguration { s.NfsExports = v @@ -18472,6 +19361,12 @@ func (s *OpenZFSVolumeConfiguration) SetRestoreToSnapshot(v string) *OpenZFSVolu return s } +// SetSourceSnapshotARN sets the SourceSnapshotARN field's value. +func (s *OpenZFSVolumeConfiguration) SetSourceSnapshotARN(v string) *OpenZFSVolumeConfiguration { + s.SourceSnapshotARN = &v + return s +} + // SetStorageCapacityQuotaGiB sets the StorageCapacityQuotaGiB field's value. func (s *OpenZFSVolumeConfiguration) SetStorageCapacityQuotaGiB(v int64) *OpenZFSVolumeConfiguration { s.StorageCapacityQuotaGiB = &v @@ -21598,12 +22493,43 @@ type UpdateFileSystemOntapConfiguration struct { RemoveRouteTableIds []*string `type:"list"` // Enter a new value to change the amount of throughput capacity for the file - // system. Throughput capacity is measured in megabytes per second (MBps). Valid - // values are 128, 256, 512, 1024, 2048, and 4096 MBps. For more information, - // see Managing throughput capacity (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-throughput-capacity.html) + // system in megabytes per second (MBps). For more information, see Managing + // throughput capacity (https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-throughput-capacity.html) // in the FSx for ONTAP User Guide. + // + // Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following + // conditions: + // + // * The value of ThroughputCapacity and ThroughputCapacityPerHAPair are + // not the same value. + // + // * The value of ThroughputCapacity when divided by the value of HAPairs + // is outside of the valid range for ThroughputCapacity. ThroughputCapacity *int64 `min:"8" type:"integer"` + // Use to choose the throughput capacity per HA pair, rather than the total + // throughput for the file system. + // + // This field and ThroughputCapacity cannot be defined in the same API call, + // but one is required. + // + // This field and ThroughputCapacity are the same for file systems with one + // HA pair. + // + // * For SINGLE_AZ_1 and MULTI_AZ_1, valid values are 128, 256, 512, 1024, + // 2048, or 4096 MBps. + // + // * For SINGLE_AZ_2, valid values are 3072 or 6144 MBps. + // + // Amazon FSx responds with an HTTP status code 400 (Bad Request) for the following + // conditions: + // + // The value of ThroughputCapacity and ThroughputCapacityPerHAPair are not the + // same value. + // + // The value of ThroughputCapacityPerHAPair is not a valid value. + ThroughputCapacityPerHAPair *int64 `min:"128" type:"integer"` + // A recurring weekly time, in the format D:HH:MM. // // D is the day of the week, for which 1 represents Monday and 7 represents @@ -21647,6 +22573,9 @@ func (s *UpdateFileSystemOntapConfiguration) Validate() error { if s.ThroughputCapacity != nil && *s.ThroughputCapacity < 8 { invalidParams.Add(request.NewErrParamMinValue("ThroughputCapacity", 8)) } + if s.ThroughputCapacityPerHAPair != nil && *s.ThroughputCapacityPerHAPair < 128 { + invalidParams.Add(request.NewErrParamMinValue("ThroughputCapacityPerHAPair", 128)) + } if s.WeeklyMaintenanceStartTime != nil && len(*s.WeeklyMaintenanceStartTime) < 7 { invalidParams.Add(request.NewErrParamMinLen("WeeklyMaintenanceStartTime", 7)) } @@ -21699,6 +22628,12 @@ func (s *UpdateFileSystemOntapConfiguration) SetThroughputCapacity(v int64) *Upd return s } +// SetThroughputCapacityPerHAPair sets the ThroughputCapacityPerHAPair field's value. +func (s *UpdateFileSystemOntapConfiguration) SetThroughputCapacityPerHAPair(v int64) *UpdateFileSystemOntapConfiguration { + s.ThroughputCapacityPerHAPair = &v + return s +} + // SetWeeklyMaintenanceStartTime sets the WeeklyMaintenanceStartTime field's value. func (s *UpdateFileSystemOntapConfiguration) SetWeeklyMaintenanceStartTime(v string) *UpdateFileSystemOntapConfiguration { s.WeeklyMaintenanceStartTime = &v @@ -22058,6 +22993,9 @@ type UpdateOntapVolumeConfiguration struct { // The security style for the volume, which can be UNIX, NTFS, or MIXED. SecurityStyle *string `type:"string" enum:"SecurityStyle"` + // The configured size of the volume, in bytes. + SizeInBytes *int64 `type:"long"` + // Specifies the size of the volume in megabytes. SizeInMegabytes *int64 `type:"integer"` @@ -22156,6 +23094,12 @@ func (s *UpdateOntapVolumeConfiguration) SetSecurityStyle(v string) *UpdateOntap return s } +// SetSizeInBytes sets the SizeInBytes field's value. +func (s *UpdateOntapVolumeConfiguration) SetSizeInBytes(v int64) *UpdateOntapVolumeConfiguration { + s.SizeInBytes = &v + return s +} + // SetSizeInMegabytes sets the SizeInMegabytes field's value. func (s *UpdateOntapVolumeConfiguration) SetSizeInMegabytes(v int64) *UpdateOntapVolumeConfiguration { s.SizeInMegabytes = &v @@ -22334,6 +23278,97 @@ func (s *UpdateOpenZFSVolumeConfiguration) SetUserAndGroupQuotas(v []*OpenZFSUse return s } +type UpdateSharedVpcConfigurationInput struct { + _ struct{} `type:"structure"` + + // (Optional) An idempotency token for resource creation, in a string of up + // to 63 ASCII characters. This token is automatically filled on your behalf + // when you use the Command Line Interface (CLI) or an Amazon Web Services SDK. + ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` + + // Specifies whether participant accounts can create FSx for ONTAP Multi-AZ + // file systems in shared subnets. Set to true to enable or false to disable. + EnableFsxRouteTableUpdatesFromParticipantAccounts *string `min:"4" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSharedVpcConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSharedVpcConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateSharedVpcConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateSharedVpcConfigurationInput"} + if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1)) + } + if s.EnableFsxRouteTableUpdatesFromParticipantAccounts != nil && len(*s.EnableFsxRouteTableUpdatesFromParticipantAccounts) < 4 { + invalidParams.Add(request.NewErrParamMinLen("EnableFsxRouteTableUpdatesFromParticipantAccounts", 4)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientRequestToken sets the ClientRequestToken field's value. +func (s *UpdateSharedVpcConfigurationInput) SetClientRequestToken(v string) *UpdateSharedVpcConfigurationInput { + s.ClientRequestToken = &v + return s +} + +// SetEnableFsxRouteTableUpdatesFromParticipantAccounts sets the EnableFsxRouteTableUpdatesFromParticipantAccounts field's value. +func (s *UpdateSharedVpcConfigurationInput) SetEnableFsxRouteTableUpdatesFromParticipantAccounts(v string) *UpdateSharedVpcConfigurationInput { + s.EnableFsxRouteTableUpdatesFromParticipantAccounts = &v + return s +} + +type UpdateSharedVpcConfigurationOutput struct { + _ struct{} `type:"structure"` + + // Indicates whether participant accounts can create FSx for ONTAP Multi-AZ + // file systems in shared subnets. + EnableFsxRouteTableUpdatesFromParticipantAccounts *string `min:"4" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSharedVpcConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSharedVpcConfigurationOutput) GoString() string { + return s.String() +} + +// SetEnableFsxRouteTableUpdatesFromParticipantAccounts sets the EnableFsxRouteTableUpdatesFromParticipantAccounts field's value. +func (s *UpdateSharedVpcConfigurationOutput) SetEnableFsxRouteTableUpdatesFromParticipantAccounts(v string) *UpdateSharedVpcConfigurationOutput { + s.EnableFsxRouteTableUpdatesFromParticipantAccounts = &v + return s +} + // Updates the SnapLock configuration for an existing FSx for ONTAP volume. type UpdateSnaplockConfiguration struct { _ struct{} `type:"structure"` @@ -22876,7 +23911,7 @@ func (s *UpdateVolumeOutput) SetVolume(v *Volume) *UpdateVolumeOutput { return s } -// Describes an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volume. +// Describes an Amazon FSx volume. type Volume struct { _ struct{} `type:"structure"` @@ -23642,9 +24677,8 @@ func ActiveDirectoryErrorType_Values() []string { // has been completed successfully, the parent FILE_SYSTEM_UPDATE action // status changes to COMPLETED. // -// - VOLUME_UPDATE - A volume update to an Amazon FSx for NetApp ONTAP or -// Amazon FSx for OpenZFS volume initiated from the Amazon FSx console, API -// (UpdateVolume), or CLI (update-volume). +// - VOLUME_UPDATE - A volume update to an Amazon FSx for OpenZFS volume +// initiated from the Amazon FSx console, API (UpdateVolume), or CLI (update-volume). // // - VOLUME_RESTORE - An Amazon FSx for OpenZFS volume is returned to the // state saved by the specified snapshot, initiated from an API (RestoreVolumeFromSnapshot) @@ -23655,6 +24689,15 @@ func ActiveDirectoryErrorType_Values() []string { // // - RELEASE_NFS_V3_LOCKS - Tracks the release of Network File System (NFS) // V3 locks on an Amazon FSx for OpenZFS file system. +// +// - VOLUME_INITIALIZE_WITH_SNAPSHOT - A volume is being created from a snapshot +// on a different FSx for OpenZFS file system. You can initiate this from +// the Amazon FSx console, API (CreateVolume), or CLI (create-volume) when +// using the using the FULL_COPY strategy. +// +// - VOLUME_UPDATE_WITH_SNAPSHOT - A volume is being updated from a snapshot +// on a different FSx for OpenZFS file system. You can initiate this from +// the Amazon FSx console, API (CopySnapshotAndUpdateVolume), or CLI (copy-snapshot-and-update-volume). const ( // AdministrativeActionTypeFileSystemUpdate is a AdministrativeActionType enum value AdministrativeActionTypeFileSystemUpdate = "FILE_SYSTEM_UPDATE" @@ -23691,6 +24734,12 @@ const ( // AdministrativeActionTypeMisconfiguredStateRecovery is a AdministrativeActionType enum value AdministrativeActionTypeMisconfiguredStateRecovery = "MISCONFIGURED_STATE_RECOVERY" + + // AdministrativeActionTypeVolumeUpdateWithSnapshot is a AdministrativeActionType enum value + AdministrativeActionTypeVolumeUpdateWithSnapshot = "VOLUME_UPDATE_WITH_SNAPSHOT" + + // AdministrativeActionTypeVolumeInitializeWithSnapshot is a AdministrativeActionType enum value + AdministrativeActionTypeVolumeInitializeWithSnapshot = "VOLUME_INITIALIZE_WITH_SNAPSHOT" ) // AdministrativeActionType_Values returns all elements of the AdministrativeActionType enum @@ -23708,6 +24757,8 @@ func AdministrativeActionType_Values() []string { AdministrativeActionTypeIopsOptimization, AdministrativeActionTypeStorageTypeOptimization, AdministrativeActionTypeMisconfiguredStateRecovery, + AdministrativeActionTypeVolumeUpdateWithSnapshot, + AdministrativeActionTypeVolumeInitializeWithSnapshot, } } @@ -24343,6 +25394,9 @@ const ( // OntapDeploymentTypeSingleAz1 is a OntapDeploymentType enum value OntapDeploymentTypeSingleAz1 = "SINGLE_AZ_1" + + // OntapDeploymentTypeSingleAz2 is a OntapDeploymentType enum value + OntapDeploymentTypeSingleAz2 = "SINGLE_AZ_2" ) // OntapDeploymentType_Values returns all elements of the OntapDeploymentType enum @@ -24350,6 +25404,7 @@ func OntapDeploymentType_Values() []string { return []string{ OntapDeploymentTypeMultiAz1, OntapDeploymentTypeSingleAz1, + OntapDeploymentTypeSingleAz2, } } @@ -24379,6 +25434,9 @@ const ( // OpenZFSCopyStrategyFullCopy is a OpenZFSCopyStrategy enum value OpenZFSCopyStrategyFullCopy = "FULL_COPY" + + // OpenZFSCopyStrategyIncrementalCopy is a OpenZFSCopyStrategy enum value + OpenZFSCopyStrategyIncrementalCopy = "INCREMENTAL_COPY" ) // OpenZFSCopyStrategy_Values returns all elements of the OpenZFSCopyStrategy enum @@ -24386,6 +25444,7 @@ func OpenZFSCopyStrategy_Values() []string { return []string{ OpenZFSCopyStrategyClone, OpenZFSCopyStrategyFullCopy, + OpenZFSCopyStrategyIncrementalCopy, } } @@ -24859,6 +25918,26 @@ func Unit_Values() []string { } } +const ( + // UpdateOpenZFSVolumeOptionDeleteIntermediateSnapshots is a UpdateOpenZFSVolumeOption enum value + UpdateOpenZFSVolumeOptionDeleteIntermediateSnapshots = "DELETE_INTERMEDIATE_SNAPSHOTS" + + // UpdateOpenZFSVolumeOptionDeleteClonedVolumes is a UpdateOpenZFSVolumeOption enum value + UpdateOpenZFSVolumeOptionDeleteClonedVolumes = "DELETE_CLONED_VOLUMES" + + // UpdateOpenZFSVolumeOptionDeleteIntermediateData is a UpdateOpenZFSVolumeOption enum value + UpdateOpenZFSVolumeOptionDeleteIntermediateData = "DELETE_INTERMEDIATE_DATA" +) + +// UpdateOpenZFSVolumeOption_Values returns all elements of the UpdateOpenZFSVolumeOption enum +func UpdateOpenZFSVolumeOption_Values() []string { + return []string{ + UpdateOpenZFSVolumeOptionDeleteIntermediateSnapshots, + UpdateOpenZFSVolumeOptionDeleteClonedVolumes, + UpdateOpenZFSVolumeOptionDeleteIntermediateData, + } +} + const ( // VolumeFilterNameFileSystemId is a VolumeFilterName enum value VolumeFilterNameFileSystemId = "file-system-id" @@ -24911,6 +25990,22 @@ func VolumeLifecycle_Values() []string { } } +const ( + // VolumeStyleFlexvol is a VolumeStyle enum value + VolumeStyleFlexvol = "FLEXVOL" + + // VolumeStyleFlexgroup is a VolumeStyle enum value + VolumeStyleFlexgroup = "FLEXGROUP" +) + +// VolumeStyle_Values returns all elements of the VolumeStyle enum +func VolumeStyle_Values() []string { + return []string{ + VolumeStyleFlexvol, + VolumeStyleFlexgroup, + } +} + const ( // VolumeTypeOntap is a VolumeType enum value VolumeTypeOntap = "ONTAP" diff --git a/service/fsx/fsxiface/interface.go b/service/fsx/fsxiface/interface.go index f39f64095c7..03ba4b28629 100644 --- a/service/fsx/fsxiface/interface.go +++ b/service/fsx/fsxiface/interface.go @@ -72,6 +72,10 @@ type FSxAPI interface { CopyBackupWithContext(aws.Context, *fsx.CopyBackupInput, ...request.Option) (*fsx.CopyBackupOutput, error) CopyBackupRequest(*fsx.CopyBackupInput) (*request.Request, *fsx.CopyBackupOutput) + CopySnapshotAndUpdateVolume(*fsx.CopySnapshotAndUpdateVolumeInput) (*fsx.CopySnapshotAndUpdateVolumeOutput, error) + CopySnapshotAndUpdateVolumeWithContext(aws.Context, *fsx.CopySnapshotAndUpdateVolumeInput, ...request.Option) (*fsx.CopySnapshotAndUpdateVolumeOutput, error) + CopySnapshotAndUpdateVolumeRequest(*fsx.CopySnapshotAndUpdateVolumeInput) (*request.Request, *fsx.CopySnapshotAndUpdateVolumeOutput) + CreateBackup(*fsx.CreateBackupInput) (*fsx.CreateBackupOutput, error) CreateBackupWithContext(aws.Context, *fsx.CreateBackupInput, ...request.Option) (*fsx.CreateBackupOutput, error) CreateBackupRequest(*fsx.CreateBackupInput) (*request.Request, *fsx.CreateBackupOutput) @@ -182,6 +186,10 @@ type FSxAPI interface { DescribeFileSystemsPages(*fsx.DescribeFileSystemsInput, func(*fsx.DescribeFileSystemsOutput, bool) bool) error DescribeFileSystemsPagesWithContext(aws.Context, *fsx.DescribeFileSystemsInput, func(*fsx.DescribeFileSystemsOutput, bool) bool, ...request.Option) error + DescribeSharedVpcConfiguration(*fsx.DescribeSharedVpcConfigurationInput) (*fsx.DescribeSharedVpcConfigurationOutput, error) + DescribeSharedVpcConfigurationWithContext(aws.Context, *fsx.DescribeSharedVpcConfigurationInput, ...request.Option) (*fsx.DescribeSharedVpcConfigurationOutput, error) + DescribeSharedVpcConfigurationRequest(*fsx.DescribeSharedVpcConfigurationInput) (*request.Request, *fsx.DescribeSharedVpcConfigurationOutput) + DescribeSnapshots(*fsx.DescribeSnapshotsInput) (*fsx.DescribeSnapshotsOutput, error) DescribeSnapshotsWithContext(aws.Context, *fsx.DescribeSnapshotsInput, ...request.Option) (*fsx.DescribeSnapshotsOutput, error) DescribeSnapshotsRequest(*fsx.DescribeSnapshotsInput) (*request.Request, *fsx.DescribeSnapshotsOutput) @@ -246,6 +254,10 @@ type FSxAPI interface { UpdateFileSystemWithContext(aws.Context, *fsx.UpdateFileSystemInput, ...request.Option) (*fsx.UpdateFileSystemOutput, error) UpdateFileSystemRequest(*fsx.UpdateFileSystemInput) (*request.Request, *fsx.UpdateFileSystemOutput) + UpdateSharedVpcConfiguration(*fsx.UpdateSharedVpcConfigurationInput) (*fsx.UpdateSharedVpcConfigurationOutput, error) + UpdateSharedVpcConfigurationWithContext(aws.Context, *fsx.UpdateSharedVpcConfigurationInput, ...request.Option) (*fsx.UpdateSharedVpcConfigurationOutput, error) + UpdateSharedVpcConfigurationRequest(*fsx.UpdateSharedVpcConfigurationInput) (*request.Request, *fsx.UpdateSharedVpcConfigurationOutput) + UpdateSnapshot(*fsx.UpdateSnapshotInput) (*fsx.UpdateSnapshotOutput, error) UpdateSnapshotWithContext(aws.Context, *fsx.UpdateSnapshotInput, ...request.Option) (*fsx.UpdateSnapshotOutput, error) UpdateSnapshotRequest(*fsx.UpdateSnapshotInput) (*request.Request, *fsx.UpdateSnapshotOutput) diff --git a/service/guardduty/api.go b/service/guardduty/api.go index 1d995dc8def..d8323b6b863 100644 --- a/service/guardduty/api.go +++ b/service/guardduty/api.go @@ -7372,6 +7372,38 @@ func (s *Administrator) SetRelationshipStatus(v string) *Administrator { return s } +// Information about the installed GuardDuty security agent. +type AgentDetails struct { + _ struct{} `type:"structure"` + + // Version of the installed GuardDuty security agent. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AgentDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AgentDetails) GoString() string { + return s.String() +} + +// SetVersion sets the Version field's value. +func (s *AgentDetails) SetVersion(v string) *AgentDetails { + s.Version = &v + return s +} + // Contains information about the anomalies. type Anomaly struct { _ struct{} `type:"structure"` @@ -8290,6 +8322,49 @@ func (s *Container) SetVolumeMounts(v []*VolumeMount) *Container { return s } +// Contains information about the Amazon EC2 instance that is running the Amazon +// ECS container. +type ContainerInstanceDetails struct { + _ struct{} `type:"structure"` + + // Represents total number of nodes in the Amazon ECS cluster. + CompatibleContainerInstances *int64 `locationName:"compatibleContainerInstances" type:"long"` + + // Represents the nodes in the Amazon ECS cluster that has a HEALTHY coverage + // status. + CoveredContainerInstances *int64 `locationName:"coveredContainerInstances" type:"long"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ContainerInstanceDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ContainerInstanceDetails) GoString() string { + return s.String() +} + +// SetCompatibleContainerInstances sets the CompatibleContainerInstances field's value. +func (s *ContainerInstanceDetails) SetCompatibleContainerInstances(v int64) *ContainerInstanceDetails { + s.CompatibleContainerInstances = &v + return s +} + +// SetCoveredContainerInstances sets the CoveredContainerInstances field's value. +func (s *ContainerInstanceDetails) SetCoveredContainerInstances(v int64) *ContainerInstanceDetails { + s.CoveredContainerInstances = &v + return s +} + // Contains information about the country where the remote IP address is located. type Country struct { _ struct{} `type:"structure"` @@ -8331,6 +8406,136 @@ func (s *Country) SetCountryName(v string) *Country { return s } +// This API is also used when you use GuardDuty Runtime Monitoring for your +// Amazon EC2 instances (currently in preview release) and is subject to change. +// +// Contains information about the Amazon EC2 instance runtime coverage details. +type CoverageEc2InstanceDetails struct { + _ struct{} `type:"structure"` + + // Information about the installed security agent. + AgentDetails *AgentDetails `locationName:"agentDetails" type:"structure"` + + // The cluster ARN of the Amazon ECS cluster running on the Amazon EC2 instance. + ClusterArn *string `locationName:"clusterArn" type:"string"` + + // The Amazon EC2 instance ID. + InstanceId *string `locationName:"instanceId" type:"string"` + + // The instance type of the Amazon EC2 instance. + InstanceType *string `locationName:"instanceType" type:"string"` + + // Indicates how the GuardDuty security agent is managed for this resource. + // + // * AUTO_MANAGED indicates that GuardDuty deploys and manages updates for + // this resource. + // + // * MANUAL indicates that you are responsible to deploy, update, and manage + // the GuardDuty security agent updates for this resource. + // + // The DISABLED status doesn't apply to Amazon EC2 instances and Amazon EKS + // clusters that run on Amazon EC2 instances. + ManagementType *string `locationName:"managementType" type:"string" enum:"ManagementType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CoverageEc2InstanceDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CoverageEc2InstanceDetails) GoString() string { + return s.String() +} + +// SetAgentDetails sets the AgentDetails field's value. +func (s *CoverageEc2InstanceDetails) SetAgentDetails(v *AgentDetails) *CoverageEc2InstanceDetails { + s.AgentDetails = v + return s +} + +// SetClusterArn sets the ClusterArn field's value. +func (s *CoverageEc2InstanceDetails) SetClusterArn(v string) *CoverageEc2InstanceDetails { + s.ClusterArn = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *CoverageEc2InstanceDetails) SetInstanceId(v string) *CoverageEc2InstanceDetails { + s.InstanceId = &v + return s +} + +// SetInstanceType sets the InstanceType field's value. +func (s *CoverageEc2InstanceDetails) SetInstanceType(v string) *CoverageEc2InstanceDetails { + s.InstanceType = &v + return s +} + +// SetManagementType sets the ManagementType field's value. +func (s *CoverageEc2InstanceDetails) SetManagementType(v string) *CoverageEc2InstanceDetails { + s.ManagementType = &v + return s +} + +// Contains information about Amazon ECS cluster runtime coverage details. +type CoverageEcsClusterDetails struct { + _ struct{} `type:"structure"` + + // The name of the Amazon ECS cluster. + ClusterName *string `locationName:"clusterName" type:"string"` + + // Information about the Amazon ECS container running on Amazon EC2 instance. + ContainerInstanceDetails *ContainerInstanceDetails `locationName:"containerInstanceDetails" type:"structure"` + + // Information about the Fargate details associated with the Amazon ECS cluster. + FargateDetails *FargateDetails `locationName:"fargateDetails" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CoverageEcsClusterDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CoverageEcsClusterDetails) GoString() string { + return s.String() +} + +// SetClusterName sets the ClusterName field's value. +func (s *CoverageEcsClusterDetails) SetClusterName(v string) *CoverageEcsClusterDetails { + s.ClusterName = &v + return s +} + +// SetContainerInstanceDetails sets the ContainerInstanceDetails field's value. +func (s *CoverageEcsClusterDetails) SetContainerInstanceDetails(v *ContainerInstanceDetails) *CoverageEcsClusterDetails { + s.ContainerInstanceDetails = v + return s +} + +// SetFargateDetails sets the FargateDetails field's value. +func (s *CoverageEcsClusterDetails) SetFargateDetails(v *FargateDetails) *CoverageEcsClusterDetails { + s.FargateDetails = v + return s +} + // Information about the EKS cluster that has a coverage status. type CoverageEksClusterDetails struct { _ struct{} `type:"structure"` @@ -8619,6 +8824,16 @@ func (s *CoverageResource) SetUpdatedAt(v time.Time) *CoverageResource { type CoverageResourceDetails struct { _ struct{} `type:"structure"` + // + // This API is also used when you use GuardDuty Runtime Monitoring for your + // Amazon EC2 instances (currently in preview release) and is subject to change. + // + // Information about the Amazon EC2 instance assessed for runtime coverage. + Ec2InstanceDetails *CoverageEc2InstanceDetails `locationName:"ec2InstanceDetails" type:"structure"` + + // Information about the Amazon ECS cluster that is assessed for runtime coverage. + EcsClusterDetails *CoverageEcsClusterDetails `locationName:"ecsClusterDetails" type:"structure"` + // EKS cluster details involved in the coverage statistics. EksClusterDetails *CoverageEksClusterDetails `locationName:"eksClusterDetails" type:"structure"` @@ -8644,6 +8859,18 @@ func (s CoverageResourceDetails) GoString() string { return s.String() } +// SetEc2InstanceDetails sets the Ec2InstanceDetails field's value. +func (s *CoverageResourceDetails) SetEc2InstanceDetails(v *CoverageEc2InstanceDetails) *CoverageResourceDetails { + s.Ec2InstanceDetails = v + return s +} + +// SetEcsClusterDetails sets the EcsClusterDetails field's value. +func (s *CoverageResourceDetails) SetEcsClusterDetails(v *CoverageEcsClusterDetails) *CoverageResourceDetails { + s.EcsClusterDetails = v + return s +} + // SetEksClusterDetails sets the EksClusterDetails field's value. func (s *CoverageResourceDetails) SetEksClusterDetails(v *CoverageEksClusterDetails) *CoverageResourceDetails { s.EksClusterDetails = v @@ -12717,6 +12944,57 @@ func (s *Evidence) SetThreatIntelligenceDetails(v []*ThreatIntelligenceDetail) * return s } +// Contains information about AWS Fargate details associated with an Amazon +// ECS cluster. +type FargateDetails struct { + _ struct{} `type:"structure"` + + // Runtime coverage issues identified for the resource running on AWS Fargate. + Issues []*string `locationName:"issues" type:"list"` + + // Indicates how the GuardDuty security agent is managed for this resource. + // + // * AUTO_MANAGED indicates that GuardDuty deploys and manages updates for + // this resource. + // + // * MANUAL indicates that you are responsible to deploy, update, and manage + // the GuardDuty security agent updates for this resource. + // + // * DISABLED indicates that the deployment of the GuardDuty security agent + // is disabled for this resource. + ManagementType *string `locationName:"managementType" type:"string" enum:"ManagementType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FargateDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FargateDetails) GoString() string { + return s.String() +} + +// SetIssues sets the Issues field's value. +func (s *FargateDetails) SetIssues(v []*string) *FargateDetails { + s.Issues = v + return s +} + +// SetManagementType sets the ManagementType field's value. +func (s *FargateDetails) SetManagementType(v string) *FargateDetails { + s.ManagementType = &v + return s +} + // Contains information about the condition. type FilterCondition struct { _ struct{} `type:"structure"` @@ -24503,6 +24781,18 @@ const ( // CoverageFilterCriterionKeyEksClusterName is a CoverageFilterCriterionKey enum value CoverageFilterCriterionKeyEksClusterName = "EKS_CLUSTER_NAME" + + // CoverageFilterCriterionKeyEcsClusterName is a CoverageFilterCriterionKey enum value + CoverageFilterCriterionKeyEcsClusterName = "ECS_CLUSTER_NAME" + + // CoverageFilterCriterionKeyAgentVersion is a CoverageFilterCriterionKey enum value + CoverageFilterCriterionKeyAgentVersion = "AGENT_VERSION" + + // CoverageFilterCriterionKeyInstanceId is a CoverageFilterCriterionKey enum value + CoverageFilterCriterionKeyInstanceId = "INSTANCE_ID" + + // CoverageFilterCriterionKeyClusterArn is a CoverageFilterCriterionKey enum value + CoverageFilterCriterionKeyClusterArn = "CLUSTER_ARN" ) // CoverageFilterCriterionKey_Values returns all elements of the CoverageFilterCriterionKey enum @@ -24515,6 +24805,10 @@ func CoverageFilterCriterionKey_Values() []string { CoverageFilterCriterionKeyAddonVersion, CoverageFilterCriterionKeyManagementType, CoverageFilterCriterionKeyEksClusterName, + CoverageFilterCriterionKeyEcsClusterName, + CoverageFilterCriterionKeyAgentVersion, + CoverageFilterCriterionKeyInstanceId, + CoverageFilterCriterionKeyClusterArn, } } @@ -24539,6 +24833,12 @@ const ( // CoverageSortKeyEksClusterName is a CoverageSortKey enum value CoverageSortKeyEksClusterName = "EKS_CLUSTER_NAME" + + // CoverageSortKeyEcsClusterName is a CoverageSortKey enum value + CoverageSortKeyEcsClusterName = "ECS_CLUSTER_NAME" + + // CoverageSortKeyInstanceId is a CoverageSortKey enum value + CoverageSortKeyInstanceId = "INSTANCE_ID" ) // CoverageSortKey_Values returns all elements of the CoverageSortKey enum @@ -24551,6 +24851,8 @@ func CoverageSortKey_Values() []string { CoverageSortKeyAddonVersion, CoverageSortKeyUpdatedAt, CoverageSortKeyEksClusterName, + CoverageSortKeyEcsClusterName, + CoverageSortKeyInstanceId, } } @@ -24700,6 +25002,9 @@ const ( // DetectorFeatureLambdaNetworkLogs is a DetectorFeature enum value DetectorFeatureLambdaNetworkLogs = "LAMBDA_NETWORK_LOGS" + + // DetectorFeatureRuntimeMonitoring is a DetectorFeature enum value + DetectorFeatureRuntimeMonitoring = "RUNTIME_MONITORING" ) // DetectorFeature_Values returns all elements of the DetectorFeature enum @@ -24711,6 +25016,7 @@ func DetectorFeature_Values() []string { DetectorFeatureRdsLoginEvents, DetectorFeatureEksRuntimeMonitoring, DetectorFeatureLambdaNetworkLogs, + DetectorFeatureRuntimeMonitoring, } } @@ -24741,6 +25047,9 @@ const ( // DetectorFeatureResultLambdaNetworkLogs is a DetectorFeatureResult enum value DetectorFeatureResultLambdaNetworkLogs = "LAMBDA_NETWORK_LOGS" + + // DetectorFeatureResultRuntimeMonitoring is a DetectorFeatureResult enum value + DetectorFeatureResultRuntimeMonitoring = "RUNTIME_MONITORING" ) // DetectorFeatureResult_Values returns all elements of the DetectorFeatureResult enum @@ -24755,6 +25064,7 @@ func DetectorFeatureResult_Values() []string { DetectorFeatureResultRdsLoginEvents, DetectorFeatureResultEksRuntimeMonitoring, DetectorFeatureResultLambdaNetworkLogs, + DetectorFeatureResultRuntimeMonitoring, } } @@ -24793,12 +25103,16 @@ func EbsSnapshotPreservation_Values() []string { const ( // FeatureAdditionalConfigurationEksAddonManagement is a FeatureAdditionalConfiguration enum value FeatureAdditionalConfigurationEksAddonManagement = "EKS_ADDON_MANAGEMENT" + + // FeatureAdditionalConfigurationEcsFargateAgentManagement is a FeatureAdditionalConfiguration enum value + FeatureAdditionalConfigurationEcsFargateAgentManagement = "ECS_FARGATE_AGENT_MANAGEMENT" ) // FeatureAdditionalConfiguration_Values returns all elements of the FeatureAdditionalConfiguration enum func FeatureAdditionalConfiguration_Values() []string { return []string{ FeatureAdditionalConfigurationEksAddonManagement, + FeatureAdditionalConfigurationEcsFargateAgentManagement, } } @@ -24909,6 +25223,12 @@ const ( // FreeTrialFeatureResultLambdaNetworkLogs is a FreeTrialFeatureResult enum value FreeTrialFeatureResultLambdaNetworkLogs = "LAMBDA_NETWORK_LOGS" + + // FreeTrialFeatureResultFargateRuntimeMonitoring is a FreeTrialFeatureResult enum value + FreeTrialFeatureResultFargateRuntimeMonitoring = "FARGATE_RUNTIME_MONITORING" + + // FreeTrialFeatureResultEc2RuntimeMonitoring is a FreeTrialFeatureResult enum value + FreeTrialFeatureResultEc2RuntimeMonitoring = "EC2_RUNTIME_MONITORING" ) // FreeTrialFeatureResult_Values returns all elements of the FreeTrialFeatureResult enum @@ -24923,6 +25243,8 @@ func FreeTrialFeatureResult_Values() []string { FreeTrialFeatureResultRdsLoginEvents, FreeTrialFeatureResultEksRuntimeMonitoring, FreeTrialFeatureResultLambdaNetworkLogs, + FreeTrialFeatureResultFargateRuntimeMonitoring, + FreeTrialFeatureResultEc2RuntimeMonitoring, } } @@ -25000,6 +25322,9 @@ const ( // ManagementTypeManual is a ManagementType enum value ManagementTypeManual = "MANUAL" + + // ManagementTypeDisabled is a ManagementType enum value + ManagementTypeDisabled = "DISABLED" ) // ManagementType_Values returns all elements of the ManagementType enum @@ -25007,6 +25332,7 @@ func ManagementType_Values() []string { return []string{ ManagementTypeAutoManaged, ManagementTypeManual, + ManagementTypeDisabled, } } @@ -25044,6 +25370,9 @@ const ( // OrgFeatureLambdaNetworkLogs is a OrgFeature enum value OrgFeatureLambdaNetworkLogs = "LAMBDA_NETWORK_LOGS" + + // OrgFeatureRuntimeMonitoring is a OrgFeature enum value + OrgFeatureRuntimeMonitoring = "RUNTIME_MONITORING" ) // OrgFeature_Values returns all elements of the OrgFeature enum @@ -25055,18 +25384,23 @@ func OrgFeature_Values() []string { OrgFeatureRdsLoginEvents, OrgFeatureEksRuntimeMonitoring, OrgFeatureLambdaNetworkLogs, + OrgFeatureRuntimeMonitoring, } } const ( // OrgFeatureAdditionalConfigurationEksAddonManagement is a OrgFeatureAdditionalConfiguration enum value OrgFeatureAdditionalConfigurationEksAddonManagement = "EKS_ADDON_MANAGEMENT" + + // OrgFeatureAdditionalConfigurationEcsFargateAgentManagement is a OrgFeatureAdditionalConfiguration enum value + OrgFeatureAdditionalConfigurationEcsFargateAgentManagement = "ECS_FARGATE_AGENT_MANAGEMENT" ) // OrgFeatureAdditionalConfiguration_Values returns all elements of the OrgFeatureAdditionalConfiguration enum func OrgFeatureAdditionalConfiguration_Values() []string { return []string{ OrgFeatureAdditionalConfigurationEksAddonManagement, + OrgFeatureAdditionalConfigurationEcsFargateAgentManagement, } } @@ -25153,12 +25487,20 @@ func PublishingStatus_Values() []string { const ( // ResourceTypeEks is a ResourceType enum value ResourceTypeEks = "EKS" + + // ResourceTypeEcs is a ResourceType enum value + ResourceTypeEcs = "ECS" + + // ResourceTypeEc2 is a ResourceType enum value + ResourceTypeEc2 = "EC2" ) // ResourceType_Values returns all elements of the ResourceType enum func ResourceType_Values() []string { return []string{ ResourceTypeEks, + ResourceTypeEcs, + ResourceTypeEc2, } } @@ -25327,6 +25669,12 @@ const ( // UsageFeatureEksRuntimeMonitoring is a UsageFeature enum value UsageFeatureEksRuntimeMonitoring = "EKS_RUNTIME_MONITORING" + + // UsageFeatureFargateRuntimeMonitoring is a UsageFeature enum value + UsageFeatureFargateRuntimeMonitoring = "FARGATE_RUNTIME_MONITORING" + + // UsageFeatureEc2RuntimeMonitoring is a UsageFeature enum value + UsageFeatureEc2RuntimeMonitoring = "EC2_RUNTIME_MONITORING" ) // UsageFeature_Values returns all elements of the UsageFeature enum @@ -25341,6 +25689,8 @@ func UsageFeature_Values() []string { UsageFeatureRdsLoginEvents, UsageFeatureLambdaNetworkLogs, UsageFeatureEksRuntimeMonitoring, + UsageFeatureFargateRuntimeMonitoring, + UsageFeatureEc2RuntimeMonitoring, } } diff --git a/service/guardduty/doc.go b/service/guardduty/doc.go index 6dff675c251..7f013ea1685 100644 --- a/service/guardduty/doc.go +++ b/service/guardduty/doc.go @@ -4,12 +4,14 @@ // requests to Amazon GuardDuty. // // Amazon GuardDuty is a continuous security monitoring service that analyzes -// and processes the following data sources: VPC flow logs, Amazon Web Services -// CloudTrail management event logs, CloudTrail S3 data event logs, EKS audit -// logs, DNS logs, and Amazon EBS volume data. It uses threat intelligence feeds, -// such as lists of malicious IPs and domains, and machine learning to identify -// unexpected, potentially unauthorized, and malicious activity within your -// Amazon Web Services environment. This can include issues like escalations +// and processes the following foundational data sources - VPC flow logs, Amazon +// Web Services CloudTrail management event logs, CloudTrail S3 data event logs, +// EKS audit logs, DNS logs, Amazon EBS volume data, runtime activity belonging +// to container workloads, such as Amazon EKS, Amazon ECS (including Amazon +// Web Services Fargate), and Amazon EC2 instances. It uses threat intelligence +// feeds, such as lists of malicious IPs and domains, and machine learning to +// identify unexpected, potentially unauthorized, and malicious activity within +// your Amazon Web Services environment. This can include issues like escalations // of privileges, uses of exposed credentials, or communication with malicious // IPs, domains, or presence of malware on your Amazon EC2 instances and container // workloads. For example, GuardDuty can detect compromised EC2 instances and diff --git a/service/iotfleetwise/api.go b/service/iotfleetwise/api.go index ebb4eda37a4..c2befcd901e 100644 --- a/service/iotfleetwise/api.go +++ b/service/iotfleetwise/api.go @@ -74,6 +74,9 @@ func (c *IoTFleetWise) AssociateVehicleFleetRequest(input *AssociateVehicleFleet // - ResourceNotFoundException // The resource wasn't found. // +// - LimitExceededException +// A service quota was exceeded. +// // - ThrottlingException // The request couldn't be completed due to throttling. // @@ -4962,17 +4965,18 @@ func (c *IoTFleetWise) RegisterAccountRequest(input *RegisterAccountInput) (req // DeleteServiceLinkedRole (https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) // in the Identity and Access Management API Reference. // -//

Registers your Amazon Web Services account, IAM, and Amazon Timestream -// resources so Amazon Web Services IoT FleetWise can transfer your vehicle -// data to the Amazon Web Services Cloud. For more information, including -// step-by-step procedures, see Setting -// up Amazon Web Services IoT FleetWise.

An Amazon Web -// Services account is not the same thing as a "user." An Amazon -// Web Services user is an identity that you create using Identity and -// Access Management (IAM) and takes the form of either an IAM -// user or an IAM -// role, both with credentials. A single Amazon Web Services account -// can, and typically does, contain many users and roles.

+// Registers your Amazon Web Services account, IAM, and Amazon Timestream resources +// so Amazon Web Services IoT FleetWise can transfer your vehicle data to the +// Amazon Web Services Cloud. For more information, including step-by-step procedures, +// see Setting up Amazon Web Services IoT FleetWise (https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/setting-up.html). +// +// An Amazon Web Services account is not the same thing as a "user." An Amazon +// Web Services user (https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html#intro-identity-users) +// is an identity that you create using Identity and Access Management (IAM) +// and takes the form of either an IAM user (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) +// or an IAM role, both with credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). +// A single Amazon Web Services account can, and typically does, contain many +// users and roles. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -5924,6 +5928,11 @@ type Actuator struct { // The specified possible minimum value of an actuator. Min *float64 `locationName:"min" type:"double"` + // The fully qualified name of the struct node for the actuator if the data + // type of the actuator is Struct or StructArray. For example, the struct fully + // qualified name of an actuator might be Vehicle.Door.LockStruct. + StructFullyQualifiedName *string `locationName:"structFullyQualifiedName" min:"1" type:"string"` + // The scientific unit for the actuator. Unit *string `locationName:"unit" type:"string"` } @@ -5964,6 +5973,9 @@ func (s *Actuator) Validate() error { if s.FullyQualifiedName == nil { invalidParams.Add(request.NewErrParamRequired("FullyQualifiedName")) } + if s.StructFullyQualifiedName != nil && len(*s.StructFullyQualifiedName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("StructFullyQualifiedName", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -6025,6 +6037,12 @@ func (s *Actuator) SetMin(v float64) *Actuator { return s } +// SetStructFullyQualifiedName sets the StructFullyQualifiedName field's value. +func (s *Actuator) SetStructFullyQualifiedName(v string) *Actuator { + s.StructFullyQualifiedName = &v + return s +} + // SetUnit sets the Unit field's value. func (s *Actuator) SetUnit(v string) *Actuator { s.Unit = &v @@ -6682,7 +6700,8 @@ type CanDbcDefinition struct { _ struct{} `type:"structure"` // A list of DBC files. You can upload only one DBC file for each network interface - // and specify up to five (inclusive) files in the list. + // and specify up to five (inclusive) files in the list. The DBC file can be + // a maximum size of 200 MB. // // CanDbcFiles is a required field CanDbcFiles [][]byte `locationName:"canDbcFiles" min:"1" type:"list" required:"true"` @@ -8597,6 +8616,211 @@ func (s *CreateVehicleResponseItem) SetVehicleName(v string) *CreateVehicleRespo return s } +// Represents a member of the complex data structure. The data type of the property +// can be either primitive or another struct. +type CustomProperty struct { + _ struct{} `type:"structure"` + + // A comment in addition to the description. + Comment *string `locationName:"comment" min:"1" type:"string"` + + // Indicates whether the property is binary data. + DataEncoding *string `locationName:"dataEncoding" type:"string" enum:"NodeDataEncoding"` + + // The data type for the custom property. + // + // DataType is a required field + DataType *string `locationName:"dataType" type:"string" required:"true" enum:"NodeDataType"` + + // The deprecation message for the node or the branch that was moved or deleted. + DeprecationMessage *string `locationName:"deprecationMessage" min:"1" type:"string"` + + // A brief description of the custom property. + Description *string `locationName:"description" min:"1" type:"string"` + + // The fully qualified name of the custom property. For example, the fully qualified + // name of a custom property might be ComplexDataTypes.VehicleDataTypes.SVMCamera.FPS. + // + // FullyQualifiedName is a required field + FullyQualifiedName *string `locationName:"fullyQualifiedName" type:"string" required:"true"` + + // The fully qualified name of the struct node for the custom property if the + // data type of the custom property is Struct or StructArray. + StructFullyQualifiedName *string `locationName:"structFullyQualifiedName" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CustomProperty) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CustomProperty) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CustomProperty) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CustomProperty"} + if s.Comment != nil && len(*s.Comment) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Comment", 1)) + } + if s.DataType == nil { + invalidParams.Add(request.NewErrParamRequired("DataType")) + } + if s.DeprecationMessage != nil && len(*s.DeprecationMessage) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DeprecationMessage", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.FullyQualifiedName == nil { + invalidParams.Add(request.NewErrParamRequired("FullyQualifiedName")) + } + if s.StructFullyQualifiedName != nil && len(*s.StructFullyQualifiedName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("StructFullyQualifiedName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetComment sets the Comment field's value. +func (s *CustomProperty) SetComment(v string) *CustomProperty { + s.Comment = &v + return s +} + +// SetDataEncoding sets the DataEncoding field's value. +func (s *CustomProperty) SetDataEncoding(v string) *CustomProperty { + s.DataEncoding = &v + return s +} + +// SetDataType sets the DataType field's value. +func (s *CustomProperty) SetDataType(v string) *CustomProperty { + s.DataType = &v + return s +} + +// SetDeprecationMessage sets the DeprecationMessage field's value. +func (s *CustomProperty) SetDeprecationMessage(v string) *CustomProperty { + s.DeprecationMessage = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CustomProperty) SetDescription(v string) *CustomProperty { + s.Description = &v + return s +} + +// SetFullyQualifiedName sets the FullyQualifiedName field's value. +func (s *CustomProperty) SetFullyQualifiedName(v string) *CustomProperty { + s.FullyQualifiedName = &v + return s +} + +// SetStructFullyQualifiedName sets the StructFullyQualifiedName field's value. +func (s *CustomProperty) SetStructFullyQualifiedName(v string) *CustomProperty { + s.StructFullyQualifiedName = &v + return s +} + +// The custom structure represents a complex or higher-order data structure. +type CustomStruct struct { + _ struct{} `type:"structure"` + + // A comment in addition to the description. + Comment *string `locationName:"comment" min:"1" type:"string"` + + // The deprecation message for the node or the branch that was moved or deleted. + DeprecationMessage *string `locationName:"deprecationMessage" min:"1" type:"string"` + + // A brief description of the custom structure. + Description *string `locationName:"description" min:"1" type:"string"` + + // The fully qualified name of the custom structure. For example, the fully + // qualified name of a custom structure might be ComplexDataTypes.VehicleDataTypes.SVMCamera. + // + // FullyQualifiedName is a required field + FullyQualifiedName *string `locationName:"fullyQualifiedName" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CustomStruct) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CustomStruct) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CustomStruct) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CustomStruct"} + if s.Comment != nil && len(*s.Comment) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Comment", 1)) + } + if s.DeprecationMessage != nil && len(*s.DeprecationMessage) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DeprecationMessage", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.FullyQualifiedName == nil { + invalidParams.Add(request.NewErrParamRequired("FullyQualifiedName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetComment sets the Comment field's value. +func (s *CustomStruct) SetComment(v string) *CustomStruct { + s.Comment = &v + return s +} + +// SetDeprecationMessage sets the DeprecationMessage field's value. +func (s *CustomStruct) SetDeprecationMessage(v string) *CustomStruct { + s.DeprecationMessage = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CustomStruct) SetDescription(v string) *CustomStruct { + s.Description = &v + return s +} + +// SetFullyQualifiedName sets the FullyQualifiedName field's value. +func (s *CustomStruct) SetFullyQualifiedName(v string) *CustomStruct { + s.FullyQualifiedName = &v + return s +} + // The destination where the Amazon Web Services IoT FleetWise campaign sends // data. You can send data to be stored in Amazon S3 or Amazon Timestream. type DataDestinationConfig struct { @@ -8683,6 +8907,10 @@ type DecoderManifestSummary struct { // LastModificationTime is a required field LastModificationTime *time.Time `locationName:"lastModificationTime" type:"timestamp" required:"true"` + // The detailed message for the decoder manifest. When a decoder manifest is + // in an INVALID status, the message contains detailed reason and help information. + Message *string `locationName:"message" min:"1" type:"string"` + // The ARN of a vehicle model (model manifest) associated with the decoder manifest. ModelManifestArn *string `locationName:"modelManifestArn" type:"string"` @@ -8737,6 +8965,12 @@ func (s *DecoderManifestSummary) SetLastModificationTime(v time.Time) *DecoderMa return s } +// SetMessage sets the Message field's value. +func (s *DecoderManifestSummary) SetMessage(v string) *DecoderManifestSummary { + s.Message = &v + return s +} + // SetModelManifestArn sets the ModelManifestArn field's value. func (s *DecoderManifestSummary) SetModelManifestArn(v string) *DecoderManifestSummary { s.ModelManifestArn = &v @@ -9923,6 +10157,10 @@ type GetDecoderManifestOutput struct { // LastModificationTime is a required field LastModificationTime *time.Time `locationName:"lastModificationTime" type:"timestamp" required:"true"` + // The detailed message for the decoder manifest. When a decoder manifest is + // in an INVALID status, the message contains detailed reason and help information. + Message *string `locationName:"message" min:"1" type:"string"` + // The ARN of a vehicle model (model manifest) associated with the decoder manifest. ModelManifestArn *string `locationName:"modelManifestArn" type:"string"` @@ -9979,6 +10217,12 @@ func (s *GetDecoderManifestOutput) SetLastModificationTime(v time.Time) *GetDeco return s } +// SetMessage sets the Message field's value. +func (s *GetDecoderManifestOutput) SetMessage(v string) *GetDecoderManifestOutput { + s.Message = &v + return s +} + // SetModelManifestArn sets the ModelManifestArn field's value. func (s *GetDecoderManifestOutput) SetModelManifestArn(v string) *GetDecoderManifestOutput { s.ModelManifestArn = &v @@ -10031,7 +10275,7 @@ type GetEncryptionConfigurationOutput struct { // EncryptionStatus is a required field EncryptionStatus *string `locationName:"encryptionStatus" type:"string" required:"true" enum:"EncryptionStatus"` - // The type of encryption. Set to KMS_BASED_ENCRYPTION to use an KMS key that + // The type of encryption. Set to KMS_BASED_ENCRYPTION to use a KMS key that // you own and manage. Set to FLEETWISE_DEFAULT_ENCRYPTION to use an Amazon // Web Services managed key that is owned by the Amazon Web Services IoT FleetWise // service account. @@ -11542,6 +11786,9 @@ func (s *InvalidSignal) SetReason(v string) *InvalidSignal { type InvalidSignalDecoder struct { _ struct{} `type:"structure"` + // The possible cause for the invalid signal decoder. + Hint *string `locationName:"hint" min:"1" type:"string"` + // The name of a signal decoder that isn't valid. Name *string `locationName:"name" min:"1" type:"string"` @@ -11567,6 +11814,12 @@ func (s InvalidSignalDecoder) GoString() string { return s.String() } +// SetHint sets the Hint field's value. +func (s *InvalidSignalDecoder) SetHint(v string) *InvalidSignalDecoder { + s.Hint = &v + return s +} + // SetName sets the Name field's value. func (s *InvalidSignalDecoder) SetName(v string) *InvalidSignalDecoder { s.Name = &v @@ -13181,6 +13434,78 @@ func (s *ListVehiclesOutput) SetVehicleSummaries(v []*VehicleSummary) *ListVehic return s } +// The decoding information for a specific message which support higher order +// data types. +type MessageSignal struct { + _ struct{} `type:"structure"` + + // The structured message for the message signal. It can be defined with either + // a primitiveMessageDefinition, structuredMessageListDefinition, or structuredMessageDefinition + // recursively. + // + // StructuredMessage is a required field + StructuredMessage *StructuredMessage `locationName:"structuredMessage" type:"structure" required:"true"` + + // The topic name for the message signal. It corresponds to topics in ROS 2. + // + // TopicName is a required field + TopicName *string `locationName:"topicName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MessageSignal) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MessageSignal) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MessageSignal) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MessageSignal"} + if s.StructuredMessage == nil { + invalidParams.Add(request.NewErrParamRequired("StructuredMessage")) + } + if s.TopicName == nil { + invalidParams.Add(request.NewErrParamRequired("TopicName")) + } + if s.TopicName != nil && len(*s.TopicName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TopicName", 1)) + } + if s.StructuredMessage != nil { + if err := s.StructuredMessage.Validate(); err != nil { + invalidParams.AddNested("StructuredMessage", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetStructuredMessage sets the StructuredMessage field's value. +func (s *MessageSignal) SetStructuredMessage(v *StructuredMessage) *MessageSignal { + s.StructuredMessage = v + return s +} + +// SetTopicName sets the TopicName field's value. +func (s *MessageSignal) SetTopicName(v string) *MessageSignal { + s.TopicName = &v + return s +} + // Information about a vehicle model (model manifest). You can use the API operation // to return this information about multiple vehicle models. type ModelManifestSummary struct { @@ -13351,6 +13676,10 @@ type NetworkInterface struct { // // Type is a required field Type *string `locationName:"type" type:"string" required:"true" enum:"NetworkInterfaceType"` + + // The vehicle middleware defined as a type of network interface. Examples of + // vehicle middleware include ROS2 and SOME/IP. + VehicleMiddleware *VehicleMiddleware `locationName:"vehicleMiddleware" type:"structure"` } // String returns the string representation. @@ -13393,6 +13722,11 @@ func (s *NetworkInterface) Validate() error { invalidParams.AddNested("ObdInterface", err.(request.ErrInvalidParams)) } } + if s.VehicleMiddleware != nil { + if err := s.VehicleMiddleware.Validate(); err != nil { + invalidParams.AddNested("VehicleMiddleware", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -13424,6 +13758,12 @@ func (s *NetworkInterface) SetType(v string) *NetworkInterface { return s } +// SetVehicleMiddleware sets the VehicleMiddleware field's value. +func (s *NetworkInterface) SetVehicleMiddleware(v *VehicleMiddleware) *NetworkInterface { + s.VehicleMiddleware = v + return s +} + // A general abstraction of a signal. A node can be specified as an actuator, // attribute, branch, or sensor. type Node struct { @@ -13444,11 +13784,18 @@ type Node struct { // A group of signals that are defined in a hierarchical structure. Branch *Branch `locationName:"branch" type:"structure"` + // Represents a member of the complex data structure. The datatype of the property + // can be either primitive or another struct. + Property *CustomProperty `locationName:"property" type:"structure"` + // An input component that reports the environmental condition of a vehicle. // // You can collect data about fluid levels, temperatures, vibrations, or battery // voltage from sensors. Sensor *Sensor `locationName:"sensor" type:"structure"` + + // Represents a complex or higher-order data structure. + Struct *CustomStruct `locationName:"struct" type:"structure"` } // String returns the string representation. @@ -13487,11 +13834,21 @@ func (s *Node) Validate() error { invalidParams.AddNested("Branch", err.(request.ErrInvalidParams)) } } + if s.Property != nil { + if err := s.Property.Validate(); err != nil { + invalidParams.AddNested("Property", err.(request.ErrInvalidParams)) + } + } if s.Sensor != nil { if err := s.Sensor.Validate(); err != nil { invalidParams.AddNested("Sensor", err.(request.ErrInvalidParams)) } } + if s.Struct != nil { + if err := s.Struct.Validate(); err != nil { + invalidParams.AddNested("Struct", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -13517,12 +13874,24 @@ func (s *Node) SetBranch(v *Branch) *Node { return s } +// SetProperty sets the Property field's value. +func (s *Node) SetProperty(v *CustomProperty) *Node { + s.Property = v + return s +} + // SetSensor sets the Sensor field's value. func (s *Node) SetSensor(v *Sensor) *Node { s.Sensor = v return s } +// SetStruct sets the Struct field's value. +func (s *Node) SetStruct(v *CustomStruct) *Node { + s.Struct = v + return s +} + // Information about the number of nodes and node types in a vehicle network. type NodeCounts struct { _ struct{} `type:"structure"` @@ -13539,8 +13908,14 @@ type NodeCounts struct { // The total number of nodes in a vehicle network. TotalNodes *int64 `locationName:"totalNodes" type:"integer"` + // The total properties for the node. + TotalProperties *int64 `locationName:"totalProperties" type:"integer"` + // The total number of nodes in a vehicle network that represent sensors. TotalSensors *int64 `locationName:"totalSensors" type:"integer"` + + // The total structure for the node. + TotalStructs *int64 `locationName:"totalStructs" type:"integer"` } // String returns the string representation. @@ -13585,14 +13960,26 @@ func (s *NodeCounts) SetTotalNodes(v int64) *NodeCounts { return s } +// SetTotalProperties sets the TotalProperties field's value. +func (s *NodeCounts) SetTotalProperties(v int64) *NodeCounts { + s.TotalProperties = &v + return s +} + // SetTotalSensors sets the TotalSensors field's value. func (s *NodeCounts) SetTotalSensors(v int64) *NodeCounts { s.TotalSensors = &v return s } -// A network interface that specifies the On-board diagnostic (OBD) II network -// protocol. +// SetTotalStructs sets the TotalStructs field's value. +func (s *NodeCounts) SetTotalStructs(v int64) *NodeCounts { + s.TotalStructs = &v + return s +} + +// A network interface that specifies the On-board diagnostic (OBD) II network +// protocol. type ObdInterface struct { _ struct{} `type:"structure"` @@ -13864,6 +14251,54 @@ func (s *ObdSignal) SetStartByte(v int64) *ObdSignal { return s } +// Represents a primitive type node of the complex data structure. +type PrimitiveMessageDefinition struct { + _ struct{} `type:"structure"` + + // Information about a PrimitiveMessage using a ROS 2 compliant primitive type + // message of the complex data structure. + Ros2PrimitiveMessageDefinition *ROS2PrimitiveMessageDefinition `locationName:"ros2PrimitiveMessageDefinition" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PrimitiveMessageDefinition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PrimitiveMessageDefinition) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PrimitiveMessageDefinition) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PrimitiveMessageDefinition"} + if s.Ros2PrimitiveMessageDefinition != nil { + if err := s.Ros2PrimitiveMessageDefinition.Validate(); err != nil { + invalidParams.AddNested("Ros2PrimitiveMessageDefinition", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRos2PrimitiveMessageDefinition sets the Ros2PrimitiveMessageDefinition field's value. +func (s *PrimitiveMessageDefinition) SetRos2PrimitiveMessageDefinition(v *ROS2PrimitiveMessageDefinition) *PrimitiveMessageDefinition { + s.Ros2PrimitiveMessageDefinition = v + return s +} + type PutEncryptionConfigurationInput struct { _ struct{} `type:"structure"` @@ -14049,6 +14484,82 @@ func (s PutLoggingOptionsOutput) GoString() string { return s.String() } +// Represents a ROS 2 compliant primitive type message of the complex data structure. +type ROS2PrimitiveMessageDefinition struct { + _ struct{} `type:"structure"` + + // The offset used to calculate the signal value. Combined with scaling, the + // calculation is value = raw_value * scaling + offset. + Offset *float64 `locationName:"offset" type:"double"` + + // The primitive type (integer, floating point, boolean, etc.) for the ROS 2 + // primitive message definition. + // + // PrimitiveType is a required field + PrimitiveType *string `locationName:"primitiveType" type:"string" required:"true" enum:"ROS2PrimitiveType"` + + // A multiplier used to decode the message. + Scaling *float64 `locationName:"scaling" type:"double"` + + // An optional attribute specifying the upper bound for STRING and WSTRING. + UpperBound *int64 `locationName:"upperBound" type:"long"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ROS2PrimitiveMessageDefinition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ROS2PrimitiveMessageDefinition) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ROS2PrimitiveMessageDefinition) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ROS2PrimitiveMessageDefinition"} + if s.PrimitiveType == nil { + invalidParams.Add(request.NewErrParamRequired("PrimitiveType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetOffset sets the Offset field's value. +func (s *ROS2PrimitiveMessageDefinition) SetOffset(v float64) *ROS2PrimitiveMessageDefinition { + s.Offset = &v + return s +} + +// SetPrimitiveType sets the PrimitiveType field's value. +func (s *ROS2PrimitiveMessageDefinition) SetPrimitiveType(v string) *ROS2PrimitiveMessageDefinition { + s.PrimitiveType = &v + return s +} + +// SetScaling sets the Scaling field's value. +func (s *ROS2PrimitiveMessageDefinition) SetScaling(v float64) *ROS2PrimitiveMessageDefinition { + s.Scaling = &v + return s +} + +// SetUpperBound sets the UpperBound field's value. +func (s *ROS2PrimitiveMessageDefinition) SetUpperBound(v int64) *ROS2PrimitiveMessageDefinition { + s.UpperBound = &v + return s +} + type RegisterAccountInput struct { _ struct{} `type:"structure"` @@ -14406,6 +14917,11 @@ type Sensor struct { // The specified possible minimum value of the sensor. Min *float64 `locationName:"min" type:"double"` + // The fully qualified name of the struct node for a sensor if the data type + // of the actuator is Struct or StructArray. For example, the struct fully qualified + // name of a sensor might be Vehicle.ADAS.CameraStruct. + StructFullyQualifiedName *string `locationName:"structFullyQualifiedName" min:"1" type:"string"` + // The scientific unit of measurement for data collected by the sensor. Unit *string `locationName:"unit" type:"string"` } @@ -14446,6 +14962,9 @@ func (s *Sensor) Validate() error { if s.FullyQualifiedName == nil { invalidParams.Add(request.NewErrParamRequired("FullyQualifiedName")) } + if s.StructFullyQualifiedName != nil && len(*s.StructFullyQualifiedName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("StructFullyQualifiedName", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -14501,6 +15020,12 @@ func (s *Sensor) SetMin(v float64) *Sensor { return s } +// SetStructFullyQualifiedName sets the StructFullyQualifiedName field's value. +func (s *Sensor) SetStructFullyQualifiedName(v string) *Sensor { + s.StructFullyQualifiedName = &v + return s +} + // SetUnit sets the Unit field's value. func (s *Sensor) SetUnit(v string) *Sensor { s.Unit = &v @@ -14588,6 +15113,10 @@ type SignalDecoder struct { // InterfaceId is a required field InterfaceId *string `locationName:"interfaceId" min:"1" type:"string" required:"true"` + // The decoding information for a specific message which supports higher order + // data types. + MessageSignal *MessageSignal `locationName:"messageSignal" type:"structure"` + // Information about signal decoder using the On-board diagnostic (OBD) II protocol. ObdSignal *ObdSignal `locationName:"obdSignal" type:"structure"` @@ -14641,6 +15170,11 @@ func (s *SignalDecoder) Validate() error { invalidParams.AddNested("CanSignal", err.(request.ErrInvalidParams)) } } + if s.MessageSignal != nil { + if err := s.MessageSignal.Validate(); err != nil { + invalidParams.AddNested("MessageSignal", err.(request.ErrInvalidParams)) + } + } if s.ObdSignal != nil { if err := s.ObdSignal.Validate(); err != nil { invalidParams.AddNested("ObdSignal", err.(request.ErrInvalidParams)) @@ -14671,6 +15205,12 @@ func (s *SignalDecoder) SetInterfaceId(v string) *SignalDecoder { return s } +// SetMessageSignal sets the MessageSignal field's value. +func (s *SignalDecoder) SetMessageSignal(v *MessageSignal) *SignalDecoder { + s.MessageSignal = v + return s +} + // SetObdSignal sets the ObdSignal field's value. func (s *SignalDecoder) SetObdSignal(v *ObdSignal) *SignalDecoder { s.ObdSignal = v @@ -14757,6 +15297,254 @@ func (s *SignalInformation) SetName(v string) *SignalInformation { return s } +// The structured message for the message signal. It can be defined with either +// a primitiveMessageDefinition, structuredMessageListDefinition, or structuredMessageDefinition +// recursively. +type StructuredMessage struct { + _ struct{} `type:"structure"` + + // Represents a primitive type node of the complex data structure. + PrimitiveMessageDefinition *PrimitiveMessageDefinition `locationName:"primitiveMessageDefinition" type:"structure"` + + // Represents a struct type node of the complex data structure. + StructuredMessageDefinition []*StructuredMessageFieldNameAndDataTypePair `locationName:"structuredMessageDefinition" min:"1" type:"list"` + + // Represents a list type node of the complex data structure. + StructuredMessageListDefinition *StructuredMessageListDefinition `locationName:"structuredMessageListDefinition" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StructuredMessage) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StructuredMessage) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StructuredMessage) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StructuredMessage"} + if s.StructuredMessageDefinition != nil && len(s.StructuredMessageDefinition) < 1 { + invalidParams.Add(request.NewErrParamMinLen("StructuredMessageDefinition", 1)) + } + if s.PrimitiveMessageDefinition != nil { + if err := s.PrimitiveMessageDefinition.Validate(); err != nil { + invalidParams.AddNested("PrimitiveMessageDefinition", err.(request.ErrInvalidParams)) + } + } + if s.StructuredMessageDefinition != nil { + for i, v := range s.StructuredMessageDefinition { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StructuredMessageDefinition", i), err.(request.ErrInvalidParams)) + } + } + } + if s.StructuredMessageListDefinition != nil { + if err := s.StructuredMessageListDefinition.Validate(); err != nil { + invalidParams.AddNested("StructuredMessageListDefinition", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPrimitiveMessageDefinition sets the PrimitiveMessageDefinition field's value. +func (s *StructuredMessage) SetPrimitiveMessageDefinition(v *PrimitiveMessageDefinition) *StructuredMessage { + s.PrimitiveMessageDefinition = v + return s +} + +// SetStructuredMessageDefinition sets the StructuredMessageDefinition field's value. +func (s *StructuredMessage) SetStructuredMessageDefinition(v []*StructuredMessageFieldNameAndDataTypePair) *StructuredMessage { + s.StructuredMessageDefinition = v + return s +} + +// SetStructuredMessageListDefinition sets the StructuredMessageListDefinition field's value. +func (s *StructuredMessage) SetStructuredMessageListDefinition(v *StructuredMessageListDefinition) *StructuredMessage { + s.StructuredMessageListDefinition = v + return s +} + +// Represents a StructureMessageName to DataType map element. +type StructuredMessageFieldNameAndDataTypePair struct { + _ struct{} `type:"structure"` + + // The data type. + // + // DataType is a required field + DataType *StructuredMessage `locationName:"dataType" type:"structure" required:"true"` + + // The field name of the structured message. It determines how a data value + // is referenced in the target language. + // + // FieldName is a required field + FieldName *string `locationName:"fieldName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StructuredMessageFieldNameAndDataTypePair) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StructuredMessageFieldNameAndDataTypePair) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StructuredMessageFieldNameAndDataTypePair) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StructuredMessageFieldNameAndDataTypePair"} + if s.DataType == nil { + invalidParams.Add(request.NewErrParamRequired("DataType")) + } + if s.FieldName == nil { + invalidParams.Add(request.NewErrParamRequired("FieldName")) + } + if s.FieldName != nil && len(*s.FieldName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FieldName", 1)) + } + if s.DataType != nil { + if err := s.DataType.Validate(); err != nil { + invalidParams.AddNested("DataType", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataType sets the DataType field's value. +func (s *StructuredMessageFieldNameAndDataTypePair) SetDataType(v *StructuredMessage) *StructuredMessageFieldNameAndDataTypePair { + s.DataType = v + return s +} + +// SetFieldName sets the FieldName field's value. +func (s *StructuredMessageFieldNameAndDataTypePair) SetFieldName(v string) *StructuredMessageFieldNameAndDataTypePair { + s.FieldName = &v + return s +} + +// Represents a list type node of the complex data structure. +type StructuredMessageListDefinition struct { + _ struct{} `type:"structure"` + + // The capacity of the structured message list definition when the list type + // is FIXED_CAPACITY or DYNAMIC_BOUNDED_CAPACITY. + Capacity *int64 `locationName:"capacity" type:"integer"` + + // The type of list of the structured message list definition. + // + // ListType is a required field + ListType *string `locationName:"listType" type:"string" required:"true" enum:"StructuredMessageListType"` + + // The member type of the structured message list definition. + // + // MemberType is a required field + MemberType *StructuredMessage `locationName:"memberType" type:"structure" required:"true"` + + // The name of the structured message list definition. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StructuredMessageListDefinition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StructuredMessageListDefinition) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StructuredMessageListDefinition) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StructuredMessageListDefinition"} + if s.ListType == nil { + invalidParams.Add(request.NewErrParamRequired("ListType")) + } + if s.MemberType == nil { + invalidParams.Add(request.NewErrParamRequired("MemberType")) + } + 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.MemberType != nil { + if err := s.MemberType.Validate(); err != nil { + invalidParams.AddNested("MemberType", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCapacity sets the Capacity field's value. +func (s *StructuredMessageListDefinition) SetCapacity(v int64) *StructuredMessageListDefinition { + s.Capacity = &v + return s +} + +// SetListType sets the ListType field's value. +func (s *StructuredMessageListDefinition) SetListType(v string) *StructuredMessageListDefinition { + s.ListType = &v + return s +} + +// SetMemberType sets the MemberType field's value. +func (s *StructuredMessageListDefinition) SetMemberType(v *StructuredMessage) *StructuredMessageListDefinition { + s.MemberType = v + return s +} + +// SetName sets the Name field's value. +func (s *StructuredMessageListDefinition) SetName(v string) *StructuredMessageListDefinition { + s.Name = &v + return s +} + // A set of key/value pairs that are used to manage the resource. type Tag struct { _ struct{} `type:"structure"` @@ -16573,6 +17361,71 @@ func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField { return s } +// The vehicle middleware defined as a type of network interface. Examples of +// vehicle middleware include ROS2 and SOME/IP. +type VehicleMiddleware struct { + _ struct{} `type:"structure"` + + // The name of the vehicle middleware. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` + + // The protocol name of the vehicle middleware. + // + // ProtocolName is a required field + ProtocolName *string `locationName:"protocolName" type:"string" required:"true" enum:"VehicleMiddlewareProtocol"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VehicleMiddleware) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s VehicleMiddleware) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *VehicleMiddleware) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "VehicleMiddleware"} + 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.ProtocolName == nil { + invalidParams.Add(request.NewErrParamRequired("ProtocolName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *VehicleMiddleware) SetName(v string) *VehicleMiddleware { + s.Name = &v + return s +} + +// SetProtocolName sets the ProtocolName field's value. +func (s *VehicleMiddleware) SetProtocolName(v string) *VehicleMiddleware { + s.ProtocolName = &v + return s +} + // Information about the state of a vehicle and how it relates to the status // of a campaign. type VehicleStatus struct { @@ -16861,6 +17714,12 @@ const ( // ManifestStatusDraft is a ManifestStatus enum value ManifestStatusDraft = "DRAFT" + + // ManifestStatusInvalid is a ManifestStatus enum value + ManifestStatusInvalid = "INVALID" + + // ManifestStatusValidating is a ManifestStatus enum value + ManifestStatusValidating = "VALIDATING" ) // ManifestStatus_Values returns all elements of the ManifestStatus enum @@ -16868,6 +17727,8 @@ func ManifestStatus_Values() []string { return []string{ ManifestStatusActive, ManifestStatusDraft, + ManifestStatusInvalid, + ManifestStatusValidating, } } @@ -16889,6 +17750,12 @@ const ( // NetworkInterfaceFailureReasonNetworkInterfaceToRemoveAssociatedWithSignals is a NetworkInterfaceFailureReason enum value NetworkInterfaceFailureReasonNetworkInterfaceToRemoveAssociatedWithSignals = "NETWORK_INTERFACE_TO_REMOVE_ASSOCIATED_WITH_SIGNALS" + + // NetworkInterfaceFailureReasonVehicleMiddlewareNetworkInterfaceInfoIsNull is a NetworkInterfaceFailureReason enum value + NetworkInterfaceFailureReasonVehicleMiddlewareNetworkInterfaceInfoIsNull = "VEHICLE_MIDDLEWARE_NETWORK_INTERFACE_INFO_IS_NULL" + + // NetworkInterfaceFailureReasonCustomerDecodedSignalNetworkInterfaceInfoIsNull is a NetworkInterfaceFailureReason enum value + NetworkInterfaceFailureReasonCustomerDecodedSignalNetworkInterfaceInfoIsNull = "CUSTOMER_DECODED_SIGNAL_NETWORK_INTERFACE_INFO_IS_NULL" ) // NetworkInterfaceFailureReason_Values returns all elements of the NetworkInterfaceFailureReason enum @@ -16900,6 +17767,8 @@ func NetworkInterfaceFailureReason_Values() []string { NetworkInterfaceFailureReasonCanNetworkInterfaceInfoIsNull, NetworkInterfaceFailureReasonObdNetworkInterfaceInfoIsNull, NetworkInterfaceFailureReasonNetworkInterfaceToRemoveAssociatedWithSignals, + NetworkInterfaceFailureReasonVehicleMiddlewareNetworkInterfaceInfoIsNull, + NetworkInterfaceFailureReasonCustomerDecodedSignalNetworkInterfaceInfoIsNull, } } @@ -16909,6 +17778,12 @@ const ( // NetworkInterfaceTypeObdInterface is a NetworkInterfaceType enum value NetworkInterfaceTypeObdInterface = "OBD_INTERFACE" + + // NetworkInterfaceTypeVehicleMiddleware is a NetworkInterfaceType enum value + NetworkInterfaceTypeVehicleMiddleware = "VEHICLE_MIDDLEWARE" + + // NetworkInterfaceTypeCustomerDecodedInterface is a NetworkInterfaceType enum value + NetworkInterfaceTypeCustomerDecodedInterface = "CUSTOMER_DECODED_INTERFACE" ) // NetworkInterfaceType_Values returns all elements of the NetworkInterfaceType enum @@ -16916,6 +17791,24 @@ func NetworkInterfaceType_Values() []string { return []string{ NetworkInterfaceTypeCanInterface, NetworkInterfaceTypeObdInterface, + NetworkInterfaceTypeVehicleMiddleware, + NetworkInterfaceTypeCustomerDecodedInterface, + } +} + +const ( + // NodeDataEncodingBinary is a NodeDataEncoding enum value + NodeDataEncodingBinary = "BINARY" + + // NodeDataEncodingTyped is a NodeDataEncoding enum value + NodeDataEncodingTyped = "TYPED" +) + +// NodeDataEncoding_Values returns all elements of the NodeDataEncoding enum +func NodeDataEncoding_Values() []string { + return []string{ + NodeDataEncodingBinary, + NodeDataEncodingTyped, } } @@ -17000,6 +17893,12 @@ const ( // NodeDataTypeUnknown is a NodeDataType enum value NodeDataTypeUnknown = "UNKNOWN" + + // NodeDataTypeStruct is a NodeDataType enum value + NodeDataTypeStruct = "STRUCT" + + // NodeDataTypeStructArray is a NodeDataType enum value + NodeDataTypeStructArray = "STRUCT_ARRAY" ) // NodeDataType_Values returns all elements of the NodeDataType enum @@ -17032,6 +17931,76 @@ func NodeDataType_Values() []string { NodeDataTypeStringArray, NodeDataTypeUnixTimestampArray, NodeDataTypeUnknown, + NodeDataTypeStruct, + NodeDataTypeStructArray, + } +} + +const ( + // ROS2PrimitiveTypeBool is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeBool = "BOOL" + + // ROS2PrimitiveTypeByte is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeByte = "BYTE" + + // ROS2PrimitiveTypeChar is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeChar = "CHAR" + + // ROS2PrimitiveTypeFloat32 is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeFloat32 = "FLOAT32" + + // ROS2PrimitiveTypeFloat64 is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeFloat64 = "FLOAT64" + + // ROS2PrimitiveTypeInt8 is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeInt8 = "INT8" + + // ROS2PrimitiveTypeUint8 is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeUint8 = "UINT8" + + // ROS2PrimitiveTypeInt16 is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeInt16 = "INT16" + + // ROS2PrimitiveTypeUint16 is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeUint16 = "UINT16" + + // ROS2PrimitiveTypeInt32 is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeInt32 = "INT32" + + // ROS2PrimitiveTypeUint32 is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeUint32 = "UINT32" + + // ROS2PrimitiveTypeInt64 is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeInt64 = "INT64" + + // ROS2PrimitiveTypeUint64 is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeUint64 = "UINT64" + + // ROS2PrimitiveTypeString is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeString = "STRING" + + // ROS2PrimitiveTypeWstring is a ROS2PrimitiveType enum value + ROS2PrimitiveTypeWstring = "WSTRING" +) + +// ROS2PrimitiveType_Values returns all elements of the ROS2PrimitiveType enum +func ROS2PrimitiveType_Values() []string { + return []string{ + ROS2PrimitiveTypeBool, + ROS2PrimitiveTypeByte, + ROS2PrimitiveTypeChar, + ROS2PrimitiveTypeFloat32, + ROS2PrimitiveTypeFloat64, + ROS2PrimitiveTypeInt8, + ROS2PrimitiveTypeUint8, + ROS2PrimitiveTypeInt16, + ROS2PrimitiveTypeUint16, + ROS2PrimitiveTypeInt32, + ROS2PrimitiveTypeUint32, + ROS2PrimitiveTypeInt64, + ROS2PrimitiveTypeUint64, + ROS2PrimitiveTypeString, + ROS2PrimitiveTypeWstring, } } @@ -17082,6 +18051,27 @@ const ( // SignalDecoderFailureReasonNoDecoderInfoForSignalInModel is a SignalDecoderFailureReason enum value SignalDecoderFailureReasonNoDecoderInfoForSignalInModel = "NO_DECODER_INFO_FOR_SIGNAL_IN_MODEL" + + // SignalDecoderFailureReasonMessageSignalInfoIsNull is a SignalDecoderFailureReason enum value + SignalDecoderFailureReasonMessageSignalInfoIsNull = "MESSAGE_SIGNAL_INFO_IS_NULL" + + // SignalDecoderFailureReasonSignalDecoderTypeIncompatibleWithMessageSignalType is a SignalDecoderFailureReason enum value + SignalDecoderFailureReasonSignalDecoderTypeIncompatibleWithMessageSignalType = "SIGNAL_DECODER_TYPE_INCOMPATIBLE_WITH_MESSAGE_SIGNAL_TYPE" + + // SignalDecoderFailureReasonStructSizeMismatch is a SignalDecoderFailureReason enum value + SignalDecoderFailureReasonStructSizeMismatch = "STRUCT_SIZE_MISMATCH" + + // SignalDecoderFailureReasonNoSignalInCatalogForDecoderSignal is a SignalDecoderFailureReason enum value + SignalDecoderFailureReasonNoSignalInCatalogForDecoderSignal = "NO_SIGNAL_IN_CATALOG_FOR_DECODER_SIGNAL" + + // SignalDecoderFailureReasonSignalDecoderIncompatibleWithSignalCatalog is a SignalDecoderFailureReason enum value + SignalDecoderFailureReasonSignalDecoderIncompatibleWithSignalCatalog = "SIGNAL_DECODER_INCOMPATIBLE_WITH_SIGNAL_CATALOG" + + // SignalDecoderFailureReasonEmptyMessageSignal is a SignalDecoderFailureReason enum value + SignalDecoderFailureReasonEmptyMessageSignal = "EMPTY_MESSAGE_SIGNAL" + + // SignalDecoderFailureReasonCustomerDecodedSignalInfoIsNull is a SignalDecoderFailureReason enum value + SignalDecoderFailureReasonCustomerDecodedSignalInfoIsNull = "CUSTOMER_DECODED_SIGNAL_INFO_IS_NULL" ) // SignalDecoderFailureReason_Values returns all elements of the SignalDecoderFailureReason enum @@ -17096,6 +18086,13 @@ func SignalDecoderFailureReason_Values() []string { SignalDecoderFailureReasonCanSignalInfoIsNull, SignalDecoderFailureReasonObdSignalInfoIsNull, SignalDecoderFailureReasonNoDecoderInfoForSignalInModel, + SignalDecoderFailureReasonMessageSignalInfoIsNull, + SignalDecoderFailureReasonSignalDecoderTypeIncompatibleWithMessageSignalType, + SignalDecoderFailureReasonStructSizeMismatch, + SignalDecoderFailureReasonNoSignalInCatalogForDecoderSignal, + SignalDecoderFailureReasonSignalDecoderIncompatibleWithSignalCatalog, + SignalDecoderFailureReasonEmptyMessageSignal, + SignalDecoderFailureReasonCustomerDecodedSignalInfoIsNull, } } @@ -17105,6 +18102,12 @@ const ( // SignalDecoderTypeObdSignal is a SignalDecoderType enum value SignalDecoderTypeObdSignal = "OBD_SIGNAL" + + // SignalDecoderTypeMessageSignal is a SignalDecoderType enum value + SignalDecoderTypeMessageSignal = "MESSAGE_SIGNAL" + + // SignalDecoderTypeCustomerDecodedSignal is a SignalDecoderType enum value + SignalDecoderTypeCustomerDecodedSignal = "CUSTOMER_DECODED_SIGNAL" ) // SignalDecoderType_Values returns all elements of the SignalDecoderType enum @@ -17112,6 +18115,8 @@ func SignalDecoderType_Values() []string { return []string{ SignalDecoderTypeCanSignal, SignalDecoderTypeObdSignal, + SignalDecoderTypeMessageSignal, + SignalDecoderTypeCustomerDecodedSignal, } } @@ -17147,6 +18152,26 @@ func StorageCompressionFormat_Values() []string { } } +const ( + // StructuredMessageListTypeFixedCapacity is a StructuredMessageListType enum value + StructuredMessageListTypeFixedCapacity = "FIXED_CAPACITY" + + // StructuredMessageListTypeDynamicUnboundedCapacity is a StructuredMessageListType enum value + StructuredMessageListTypeDynamicUnboundedCapacity = "DYNAMIC_UNBOUNDED_CAPACITY" + + // StructuredMessageListTypeDynamicBoundedCapacity is a StructuredMessageListType enum value + StructuredMessageListTypeDynamicBoundedCapacity = "DYNAMIC_BOUNDED_CAPACITY" +) + +// StructuredMessageListType_Values returns all elements of the StructuredMessageListType enum +func StructuredMessageListType_Values() []string { + return []string{ + StructuredMessageListTypeFixedCapacity, + StructuredMessageListTypeDynamicUnboundedCapacity, + StructuredMessageListTypeDynamicBoundedCapacity, + } +} + const ( // TriggerModeAlways is a TriggerMode enum value TriggerModeAlways = "ALWAYS" @@ -17243,6 +18268,18 @@ func VehicleAssociationBehavior_Values() []string { } } +const ( + // VehicleMiddlewareProtocolRos2 is a VehicleMiddlewareProtocol enum value + VehicleMiddlewareProtocolRos2 = "ROS_2" +) + +// VehicleMiddlewareProtocol_Values returns all elements of the VehicleMiddlewareProtocol enum +func VehicleMiddlewareProtocol_Values() []string { + return []string{ + VehicleMiddlewareProtocolRos2, + } +} + const ( // VehicleStateCreated is a VehicleState enum value VehicleStateCreated = "CREATED" diff --git a/service/lakeformation/api.go b/service/lakeformation/api.go index 6c6c37ef48e..9e70fa8c119 100644 --- a/service/lakeformation/api.go +++ b/service/lakeformation/api.go @@ -766,6 +766,101 @@ func (c *LakeFormation) CreateLFTagWithContext(ctx aws.Context, input *CreateLFT return out, req.Send() } +const opCreateLakeFormationIdentityCenterConfiguration = "CreateLakeFormationIdentityCenterConfiguration" + +// CreateLakeFormationIdentityCenterConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the CreateLakeFormationIdentityCenterConfiguration 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 CreateLakeFormationIdentityCenterConfiguration for more information on using the CreateLakeFormationIdentityCenterConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateLakeFormationIdentityCenterConfigurationRequest method. +// req, resp := client.CreateLakeFormationIdentityCenterConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/CreateLakeFormationIdentityCenterConfiguration +func (c *LakeFormation) CreateLakeFormationIdentityCenterConfigurationRequest(input *CreateLakeFormationIdentityCenterConfigurationInput) (req *request.Request, output *CreateLakeFormationIdentityCenterConfigurationOutput) { + op := &request.Operation{ + Name: opCreateLakeFormationIdentityCenterConfiguration, + HTTPMethod: "POST", + HTTPPath: "/CreateLakeFormationIdentityCenterConfiguration", + } + + if input == nil { + input = &CreateLakeFormationIdentityCenterConfigurationInput{} + } + + output = &CreateLakeFormationIdentityCenterConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateLakeFormationIdentityCenterConfiguration API operation for AWS Lake Formation. +// +// Creates an IAM Identity Center connection with Lake Formation to allow IAM +// Identity Center users and groups to access Data Catalog resources. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Lake Formation's +// API operation CreateLakeFormationIdentityCenterConfiguration for usage and error information. +// +// Returned Error Types: +// +// - InvalidInputException +// The input provided was not valid. +// +// - AlreadyExistsException +// A resource to be created or added already exists. +// +// - InternalServiceException +// An internal service error occurred. +// +// - OperationTimeoutException +// The operation timed out. +// +// - AccessDeniedException +// Access to a resource was denied. +// +// - ConcurrentModificationException +// Two processes are trying to modify a resource simultaneously. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/CreateLakeFormationIdentityCenterConfiguration +func (c *LakeFormation) CreateLakeFormationIdentityCenterConfiguration(input *CreateLakeFormationIdentityCenterConfigurationInput) (*CreateLakeFormationIdentityCenterConfigurationOutput, error) { + req, out := c.CreateLakeFormationIdentityCenterConfigurationRequest(input) + return out, req.Send() +} + +// CreateLakeFormationIdentityCenterConfigurationWithContext is the same as CreateLakeFormationIdentityCenterConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See CreateLakeFormationIdentityCenterConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *LakeFormation) CreateLakeFormationIdentityCenterConfigurationWithContext(ctx aws.Context, input *CreateLakeFormationIdentityCenterConfigurationInput, opts ...request.Option) (*CreateLakeFormationIdentityCenterConfigurationOutput, error) { + req, out := c.CreateLakeFormationIdentityCenterConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateLakeFormationOptIn = "CreateLakeFormationOptIn" // CreateLakeFormationOptInRequest generates a "aws/request.Request" representing the @@ -1049,6 +1144,101 @@ func (c *LakeFormation) DeleteLFTagWithContext(ctx aws.Context, input *DeleteLFT return out, req.Send() } +const opDeleteLakeFormationIdentityCenterConfiguration = "DeleteLakeFormationIdentityCenterConfiguration" + +// DeleteLakeFormationIdentityCenterConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteLakeFormationIdentityCenterConfiguration 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 DeleteLakeFormationIdentityCenterConfiguration for more information on using the DeleteLakeFormationIdentityCenterConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteLakeFormationIdentityCenterConfigurationRequest method. +// req, resp := client.DeleteLakeFormationIdentityCenterConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeleteLakeFormationIdentityCenterConfiguration +func (c *LakeFormation) DeleteLakeFormationIdentityCenterConfigurationRequest(input *DeleteLakeFormationIdentityCenterConfigurationInput) (req *request.Request, output *DeleteLakeFormationIdentityCenterConfigurationOutput) { + op := &request.Operation{ + Name: opDeleteLakeFormationIdentityCenterConfiguration, + HTTPMethod: "POST", + HTTPPath: "/DeleteLakeFormationIdentityCenterConfiguration", + } + + if input == nil { + input = &DeleteLakeFormationIdentityCenterConfigurationInput{} + } + + output = &DeleteLakeFormationIdentityCenterConfigurationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteLakeFormationIdentityCenterConfiguration API operation for AWS Lake Formation. +// +// Deletes an IAM Identity Center connection with Lake Formation. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Lake Formation's +// API operation DeleteLakeFormationIdentityCenterConfiguration for usage and error information. +// +// Returned Error Types: +// +// - InvalidInputException +// The input provided was not valid. +// +// - EntityNotFoundException +// A specified entity does not exist. +// +// - InternalServiceException +// An internal service error occurred. +// +// - OperationTimeoutException +// The operation timed out. +// +// - AccessDeniedException +// Access to a resource was denied. +// +// - ConcurrentModificationException +// Two processes are trying to modify a resource simultaneously. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeleteLakeFormationIdentityCenterConfiguration +func (c *LakeFormation) DeleteLakeFormationIdentityCenterConfiguration(input *DeleteLakeFormationIdentityCenterConfigurationInput) (*DeleteLakeFormationIdentityCenterConfigurationOutput, error) { + req, out := c.DeleteLakeFormationIdentityCenterConfigurationRequest(input) + return out, req.Send() +} + +// DeleteLakeFormationIdentityCenterConfigurationWithContext is the same as DeleteLakeFormationIdentityCenterConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteLakeFormationIdentityCenterConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *LakeFormation) DeleteLakeFormationIdentityCenterConfigurationWithContext(ctx aws.Context, input *DeleteLakeFormationIdentityCenterConfigurationInput, opts ...request.Option) (*DeleteLakeFormationIdentityCenterConfigurationOutput, error) { + req, out := c.DeleteLakeFormationIdentityCenterConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteLakeFormationOptIn = "DeleteLakeFormationOptIn" // DeleteLakeFormationOptInRequest generates a "aws/request.Request" representing the @@ -1347,6 +1537,97 @@ func (c *LakeFormation) DeregisterResourceWithContext(ctx aws.Context, input *De return out, req.Send() } +const opDescribeLakeFormationIdentityCenterConfiguration = "DescribeLakeFormationIdentityCenterConfiguration" + +// DescribeLakeFormationIdentityCenterConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DescribeLakeFormationIdentityCenterConfiguration 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 DescribeLakeFormationIdentityCenterConfiguration for more information on using the DescribeLakeFormationIdentityCenterConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DescribeLakeFormationIdentityCenterConfigurationRequest method. +// req, resp := client.DescribeLakeFormationIdentityCenterConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DescribeLakeFormationIdentityCenterConfiguration +func (c *LakeFormation) DescribeLakeFormationIdentityCenterConfigurationRequest(input *DescribeLakeFormationIdentityCenterConfigurationInput) (req *request.Request, output *DescribeLakeFormationIdentityCenterConfigurationOutput) { + op := &request.Operation{ + Name: opDescribeLakeFormationIdentityCenterConfiguration, + HTTPMethod: "POST", + HTTPPath: "/DescribeLakeFormationIdentityCenterConfiguration", + } + + if input == nil { + input = &DescribeLakeFormationIdentityCenterConfigurationInput{} + } + + output = &DescribeLakeFormationIdentityCenterConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeLakeFormationIdentityCenterConfiguration API operation for AWS Lake Formation. +// +// Retrieves the instance ARN and application ARN for the connection. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Lake Formation's +// API operation DescribeLakeFormationIdentityCenterConfiguration for usage and error information. +// +// Returned Error Types: +// +// - InvalidInputException +// The input provided was not valid. +// +// - EntityNotFoundException +// A specified entity does not exist. +// +// - InternalServiceException +// An internal service error occurred. +// +// - OperationTimeoutException +// The operation timed out. +// +// - AccessDeniedException +// Access to a resource was denied. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DescribeLakeFormationIdentityCenterConfiguration +func (c *LakeFormation) DescribeLakeFormationIdentityCenterConfiguration(input *DescribeLakeFormationIdentityCenterConfigurationInput) (*DescribeLakeFormationIdentityCenterConfigurationOutput, error) { + req, out := c.DescribeLakeFormationIdentityCenterConfigurationRequest(input) + return out, req.Send() +} + +// DescribeLakeFormationIdentityCenterConfigurationWithContext is the same as DescribeLakeFormationIdentityCenterConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeLakeFormationIdentityCenterConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *LakeFormation) DescribeLakeFormationIdentityCenterConfigurationWithContext(ctx aws.Context, input *DescribeLakeFormationIdentityCenterConfigurationInput, opts ...request.Option) (*DescribeLakeFormationIdentityCenterConfigurationOutput, error) { + req, out := c.DescribeLakeFormationIdentityCenterConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeResource = "DescribeResource" // DescribeResourceRequest generates a "aws/request.Request" representing the @@ -5109,6 +5390,101 @@ func (c *LakeFormation) UpdateLFTagWithContext(ctx aws.Context, input *UpdateLFT return out, req.Send() } +const opUpdateLakeFormationIdentityCenterConfiguration = "UpdateLakeFormationIdentityCenterConfiguration" + +// UpdateLakeFormationIdentityCenterConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the UpdateLakeFormationIdentityCenterConfiguration 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 UpdateLakeFormationIdentityCenterConfiguration for more information on using the UpdateLakeFormationIdentityCenterConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateLakeFormationIdentityCenterConfigurationRequest method. +// req, resp := client.UpdateLakeFormationIdentityCenterConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateLakeFormationIdentityCenterConfiguration +func (c *LakeFormation) UpdateLakeFormationIdentityCenterConfigurationRequest(input *UpdateLakeFormationIdentityCenterConfigurationInput) (req *request.Request, output *UpdateLakeFormationIdentityCenterConfigurationOutput) { + op := &request.Operation{ + Name: opUpdateLakeFormationIdentityCenterConfiguration, + HTTPMethod: "POST", + HTTPPath: "/UpdateLakeFormationIdentityCenterConfiguration", + } + + if input == nil { + input = &UpdateLakeFormationIdentityCenterConfigurationInput{} + } + + output = &UpdateLakeFormationIdentityCenterConfigurationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateLakeFormationIdentityCenterConfiguration API operation for AWS Lake Formation. +// +// Updates the IAM Identity Center connection 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 +// the error. +// +// See the AWS API reference guide for AWS Lake Formation's +// API operation UpdateLakeFormationIdentityCenterConfiguration for usage and error information. +// +// Returned Error Types: +// +// - InvalidInputException +// The input provided was not valid. +// +// - EntityNotFoundException +// A specified entity does not exist. +// +// - InternalServiceException +// An internal service error occurred. +// +// - OperationTimeoutException +// The operation timed out. +// +// - AccessDeniedException +// Access to a resource was denied. +// +// - ConcurrentModificationException +// Two processes are trying to modify a resource simultaneously. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateLakeFormationIdentityCenterConfiguration +func (c *LakeFormation) UpdateLakeFormationIdentityCenterConfiguration(input *UpdateLakeFormationIdentityCenterConfigurationInput) (*UpdateLakeFormationIdentityCenterConfigurationOutput, error) { + req, out := c.UpdateLakeFormationIdentityCenterConfigurationRequest(input) + return out, req.Send() +} + +// UpdateLakeFormationIdentityCenterConfigurationWithContext is the same as UpdateLakeFormationIdentityCenterConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateLakeFormationIdentityCenterConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *LakeFormation) UpdateLakeFormationIdentityCenterConfigurationWithContext(ctx aws.Context, input *UpdateLakeFormationIdentityCenterConfigurationInput, opts ...request.Option) (*UpdateLakeFormationIdentityCenterConfigurationOutput, error) { + req, out := c.UpdateLakeFormationIdentityCenterConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateResource = "UpdateResource" // UpdateResourceRequest generates a "aws/request.Request" representing the @@ -6792,6 +7168,111 @@ func (s CreateLFTagOutput) GoString() string { return s.String() } +type CreateLakeFormationIdentityCenterConfigurationInput struct { + _ struct{} `type:"structure"` + + // The identifier for the Data Catalog. By default, the account ID. The Data + // Catalog is the persistent metadata store. It contains database definitions, + // table definitions, view definitions, and other control information to manage + // your Lake Formation environment. + CatalogId *string `min:"1" type:"string"` + + // A list of the account IDs of Amazon Web Services accounts of third-party + // applications that are allowed to to access data managed by Lake Formation. + ExternalFiltering *ExternalFilteringConfiguration `type:"structure"` + + // The ARN of the IAM Identity Center instance for which the operation will + // be executed. For more information about ARNs, see Amazon Resource Names (ARNs) + // and Amazon Web Services Service Namespaces in the Amazon Web Services General + // Reference. + InstanceArn *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateLakeFormationIdentityCenterConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateLakeFormationIdentityCenterConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateLakeFormationIdentityCenterConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateLakeFormationIdentityCenterConfigurationInput"} + if s.CatalogId != nil && len(*s.CatalogId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1)) + } + if s.ExternalFiltering != nil { + if err := s.ExternalFiltering.Validate(); err != nil { + invalidParams.AddNested("ExternalFiltering", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCatalogId sets the CatalogId field's value. +func (s *CreateLakeFormationIdentityCenterConfigurationInput) SetCatalogId(v string) *CreateLakeFormationIdentityCenterConfigurationInput { + s.CatalogId = &v + return s +} + +// SetExternalFiltering sets the ExternalFiltering field's value. +func (s *CreateLakeFormationIdentityCenterConfigurationInput) SetExternalFiltering(v *ExternalFilteringConfiguration) *CreateLakeFormationIdentityCenterConfigurationInput { + s.ExternalFiltering = v + return s +} + +// SetInstanceArn sets the InstanceArn field's value. +func (s *CreateLakeFormationIdentityCenterConfigurationInput) SetInstanceArn(v string) *CreateLakeFormationIdentityCenterConfigurationInput { + s.InstanceArn = &v + return s +} + +type CreateLakeFormationIdentityCenterConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the integrated application. + ApplicationArn *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateLakeFormationIdentityCenterConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateLakeFormationIdentityCenterConfigurationOutput) GoString() string { + return s.String() +} + +// SetApplicationArn sets the ApplicationArn field's value. +func (s *CreateLakeFormationIdentityCenterConfigurationOutput) SetApplicationArn(v string) *CreateLakeFormationIdentityCenterConfigurationOutput { + s.ApplicationArn = &v + return s +} + type CreateLakeFormationOptInInput struct { _ struct{} `type:"structure"` @@ -7224,8 +7705,8 @@ type DataLakeSettings struct { ExternalDataFilteringAllowList []*DataLakePrincipal `type:"list"` // A key-value map that provides an additional configuration on your data lake. - // CrossAccountVersion is the key you can configure in the Parameters field. - // Accepted values for the CrossAccountVersion key are 1, 2, and 3. + // CROSS_ACCOUNT_VERSION is the key you can configure in the Parameters field. + // Accepted values for the CrossAccountVersion key are 1, 2, 3, and 4. Parameters map[string]*string `type:"map"` // A list of Lake Formation principals with only view access to the resources, @@ -7572,19 +8053,105 @@ func (s *DeleteDataCellsFilterInput) SetName(v string) *DeleteDataCellsFilterInp return s } -// SetTableCatalogId sets the TableCatalogId field's value. -func (s *DeleteDataCellsFilterInput) SetTableCatalogId(v string) *DeleteDataCellsFilterInput { - s.TableCatalogId = &v +// SetTableCatalogId sets the TableCatalogId field's value. +func (s *DeleteDataCellsFilterInput) SetTableCatalogId(v string) *DeleteDataCellsFilterInput { + s.TableCatalogId = &v + return s +} + +// SetTableName sets the TableName field's value. +func (s *DeleteDataCellsFilterInput) SetTableName(v string) *DeleteDataCellsFilterInput { + s.TableName = &v + return s +} + +type DeleteDataCellsFilterOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteDataCellsFilterOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteDataCellsFilterOutput) GoString() string { + return s.String() +} + +type DeleteLFTagInput struct { + _ struct{} `type:"structure"` + + // The identifier for the Data Catalog. By default, the account ID. The Data + // Catalog is the persistent metadata store. It contains database definitions, + // table definitions, and other control information to manage your Lake Formation + // environment. + CatalogId *string `min:"1" type:"string"` + + // The key-name for the LF-tag to delete. + // + // TagKey is a required field + TagKey *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLFTagInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteLFTagInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteLFTagInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteLFTagInput"} + if s.CatalogId != nil && len(*s.CatalogId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1)) + } + if s.TagKey == nil { + invalidParams.Add(request.NewErrParamRequired("TagKey")) + } + if s.TagKey != nil && len(*s.TagKey) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TagKey", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCatalogId sets the CatalogId field's value. +func (s *DeleteLFTagInput) SetCatalogId(v string) *DeleteLFTagInput { + s.CatalogId = &v return s } -// SetTableName sets the TableName field's value. -func (s *DeleteDataCellsFilterInput) SetTableName(v string) *DeleteDataCellsFilterInput { - s.TableName = &v +// SetTagKey sets the TagKey field's value. +func (s *DeleteLFTagInput) SetTagKey(v string) *DeleteLFTagInput { + s.TagKey = &v return s } -type DeleteDataCellsFilterOutput struct { +type DeleteLFTagOutput struct { _ struct{} `type:"structure"` } @@ -7593,7 +8160,7 @@ type DeleteDataCellsFilterOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteDataCellsFilterOutput) String() string { +func (s DeleteLFTagOutput) String() string { return awsutil.Prettify(s) } @@ -7602,23 +8169,18 @@ func (s DeleteDataCellsFilterOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteDataCellsFilterOutput) GoString() string { +func (s DeleteLFTagOutput) GoString() string { return s.String() } -type DeleteLFTagInput struct { +type DeleteLakeFormationIdentityCenterConfigurationInput struct { _ struct{} `type:"structure"` // The identifier for the Data Catalog. By default, the account ID. The Data // Catalog is the persistent metadata store. It contains database definitions, - // table definitions, and other control information to manage your Lake Formation - // environment. + // table definitions, view definition, and other control information to manage + // your Lake Formation environment. CatalogId *string `min:"1" type:"string"` - - // The key-name for the LF-tag to delete. - // - // TagKey is a required field - TagKey *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -7626,7 +8188,7 @@ type DeleteLFTagInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteLFTagInput) String() string { +func (s DeleteLakeFormationIdentityCenterConfigurationInput) String() string { return awsutil.Prettify(s) } @@ -7635,22 +8197,16 @@ func (s DeleteLFTagInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteLFTagInput) GoString() string { +func (s DeleteLakeFormationIdentityCenterConfigurationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteLFTagInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteLFTagInput"} +func (s *DeleteLakeFormationIdentityCenterConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteLakeFormationIdentityCenterConfigurationInput"} if s.CatalogId != nil && len(*s.CatalogId) < 1 { invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1)) } - if s.TagKey == nil { - invalidParams.Add(request.NewErrParamRequired("TagKey")) - } - if s.TagKey != nil && len(*s.TagKey) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TagKey", 1)) - } if invalidParams.Len() > 0 { return invalidParams @@ -7659,18 +8215,12 @@ func (s *DeleteLFTagInput) Validate() error { } // SetCatalogId sets the CatalogId field's value. -func (s *DeleteLFTagInput) SetCatalogId(v string) *DeleteLFTagInput { +func (s *DeleteLakeFormationIdentityCenterConfigurationInput) SetCatalogId(v string) *DeleteLakeFormationIdentityCenterConfigurationInput { s.CatalogId = &v return s } -// SetTagKey sets the TagKey field's value. -func (s *DeleteLFTagInput) SetTagKey(v string) *DeleteLFTagInput { - s.TagKey = &v - return s -} - -type DeleteLFTagOutput struct { +type DeleteLakeFormationIdentityCenterConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -7679,7 +8229,7 @@ type DeleteLFTagOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteLFTagOutput) String() string { +func (s DeleteLakeFormationIdentityCenterConfigurationOutput) String() string { return awsutil.Prettify(s) } @@ -7688,7 +8238,7 @@ func (s DeleteLFTagOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteLFTagOutput) GoString() string { +func (s DeleteLakeFormationIdentityCenterConfigurationOutput) GoString() string { return s.String() } @@ -8074,6 +8624,114 @@ func (s DeregisterResourceOutput) GoString() string { return s.String() } +type DescribeLakeFormationIdentityCenterConfigurationInput struct { + _ struct{} `type:"structure"` + + // The identifier for the Data Catalog. By default, the account ID. The Data + // Catalog is the persistent metadata store. It contains database definitions, + // table definitions, and other control information to manage your Lake Formation + // environment. + CatalogId *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeLakeFormationIdentityCenterConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeLakeFormationIdentityCenterConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeLakeFormationIdentityCenterConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeLakeFormationIdentityCenterConfigurationInput"} + if s.CatalogId != nil && len(*s.CatalogId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCatalogId sets the CatalogId field's value. +func (s *DescribeLakeFormationIdentityCenterConfigurationInput) SetCatalogId(v string) *DescribeLakeFormationIdentityCenterConfigurationInput { + s.CatalogId = &v + return s +} + +type DescribeLakeFormationIdentityCenterConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the integrated application. + ApplicationArn *string `type:"string"` + + // The identifier for the Data Catalog. By default, the account ID. The Data + // Catalog is the persistent metadata store. It contains database definitions, + // table definitions, and other control information to manage your Lake Formation + // environment. + CatalogId *string `min:"1" type:"string"` + + // Indicates if external filtering is enabled. + ExternalFiltering *ExternalFilteringConfiguration `type:"structure"` + + // The Amazon Resource Name (ARN) of the connection. + InstanceArn *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeLakeFormationIdentityCenterConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeLakeFormationIdentityCenterConfigurationOutput) GoString() string { + return s.String() +} + +// SetApplicationArn sets the ApplicationArn field's value. +func (s *DescribeLakeFormationIdentityCenterConfigurationOutput) SetApplicationArn(v string) *DescribeLakeFormationIdentityCenterConfigurationOutput { + s.ApplicationArn = &v + return s +} + +// SetCatalogId sets the CatalogId field's value. +func (s *DescribeLakeFormationIdentityCenterConfigurationOutput) SetCatalogId(v string) *DescribeLakeFormationIdentityCenterConfigurationOutput { + s.CatalogId = &v + return s +} + +// SetExternalFiltering sets the ExternalFiltering field's value. +func (s *DescribeLakeFormationIdentityCenterConfigurationOutput) SetExternalFiltering(v *ExternalFilteringConfiguration) *DescribeLakeFormationIdentityCenterConfigurationOutput { + s.ExternalFiltering = v + return s +} + +// SetInstanceArn sets the InstanceArn field's value. +func (s *DescribeLakeFormationIdentityCenterConfigurationOutput) SetInstanceArn(v string) *DescribeLakeFormationIdentityCenterConfigurationOutput { + s.InstanceArn = &v + return s +} + type DescribeResourceInput struct { _ struct{} `type:"structure"` @@ -8555,6 +9213,69 @@ func (s ExtendTransactionOutput) GoString() string { return s.String() } +// Configuration for enabling external data filtering for third-party applications +// to access data managed by Lake Formation . +type ExternalFilteringConfiguration struct { + _ struct{} `type:"structure"` + + // List of third-party application ARNs integrated with Lake Formation. + // + // AuthorizedTargets is a required field + AuthorizedTargets []*string `type:"list" required:"true"` + + // Allows to enable or disable the third-party applications that are allowed + // to access data managed by Lake Formation. + // + // Status is a required field + Status *string `type:"string" required:"true" enum:"EnableStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExternalFilteringConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExternalFilteringConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ExternalFilteringConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ExternalFilteringConfiguration"} + if s.AuthorizedTargets == nil { + invalidParams.Add(request.NewErrParamRequired("AuthorizedTargets")) + } + if s.Status == nil { + invalidParams.Add(request.NewErrParamRequired("Status")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAuthorizedTargets sets the AuthorizedTargets field's value. +func (s *ExternalFilteringConfiguration) SetAuthorizedTargets(v []*string) *ExternalFilteringConfiguration { + s.AuthorizedTargets = v + return s +} + +// SetStatus sets the Status field's value. +func (s *ExternalFilteringConfiguration) SetStatus(v string) *ExternalFilteringConfiguration { + s.Status = &v + return s +} + // This structure describes the filtering of columns in a table based on a filter // condition. type FilterCondition struct { @@ -13371,6 +14092,8 @@ type SearchTablesByLFTagsOutput struct { _ struct{} `type:"structure"` // A continuation token, present if the current list segment is not the last. + // On the first run, if you include a not null (a value) token you can get empty + // pages. NextToken *string `type:"string"` // A list of tables that meet the LF-tag conditions. @@ -14594,6 +15317,99 @@ func (s UpdateLFTagOutput) GoString() string { return s.String() } +type UpdateLakeFormationIdentityCenterConfigurationInput struct { + _ struct{} `type:"structure"` + + // Allows to enable or disable the IAM Identity Center connection. + ApplicationStatus *string `type:"string" enum:"ApplicationStatus"` + + // The identifier for the Data Catalog. By default, the account ID. The Data + // Catalog is the persistent metadata store. It contains database definitions, + // table definitions, view definitions, and other control information to manage + // your Lake Formation environment. + CatalogId *string `min:"1" type:"string"` + + // A list of the account IDs of Amazon Web Services accounts of third-party + // applications that are allowed to access data managed by Lake Formation. + ExternalFiltering *ExternalFilteringConfiguration `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateLakeFormationIdentityCenterConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateLakeFormationIdentityCenterConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateLakeFormationIdentityCenterConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateLakeFormationIdentityCenterConfigurationInput"} + if s.CatalogId != nil && len(*s.CatalogId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1)) + } + if s.ExternalFiltering != nil { + if err := s.ExternalFiltering.Validate(); err != nil { + invalidParams.AddNested("ExternalFiltering", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationStatus sets the ApplicationStatus field's value. +func (s *UpdateLakeFormationIdentityCenterConfigurationInput) SetApplicationStatus(v string) *UpdateLakeFormationIdentityCenterConfigurationInput { + s.ApplicationStatus = &v + return s +} + +// SetCatalogId sets the CatalogId field's value. +func (s *UpdateLakeFormationIdentityCenterConfigurationInput) SetCatalogId(v string) *UpdateLakeFormationIdentityCenterConfigurationInput { + s.CatalogId = &v + return s +} + +// SetExternalFiltering sets the ExternalFiltering field's value. +func (s *UpdateLakeFormationIdentityCenterConfigurationInput) SetExternalFiltering(v *ExternalFilteringConfiguration) *UpdateLakeFormationIdentityCenterConfigurationInput { + s.ExternalFiltering = v + return s +} + +type UpdateLakeFormationIdentityCenterConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateLakeFormationIdentityCenterConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateLakeFormationIdentityCenterConfigurationOutput) GoString() string { + return s.String() +} + type UpdateResourceInput struct { _ struct{} `type:"structure"` @@ -15205,6 +16021,22 @@ func (s *WriteOperation) SetDeleteObject(v *DeleteObjectInput_) *WriteOperation return s } +const ( + // ApplicationStatusEnabled is a ApplicationStatus enum value + ApplicationStatusEnabled = "ENABLED" + + // ApplicationStatusDisabled is a ApplicationStatus enum value + ApplicationStatusDisabled = "DISABLED" +) + +// ApplicationStatus_Values returns all elements of the ApplicationStatus enum +func ApplicationStatus_Values() []string { + return []string{ + ApplicationStatusEnabled, + ApplicationStatusDisabled, + } +} + const ( // ComparisonOperatorEq is a ComparisonOperator enum value ComparisonOperatorEq = "EQ" @@ -15297,6 +16129,22 @@ func DataLakeResourceType_Values() []string { } } +const ( + // EnableStatusEnabled is a EnableStatus enum value + EnableStatusEnabled = "ENABLED" + + // EnableStatusDisabled is a EnableStatus enum value + EnableStatusDisabled = "DISABLED" +) + +// EnableStatus_Values returns all elements of the EnableStatus enum +func EnableStatus_Values() []string { + return []string{ + EnableStatusEnabled, + EnableStatusDisabled, + } +} + const ( // FieldNameStringResourceArn is a FieldNameString enum value FieldNameStringResourceArn = "RESOURCE_ARN" diff --git a/service/lakeformation/lakeformationiface/interface.go b/service/lakeformation/lakeformationiface/interface.go index 5b0903bc9cb..136c89f6028 100644 --- a/service/lakeformation/lakeformationiface/interface.go +++ b/service/lakeformation/lakeformationiface/interface.go @@ -92,6 +92,10 @@ type LakeFormationAPI interface { CreateLFTagWithContext(aws.Context, *lakeformation.CreateLFTagInput, ...request.Option) (*lakeformation.CreateLFTagOutput, error) CreateLFTagRequest(*lakeformation.CreateLFTagInput) (*request.Request, *lakeformation.CreateLFTagOutput) + CreateLakeFormationIdentityCenterConfiguration(*lakeformation.CreateLakeFormationIdentityCenterConfigurationInput) (*lakeformation.CreateLakeFormationIdentityCenterConfigurationOutput, error) + CreateLakeFormationIdentityCenterConfigurationWithContext(aws.Context, *lakeformation.CreateLakeFormationIdentityCenterConfigurationInput, ...request.Option) (*lakeformation.CreateLakeFormationIdentityCenterConfigurationOutput, error) + CreateLakeFormationIdentityCenterConfigurationRequest(*lakeformation.CreateLakeFormationIdentityCenterConfigurationInput) (*request.Request, *lakeformation.CreateLakeFormationIdentityCenterConfigurationOutput) + CreateLakeFormationOptIn(*lakeformation.CreateLakeFormationOptInInput) (*lakeformation.CreateLakeFormationOptInOutput, error) CreateLakeFormationOptInWithContext(aws.Context, *lakeformation.CreateLakeFormationOptInInput, ...request.Option) (*lakeformation.CreateLakeFormationOptInOutput, error) CreateLakeFormationOptInRequest(*lakeformation.CreateLakeFormationOptInInput) (*request.Request, *lakeformation.CreateLakeFormationOptInOutput) @@ -104,6 +108,10 @@ type LakeFormationAPI interface { DeleteLFTagWithContext(aws.Context, *lakeformation.DeleteLFTagInput, ...request.Option) (*lakeformation.DeleteLFTagOutput, error) DeleteLFTagRequest(*lakeformation.DeleteLFTagInput) (*request.Request, *lakeformation.DeleteLFTagOutput) + DeleteLakeFormationIdentityCenterConfiguration(*lakeformation.DeleteLakeFormationIdentityCenterConfigurationInput) (*lakeformation.DeleteLakeFormationIdentityCenterConfigurationOutput, error) + DeleteLakeFormationIdentityCenterConfigurationWithContext(aws.Context, *lakeformation.DeleteLakeFormationIdentityCenterConfigurationInput, ...request.Option) (*lakeformation.DeleteLakeFormationIdentityCenterConfigurationOutput, error) + DeleteLakeFormationIdentityCenterConfigurationRequest(*lakeformation.DeleteLakeFormationIdentityCenterConfigurationInput) (*request.Request, *lakeformation.DeleteLakeFormationIdentityCenterConfigurationOutput) + DeleteLakeFormationOptIn(*lakeformation.DeleteLakeFormationOptInInput) (*lakeformation.DeleteLakeFormationOptInOutput, error) DeleteLakeFormationOptInWithContext(aws.Context, *lakeformation.DeleteLakeFormationOptInInput, ...request.Option) (*lakeformation.DeleteLakeFormationOptInOutput, error) DeleteLakeFormationOptInRequest(*lakeformation.DeleteLakeFormationOptInInput) (*request.Request, *lakeformation.DeleteLakeFormationOptInOutput) @@ -116,6 +124,10 @@ type LakeFormationAPI interface { DeregisterResourceWithContext(aws.Context, *lakeformation.DeregisterResourceInput, ...request.Option) (*lakeformation.DeregisterResourceOutput, error) DeregisterResourceRequest(*lakeformation.DeregisterResourceInput) (*request.Request, *lakeformation.DeregisterResourceOutput) + DescribeLakeFormationIdentityCenterConfiguration(*lakeformation.DescribeLakeFormationIdentityCenterConfigurationInput) (*lakeformation.DescribeLakeFormationIdentityCenterConfigurationOutput, error) + DescribeLakeFormationIdentityCenterConfigurationWithContext(aws.Context, *lakeformation.DescribeLakeFormationIdentityCenterConfigurationInput, ...request.Option) (*lakeformation.DescribeLakeFormationIdentityCenterConfigurationOutput, error) + DescribeLakeFormationIdentityCenterConfigurationRequest(*lakeformation.DescribeLakeFormationIdentityCenterConfigurationInput) (*request.Request, *lakeformation.DescribeLakeFormationIdentityCenterConfigurationOutput) + DescribeResource(*lakeformation.DescribeResourceInput) (*lakeformation.DescribeResourceOutput, error) DescribeResourceWithContext(aws.Context, *lakeformation.DescribeResourceInput, ...request.Option) (*lakeformation.DescribeResourceOutput, error) DescribeResourceRequest(*lakeformation.DescribeResourceInput) (*request.Request, *lakeformation.DescribeResourceOutput) @@ -284,6 +296,10 @@ type LakeFormationAPI interface { UpdateLFTagWithContext(aws.Context, *lakeformation.UpdateLFTagInput, ...request.Option) (*lakeformation.UpdateLFTagOutput, error) UpdateLFTagRequest(*lakeformation.UpdateLFTagInput) (*request.Request, *lakeformation.UpdateLFTagOutput) + UpdateLakeFormationIdentityCenterConfiguration(*lakeformation.UpdateLakeFormationIdentityCenterConfigurationInput) (*lakeformation.UpdateLakeFormationIdentityCenterConfigurationOutput, error) + UpdateLakeFormationIdentityCenterConfigurationWithContext(aws.Context, *lakeformation.UpdateLakeFormationIdentityCenterConfigurationInput, ...request.Option) (*lakeformation.UpdateLakeFormationIdentityCenterConfigurationOutput, error) + UpdateLakeFormationIdentityCenterConfigurationRequest(*lakeformation.UpdateLakeFormationIdentityCenterConfigurationInput) (*request.Request, *lakeformation.UpdateLakeFormationIdentityCenterConfigurationOutput) + UpdateResource(*lakeformation.UpdateResourceInput) (*lakeformation.UpdateResourceOutput, error) UpdateResourceWithContext(aws.Context, *lakeformation.UpdateResourceInput, ...request.Option) (*lakeformation.UpdateResourceOutput, error) UpdateResourceRequest(*lakeformation.UpdateResourceInput) (*request.Request, *lakeformation.UpdateResourceOutput) diff --git a/service/lexmodelsv2/api.go b/service/lexmodelsv2/api.go index 078ad2b7d3d..94bf0b95e6b 100644 --- a/service/lexmodelsv2/api.go +++ b/service/lexmodelsv2/api.go @@ -740,12 +740,11 @@ func (c *LexModelsV2) CreateBotVersionRequest(input *CreateBotVersionInput) (req // CreateBotVersion API operation for Amazon Lex Model Building V2. // -// Creates a new version of the bot based on the DRAFT version. If the DRAFT -// version of this resource hasn't changed since you created the last version, -// Amazon Lex doesn't create a new version, it returns the last created version. -// -// When you create the first version of a bot, Amazon Lex sets the version to -// 1. Subsequent versions increment by 1. +// Creates an immutable version of the bot. When you create the first version +// of a bot, Amazon Lex sets the version number to 1. Subsequent bot versions +// increase in an increment of 1. The version number will always represent the +// total number of versions created of the bot, not the current number of versions. +// If a bot version is deleted, that bot version number will not be reused. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3379,6 +3378,99 @@ func (c *LexModelsV2) DescribeBotRecommendationWithContext(ctx aws.Context, inpu return out, req.Send() } +const opDescribeBotResourceGeneration = "DescribeBotResourceGeneration" + +// DescribeBotResourceGenerationRequest generates a "aws/request.Request" representing the +// client's request for the DescribeBotResourceGeneration 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 DescribeBotResourceGeneration for more information on using the DescribeBotResourceGeneration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DescribeBotResourceGenerationRequest method. +// req, resp := client.DescribeBotResourceGenerationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeBotResourceGeneration +func (c *LexModelsV2) DescribeBotResourceGenerationRequest(input *DescribeBotResourceGenerationInput) (req *request.Request, output *DescribeBotResourceGenerationOutput) { + op := &request.Operation{ + Name: opDescribeBotResourceGeneration, + HTTPMethod: "GET", + HTTPPath: "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/generations/{generationId}", + } + + if input == nil { + input = &DescribeBotResourceGenerationInput{} + } + + output = &DescribeBotResourceGenerationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeBotResourceGeneration API operation for Amazon Lex Model Building V2. +// +// Returns information about a request to generate a bot through natural language +// description, made through the StartBotResource API. Use the generatedBotLocaleUrl +// to retrieve the Amazon S3 object containing the bot locale configuration. +// You can then modify and import this configuration. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Lex Model Building V2's +// API operation DescribeBotResourceGeneration for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// Your request rate is too high. Reduce the frequency of requests. +// +// - ValidationException +// One of the input parameters in your request isn't valid. Check the parameters +// and try your request again. +// +// - ResourceNotFoundException +// You asked to describe a resource that doesn't exist. Check the resource that +// you are requesting and try again. +// +// - InternalServerException +// The service encountered an unexpected condition. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeBotResourceGeneration +func (c *LexModelsV2) DescribeBotResourceGeneration(input *DescribeBotResourceGenerationInput) (*DescribeBotResourceGenerationOutput, error) { + req, out := c.DescribeBotResourceGenerationRequest(input) + return out, req.Send() +} + +// DescribeBotResourceGenerationWithContext is the same as DescribeBotResourceGeneration with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeBotResourceGeneration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *LexModelsV2) DescribeBotResourceGenerationWithContext(ctx aws.Context, input *DescribeBotResourceGenerationInput, opts ...request.Option) (*DescribeBotResourceGenerationOutput, error) { + req, out := c.DescribeBotResourceGenerationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeBotVersion = "DescribeBotVersion" // DescribeBotVersionRequest generates a "aws/request.Request" representing the @@ -4482,6 +4574,113 @@ func (c *LexModelsV2) DescribeTestSetGenerationWithContext(ctx aws.Context, inpu return out, req.Send() } +const opGenerateBotElement = "GenerateBotElement" + +// GenerateBotElementRequest generates a "aws/request.Request" representing the +// client's request for the GenerateBotElement 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 GenerateBotElement for more information on using the GenerateBotElement +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GenerateBotElementRequest method. +// req, resp := client.GenerateBotElementRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/GenerateBotElement +func (c *LexModelsV2) GenerateBotElementRequest(input *GenerateBotElementInput) (req *request.Request, output *GenerateBotElementOutput) { + op := &request.Operation{ + Name: opGenerateBotElement, + HTTPMethod: "POST", + HTTPPath: "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/generate", + } + + if input == nil { + input = &GenerateBotElementInput{} + } + + output = &GenerateBotElementOutput{} + req = c.newRequest(op, input, output) + return +} + +// GenerateBotElement API operation for Amazon Lex Model Building V2. +// +// Generates sample utterances for an intent. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Lex Model Building V2's +// API operation GenerateBotElement for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// Your request rate is too high. Reduce the frequency of requests. +// +// - ServiceQuotaExceededException +// You have reached a quota for your bot. +// +// - ValidationException +// One of the input parameters in your request isn't valid. Check the parameters +// and try your request again. +// +// - ResourceNotFoundException +// You asked to describe a resource that doesn't exist. Check the resource that +// you are requesting and try again. +// +// - ConflictException +// The action that you tried to perform couldn't be completed because the resource +// is in a conflicting state. For example, deleting a bot that is in the CREATING +// state. Try your request again. +// +// - PreconditionFailedException +// Your request couldn't be completed because one or more request fields aren't +// valid. Check the fields in your request and try again. +// +// - ConflictException +// The action that you tried to perform couldn't be completed because the resource +// is in a conflicting state. For example, deleting a bot that is in the CREATING +// state. Try your request again. +// +// - InternalServerException +// The service encountered an unexpected condition. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/GenerateBotElement +func (c *LexModelsV2) GenerateBotElement(input *GenerateBotElementInput) (*GenerateBotElementOutput, error) { + req, out := c.GenerateBotElementRequest(input) + return out, req.Send() +} + +// GenerateBotElementWithContext is the same as GenerateBotElement with the addition of +// the ability to pass a context and additional request options. +// +// See GenerateBotElement for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *LexModelsV2) GenerateBotElementWithContext(ctx aws.Context, input *GenerateBotElementInput, opts ...request.Option) (*GenerateBotElementOutput, error) { + req, out := c.GenerateBotElementRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetTestExecutionArtifactsUrl = "GetTestExecutionArtifactsUrl" // GetTestExecutionArtifactsUrlRequest generates a "aws/request.Request" representing the @@ -5181,6 +5380,153 @@ func (c *LexModelsV2) ListBotRecommendationsPagesWithContext(ctx aws.Context, in return p.Err() } +const opListBotResourceGenerations = "ListBotResourceGenerations" + +// ListBotResourceGenerationsRequest generates a "aws/request.Request" representing the +// client's request for the ListBotResourceGenerations 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 ListBotResourceGenerations for more information on using the ListBotResourceGenerations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListBotResourceGenerationsRequest method. +// req, resp := client.ListBotResourceGenerationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBotResourceGenerations +func (c *LexModelsV2) ListBotResourceGenerationsRequest(input *ListBotResourceGenerationsInput) (req *request.Request, output *ListBotResourceGenerationsOutput) { + op := &request.Operation{ + Name: opListBotResourceGenerations, + HTTPMethod: "POST", + HTTPPath: "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/generations", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListBotResourceGenerationsInput{} + } + + output = &ListBotResourceGenerationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListBotResourceGenerations API operation for Amazon Lex Model Building V2. +// +// Lists the generation requests made for a bot locale. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Lex Model Building V2's +// API operation ListBotResourceGenerations for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// Your request rate is too high. Reduce the frequency of requests. +// +// - ValidationException +// One of the input parameters in your request isn't valid. Check the parameters +// and try your request again. +// +// - InternalServerException +// The service encountered an unexpected condition. Try your request again. +// +// - ResourceNotFoundException +// You asked to describe a resource that doesn't exist. Check the resource that +// you are requesting and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBotResourceGenerations +func (c *LexModelsV2) ListBotResourceGenerations(input *ListBotResourceGenerationsInput) (*ListBotResourceGenerationsOutput, error) { + req, out := c.ListBotResourceGenerationsRequest(input) + return out, req.Send() +} + +// ListBotResourceGenerationsWithContext is the same as ListBotResourceGenerations with the addition of +// the ability to pass a context and additional request options. +// +// See ListBotResourceGenerations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *LexModelsV2) ListBotResourceGenerationsWithContext(ctx aws.Context, input *ListBotResourceGenerationsInput, opts ...request.Option) (*ListBotResourceGenerationsOutput, error) { + req, out := c.ListBotResourceGenerationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListBotResourceGenerationsPages iterates over the pages of a ListBotResourceGenerations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListBotResourceGenerations 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 ListBotResourceGenerations operation. +// pageNum := 0 +// err := client.ListBotResourceGenerationsPages(params, +// func(page *lexmodelsv2.ListBotResourceGenerationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *LexModelsV2) ListBotResourceGenerationsPages(input *ListBotResourceGenerationsInput, fn func(*ListBotResourceGenerationsOutput, bool) bool) error { + return c.ListBotResourceGenerationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListBotResourceGenerationsPagesWithContext same as ListBotResourceGenerationsPages 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 *LexModelsV2) ListBotResourceGenerationsPagesWithContext(ctx aws.Context, input *ListBotResourceGenerationsInput, fn func(*ListBotResourceGenerationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListBotResourceGenerationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListBotResourceGenerationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListBotResourceGenerationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListBotVersions = "ListBotVersions" // ListBotVersionsRequest generates a "aws/request.Request" representing the @@ -8822,6 +9168,109 @@ func (c *LexModelsV2) StartBotRecommendationWithContext(ctx aws.Context, input * return out, req.Send() } +const opStartBotResourceGeneration = "StartBotResourceGeneration" + +// StartBotResourceGenerationRequest generates a "aws/request.Request" representing the +// client's request for the StartBotResourceGeneration 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 StartBotResourceGeneration for more information on using the StartBotResourceGeneration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the StartBotResourceGenerationRequest method. +// req, resp := client.StartBotResourceGenerationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/StartBotResourceGeneration +func (c *LexModelsV2) StartBotResourceGenerationRequest(input *StartBotResourceGenerationInput) (req *request.Request, output *StartBotResourceGenerationOutput) { + op := &request.Operation{ + Name: opStartBotResourceGeneration, + HTTPMethod: "PUT", + HTTPPath: "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/startgeneration", + } + + if input == nil { + input = &StartBotResourceGenerationInput{} + } + + output = &StartBotResourceGenerationOutput{} + req = c.newRequest(op, input, output) + return +} + +// StartBotResourceGeneration API operation for Amazon Lex Model Building V2. +// +// Starts a request for the descriptive bot builder to generate a bot locale +// configuration based on the prompt you provide it. After you make this call, +// use the DescribeBotResourceGeneration operation to check on the status of +// the generation and for the generatedBotLocaleUrl when the generation is complete. +// Use that value to retrieve the Amazon S3 object containing the bot locale +// configuration. You can then modify and import this configuration. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Lex Model Building V2's +// API operation StartBotResourceGeneration for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// Your request rate is too high. Reduce the frequency of requests. +// +// - ServiceQuotaExceededException +// You have reached a quota for your bot. +// +// - ValidationException +// One of the input parameters in your request isn't valid. Check the parameters +// and try your request again. +// +// - PreconditionFailedException +// Your request couldn't be completed because one or more request fields aren't +// valid. Check the fields in your request and try again. +// +// - ConflictException +// The action that you tried to perform couldn't be completed because the resource +// is in a conflicting state. For example, deleting a bot that is in the CREATING +// state. Try your request again. +// +// - InternalServerException +// The service encountered an unexpected condition. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/StartBotResourceGeneration +func (c *LexModelsV2) StartBotResourceGeneration(input *StartBotResourceGenerationInput) (*StartBotResourceGenerationOutput, error) { + req, out := c.StartBotResourceGenerationRequest(input) + return out, req.Send() +} + +// StartBotResourceGenerationWithContext is the same as StartBotResourceGeneration with the addition of +// the ability to pass a context and additional request options. +// +// See StartBotResourceGeneration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *LexModelsV2) StartBotResourceGenerationWithContext(ctx aws.Context, input *StartBotResourceGenerationInput, opts ...request.Option) (*StartBotResourceGenerationOutput, error) { + req, out := c.StartBotResourceGenerationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opStartImport = "StartImport" // StartImportRequest generates a "aws/request.Request" representing the @@ -14051,6 +14500,54 @@ func (s *BatchUpdateCustomVocabularyItemOutput) SetResources(v []*CustomVocabula return s } +// Contains information about the Amazon Bedrock model used to interpret the +// prompt used in descriptive bot building. +type BedrockModelSpecification struct { + _ struct{} `type:"structure"` + + // The ARN of the foundation model used in descriptive bot building. + // + // ModelArn is a required field + ModelArn *string `locationName:"modelArn" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BedrockModelSpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BedrockModelSpecification) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BedrockModelSpecification) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BedrockModelSpecification"} + if s.ModelArn == nil { + invalidParams.Add(request.NewErrParamRequired("ModelArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetModelArn sets the ModelArn field's value. +func (s *BedrockModelSpecification) SetModelArn(v string) *BedrockModelSpecification { + s.ModelArn = &v + return s +} + // Provides a record of an event that affects a bot alias. For example, when // the version of a bot that the alias points to changes. type BotAliasHistoryEvent struct { @@ -15858,6 +16355,68 @@ func (s *BuildBotLocaleOutput) SetLocaleId(v string) *BuildBotLocaleOutput { return s } +// Contains specifications about the Amazon Lex build time generative AI capabilities +// from Amazon Bedrock that you can turn on for your bot. +type BuildtimeSettings struct { + _ struct{} `type:"structure"` + + // An object containing specifications for the descriptive bot building feature. + DescriptiveBotBuilder *DescriptiveBotBuilderSpecification `locationName:"descriptiveBotBuilder" type:"structure"` + + // Contains specifications for the sample utterance generation feature. + SampleUtteranceGeneration *SampleUtteranceGenerationSpecification `locationName:"sampleUtteranceGeneration" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BuildtimeSettings) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BuildtimeSettings) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BuildtimeSettings) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BuildtimeSettings"} + if s.DescriptiveBotBuilder != nil { + if err := s.DescriptiveBotBuilder.Validate(); err != nil { + invalidParams.AddNested("DescriptiveBotBuilder", err.(request.ErrInvalidParams)) + } + } + if s.SampleUtteranceGeneration != nil { + if err := s.SampleUtteranceGeneration.Validate(); err != nil { + invalidParams.AddNested("SampleUtteranceGeneration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescriptiveBotBuilder sets the DescriptiveBotBuilder field's value. +func (s *BuildtimeSettings) SetDescriptiveBotBuilder(v *DescriptiveBotBuilderSpecification) *BuildtimeSettings { + s.DescriptiveBotBuilder = v + return s +} + +// SetSampleUtteranceGeneration sets the SampleUtteranceGeneration field's value. +func (s *BuildtimeSettings) SetSampleUtteranceGeneration(v *SampleUtteranceGenerationSpecification) *BuildtimeSettings { + s.SampleUtteranceGeneration = v + return s +} + // Specifies attributes for sorting a list of built-in intents. type BuiltInIntentSortBy struct { _ struct{} `type:"structure"` @@ -17646,6 +18205,10 @@ type CreateBotLocaleInput struct { // in lists. Description *string `locationName:"description" type:"string"` + // Contains specifications about the generative AI capabilities from Amazon + // Bedrock that you can turn on for your bot. + GenerativeAISettings *GenerativeAISettings `locationName:"generativeAISettings" type:"structure"` + // The identifier of the language and locale that the bot will be used in. The // string must match one of the supported locales. All of the intents, slot // types, and slots used in the bot must have the same locale. For more information, @@ -17719,6 +18282,11 @@ func (s *CreateBotLocaleInput) Validate() error { if s.NluIntentConfidenceThreshold == nil { invalidParams.Add(request.NewErrParamRequired("NluIntentConfidenceThreshold")) } + if s.GenerativeAISettings != nil { + if err := s.GenerativeAISettings.Validate(); err != nil { + invalidParams.AddNested("GenerativeAISettings", err.(request.ErrInvalidParams)) + } + } if s.VoiceSettings != nil { if err := s.VoiceSettings.Validate(); err != nil { invalidParams.AddNested("VoiceSettings", err.(request.ErrInvalidParams)) @@ -17749,6 +18317,12 @@ func (s *CreateBotLocaleInput) SetDescription(v string) *CreateBotLocaleInput { return s } +// SetGenerativeAISettings sets the GenerativeAISettings field's value. +func (s *CreateBotLocaleInput) SetGenerativeAISettings(v *GenerativeAISettings) *CreateBotLocaleInput { + s.GenerativeAISettings = v + return s +} + // SetLocaleId sets the LocaleId field's value. func (s *CreateBotLocaleInput) SetLocaleId(v string) *CreateBotLocaleInput { s.LocaleId = &v @@ -17795,6 +18369,10 @@ type CreateBotLocaleOutput struct { // The specified description of the bot locale. Description *string `locationName:"description" type:"string"` + // Contains specifications about the generative AI capabilities from Amazon + // Bedrock that you can turn on for your bot. + GenerativeAISettings *GenerativeAISettings `locationName:"generativeAISettings" type:"structure"` + // The specified locale identifier. LocaleId *string `locationName:"localeId" type:"string"` @@ -17858,6 +18436,12 @@ func (s *CreateBotLocaleOutput) SetDescription(v string) *CreateBotLocaleOutput return s } +// SetGenerativeAISettings sets the GenerativeAISettings field's value. +func (s *CreateBotLocaleOutput) SetGenerativeAISettings(v *GenerativeAISettings) *CreateBotLocaleOutput { + s.GenerativeAISettings = v + return s +} + // SetLocaleId sets the LocaleId field's value. func (s *CreateBotLocaleOutput) SetLocaleId(v string) *CreateBotLocaleOutput { s.LocaleId = &v @@ -22673,6 +23257,10 @@ type DescribeBotLocaleOutput struct { // the bot. FailureReasons []*string `locationName:"failureReasons" type:"list"` + // Contains settings for Amazon Bedrock's generative AI features for your bot + // locale. + GenerativeAISettings *GenerativeAISettings `locationName:"generativeAISettings" type:"structure"` + // The number of intents defined for the locale. IntentsCount *int64 `locationName:"intentsCount" type:"integer"` @@ -22763,6 +23351,12 @@ func (s *DescribeBotLocaleOutput) SetFailureReasons(v []*string) *DescribeBotLoc return s } +// SetGenerativeAISettings sets the GenerativeAISettings field's value. +func (s *DescribeBotLocaleOutput) SetGenerativeAISettings(v *GenerativeAISettings) *DescribeBotLocaleOutput { + s.GenerativeAISettings = v + return s +} + // SetIntentsCount sets the IntentsCount field's value. func (s *DescribeBotLocaleOutput) SetIntentsCount(v int64) *DescribeBotLocaleOutput { s.IntentsCount = &v @@ -23180,6 +23774,229 @@ func (s *DescribeBotRecommendationOutput) SetTranscriptSourceSetting(v *Transcri return s } +type DescribeBotResourceGenerationInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The unique identifier of the bot for which to return the generation details. + // + // BotId is a required field + BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"` + + // The version of the bot for which to return the generation details. + // + // BotVersion is a required field + BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"` + + // The unique identifier of the generation request for which to return the generation + // details. + // + // GenerationId is a required field + GenerationId *string `location:"uri" locationName:"generationId" min:"10" type:"string" required:"true"` + + // The locale of the bot for which to return the generation details. + // + // LocaleId is a required field + LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeBotResourceGenerationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeBotResourceGenerationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeBotResourceGenerationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeBotResourceGenerationInput"} + if s.BotId == nil { + invalidParams.Add(request.NewErrParamRequired("BotId")) + } + if s.BotId != nil && len(*s.BotId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("BotId", 10)) + } + if s.BotVersion == nil { + invalidParams.Add(request.NewErrParamRequired("BotVersion")) + } + if s.BotVersion != nil && len(*s.BotVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1)) + } + if s.GenerationId == nil { + invalidParams.Add(request.NewErrParamRequired("GenerationId")) + } + if s.GenerationId != nil && len(*s.GenerationId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("GenerationId", 10)) + } + if s.LocaleId == nil { + invalidParams.Add(request.NewErrParamRequired("LocaleId")) + } + if s.LocaleId != nil && len(*s.LocaleId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBotId sets the BotId field's value. +func (s *DescribeBotResourceGenerationInput) SetBotId(v string) *DescribeBotResourceGenerationInput { + s.BotId = &v + return s +} + +// SetBotVersion sets the BotVersion field's value. +func (s *DescribeBotResourceGenerationInput) SetBotVersion(v string) *DescribeBotResourceGenerationInput { + s.BotVersion = &v + return s +} + +// SetGenerationId sets the GenerationId field's value. +func (s *DescribeBotResourceGenerationInput) SetGenerationId(v string) *DescribeBotResourceGenerationInput { + s.GenerationId = &v + return s +} + +// SetLocaleId sets the LocaleId field's value. +func (s *DescribeBotResourceGenerationInput) SetLocaleId(v string) *DescribeBotResourceGenerationInput { + s.LocaleId = &v + return s +} + +type DescribeBotResourceGenerationOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the bot for which the generation request was made. + BotId *string `locationName:"botId" min:"10" type:"string"` + + // The version of the bot for which the generation request was made. + BotVersion *string `locationName:"botVersion" min:"1" type:"string"` + + // The date and time at which the item was generated. + CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"` + + // A list of reasons why the generation of bot resources through natural language + // description failed. + FailureReasons []*string `locationName:"failureReasons" type:"list"` + + // The Amazon S3 location of the generated bot locale configuration. + GeneratedBotLocaleUrl *string `locationName:"generatedBotLocaleUrl" min:"1" type:"string"` + + // The generation ID for which to return the generation details. + GenerationId *string `locationName:"generationId" min:"10" type:"string"` + + // The prompt used in the generation request. + GenerationInputPrompt *string `locationName:"generationInputPrompt" min:"100" type:"string"` + + // The status of the generation request. + GenerationStatus *string `locationName:"generationStatus" type:"string" enum:"GenerationStatus"` + + // The date and time at which the generated item was updated. + LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"` + + // The locale of the bot for which the generation request was made. + LocaleId *string `locationName:"localeId" type:"string"` + + // The ARN of the model used to generate the bot resources. + ModelArn *string `locationName:"modelArn" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeBotResourceGenerationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeBotResourceGenerationOutput) GoString() string { + return s.String() +} + +// SetBotId sets the BotId field's value. +func (s *DescribeBotResourceGenerationOutput) SetBotId(v string) *DescribeBotResourceGenerationOutput { + s.BotId = &v + return s +} + +// SetBotVersion sets the BotVersion field's value. +func (s *DescribeBotResourceGenerationOutput) SetBotVersion(v string) *DescribeBotResourceGenerationOutput { + s.BotVersion = &v + return s +} + +// SetCreationDateTime sets the CreationDateTime field's value. +func (s *DescribeBotResourceGenerationOutput) SetCreationDateTime(v time.Time) *DescribeBotResourceGenerationOutput { + s.CreationDateTime = &v + return s +} + +// SetFailureReasons sets the FailureReasons field's value. +func (s *DescribeBotResourceGenerationOutput) SetFailureReasons(v []*string) *DescribeBotResourceGenerationOutput { + s.FailureReasons = v + return s +} + +// SetGeneratedBotLocaleUrl sets the GeneratedBotLocaleUrl field's value. +func (s *DescribeBotResourceGenerationOutput) SetGeneratedBotLocaleUrl(v string) *DescribeBotResourceGenerationOutput { + s.GeneratedBotLocaleUrl = &v + return s +} + +// SetGenerationId sets the GenerationId field's value. +func (s *DescribeBotResourceGenerationOutput) SetGenerationId(v string) *DescribeBotResourceGenerationOutput { + s.GenerationId = &v + return s +} + +// SetGenerationInputPrompt sets the GenerationInputPrompt field's value. +func (s *DescribeBotResourceGenerationOutput) SetGenerationInputPrompt(v string) *DescribeBotResourceGenerationOutput { + s.GenerationInputPrompt = &v + return s +} + +// SetGenerationStatus sets the GenerationStatus field's value. +func (s *DescribeBotResourceGenerationOutput) SetGenerationStatus(v string) *DescribeBotResourceGenerationOutput { + s.GenerationStatus = &v + return s +} + +// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value. +func (s *DescribeBotResourceGenerationOutput) SetLastUpdatedDateTime(v time.Time) *DescribeBotResourceGenerationOutput { + s.LastUpdatedDateTime = &v + return s +} + +// SetLocaleId sets the LocaleId field's value. +func (s *DescribeBotResourceGenerationOutput) SetLocaleId(v string) *DescribeBotResourceGenerationOutput { + s.LocaleId = &v + return s +} + +// SetModelArn sets the ModelArn field's value. +func (s *DescribeBotResourceGenerationOutput) SetModelArn(v string) *DescribeBotResourceGenerationOutput { + s.ModelArn = &v + return s +} + type DescribeBotVersionInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -25420,6 +26237,68 @@ func (s *DescribeTestSetOutput) SetTestSetName(v string) *DescribeTestSetOutput return s } +// Contains specifications for the descriptive bot building feature. +type DescriptiveBotBuilderSpecification struct { + _ struct{} `type:"structure"` + + // An object containing information about the Amazon Bedrock model used to interpret + // the prompt used in descriptive bot building. + BedrockModelSpecification *BedrockModelSpecification `locationName:"bedrockModelSpecification" type:"structure"` + + // Specifies whether the descriptive bot building feature is activated or not. + // + // Enabled is a required field + Enabled *bool `locationName:"enabled" type:"boolean" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescriptiveBotBuilderSpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescriptiveBotBuilderSpecification) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescriptiveBotBuilderSpecification) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescriptiveBotBuilderSpecification"} + if s.Enabled == nil { + invalidParams.Add(request.NewErrParamRequired("Enabled")) + } + if s.BedrockModelSpecification != nil { + if err := s.BedrockModelSpecification.Validate(); err != nil { + invalidParams.AddNested("BedrockModelSpecification", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBedrockModelSpecification sets the BedrockModelSpecification field's value. +func (s *DescriptiveBotBuilderSpecification) SetBedrockModelSpecification(v *BedrockModelSpecification) *DescriptiveBotBuilderSpecification { + s.BedrockModelSpecification = v + return s +} + +// SetEnabled sets the Enabled field's value. +func (s *DescriptiveBotBuilderSpecification) SetEnabled(v bool) *DescriptiveBotBuilderSpecification { + s.Enabled = &v + return s +} + // Defines the action that the bot executes at runtime when the conversation // reaches this step. type DialogAction struct { @@ -26663,6 +27542,364 @@ func (s *FulfillmentUpdatesSpecification) SetUpdateResponse(v *FulfillmentUpdate return s } +type GenerateBotElementInput struct { + _ struct{} `type:"structure"` + + // The bot unique Id for the bot request to generate utterances. + // + // BotId is a required field + BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"` + + // The bot version for the bot request to generate utterances. + // + // BotVersion is a required field + BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"` + + // The intent unique Id for the bot request to generate utterances. + // + // IntentId is a required field + IntentId *string `locationName:"intentId" min:"10" type:"string" required:"true"` + + // The unique locale Id for the bot request to generate utterances. + // + // LocaleId is a required field + LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GenerateBotElementInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GenerateBotElementInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GenerateBotElementInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GenerateBotElementInput"} + if s.BotId == nil { + invalidParams.Add(request.NewErrParamRequired("BotId")) + } + if s.BotId != nil && len(*s.BotId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("BotId", 10)) + } + if s.BotVersion == nil { + invalidParams.Add(request.NewErrParamRequired("BotVersion")) + } + if s.BotVersion != nil && len(*s.BotVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1)) + } + if s.IntentId == nil { + invalidParams.Add(request.NewErrParamRequired("IntentId")) + } + if s.IntentId != nil && len(*s.IntentId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("IntentId", 10)) + } + if s.LocaleId == nil { + invalidParams.Add(request.NewErrParamRequired("LocaleId")) + } + if s.LocaleId != nil && len(*s.LocaleId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBotId sets the BotId field's value. +func (s *GenerateBotElementInput) SetBotId(v string) *GenerateBotElementInput { + s.BotId = &v + return s +} + +// SetBotVersion sets the BotVersion field's value. +func (s *GenerateBotElementInput) SetBotVersion(v string) *GenerateBotElementInput { + s.BotVersion = &v + return s +} + +// SetIntentId sets the IntentId field's value. +func (s *GenerateBotElementInput) SetIntentId(v string) *GenerateBotElementInput { + s.IntentId = &v + return s +} + +// SetLocaleId sets the LocaleId field's value. +func (s *GenerateBotElementInput) SetLocaleId(v string) *GenerateBotElementInput { + s.LocaleId = &v + return s +} + +type GenerateBotElementOutput struct { + _ struct{} `type:"structure"` + + // The unique bot Id for the bot which received the response. + BotId *string `locationName:"botId" min:"10" type:"string"` + + // The unique bot version for the bot which received the response. + BotVersion *string `locationName:"botVersion" min:"5" type:"string"` + + // The unique intent Id for the bot which received the response. + IntentId *string `locationName:"intentId" min:"10" type:"string"` + + // The unique locale Id for the bot which received the response. + LocaleId *string `locationName:"localeId" type:"string"` + + // The sample utterances for the bot which received the response. + SampleUtterances []*SampleUtterance `locationName:"sampleUtterances" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GenerateBotElementOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GenerateBotElementOutput) GoString() string { + return s.String() +} + +// SetBotId sets the BotId field's value. +func (s *GenerateBotElementOutput) SetBotId(v string) *GenerateBotElementOutput { + s.BotId = &v + return s +} + +// SetBotVersion sets the BotVersion field's value. +func (s *GenerateBotElementOutput) SetBotVersion(v string) *GenerateBotElementOutput { + s.BotVersion = &v + return s +} + +// SetIntentId sets the IntentId field's value. +func (s *GenerateBotElementOutput) SetIntentId(v string) *GenerateBotElementOutput { + s.IntentId = &v + return s +} + +// SetLocaleId sets the LocaleId field's value. +func (s *GenerateBotElementOutput) SetLocaleId(v string) *GenerateBotElementOutput { + s.LocaleId = &v + return s +} + +// SetSampleUtterances sets the SampleUtterances field's value. +func (s *GenerateBotElementOutput) SetSampleUtterances(v []*SampleUtterance) *GenerateBotElementOutput { + s.SampleUtterances = v + return s +} + +// Specifies the attribute and method by which to sort the generation request +// information. +type GenerationSortBy struct { + _ struct{} `type:"structure"` + + // The attribute by which to sort the generation request information. You can + // sort by the following attributes. + // + // * creationStartTime – The time at which the generation request was created. + // + // * lastUpdatedTime – The time at which the generation request was last + // updated. + // + // Attribute is a required field + Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"GenerationSortByAttribute"` + + // The order by which to sort the generation request information. + // + // Order is a required field + Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GenerationSortBy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GenerationSortBy) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GenerationSortBy) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GenerationSortBy"} + if s.Attribute == nil { + invalidParams.Add(request.NewErrParamRequired("Attribute")) + } + if s.Order == nil { + invalidParams.Add(request.NewErrParamRequired("Order")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttribute sets the Attribute field's value. +func (s *GenerationSortBy) SetAttribute(v string) *GenerationSortBy { + s.Attribute = &v + return s +} + +// SetOrder sets the Order field's value. +func (s *GenerationSortBy) SetOrder(v string) *GenerationSortBy { + s.Order = &v + return s +} + +// Contains information about a generation request made for the bot locale. +type GenerationSummary struct { + _ struct{} `type:"structure"` + + // The date and time at which the generation request was made. + CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"` + + // The unique identifier of the generation request. + GenerationId *string `locationName:"generationId" min:"10" type:"string"` + + // The status of the generation request. + GenerationStatus *string `locationName:"generationStatus" type:"string" enum:"GenerationStatus"` + + // The date and time at which the generation request was last updated. + LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GenerationSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GenerationSummary) GoString() string { + return s.String() +} + +// SetCreationDateTime sets the CreationDateTime field's value. +func (s *GenerationSummary) SetCreationDateTime(v time.Time) *GenerationSummary { + s.CreationDateTime = &v + return s +} + +// SetGenerationId sets the GenerationId field's value. +func (s *GenerationSummary) SetGenerationId(v string) *GenerationSummary { + s.GenerationId = &v + return s +} + +// SetGenerationStatus sets the GenerationStatus field's value. +func (s *GenerationSummary) SetGenerationStatus(v string) *GenerationSummary { + s.GenerationStatus = &v + return s +} + +// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value. +func (s *GenerationSummary) SetLastUpdatedDateTime(v time.Time) *GenerationSummary { + s.LastUpdatedDateTime = &v + return s +} + +// Contains specifications about the generative AI capabilities from Amazon +// Bedrock that you can turn on for your bot. +type GenerativeAISettings struct { + _ struct{} `type:"structure"` + + // Contains specifications about the Amazon Lex build time generative AI capabilities + // from Amazon Bedrock that you can turn on for your bot. + BuildtimeSettings *BuildtimeSettings `locationName:"buildtimeSettings" type:"structure"` + + // Contains specifications about the Amazon Lex runtime generative AI capabilities + // from Amazon Bedrock that you can turn on for your bot. + RuntimeSettings *RuntimeSettings `locationName:"runtimeSettings" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GenerativeAISettings) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GenerativeAISettings) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GenerativeAISettings) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GenerativeAISettings"} + if s.BuildtimeSettings != nil { + if err := s.BuildtimeSettings.Validate(); err != nil { + invalidParams.AddNested("BuildtimeSettings", err.(request.ErrInvalidParams)) + } + } + if s.RuntimeSettings != nil { + if err := s.RuntimeSettings.Validate(); err != nil { + invalidParams.AddNested("RuntimeSettings", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBuildtimeSettings sets the BuildtimeSettings field's value. +func (s *GenerativeAISettings) SetBuildtimeSettings(v *BuildtimeSettings) *GenerativeAISettings { + s.BuildtimeSettings = v + return s +} + +// SetRuntimeSettings sets the RuntimeSettings field's value. +func (s *GenerativeAISettings) SetRuntimeSettings(v *RuntimeSettings) *GenerativeAISettings { + s.RuntimeSettings = v + return s +} + type GetTestExecutionArtifactsUrlInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -29507,6 +30744,197 @@ func (s *ListBotRecommendationsOutput) SetNextToken(v string) *ListBotRecommenda return s } +type ListBotResourceGenerationsInput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the bot whose generation requests you want to view. + // + // BotId is a required field + BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"` + + // The version of the bot whose generation requests you want to view. + // + // BotVersion is a required field + BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"` + + // The locale of the bot whose generation requests you want to view. + // + // LocaleId is a required field + LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"` + + // The maximum number of results to return in the response. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // If the total number of results is greater than the number specified in the + // maxResults, the response returns a token in the nextToken field. Use this + // token when making a request to return the next batch of results. + NextToken *string `locationName:"nextToken" type:"string"` + + // An object containing information about the attribute and the method by which + // to sort the results + SortBy *GenerationSortBy `locationName:"sortBy" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListBotResourceGenerationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListBotResourceGenerationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListBotResourceGenerationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListBotResourceGenerationsInput"} + if s.BotId == nil { + invalidParams.Add(request.NewErrParamRequired("BotId")) + } + if s.BotId != nil && len(*s.BotId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("BotId", 10)) + } + if s.BotVersion == nil { + invalidParams.Add(request.NewErrParamRequired("BotVersion")) + } + if s.BotVersion != nil && len(*s.BotVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1)) + } + if s.LocaleId == nil { + invalidParams.Add(request.NewErrParamRequired("LocaleId")) + } + if s.LocaleId != nil && len(*s.LocaleId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.SortBy != nil { + if err := s.SortBy.Validate(); err != nil { + invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBotId sets the BotId field's value. +func (s *ListBotResourceGenerationsInput) SetBotId(v string) *ListBotResourceGenerationsInput { + s.BotId = &v + return s +} + +// SetBotVersion sets the BotVersion field's value. +func (s *ListBotResourceGenerationsInput) SetBotVersion(v string) *ListBotResourceGenerationsInput { + s.BotVersion = &v + return s +} + +// SetLocaleId sets the LocaleId field's value. +func (s *ListBotResourceGenerationsInput) SetLocaleId(v string) *ListBotResourceGenerationsInput { + s.LocaleId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListBotResourceGenerationsInput) SetMaxResults(v int64) *ListBotResourceGenerationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListBotResourceGenerationsInput) SetNextToken(v string) *ListBotResourceGenerationsInput { + s.NextToken = &v + return s +} + +// SetSortBy sets the SortBy field's value. +func (s *ListBotResourceGenerationsInput) SetSortBy(v *GenerationSortBy) *ListBotResourceGenerationsInput { + s.SortBy = v + return s +} + +type ListBotResourceGenerationsOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the bot for which the generation requests were made. + BotId *string `locationName:"botId" min:"10" type:"string"` + + // The version of the bot for which the generation requests were made. + BotVersion *string `locationName:"botVersion" min:"1" type:"string"` + + // A list of objects, each containing information about a generation request + // for the bot locale. + GenerationSummaries []*GenerationSummary `locationName:"generationSummaries" type:"list"` + + // The locale of the bot for which the generation requests were made. + LocaleId *string `locationName:"localeId" type:"string"` + + // If the total number of results is greater than the number specified in the + // maxResults, the response returns a token in the nextToken field. Use this + // token when making a request to return the next batch of results. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListBotResourceGenerationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListBotResourceGenerationsOutput) GoString() string { + return s.String() +} + +// SetBotId sets the BotId field's value. +func (s *ListBotResourceGenerationsOutput) SetBotId(v string) *ListBotResourceGenerationsOutput { + s.BotId = &v + return s +} + +// SetBotVersion sets the BotVersion field's value. +func (s *ListBotResourceGenerationsOutput) SetBotVersion(v string) *ListBotResourceGenerationsOutput { + s.BotVersion = &v + return s +} + +// SetGenerationSummaries sets the GenerationSummaries field's value. +func (s *ListBotResourceGenerationsOutput) SetGenerationSummaries(v []*GenerationSummary) *ListBotResourceGenerationsOutput { + s.GenerationSummaries = v + return s +} + +// SetLocaleId sets the LocaleId field's value. +func (s *ListBotResourceGenerationsOutput) SetLocaleId(v string) *ListBotResourceGenerationsOutput { + s.LocaleId = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListBotResourceGenerationsOutput) SetNextToken(v string) *ListBotResourceGenerationsOutput { + s.NextToken = &v + return s +} + type ListBotVersionsInput struct { _ struct{} `type:"structure"` @@ -35531,6 +36959,54 @@ func (s *RuntimeHints) SetSlotHints(v map[string]map[string]*RuntimeHintDetails) return s } +// Contains specifications about the Amazon Lex runtime generative AI capabilities +// from Amazon Bedrock that you can turn on for your bot. +type RuntimeSettings struct { + _ struct{} `type:"structure"` + + // An object containing specifications for the assisted slot resolution feature. + SlotResolutionImprovement *SlotResolutionImprovementSpecification `locationName:"slotResolutionImprovement" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RuntimeSettings) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RuntimeSettings) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RuntimeSettings) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RuntimeSettings"} + if s.SlotResolutionImprovement != nil { + if err := s.SlotResolutionImprovement.Validate(); err != nil { + invalidParams.AddNested("SlotResolutionImprovement", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSlotResolutionImprovement sets the SlotResolutionImprovement field's value. +func (s *RuntimeSettings) SetSlotResolutionImprovement(v *SlotResolutionImprovementSpecification) *RuntimeSettings { + s.SlotResolutionImprovement = v + return s +} + // Specifies an Amazon S3 bucket for logging audio conversations type S3BucketLogDestination struct { _ struct{} `type:"structure"` @@ -35821,6 +37297,68 @@ func (s *SampleUtterance) SetUtterance(v string) *SampleUtterance { return s } +// Contains specifications for the sample utterance generation feature. +type SampleUtteranceGenerationSpecification struct { + _ struct{} `type:"structure"` + + // Contains information about the Amazon Bedrock model used to interpret the + // prompt used in descriptive bot building. + BedrockModelSpecification *BedrockModelSpecification `locationName:"bedrockModelSpecification" type:"structure"` + + // Specifies whether to enable sample utterance generation or not. + // + // Enabled is a required field + Enabled *bool `locationName:"enabled" type:"boolean" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SampleUtteranceGenerationSpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SampleUtteranceGenerationSpecification) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SampleUtteranceGenerationSpecification) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SampleUtteranceGenerationSpecification"} + if s.Enabled == nil { + invalidParams.Add(request.NewErrParamRequired("Enabled")) + } + if s.BedrockModelSpecification != nil { + if err := s.BedrockModelSpecification.Validate(); err != nil { + invalidParams.AddNested("BedrockModelSpecification", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBedrockModelSpecification sets the BedrockModelSpecification field's value. +func (s *SampleUtteranceGenerationSpecification) SetBedrockModelSpecification(v *BedrockModelSpecification) *SampleUtteranceGenerationSpecification { + s.BedrockModelSpecification = v + return s +} + +// SetEnabled sets the Enabled field's value. +func (s *SampleUtteranceGenerationSpecification) SetEnabled(v bool) *SampleUtteranceGenerationSpecification { + s.Enabled = &v + return s +} + // Defines one of the values for a slot type. type SampleValue struct { _ struct{} `type:"structure"` @@ -36872,6 +38410,119 @@ func (s *SlotPriority) SetSlotId(v string) *SlotPriority { return s } +// Contains specifications for the assisted slot resolution feature. +type SlotResolutionImprovementSpecification struct { + _ struct{} `type:"structure"` + + // An object containing information about the Amazon Bedrock model used to assist + // slot resolution. + BedrockModelSpecification *BedrockModelSpecification `locationName:"bedrockModelSpecification" type:"structure"` + + // Specifies whether assisted slot resolution is turned on or off. + // + // Enabled is a required field + Enabled *bool `locationName:"enabled" type:"boolean" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SlotResolutionImprovementSpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SlotResolutionImprovementSpecification) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SlotResolutionImprovementSpecification) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SlotResolutionImprovementSpecification"} + if s.Enabled == nil { + invalidParams.Add(request.NewErrParamRequired("Enabled")) + } + if s.BedrockModelSpecification != nil { + if err := s.BedrockModelSpecification.Validate(); err != nil { + invalidParams.AddNested("BedrockModelSpecification", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBedrockModelSpecification sets the BedrockModelSpecification field's value. +func (s *SlotResolutionImprovementSpecification) SetBedrockModelSpecification(v *BedrockModelSpecification) *SlotResolutionImprovementSpecification { + s.BedrockModelSpecification = v + return s +} + +// SetEnabled sets the Enabled field's value. +func (s *SlotResolutionImprovementSpecification) SetEnabled(v bool) *SlotResolutionImprovementSpecification { + s.Enabled = &v + return s +} + +// Contains information about whether assisted slot resolution is turned on +// for the slot or not. +type SlotResolutionSetting struct { + _ struct{} `type:"structure"` + + // Specifies whether assisted slot resolution is turned on for the slot or not. + // If the value is EnhancedFallback, assisted slot resolution is activated when + // Amazon Lex defaults to the AMAZON.FallbackIntent. If the value is Default, + // assisted slot resolution is turned off. + // + // SlotResolutionStrategy is a required field + SlotResolutionStrategy *string `locationName:"slotResolutionStrategy" type:"string" required:"true" enum:"SlotResolutionStrategy"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SlotResolutionSetting) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SlotResolutionSetting) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SlotResolutionSetting) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SlotResolutionSetting"} + if s.SlotResolutionStrategy == nil { + invalidParams.Add(request.NewErrParamRequired("SlotResolutionStrategy")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSlotResolutionStrategy sets the SlotResolutionStrategy field's value. +func (s *SlotResolutionSetting) SetSlotResolutionStrategy(v string) *SlotResolutionSetting { + s.SlotResolutionStrategy = &v + return s +} + // Information about the success and failure rate of slot resolution in the // results of a test execution. type SlotResolutionTestResultItem struct { @@ -37530,6 +39181,10 @@ type SlotValueElicitationSetting struct { // SlotConstraint is a required field SlotConstraint *string `locationName:"slotConstraint" type:"string" required:"true" enum:"SlotConstraint"` + // An object containing information about whether assisted slot resolution is + // turned on for the slot or not. + SlotResolutionSetting *SlotResolutionSetting `locationName:"slotResolutionSetting" type:"structure"` + // Specifies the prompts that Amazon Lex uses while a bot is waiting for customer // input. WaitAndContinueSpecification *WaitAndContinueSpecification `locationName:"waitAndContinueSpecification" type:"structure"` @@ -37584,6 +39239,11 @@ func (s *SlotValueElicitationSetting) Validate() error { invalidParams.AddNested("SlotCaptureSetting", err.(request.ErrInvalidParams)) } } + if s.SlotResolutionSetting != nil { + if err := s.SlotResolutionSetting.Validate(); err != nil { + invalidParams.AddNested("SlotResolutionSetting", err.(request.ErrInvalidParams)) + } + } if s.WaitAndContinueSpecification != nil { if err := s.WaitAndContinueSpecification.Validate(); err != nil { invalidParams.AddNested("WaitAndContinueSpecification", err.(request.ErrInvalidParams)) @@ -37626,6 +39286,12 @@ func (s *SlotValueElicitationSetting) SetSlotConstraint(v string) *SlotValueElic return s } +// SetSlotResolutionSetting sets the SlotResolutionSetting field's value. +func (s *SlotValueElicitationSetting) SetSlotResolutionSetting(v *SlotResolutionSetting) *SlotValueElicitationSetting { + s.SlotResolutionSetting = v + return s +} + // SetWaitAndContinueSpecification sets the WaitAndContinueSpecification field's value. func (s *SlotValueElicitationSetting) SetWaitAndContinueSpecification(v *WaitAndContinueSpecification) *SlotValueElicitationSetting { s.WaitAndContinueSpecification = v @@ -38155,6 +39821,194 @@ func (s *StartBotRecommendationOutput) SetTranscriptSourceSetting(v *TranscriptS return s } +type StartBotResourceGenerationInput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the bot for which to generate intents and slot types. + // + // BotId is a required field + BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"` + + // The version of the bot for which to generate intents and slot types. + // + // BotVersion is a required field + BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"` + + // The prompt to generate intents and slot types for the bot locale. Your description + // should be both detailed and precise to help generate appropriate and sufficient + // intents for your bot. Include a list of actions to improve the intent creation + // process. + // + // GenerationInputPrompt is a required field + GenerationInputPrompt *string `locationName:"generationInputPrompt" min:"100" type:"string" required:"true"` + + // The locale of the bot for which to generate intents and slot types. + // + // LocaleId is a required field + LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartBotResourceGenerationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartBotResourceGenerationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartBotResourceGenerationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartBotResourceGenerationInput"} + if s.BotId == nil { + invalidParams.Add(request.NewErrParamRequired("BotId")) + } + if s.BotId != nil && len(*s.BotId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("BotId", 10)) + } + if s.BotVersion == nil { + invalidParams.Add(request.NewErrParamRequired("BotVersion")) + } + if s.BotVersion != nil && len(*s.BotVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1)) + } + if s.GenerationInputPrompt == nil { + invalidParams.Add(request.NewErrParamRequired("GenerationInputPrompt")) + } + if s.GenerationInputPrompt != nil && len(*s.GenerationInputPrompt) < 100 { + invalidParams.Add(request.NewErrParamMinLen("GenerationInputPrompt", 100)) + } + if s.LocaleId == nil { + invalidParams.Add(request.NewErrParamRequired("LocaleId")) + } + if s.LocaleId != nil && len(*s.LocaleId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBotId sets the BotId field's value. +func (s *StartBotResourceGenerationInput) SetBotId(v string) *StartBotResourceGenerationInput { + s.BotId = &v + return s +} + +// SetBotVersion sets the BotVersion field's value. +func (s *StartBotResourceGenerationInput) SetBotVersion(v string) *StartBotResourceGenerationInput { + s.BotVersion = &v + return s +} + +// SetGenerationInputPrompt sets the GenerationInputPrompt field's value. +func (s *StartBotResourceGenerationInput) SetGenerationInputPrompt(v string) *StartBotResourceGenerationInput { + s.GenerationInputPrompt = &v + return s +} + +// SetLocaleId sets the LocaleId field's value. +func (s *StartBotResourceGenerationInput) SetLocaleId(v string) *StartBotResourceGenerationInput { + s.LocaleId = &v + return s +} + +type StartBotResourceGenerationOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the bot for which the generation request was made. + BotId *string `locationName:"botId" min:"10" type:"string"` + + // The version of the bot for which the generation request was made. + BotVersion *string `locationName:"botVersion" min:"1" type:"string"` + + // The date and time at which the generation request was made. + CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"` + + // The unique identifier of the generation request. + GenerationId *string `locationName:"generationId" min:"10" type:"string"` + + // The prompt that was used generate intents and slot types for the bot locale. + GenerationInputPrompt *string `locationName:"generationInputPrompt" min:"100" type:"string"` + + // The status of the generation request. + GenerationStatus *string `locationName:"generationStatus" type:"string" enum:"GenerationStatus"` + + // The locale of the bot for which the generation request was made. + LocaleId *string `locationName:"localeId" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartBotResourceGenerationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StartBotResourceGenerationOutput) GoString() string { + return s.String() +} + +// SetBotId sets the BotId field's value. +func (s *StartBotResourceGenerationOutput) SetBotId(v string) *StartBotResourceGenerationOutput { + s.BotId = &v + return s +} + +// SetBotVersion sets the BotVersion field's value. +func (s *StartBotResourceGenerationOutput) SetBotVersion(v string) *StartBotResourceGenerationOutput { + s.BotVersion = &v + return s +} + +// SetCreationDateTime sets the CreationDateTime field's value. +func (s *StartBotResourceGenerationOutput) SetCreationDateTime(v time.Time) *StartBotResourceGenerationOutput { + s.CreationDateTime = &v + return s +} + +// SetGenerationId sets the GenerationId field's value. +func (s *StartBotResourceGenerationOutput) SetGenerationId(v string) *StartBotResourceGenerationOutput { + s.GenerationId = &v + return s +} + +// SetGenerationInputPrompt sets the GenerationInputPrompt field's value. +func (s *StartBotResourceGenerationOutput) SetGenerationInputPrompt(v string) *StartBotResourceGenerationOutput { + s.GenerationInputPrompt = &v + return s +} + +// SetGenerationStatus sets the GenerationStatus field's value. +func (s *StartBotResourceGenerationOutput) SetGenerationStatus(v string) *StartBotResourceGenerationOutput { + s.GenerationStatus = &v + return s +} + +// SetLocaleId sets the LocaleId field's value. +func (s *StartBotResourceGenerationOutput) SetLocaleId(v string) *StartBotResourceGenerationOutput { + s.LocaleId = &v + return s +} + type StartImportInput struct { _ struct{} `type:"structure"` @@ -41582,6 +43436,11 @@ type UpdateBotLocaleInput struct { // The new description of the locale. Description *string `locationName:"description" type:"string"` + // Contains settings for generative AI features powered by Amazon Bedrock for + // your bot locale. Use this object to turn generative AI features on and off. + // Pricing may differ if you turn a feature on. For more information, see LINK. + GenerativeAISettings *GenerativeAISettings `locationName:"generativeAISettings" type:"structure"` + // The identifier of the language and locale to update. The string must match // one of the supported locales. For more information, see Supported languages // (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html). @@ -41643,6 +43502,11 @@ func (s *UpdateBotLocaleInput) Validate() error { if s.NluIntentConfidenceThreshold == nil { invalidParams.Add(request.NewErrParamRequired("NluIntentConfidenceThreshold")) } + if s.GenerativeAISettings != nil { + if err := s.GenerativeAISettings.Validate(); err != nil { + invalidParams.AddNested("GenerativeAISettings", err.(request.ErrInvalidParams)) + } + } if s.VoiceSettings != nil { if err := s.VoiceSettings.Validate(); err != nil { invalidParams.AddNested("VoiceSettings", err.(request.ErrInvalidParams)) @@ -41673,6 +43537,12 @@ func (s *UpdateBotLocaleInput) SetDescription(v string) *UpdateBotLocaleInput { return s } +// SetGenerativeAISettings sets the GenerativeAISettings field's value. +func (s *UpdateBotLocaleInput) SetGenerativeAISettings(v *GenerativeAISettings) *UpdateBotLocaleInput { + s.GenerativeAISettings = v + return s +} + // SetLocaleId sets the LocaleId field's value. func (s *UpdateBotLocaleInput) SetLocaleId(v string) *UpdateBotLocaleInput { s.LocaleId = &v @@ -41714,6 +43584,10 @@ type UpdateBotLocaleOutput struct { // that occurred while building the bot. FailureReasons []*string `locationName:"failureReasons" type:"list"` + // Contains settings for generative AI features powered by Amazon Bedrock for + // your bot locale. + GenerativeAISettings *GenerativeAISettings `locationName:"generativeAISettings" type:"structure"` + // A timestamp of the date and time that the locale was last updated. LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"` @@ -41789,6 +43663,12 @@ func (s *UpdateBotLocaleOutput) SetFailureReasons(v []*string) *UpdateBotLocaleO return s } +// SetGenerativeAISettings sets the GenerativeAISettings field's value. +func (s *UpdateBotLocaleOutput) SetGenerativeAISettings(v *GenerativeAISettings) *UpdateBotLocaleOutput { + s.GenerativeAISettings = v + return s +} + // SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value. func (s *UpdateBotLocaleOutput) SetLastUpdatedDateTime(v time.Time) *UpdateBotLocaleOutput { s.LastUpdatedDateTime = &v @@ -46193,6 +48073,42 @@ func ExportStatus_Values() []string { } } +const ( + // GenerationSortByAttributeCreationStartTime is a GenerationSortByAttribute enum value + GenerationSortByAttributeCreationStartTime = "creationStartTime" + + // GenerationSortByAttributeLastUpdatedTime is a GenerationSortByAttribute enum value + GenerationSortByAttributeLastUpdatedTime = "lastUpdatedTime" +) + +// GenerationSortByAttribute_Values returns all elements of the GenerationSortByAttribute enum +func GenerationSortByAttribute_Values() []string { + return []string{ + GenerationSortByAttributeCreationStartTime, + GenerationSortByAttributeLastUpdatedTime, + } +} + +const ( + // GenerationStatusFailed is a GenerationStatus enum value + GenerationStatusFailed = "Failed" + + // GenerationStatusComplete is a GenerationStatus enum value + GenerationStatusComplete = "Complete" + + // GenerationStatusInProgress is a GenerationStatus enum value + GenerationStatusInProgress = "InProgress" +) + +// GenerationStatus_Values returns all elements of the GenerationStatus enum +func GenerationStatus_Values() []string { + return []string{ + GenerationStatusFailed, + GenerationStatusComplete, + GenerationStatusInProgress, + } +} + const ( // ImportExportFileFormatLexJson is a ImportExportFileFormat enum value ImportExportFileFormatLexJson = "LexJson" @@ -46522,6 +48438,22 @@ func SlotFilterOperator_Values() []string { } } +const ( + // SlotResolutionStrategyEnhancedFallback is a SlotResolutionStrategy enum value + SlotResolutionStrategyEnhancedFallback = "EnhancedFallback" + + // SlotResolutionStrategyDefault is a SlotResolutionStrategy enum value + SlotResolutionStrategyDefault = "Default" +) + +// SlotResolutionStrategy_Values returns all elements of the SlotResolutionStrategy enum +func SlotResolutionStrategy_Values() []string { + return []string{ + SlotResolutionStrategyEnhancedFallback, + SlotResolutionStrategyDefault, + } +} + const ( // SlotShapeScalar is a SlotShape enum value SlotShapeScalar = "Scalar" diff --git a/service/lexmodelsv2/lexmodelsv2iface/interface.go b/service/lexmodelsv2/lexmodelsv2iface/interface.go index 18afed3efe9..522c106c85d 100644 --- a/service/lexmodelsv2/lexmodelsv2iface/interface.go +++ b/service/lexmodelsv2/lexmodelsv2iface/interface.go @@ -196,6 +196,10 @@ type LexModelsV2API interface { DescribeBotRecommendationWithContext(aws.Context, *lexmodelsv2.DescribeBotRecommendationInput, ...request.Option) (*lexmodelsv2.DescribeBotRecommendationOutput, error) DescribeBotRecommendationRequest(*lexmodelsv2.DescribeBotRecommendationInput) (*request.Request, *lexmodelsv2.DescribeBotRecommendationOutput) + DescribeBotResourceGeneration(*lexmodelsv2.DescribeBotResourceGenerationInput) (*lexmodelsv2.DescribeBotResourceGenerationOutput, error) + DescribeBotResourceGenerationWithContext(aws.Context, *lexmodelsv2.DescribeBotResourceGenerationInput, ...request.Option) (*lexmodelsv2.DescribeBotResourceGenerationOutput, error) + DescribeBotResourceGenerationRequest(*lexmodelsv2.DescribeBotResourceGenerationInput) (*request.Request, *lexmodelsv2.DescribeBotResourceGenerationOutput) + DescribeBotVersion(*lexmodelsv2.DescribeBotVersionInput) (*lexmodelsv2.DescribeBotVersionOutput, error) DescribeBotVersionWithContext(aws.Context, *lexmodelsv2.DescribeBotVersionInput, ...request.Option) (*lexmodelsv2.DescribeBotVersionOutput, error) DescribeBotVersionRequest(*lexmodelsv2.DescribeBotVersionInput) (*request.Request, *lexmodelsv2.DescribeBotVersionOutput) @@ -244,6 +248,10 @@ type LexModelsV2API interface { DescribeTestSetGenerationWithContext(aws.Context, *lexmodelsv2.DescribeTestSetGenerationInput, ...request.Option) (*lexmodelsv2.DescribeTestSetGenerationOutput, error) DescribeTestSetGenerationRequest(*lexmodelsv2.DescribeTestSetGenerationInput) (*request.Request, *lexmodelsv2.DescribeTestSetGenerationOutput) + GenerateBotElement(*lexmodelsv2.GenerateBotElementInput) (*lexmodelsv2.GenerateBotElementOutput, error) + GenerateBotElementWithContext(aws.Context, *lexmodelsv2.GenerateBotElementInput, ...request.Option) (*lexmodelsv2.GenerateBotElementOutput, error) + GenerateBotElementRequest(*lexmodelsv2.GenerateBotElementInput) (*request.Request, *lexmodelsv2.GenerateBotElementOutput) + GetTestExecutionArtifactsUrl(*lexmodelsv2.GetTestExecutionArtifactsUrlInput) (*lexmodelsv2.GetTestExecutionArtifactsUrlOutput, error) GetTestExecutionArtifactsUrlWithContext(aws.Context, *lexmodelsv2.GetTestExecutionArtifactsUrlInput, ...request.Option) (*lexmodelsv2.GetTestExecutionArtifactsUrlOutput, error) GetTestExecutionArtifactsUrlRequest(*lexmodelsv2.GetTestExecutionArtifactsUrlInput) (*request.Request, *lexmodelsv2.GetTestExecutionArtifactsUrlOutput) @@ -276,6 +284,13 @@ type LexModelsV2API interface { ListBotRecommendationsPages(*lexmodelsv2.ListBotRecommendationsInput, func(*lexmodelsv2.ListBotRecommendationsOutput, bool) bool) error ListBotRecommendationsPagesWithContext(aws.Context, *lexmodelsv2.ListBotRecommendationsInput, func(*lexmodelsv2.ListBotRecommendationsOutput, bool) bool, ...request.Option) error + ListBotResourceGenerations(*lexmodelsv2.ListBotResourceGenerationsInput) (*lexmodelsv2.ListBotResourceGenerationsOutput, error) + ListBotResourceGenerationsWithContext(aws.Context, *lexmodelsv2.ListBotResourceGenerationsInput, ...request.Option) (*lexmodelsv2.ListBotResourceGenerationsOutput, error) + ListBotResourceGenerationsRequest(*lexmodelsv2.ListBotResourceGenerationsInput) (*request.Request, *lexmodelsv2.ListBotResourceGenerationsOutput) + + ListBotResourceGenerationsPages(*lexmodelsv2.ListBotResourceGenerationsInput, func(*lexmodelsv2.ListBotResourceGenerationsOutput, bool) bool) error + ListBotResourceGenerationsPagesWithContext(aws.Context, *lexmodelsv2.ListBotResourceGenerationsInput, func(*lexmodelsv2.ListBotResourceGenerationsOutput, bool) bool, ...request.Option) error + ListBotVersions(*lexmodelsv2.ListBotVersionsInput) (*lexmodelsv2.ListBotVersionsOutput, error) ListBotVersionsWithContext(aws.Context, *lexmodelsv2.ListBotVersionsInput, ...request.Option) (*lexmodelsv2.ListBotVersionsOutput, error) ListBotVersionsRequest(*lexmodelsv2.ListBotVersionsInput) (*request.Request, *lexmodelsv2.ListBotVersionsOutput) @@ -439,6 +454,10 @@ type LexModelsV2API interface { StartBotRecommendationWithContext(aws.Context, *lexmodelsv2.StartBotRecommendationInput, ...request.Option) (*lexmodelsv2.StartBotRecommendationOutput, error) StartBotRecommendationRequest(*lexmodelsv2.StartBotRecommendationInput) (*request.Request, *lexmodelsv2.StartBotRecommendationOutput) + StartBotResourceGeneration(*lexmodelsv2.StartBotResourceGenerationInput) (*lexmodelsv2.StartBotResourceGenerationOutput, error) + StartBotResourceGenerationWithContext(aws.Context, *lexmodelsv2.StartBotResourceGenerationInput, ...request.Option) (*lexmodelsv2.StartBotResourceGenerationOutput, error) + StartBotResourceGenerationRequest(*lexmodelsv2.StartBotResourceGenerationInput) (*request.Request, *lexmodelsv2.StartBotResourceGenerationOutput) + StartImport(*lexmodelsv2.StartImportInput) (*lexmodelsv2.StartImportOutput, error) StartImportWithContext(aws.Context, *lexmodelsv2.StartImportInput, ...request.Option) (*lexmodelsv2.StartImportOutput, error) StartImportRequest(*lexmodelsv2.StartImportInput) (*request.Request, *lexmodelsv2.StartImportOutput) diff --git a/service/lexruntimev2/api.go b/service/lexruntimev2/api.go index 72b568a5871..3c35e939f1a 100644 --- a/service/lexruntimev2/api.go +++ b/service/lexruntimev2/api.go @@ -2213,7 +2213,7 @@ type DialogAction struct { // // * Spell by word - "b as in boy" "o as in oscar" "b as in boy" // - // For more information, see Using spelling to enter slot values (https://docs.aws.amazon.com/lexv2/latest/dg/using-spelling.html). + // For more information, see Using spelling to enter slot values (https://docs.aws.amazon.com/lexv2/latest/dg/spelling-styles.html). SlotElicitationStyle *string `locationName:"slotElicitationStyle" type:"string" enum:"StyleType"` // The name of the slot that should be elicited from the user. @@ -2224,21 +2224,21 @@ type DialogAction struct { SubSlotToElicit *ElicitSubSlot `locationName:"subSlotToElicit" type:"structure"` // The next action that the bot should take in its interaction with the user. - // The possible values are: + // The following values are possible: // - // * Close - Indicates that there will not be a response from the user. For - // example, the statement "Your order has been placed" does not require a - // response. + // * Close – Indicates that there will not be a response from the user. + // For example, the statement "Your order has been placed" does not require + // a response. // - // * ConfirmIntent - The next action is asking the user if the intent is + // * ConfirmIntent – The next action is asking the user if the intent is // complete and ready to be fulfilled. This is a yes/no question such as // "Place the order?" // - // * Delegate - The next action is determined by Amazon Lex V2. + // * Delegate – The next action is determined by Amazon Lex V2. // - // * ElicitIntent - The next action is to elicit an intent from the user. + // * ElicitIntent – The next action is to elicit an intent from the user. // - // * ElicitSlot - The next action is to elicit a slot value from the user. + // * ElicitSlot – The next action is to elicit a slot value from the user. // // Type is a required field Type *string `locationName:"type" type:"string" required:"true" enum:"DialogActionType"` @@ -2784,7 +2784,8 @@ func (s *ImageResponseCard) SetTitle(v string) *ImageResponseCard { type Intent struct { _ struct{} `type:"structure"` - // Contains information about whether fulfillment of the intent has been confirmed. + // Indicates whether the intent has been Confirmed, Denied, or None if the confirmation + // stage has not yet been reached. ConfirmationState *string `locationName:"confirmationState" type:"string" enum:"ConfirmationState"` // The name of the intent. @@ -2796,7 +2797,24 @@ type Intent struct { // value of the slot. If a slot has not been filled, the value is null. Slots map[string]*Slot `locationName:"slots" type:"map"` - // Contains fulfillment information for the intent. + // Indicates the fulfillment state for the intent. The meanings of each value + // are as follows: + // + // * Failed – The bot failed to fulfill the intent. + // + // * Fulfilled – The bot has completed fulfillment of the intent. + // + // * FulfillmentInProgress – The bot is in the middle of fulfilling the + // intent. + // + // * InProgress – The bot is in the middle of eliciting the slot values + // that are necessary to fulfill the intent. + // + // * ReadyForFulfillment – The bot has elicited all the slot values for + // the intent and is ready to fulfill the intent. + // + // * Waiting – The bot is waiting for a response from the user (limited + // to streaming conversations). State *string `locationName:"state" type:"string" enum:"IntentState"` } @@ -2878,7 +2896,8 @@ type IntentResultEvent struct { // for each event sent by Amazon Lex V2 in the current session. EventId *string `locationName:"eventId" min:"2" type:"string"` - // Indicates whether the input to the operation was text or speech. + // Indicates whether the input to the operation was text, speech, or from a + // touch-tone keypad. InputMode *string `locationName:"inputMode" type:"string" enum:"InputMode"` // A list of intents that Amazon Lex V2 determined might satisfy the user's @@ -3083,8 +3102,9 @@ func (s *InternalServerException) RequestID() string { return s.RespMetadata.RequestID } -// An intent that Amazon Lex V2 determined might satisfy the user's utterance. -// The intents are ordered by the confidence score. +// An object containing information about an intent that Amazon Lex V2 determined +// might satisfy the user's utterance. The intents are ordered by the confidence +// score. type Interpretation struct { _ struct{} `type:"structure"` @@ -3092,6 +3112,9 @@ type Interpretation struct { // ordered by the confidence score. Intent *Intent `locationName:"intent" type:"structure"` + // Specifies the service that interpreted the input. + InterpretationSource *string `locationName:"interpretationSource" type:"string" enum:"InterpretationSource"` + // Determines the threshold where Amazon Lex V2 will insert the AMAZON.FallbackIntent, // AMAZON.KendraSearchIntent, or both when returning alternative intents in // a response. AMAZON.FallbackIntent and AMAZON.KendraSearchIntent are only @@ -3129,6 +3152,12 @@ func (s *Interpretation) SetIntent(v *Intent) *Interpretation { return s } +// SetInterpretationSource sets the InterpretationSource field's value. +func (s *Interpretation) SetInterpretationSource(v string) *Interpretation { + s.InterpretationSource = &v + return s +} + // SetNluConfidence sets the NluConfidence field's value. func (s *Interpretation) SetNluConfidence(v *ConfidenceScore) *Interpretation { s.NluConfidence = v @@ -3570,18 +3599,17 @@ type PutSessionOutput struct { // that the messages are defined in the bot. Messages *string `location:"header" locationName:"x-amz-lex-messages" min:"1" type:"string"` - // Request-specific information passed between the client application and Amazon - // Lex V2. These are the same as the requestAttribute parameter in the call - // to the PutSession operation. + // A base-64-encoded gzipped field that provides request-specific information + // passed between the client application and Amazon Lex V2. These are the same + // as the requestAttribute parameter in the call to the PutSession operation. RequestAttributes *string `location:"header" locationName:"x-amz-lex-request-attributes" min:"1" type:"string"` // The identifier of the session that received the data. SessionId *string `location:"header" locationName:"x-amz-lex-session-id" min:"2" type:"string"` - // Represents the current state of the dialog between the user and the bot. - // - // Use this to determine the progress of the conversation and what the next - // action may be. + // A base-64-encoded gzipped field that represents the current state of the + // dialog between the user and the bot. Use this to determine the progress of + // the conversation and what the next action may be. SessionState *string `location:"header" locationName:"x-amz-lex-session-state" min:"1" type:"string"` } @@ -4096,7 +4124,8 @@ type RecognizeUtteranceOutput struct { // Content type as specified in the responseContentType in the request. ContentType *string `location:"header" locationName:"Content-Type" min:"1" type:"string"` - // Indicates whether the input mode to the operation was text or speech. + // Indicates whether the input mode to the operation was text, speech, or from + // a touch-tone keypad. InputMode *string `location:"header" locationName:"x-amz-lex-input-mode" min:"1" type:"string"` // The text used to process the request. @@ -5639,22 +5668,24 @@ func (s *ValidationException) RequestID() string { return s.RespMetadata.RequestID } -// The value of a slot. +// Information about the value provided for a slot and Amazon Lex V2's interpretation. type Value struct { _ struct{} `type:"structure"` - // The value that Amazon Lex V2 determines for the slot. The actual value depends - // on the setting of the value selection strategy for the bot. You can choose - // to use the value entered by the user, or you can have Amazon Lex V2 choose - // the first value in the resolvedValues list. + // The value that Amazon Lex V2 determines for the slot, given the user input. + // The actual value depends on the setting of the value selection strategy for + // the bot. You can choose to use the value entered by the user, or you can + // have Amazon Lex V2 choose the first value in the resolvedValues list. // // InterpretedValue is a required field InterpretedValue *string `locationName:"interpretedValue" min:"1" type:"string" required:"true"` - // The text of the utterance from the user that was entered for the slot. + // The part of the user's response to the slot elicitation that Amazon Lex V2 + // determines is relevant to the slot value. OriginalValue *string `locationName:"originalValue" min:"1" type:"string"` - // A list of additional values that have been recognized for the slot. + // A list of values that Amazon Lex V2 determines are possible resolutions for + // the user input. The first value matches the interpretedValue. ResolvedValues []*string `locationName:"resolvedValues" type:"list"` } @@ -5833,6 +5864,22 @@ func IntentState_Values() []string { } } +const ( + // InterpretationSourceBedrock is a InterpretationSource enum value + InterpretationSourceBedrock = "Bedrock" + + // InterpretationSourceLex is a InterpretationSource enum value + InterpretationSourceLex = "Lex" +) + +// InterpretationSource_Values returns all elements of the InterpretationSource enum +func InterpretationSource_Values() []string { + return []string{ + InterpretationSourceBedrock, + InterpretationSourceLex, + } +} + const ( // MessageContentTypeCustomPayload is a MessageContentType enum value MessageContentTypeCustomPayload = "CustomPayload" diff --git a/service/lexruntimev2/eventstream_test.go b/service/lexruntimev2/eventstream_test.go index 474cec7ee0a..3a5c54bae0d 100644 --- a/service/lexruntimev2/eventstream_test.go +++ b/service/lexruntimev2/eventstream_test.go @@ -285,6 +285,7 @@ func mockStartConversationReadEvents() ( }, State: aws.String("string value goes here"), }, + InterpretationSource: aws.String("string value goes here"), NluConfidence: &ConfidenceScore{ Score: aws.Float64(123.45), }, @@ -348,6 +349,7 @@ func mockStartConversationReadEvents() ( }, State: aws.String("string value goes here"), }, + InterpretationSource: aws.String("string value goes here"), NluConfidence: &ConfidenceScore{ Score: aws.Float64(123.45), }, @@ -411,6 +413,7 @@ func mockStartConversationReadEvents() ( }, State: aws.String("string value goes here"), }, + InterpretationSource: aws.String("string value goes here"), NluConfidence: &ConfidenceScore{ Score: aws.Float64(123.45), }, diff --git a/service/managedblockchain/api.go b/service/managedblockchain/api.go index 7dd92c0d094..1a94435d719 100644 --- a/service/managedblockchain/api.go +++ b/service/managedblockchain/api.go @@ -56,9 +56,9 @@ func (c *ManagedBlockchain) CreateAccessorRequest(input *CreateAccessorInput) (r // CreateAccessor API operation for Amazon Managed Blockchain. // -// Creates a new accessor for use with Managed Blockchain Ethereum nodes. An -// accessor contains information required for token based access to your Ethereum -// nodes. +// Creates a new accessor for use with Amazon Managed Blockchain service that +// supports token based access. The accessor contains information required for +// token based access. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3234,9 +3234,9 @@ type Accessor struct { // in the Amazon Web Services General Reference. Arn *string `min:"1" type:"string"` - // The billing token is a property of the accessor. Use this token to make Ethereum - // API calls to your Ethereum node. The billing token is used to track your - // accessor object for billing Ethereum API requests made to your Ethereum nodes. + // The billing token is a property of the Accessor. Use this token to when making + // calls to the blockchain network. The billing token is used to track your + // accessor token for billing requests. BillingToken *string `min:"42" type:"string"` // The creation date and time of the accessor. @@ -3245,6 +3245,9 @@ type Accessor struct { // The unique identifier of the accessor. Id *string `min:"1" type:"string"` + // The blockchain network that the Accessor token is created for. + NetworkType *string `type:"string" enum:"AccessorNetworkType"` + // The current status of the accessor. Status *string `type:"string" enum:"AccessorStatus"` @@ -3304,6 +3307,12 @@ func (s *Accessor) SetId(v string) *Accessor { return s } +// SetNetworkType sets the NetworkType field's value. +func (s *Accessor) SetNetworkType(v string) *Accessor { + s.NetworkType = &v + return s +} + // SetStatus sets the Status field's value. func (s *Accessor) SetStatus(v string) *Accessor { s.Status = &v @@ -3337,6 +3346,9 @@ type AccessorSummary struct { // The unique identifier of the accessor. Id *string `min:"1" type:"string"` + // The blockchain network that the Accessor token is created for. + NetworkType *string `type:"string" enum:"AccessorNetworkType"` + // The current status of the accessor. Status *string `type:"string" enum:"AccessorStatus"` @@ -3382,6 +3394,12 @@ func (s *AccessorSummary) SetId(v string) *AccessorSummary { return s } +// SetNetworkType sets the NetworkType field's value. +func (s *AccessorSummary) SetNetworkType(v string) *AccessorSummary { + s.NetworkType = &v + return s +} + // SetStatus sets the Status field's value. func (s *AccessorSummary) SetStatus(v string) *AccessorSummary { s.Status = &v @@ -3410,7 +3428,7 @@ type ApprovalThresholdPolicy struct { ProposalDurationInHours *int64 `min:"1" type:"integer"` // Determines whether the vote percentage must be greater than the ThresholdPercentage - // or must be greater than or equal to the ThreholdPercentage to be approved. + // or must be greater than or equal to the ThresholdPercentage to be approved. ThresholdComparator *string `type:"string" enum:"ThresholdComparator"` // The percentage of votes among all members that must be YES for a proposal @@ -3488,6 +3506,20 @@ type CreateAccessorInput struct { // Web Services SDK or the Amazon Web Services CLI. ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` + // The blockchain network that the Accessor token is created for. + // + // We recommend using the appropriate networkType value for the blockchain network + // that you are creating the Accessor token for. You cannnot use the value ETHEREUM_MAINNET_AND_GOERLI + // to specify a networkType for your Accessor token. + // + // The default value of ETHEREUM_MAINNET_AND_GOERLI is only applied: + // + // * when the CreateAccessor action does not set a networkType. + // + // * to all existing Accessor tokens that were created before the networkType + // property was introduced. + NetworkType *string `type:"string" enum:"AccessorNetworkType"` + // Tags to assign to the Accessor. // // Each tag consists of a key and an optional value. You can specify multiple @@ -3547,6 +3579,12 @@ func (s *CreateAccessorInput) SetClientRequestToken(v string) *CreateAccessorInp return s } +// SetNetworkType sets the NetworkType field's value. +func (s *CreateAccessorInput) SetNetworkType(v string) *CreateAccessorInput { + s.NetworkType = &v + return s +} + // SetTags sets the Tags field's value. func (s *CreateAccessorInput) SetTags(v map[string]*string) *CreateAccessorInput { s.Tags = v @@ -3559,10 +3597,13 @@ type CreateAccessorOutput struct { // The unique identifier of the accessor. AccessorId *string `min:"1" type:"string"` - // The billing token is a property of the Accessor. Use this token to make Ethereum - // API calls to your Ethereum node. The billing token is used to track your - // accessor object for billing Ethereum API requests made to your Ethereum nodes. + // The billing token is a property of the Accessor. Use this token to when making + // calls to the blockchain network. The billing token is used to track your + // accessor token for billing requests. BillingToken *string `min:"42" type:"string"` + + // The blockchain network that the accessor token is created for. + NetworkType *string `type:"string" enum:"AccessorNetworkType"` } // String returns the string representation. @@ -3595,6 +3636,12 @@ func (s *CreateAccessorOutput) SetBillingToken(v string) *CreateAccessorOutput { return s } +// SetNetworkType sets the NetworkType field's value. +func (s *CreateAccessorOutput) SetNetworkType(v string) *CreateAccessorOutput { + s.NetworkType = &v + return s +} + type CreateMemberInput struct { _ struct{} `type:"structure"` @@ -5342,6 +5389,12 @@ type ListAccessorsInput struct { // The maximum number of accessors to list. MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + // The blockchain network that the Accessor token is created for. + // + // Use the value ETHEREUM_MAINNET_AND_GOERLI for all existing Accessors tokens + // that were created before the networkType property was introduced. + NetworkType *string `location:"querystring" locationName:"networkType" type:"string" enum:"AccessorNetworkType"` + // The pagination token that indicates the next set of results to retrieve. NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` } @@ -5383,6 +5436,12 @@ func (s *ListAccessorsInput) SetMaxResults(v int64) *ListAccessorsInput { return s } +// SetNetworkType sets the NetworkType field's value. +func (s *ListAccessorsInput) SetNetworkType(v string) *ListAccessorsInput { + s.NetworkType = &v + return s +} + // SetNextToken sets the NextToken field's value. func (s *ListAccessorsInput) SetNextToken(v string) *ListAccessorsInput { s.NextToken = &v @@ -9533,6 +9592,34 @@ func (s *VotingPolicy) SetApprovalThresholdPolicy(v *ApprovalThresholdPolicy) *V return s } +const ( + // AccessorNetworkTypeEthereumGoerli is a AccessorNetworkType enum value + AccessorNetworkTypeEthereumGoerli = "ETHEREUM_GOERLI" + + // AccessorNetworkTypeEthereumMainnet is a AccessorNetworkType enum value + AccessorNetworkTypeEthereumMainnet = "ETHEREUM_MAINNET" + + // AccessorNetworkTypeEthereumMainnetAndGoerli is a AccessorNetworkType enum value + AccessorNetworkTypeEthereumMainnetAndGoerli = "ETHEREUM_MAINNET_AND_GOERLI" + + // AccessorNetworkTypePolygonMainnet is a AccessorNetworkType enum value + AccessorNetworkTypePolygonMainnet = "POLYGON_MAINNET" + + // AccessorNetworkTypePolygonMumbai is a AccessorNetworkType enum value + AccessorNetworkTypePolygonMumbai = "POLYGON_MUMBAI" +) + +// AccessorNetworkType_Values returns all elements of the AccessorNetworkType enum +func AccessorNetworkType_Values() []string { + return []string{ + AccessorNetworkTypeEthereumGoerli, + AccessorNetworkTypeEthereumMainnet, + AccessorNetworkTypeEthereumMainnetAndGoerli, + AccessorNetworkTypePolygonMainnet, + AccessorNetworkTypePolygonMumbai, + } +} + const ( // AccessorStatusAvailable is a AccessorStatus enum value AccessorStatusAvailable = "AVAILABLE" diff --git a/service/personalize/api.go b/service/personalize/api.go index acbce15149c..d66b174f316 100644 --- a/service/personalize/api.go +++ b/service/personalize/api.go @@ -56,9 +56,28 @@ func (c *Personalize) CreateBatchInferenceJobRequest(input *CreateBatchInference // CreateBatchInferenceJob API operation for Amazon Personalize. // -// Creates a batch inference job. The operation can handle up to 50 million -// records and the input file must be in JSON format. For more information, -// see Creating a batch inference job (https://docs.aws.amazon.com/personalize/latest/dg/creating-batch-inference-job.html). +// Generates batch recommendations based on a list of items or users stored +// in Amazon S3 and exports the recommendations to an Amazon S3 bucket. +// +// To generate batch recommendations, specify the ARN of a solution version +// and an Amazon S3 URI for the input and output data. For user personalization, +// popular items, and personalized ranking solutions, the batch inference job +// generates a list of recommended items for each user ID in the input file. +// For related items solutions, the job generates a list of recommended items +// for each item ID in the input file. +// +// For more information, see Creating a batch inference job (https://docs.aws.amazon.com/personalize/latest/dg/getting-batch-recommendations.html). +// +// If you use the Similar-Items recipe, Amazon Personalize can add descriptive +// themes to batch recommendations. To generate themes, set the job's mode to +// THEME_GENERATION and specify the name of the field that contains item names +// in the input data. +// +// For more information about generating themes, see Batch recommendations with +// themes from Content Generator (https://docs.aws.amazon.com/personalize/latest/dg/themed-batch-recommendations.html). +// +// You can't get batch recommendations with the Trending-Now or Next-Best-Action +// recipes. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -395,17 +414,21 @@ func (c *Personalize) CreateDatasetRequest(input *CreateDatasetInput) (req *requ // CreateDatasetImportJob (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetImportJob.html) // to import your training data to a dataset. // -// There are three types of datasets: +// There are 5 types of datasets: // -// - Interactions +// - Item interactions // // - Items // // - Users // +// - Action interactions +// +// - Actions +// // Each dataset type has an associated schema with required field types. Only -// the Interactions dataset is required in order to train a model (also referred -// to as creating a solution). +// the Item interactions dataset is required in order to train a model (also +// referred to as creating a solution). // // A dataset can be in one of the following states: // @@ -631,12 +654,16 @@ func (c *Personalize) CreateDatasetGroupRequest(input *CreateDatasetGroupInput) // Personalize resources. A dataset group can contain at most three datasets, // one for each type of dataset: // -// - Interactions +// - Item interactions // // - Items // // - Users // +// - Actions +// +// - Action interactions +// // A dataset group can be a Domain dataset group, where you specify a domain // and use pre-configured resources like recommenders, or a Custom dataset group, // where you use custom resources, such as a solution with a solution version, @@ -771,6 +798,11 @@ func (c *Personalize) CreateDatasetImportJobRequest(input *CreateDatasetImportJo // to your Amazon S3 bucket, see Giving Amazon Personalize Access to Amazon // S3 Resources (https://docs.aws.amazon.com/personalize/latest/dg/granting-personalize-s3-access.html). // +// If you already created a recommender or deployed a custom solution version +// with a campaign, how new bulk records influence recommendations depends on +// the domain use case or recipe that you use. For more information, see How +// new data influences real-time recommendations (https://docs.aws.amazon.com/personalize/latest/dg/how-new-data-influences-recommendations.html). +// // By default, a dataset import job replaces any existing data in the dataset // that you imported in bulk. To add new records without replacing existing // data, specify INCREMENTAL for the import mode in the CreateDatasetImportJob @@ -899,7 +931,7 @@ func (c *Personalize) CreateEventTrackerRequest(input *CreateEventTrackerInput) // // When you create an event tracker, the response includes a tracking ID, which // you pass as a parameter when you use the PutEvents (https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html) -// operation. Amazon Personalize then appends the event data to the Interactions +// operation. Amazon Personalize then appends the event data to the Item interactions // dataset of the dataset group you specify in your event tracker. // // The event tracker can be in one of the following states: @@ -1993,9 +2025,8 @@ func (c *Personalize) DeleteEventTrackerRequest(input *DeleteEventTrackerInput) // DeleteEventTracker API operation for Amazon Personalize. // -// Deletes the event tracker. Does not delete the event-interactions dataset -// from the associated dataset group. For more information on event trackers, -// see CreateEventTracker (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateEventTracker.html). +// Deletes the event tracker. Does not delete the dataset from the dataset group. +// For more information on event trackers, see CreateEventTracker (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateEventTracker.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 @@ -6848,8 +6879,9 @@ func (c *Personalize) UpdateCampaignRequest(input *UpdateCampaignInput) (req *re // UpdateCampaign API operation for Amazon Personalize. // -// Updates a campaign by either deploying a new solution or changing the value -// of the campaign's minProvisionedTPS parameter. +// Updates a campaign to deploy a retrained solution version with an existing +// campaign, change your campaign's minProvisionedTPS, or modify your campaign's +// configuration, such as the exploration configuration. // // To update a campaign, the campaign status must be ACTIVE or CREATE FAILED. // Check the campaign status using the DescribeCampaign (https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeCampaign.html) @@ -6859,7 +6891,9 @@ func (c *Personalize) UpdateCampaignRequest(input *UpdateCampaignInput) (req *re // The campaign will use the previous solution version and campaign configuration // to generate recommendations until the latest campaign update status is Active. // -// For more information on campaigns, see CreateCampaign (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateCampaign.html). +// For more information about updating a campaign, including code samples, see +// Updating a campaign (https://docs.aws.amazon.com/personalize/latest/dg/update-campaigns.html). +// For more information about campaigns, see Creating a campaign (https://docs.aws.amazon.com/personalize/latest/dg/campaigns.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 @@ -7415,6 +7449,9 @@ type BatchInferenceJob struct { // job. BatchInferenceJobConfig *BatchInferenceJobConfig `locationName:"batchInferenceJobConfig" type:"structure"` + // The job's mode. + BatchInferenceJobMode *string `locationName:"batchInferenceJobMode" type:"string" enum:"BatchInferenceJobMode"` + // The time at which the batch inference job was created. CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"` @@ -7461,6 +7498,9 @@ type BatchInferenceJob struct { // // * CREATE FAILED Status *string `locationName:"status" type:"string"` + + // The job's theme generation settings. + ThemeGenerationConfig *ThemeGenerationConfig `locationName:"themeGenerationConfig" type:"structure"` } // String returns the string representation. @@ -7493,6 +7533,12 @@ func (s *BatchInferenceJob) SetBatchInferenceJobConfig(v *BatchInferenceJobConfi return s } +// SetBatchInferenceJobMode sets the BatchInferenceJobMode field's value. +func (s *BatchInferenceJob) SetBatchInferenceJobMode(v string) *BatchInferenceJob { + s.BatchInferenceJobMode = &v + return s +} + // SetCreationDateTime sets the CreationDateTime field's value. func (s *BatchInferenceJob) SetCreationDateTime(v time.Time) *BatchInferenceJob { s.CreationDateTime = &v @@ -7559,6 +7605,12 @@ func (s *BatchInferenceJob) SetStatus(v string) *BatchInferenceJob { return s } +// SetThemeGenerationConfig sets the ThemeGenerationConfig field's value. +func (s *BatchInferenceJob) SetThemeGenerationConfig(v *ThemeGenerationConfig) *BatchInferenceJob { + s.ThemeGenerationConfig = v + return s +} + // The configuration details of a batch inference job. type BatchInferenceJobConfig struct { _ struct{} `type:"structure"` @@ -7709,6 +7761,9 @@ type BatchInferenceJobSummary struct { // The Amazon Resource Name (ARN) of the batch inference job. BatchInferenceJobArn *string `locationName:"batchInferenceJobArn" type:"string"` + // The job's mode. + BatchInferenceJobMode *string `locationName:"batchInferenceJobMode" type:"string" enum:"BatchInferenceJobMode"` + // The time at which the batch inference job was created. CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"` @@ -7761,6 +7816,12 @@ func (s *BatchInferenceJobSummary) SetBatchInferenceJobArn(v string) *BatchInfer return s } +// SetBatchInferenceJobMode sets the BatchInferenceJobMode field's value. +func (s *BatchInferenceJobSummary) SetBatchInferenceJobMode(v string) *BatchInferenceJobSummary { + s.BatchInferenceJobMode = &v + return s +} + // SetCreationDateTime sets the CreationDateTime field's value. func (s *BatchInferenceJobSummary) SetCreationDateTime(v time.Time) *BatchInferenceJobSummary { s.CreationDateTime = &v @@ -8271,6 +8332,15 @@ func (s *Campaign) SetStatus(v string) *Campaign { type CampaignConfig struct { _ struct{} `type:"structure"` + // Whether metadata with recommendations is enabled for the campaign. If enabled, + // you can specify the columns from your Items dataset in your request for recommendations. + // Amazon Personalize returns this data for each item in the recommendation + // response. + // + // If you enable metadata in recommendations, you will incur additional costs. + // For more information, see Amazon Personalize pricing (https://aws.amazon.com/personalize/pricing/). + EnableMetadataWithRecommendations *bool `locationName:"enableMetadataWithRecommendations" type:"boolean"` + // Specifies the exploration configuration hyperparameters, including explorationWeight // and explorationItemAgeCutOff, you want to use to configure the amount of // item exploration Amazon Personalize uses when recommending items. Provide @@ -8298,6 +8368,12 @@ func (s CampaignConfig) GoString() string { return s.String() } +// SetEnableMetadataWithRecommendations sets the EnableMetadataWithRecommendations field's value. +func (s *CampaignConfig) SetEnableMetadataWithRecommendations(v bool) *CampaignConfig { + s.EnableMetadataWithRecommendations = &v + return s +} + // SetItemExplorationConfig sets the ItemExplorationConfig field's value. func (s *CampaignConfig) SetItemExplorationConfig(v map[string]*string) *CampaignConfig { s.ItemExplorationConfig = v @@ -8597,6 +8673,14 @@ type CreateBatchInferenceJobInput struct { // The configuration details of a batch inference job. BatchInferenceJobConfig *BatchInferenceJobConfig `locationName:"batchInferenceJobConfig" type:"structure"` + // The mode of the batch inference job. To generate descriptive themes for groups + // of similar items, set the job mode to THEME_GENERATION. If you don't want + // to generate themes, use the default BATCH_INFERENCE. + // + // When you get batch recommendations with themes, you will incur additional + // costs. For more information, see Amazon Personalize pricing (https://aws.amazon.com/personalize/pricing/). + BatchInferenceJobMode *string `locationName:"batchInferenceJobMode" type:"string" enum:"BatchInferenceJobMode"` + // The ARN of the filter to apply to the batch inference job. For more information // on using filters, see Filtering batch recommendations (https://docs.aws.amazon.com/personalize/latest/dg/filter-batch.html). FilterArn *string `locationName:"filterArn" type:"string"` @@ -8635,6 +8719,10 @@ type CreateBatchInferenceJobInput struct { // A list of tags (https://docs.aws.amazon.com/personalize/latest/dg/tagging-resources.html) // to apply to the batch inference job. Tags []*Tag `locationName:"tags" type:"list"` + + // For theme generation jobs, specify the name of the column in your Items dataset + // that contains each item's name. + ThemeGenerationConfig *ThemeGenerationConfig `locationName:"themeGenerationConfig" type:"structure"` } // String returns the string representation. @@ -8696,6 +8784,11 @@ func (s *CreateBatchInferenceJobInput) Validate() error { } } } + if s.ThemeGenerationConfig != nil { + if err := s.ThemeGenerationConfig.Validate(); err != nil { + invalidParams.AddNested("ThemeGenerationConfig", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -8709,6 +8802,12 @@ func (s *CreateBatchInferenceJobInput) SetBatchInferenceJobConfig(v *BatchInfere return s } +// SetBatchInferenceJobMode sets the BatchInferenceJobMode field's value. +func (s *CreateBatchInferenceJobInput) SetBatchInferenceJobMode(v string) *CreateBatchInferenceJobInput { + s.BatchInferenceJobMode = &v + return s +} + // SetFilterArn sets the FilterArn field's value. func (s *CreateBatchInferenceJobInput) SetFilterArn(v string) *CreateBatchInferenceJobInput { s.FilterArn = &v @@ -8757,6 +8856,12 @@ func (s *CreateBatchInferenceJobInput) SetTags(v []*Tag) *CreateBatchInferenceJo return s } +// SetThemeGenerationConfig sets the ThemeGenerationConfig field's value. +func (s *CreateBatchInferenceJobInput) SetThemeGenerationConfig(v *ThemeGenerationConfig) *CreateBatchInferenceJobInput { + s.ThemeGenerationConfig = v + return s +} + type CreateBatchInferenceJobOutput struct { _ struct{} `type:"structure"` @@ -9609,6 +9714,10 @@ type CreateDatasetInput struct { // // * Users // + // * Actions + // + // * Action_Interactions + // // DatasetType is a required field DatasetType *string `locationName:"datasetType" type:"string" required:"true"` @@ -10605,16 +10714,21 @@ type CreateSolutionVersionInput struct { Tags []*Tag `locationName:"tags" type:"list"` // The scope of training to be performed when creating the solution version. - // The FULL option trains the solution version based on the entirety of the - // input solution's training data, while the UPDATE option processes only the - // data that has changed in comparison to the input solution. Choose UPDATE - // when you want to incrementally update your solution version instead of creating - // an entirely new one. + // The default is FULL. This creates a completely new model based on the entirety + // of the training data from the datasets in your dataset group. + // + // If you use User-Personalization (https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html), + // you can specify a training mode of UPDATE. This updates the model to consider + // new items for recommendations. It is not a full retraining. You should still + // complete a full retraining weekly. If you specify UPDATE, Amazon Personalize + // will stop automatic updates for the solution version. To resume updates, + // create a new solution with training mode set to FULL and deploy it in a campaign. + // For more information about automatic updates, see Automatic updates (https://docs.aws.amazon.com/personalize/latest/dg/use-case-recipe-features.html#maintaining-with-automatic-updates). // // The UPDATE option can only be used when you already have an active solution // version created from the input solution using the FULL option and the input // solution was trained with the User-Personalization (https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html) - // recipe or the HRNN-Coldstart (https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html) + // recipe or the legacy HRNN-Coldstart (https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html) // recipe. TrainingMode *string `locationName:"trainingMode" type:"string" enum:"TrainingMode"` } @@ -10773,6 +10887,10 @@ type Dataset struct { // * Items // // * Users + // + // * Actions + // + // * Action_Interactions DatasetType *string `locationName:"datasetType" type:"string"` // A time stamp that shows when the dataset was updated. @@ -10795,6 +10913,12 @@ type Dataset struct { // // * DELETE PENDING > DELETE IN_PROGRESS Status *string `locationName:"status" type:"string"` + + // The ID of the event tracker for an Action interactions dataset. You specify + // the tracker's ID in the PutActionInteractions API operation. Amazon Personalize + // uses it to direct new data to the Action interactions dataset in your dataset + // group. + TrackingId *string `locationName:"trackingId" type:"string"` } // String returns the string representation. @@ -10869,6 +10993,12 @@ func (s *Dataset) SetStatus(v string) *Dataset { return s } +// SetTrackingId sets the TrackingId field's value. +func (s *Dataset) SetTrackingId(v string) *Dataset { + s.TrackingId = &v + return s +} + // Describes a job that exports a dataset to an Amazon S3 bucket. For more information, // see CreateDatasetExportJob (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetExportJob.html). // @@ -11134,8 +11264,9 @@ func (s *DatasetExportJobSummary) SetStatus(v string) *DatasetExportJobSummary { return s } -// A dataset group is a collection of related datasets (Interactions, User, -// and Item). You create a dataset group by calling CreateDatasetGroup (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetGroup.html). +// A dataset group is a collection of related datasets (Item interactions, Users, +// Items, Actions, Action interactions). You create a dataset group by calling +// CreateDatasetGroup (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDatasetGroup.html). // You then create a dataset and add it to a dataset group by calling CreateDataset // (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateDataset.html). // The dataset group is used to create and train a solution by calling CreateSolution @@ -11169,7 +11300,9 @@ type DatasetGroup struct { // The name of the dataset group. Name *string `locationName:"name" min:"1" type:"string"` - // The ARN of the IAM role that has permissions to create the dataset group. + // The ARN of the Identity and Access Management (IAM) role that has permissions + // to access the Key Management Service (KMS) key. Supplying an IAM role is + // only valid when also specifying a KMS key. RoleArn *string `locationName:"roleArn" type:"string"` // The current status of the dataset group. @@ -14316,6 +14449,54 @@ func (s *FeatureTransformation) SetStatus(v string) *FeatureTransformation { return s } +// A string to string map of the configuration details for theme generation. +type FieldsForThemeGeneration struct { + _ struct{} `type:"structure"` + + // The name of the Items dataset column that stores the name of each item in + // the dataset. + // + // ItemName is a required field + ItemName *string `locationName:"itemName" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FieldsForThemeGeneration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FieldsForThemeGeneration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *FieldsForThemeGeneration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "FieldsForThemeGeneration"} + if s.ItemName == nil { + invalidParams.Add(request.NewErrParamRequired("ItemName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetItemName sets the ItemName field's value. +func (s *FieldsForThemeGeneration) SetItemName(v string) *FieldsForThemeGeneration { + s.ItemName = &v + return s +} + // Contains information on a recommendation filter, including its ARN, status, // and filter expression. type Filter struct { @@ -15716,8 +15897,8 @@ type ListDatasetsInput struct { // The maximum number of datasets to return. MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` - // A token returned from the previous call to ListDatasetImportJobs for getting - // the next set of dataset import jobs (if they exist). + // A token returned from the previous call to ListDatasets for getting the next + // set of dataset import jobs (if they exist). NextToken *string `locationName:"nextToken" type:"string"` } @@ -17532,6 +17713,15 @@ func (s *Recommender) SetStatus(v string) *Recommender { type RecommenderConfig struct { _ struct{} `type:"structure"` + // Whether metadata with recommendations is enabled for the recommender. If + // enabled, you can specify the columns from your Items dataset in your request + // for recommendations. Amazon Personalize returns this data for each item in + // the recommendation response. + // + // If you enable metadata in recommendations, you will incur additional costs. + // For more information, see Amazon Personalize pricing (https://aws.amazon.com/personalize/pricing/). + EnableMetadataWithRecommendations *bool `locationName:"enableMetadataWithRecommendations" type:"boolean"` + // Specifies the exploration configuration hyperparameters, including explorationWeight // and explorationItemAgeCutOff, you want to use to configure the amount of // item exploration Amazon Personalize uses when recommending items. Provide @@ -17581,6 +17771,12 @@ func (s *RecommenderConfig) Validate() error { return nil } +// SetEnableMetadataWithRecommendations sets the EnableMetadataWithRecommendations field's value. +func (s *RecommenderConfig) SetEnableMetadataWithRecommendations(v bool) *RecommenderConfig { + s.EnableMetadataWithRecommendations = &v + return s +} + // SetItemExplorationConfig sets the ItemExplorationConfig field's value. func (s *RecommenderConfig) SetItemExplorationConfig(v map[string]*string) *RecommenderConfig { s.ItemExplorationConfig = v @@ -18197,7 +18393,7 @@ func (s *Solution) SetStatus(v string) *Solution { type SolutionConfig struct { _ struct{} `type:"structure"` - // Lists the hyperparameter names and ranges. + // Lists the algorithm hyperparameters and their values. AlgorithmHyperParameters map[string]*string `locationName:"algorithmHyperParameters" type:"map"` // The AutoMLConfig (https://docs.aws.amazon.com/personalize/latest/dg/API_AutoMLConfig.html) @@ -19049,6 +19245,58 @@ func (s TagResourceOutput) GoString() string { return s.String() } +// The configuration details for generating themes with a batch inference job. +type ThemeGenerationConfig struct { + _ struct{} `type:"structure"` + + // Fields used to generate descriptive themes for a batch inference job. + // + // FieldsForThemeGeneration is a required field + FieldsForThemeGeneration *FieldsForThemeGeneration `locationName:"fieldsForThemeGeneration" type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThemeGenerationConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThemeGenerationConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ThemeGenerationConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ThemeGenerationConfig"} + if s.FieldsForThemeGeneration == nil { + invalidParams.Add(request.NewErrParamRequired("FieldsForThemeGeneration")) + } + if s.FieldsForThemeGeneration != nil { + if err := s.FieldsForThemeGeneration.Validate(); err != nil { + invalidParams.AddNested("FieldsForThemeGeneration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFieldsForThemeGeneration sets the FieldsForThemeGeneration field's value. +func (s *ThemeGenerationConfig) SetFieldsForThemeGeneration(v *FieldsForThemeGeneration) *ThemeGenerationConfig { + s.FieldsForThemeGeneration = v + return s +} + // The request contains more tag keys than can be associated with a resource // (50 tag keys per resource). type TooManyTagKeysException struct { @@ -19743,6 +19991,22 @@ func (s *UpdateRecommenderOutput) SetRecommenderArn(v string) *UpdateRecommender return s } +const ( + // BatchInferenceJobModeBatchInference is a BatchInferenceJobMode enum value + BatchInferenceJobModeBatchInference = "BATCH_INFERENCE" + + // BatchInferenceJobModeThemeGeneration is a BatchInferenceJobMode enum value + BatchInferenceJobModeThemeGeneration = "THEME_GENERATION" +) + +// BatchInferenceJobMode_Values returns all elements of the BatchInferenceJobMode enum +func BatchInferenceJobMode_Values() []string { + return []string{ + BatchInferenceJobModeBatchInference, + BatchInferenceJobModeThemeGeneration, + } +} + const ( // DomainEcommerce is a Domain enum value DomainEcommerce = "ECOMMERCE" diff --git a/service/personalizeevents/api.go b/service/personalizeevents/api.go index 9d352bf231f..f0301241fd0 100644 --- a/service/personalizeevents/api.go +++ b/service/personalizeevents/api.go @@ -13,6 +13,186 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restjson" ) +const opPutActionInteractions = "PutActionInteractions" + +// PutActionInteractionsRequest generates a "aws/request.Request" representing the +// client's request for the PutActionInteractions 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 PutActionInteractions for more information on using the PutActionInteractions +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the PutActionInteractionsRequest method. +// req, resp := client.PutActionInteractionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutActionInteractions +func (c *PersonalizeEvents) PutActionInteractionsRequest(input *PutActionInteractionsInput) (req *request.Request, output *PutActionInteractionsOutput) { + op := &request.Operation{ + Name: opPutActionInteractions, + HTTPMethod: "POST", + HTTPPath: "/action-interactions", + } + + if input == nil { + input = &PutActionInteractionsInput{} + } + + output = &PutActionInteractionsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutActionInteractions API operation for Amazon Personalize Events. +// +// Records action interaction event data. An action interaction event is an +// interaction between a user and an action. For example, a user taking an action, +// such a enrolling in a membership program or downloading your app. +// +// For more information about recording action interactions, see Recording action +// interaction events (https://docs.aws.amazon.com/personalize/latest/dg/recording-action-interaction-events.html). +// For more information about actions in an Actions dataset, see Actions dataset +// (https://docs.aws.amazon.com/personalize/latest/dg/actions-datasets.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Personalize Events's +// API operation PutActionInteractions for usage and error information. +// +// Returned Error Types: +// +// - InvalidInputException +// Provide a valid value for the field or parameter. +// +// - ResourceNotFoundException +// Could not find the specified resource. +// +// - ResourceInUseException +// The specified resource is in use. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutActionInteractions +func (c *PersonalizeEvents) PutActionInteractions(input *PutActionInteractionsInput) (*PutActionInteractionsOutput, error) { + req, out := c.PutActionInteractionsRequest(input) + return out, req.Send() +} + +// PutActionInteractionsWithContext is the same as PutActionInteractions with the addition of +// the ability to pass a context and additional request options. +// +// See PutActionInteractions for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *PersonalizeEvents) PutActionInteractionsWithContext(ctx aws.Context, input *PutActionInteractionsInput, opts ...request.Option) (*PutActionInteractionsOutput, error) { + req, out := c.PutActionInteractionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutActions = "PutActions" + +// PutActionsRequest generates a "aws/request.Request" representing the +// client's request for the PutActions 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 PutActions for more information on using the PutActions +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the PutActionsRequest method. +// req, resp := client.PutActionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutActions +func (c *PersonalizeEvents) PutActionsRequest(input *PutActionsInput) (req *request.Request, output *PutActionsOutput) { + op := &request.Operation{ + Name: opPutActions, + HTTPMethod: "POST", + HTTPPath: "/actions", + } + + if input == nil { + input = &PutActionsInput{} + } + + output = &PutActionsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutActions API operation for Amazon Personalize Events. +// +// Adds one or more actions to an Actions dataset. For more information see +// Importing actions individually (https://docs.aws.amazon.com/personalize/latest/dg/importing-actions.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Personalize Events's +// API operation PutActions for usage and error information. +// +// Returned Error Types: +// +// - InvalidInputException +// Provide a valid value for the field or parameter. +// +// - ResourceNotFoundException +// Could not find the specified resource. +// +// - ResourceInUseException +// The specified resource is in use. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutActions +func (c *PersonalizeEvents) PutActions(input *PutActionsInput) (*PutActionsOutput, error) { + req, out := c.PutActionsRequest(input) + return out, req.Send() +} + +// PutActionsWithContext is the same as PutActions with the addition of +// the ability to pass a context and additional request options. +// +// See PutActions for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *PersonalizeEvents) PutActionsWithContext(ctx aws.Context, input *PutActionsInput, opts ...request.Option) (*PutActionsOutput, error) { + req, out := c.PutActionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opPutEvents = "PutEvents" // PutEventsRequest generates a "aws/request.Request" representing the @@ -57,8 +237,8 @@ func (c *PersonalizeEvents) PutEventsRequest(input *PutEventsInput) (req *reques // PutEvents API operation for Amazon Personalize Events. // -// Records user interaction event data. For more information see Recording Events -// (https://docs.aws.amazon.com/personalize/latest/dg/recording-events.html). +// Records item interaction event data. For more information see Recording item +// interaction events (https://docs.aws.amazon.com/personalize/latest/dg/recording-item-interaction-events.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 @@ -138,7 +318,7 @@ func (c *PersonalizeEvents) PutItemsRequest(input *PutItemsInput) (req *request. // PutItems API operation for Amazon Personalize Events. // // Adds one or more items to an Items dataset. For more information see Importing -// Items Incrementally (https://docs.aws.amazon.com/personalize/latest/dg/importing-items.html). +// items individually (https://docs.aws.amazon.com/personalize/latest/dg/importing-items.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 @@ -225,7 +405,7 @@ func (c *PersonalizeEvents) PutUsersRequest(input *PutUsersInput) (req *request. // PutUsers API operation for Amazon Personalize Events. // // Adds one or more users to a Users dataset. For more information see Importing -// Users Incrementally (https://docs.aws.amazon.com/personalize/latest/dg/importing-users.html). +// users individually (https://docs.aws.amazon.com/personalize/latest/dg/importing-users.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 @@ -267,25 +447,308 @@ func (c *PersonalizeEvents) PutUsersWithContext(ctx aws.Context, input *PutUsers return out, req.Send() } -// Represents user interaction event information sent using the PutEvents API. +// Represents action metadata added to an Action dataset using the PutActions +// API. For more information see Importing actions individually (https://docs.aws.amazon.com/personalize/latest/dg/importing-actions.html). +type Action struct { + _ struct{} `type:"structure"` + + // The ID associated with the action. + // + // ActionId is a required field + ActionId *string `locationName:"actionId" min:"1" type:"string" required:"true"` + + // A string map of action-specific metadata. Each element in the map consists + // of a key-value pair. For example, {"value": "100"}. + // + // The keys use camel case names that match the fields in the schema for the + // Actions dataset. In the previous example, the value matches the 'VALUE' field + // defined in the Actions schema. For categorical string data, to include multiple + // categories for a single action, separate each category with a pipe separator + // (|). For example, \"Deluxe|Premium\". + // + // Properties is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Action's + // String and GoString methods. + Properties *string `locationName:"properties" min:"1" type:"string" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Action) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +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.ActionId == nil { + invalidParams.Add(request.NewErrParamRequired("ActionId")) + } + if s.ActionId != nil && len(*s.ActionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ActionId", 1)) + } + if s.Properties != nil && len(*s.Properties) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Properties", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActionId sets the ActionId field's value. +func (s *Action) SetActionId(v string) *Action { + s.ActionId = &v + return s +} + +// SetProperties sets the Properties field's value. +func (s *Action) SetProperties(v string) *Action { + s.Properties = &v + return s +} + +// Represents an action interaction event sent using the PutActionInteractions +// API. +type ActionInteraction struct { + _ struct{} `type:"structure"` + + // The ID of the action the user interacted with. This corresponds to the ACTION_ID + // field of the Action interaction schema. + // + // ActionId is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ActionInteraction's + // String and GoString methods. + // + // ActionId is a required field + ActionId *string `locationName:"actionId" min:"1" type:"string" required:"true" sensitive:"true"` + + // An ID associated with the event. If an event ID is not provided, Amazon Personalize + // generates a unique ID for the event. An event ID is not used as an input + // to the model. Amazon Personalize uses the event ID to distinguish unique + // events. Any subsequent events after the first with the same event ID are + // not used in model training. + EventId *string `locationName:"eventId" min:"1" type:"string"` + + // The type of action interaction event. You can specify Viewed, Taken, and + // Not Taken event types. For more information about action interaction event + // type data, see Event type data (https://docs.aws.amazon.com/personalize/latest/dg/action-interaction-event-type-data.html). + // + // EventType is a required field + EventType *string `locationName:"eventType" min:"1" type:"string" required:"true"` + + // A list of action IDs that represents the sequence of actions you have shown + // the user. For example, ["actionId1", "actionId2", "actionId3"]. Amazon Personalize + // doesn't use impressions data from action interaction events. Instead, record + // multiple events for each action and use the Viewed event type. + Impression []*string `locationName:"impression" min:"1" type:"list"` + + // A string map of event-specific data that you might choose to record. For + // example, if a user takes an action, other than the action ID, you might also + // send the number of actions taken by the user. + // + // Each item in the map consists of a key-value pair. For example, + // + // {"numberOfActions": "12"} + // + // The keys use camel case names that match the fields in the Action interactions + // schema. In the above example, the numberOfActions would match the 'NUMBER_OF_ACTIONS' + // field defined in the Action interactions schema. + // + // The following can't be included as a keyword for properties (case insensitive). + // + // * userId + // + // * sessionId + // + // * eventType + // + // * timestamp + // + // * recommendationId + // + // * impression + // + // Properties is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ActionInteraction's + // String and GoString methods. + Properties *string `locationName:"properties" min:"1" type:"string" sensitive:"true"` + + // The ID of the list of recommendations that contains the action the user interacted + // with. + RecommendationId *string `locationName:"recommendationId" min:"1" type:"string"` + + // The ID associated with the user's visit. Your application generates a unique + // sessionId when a user first visits your website or uses your application. + // + // SessionId is a required field + SessionId *string `locationName:"sessionId" min:"1" type:"string" required:"true"` + + // The timestamp for when the action interaction event occurred. Timestamps + // must be in Unix epoch time format, in seconds. + // + // Timestamp is a required field + Timestamp *time.Time `locationName:"timestamp" type:"timestamp" required:"true"` + + // The ID of the user who interacted with the action. This corresponds to the + // USER_ID field of the Action interaction schema. + // + // UserId is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ActionInteraction's + // String and GoString methods. + UserId *string `locationName:"userId" min:"1" type:"string" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ActionInteraction) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ActionInteraction) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ActionInteraction) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ActionInteraction"} + if s.ActionId == nil { + invalidParams.Add(request.NewErrParamRequired("ActionId")) + } + if s.ActionId != nil && len(*s.ActionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ActionId", 1)) + } + if s.EventId != nil && len(*s.EventId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EventId", 1)) + } + if s.EventType == nil { + invalidParams.Add(request.NewErrParamRequired("EventType")) + } + if s.EventType != nil && len(*s.EventType) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EventType", 1)) + } + if s.Impression != nil && len(s.Impression) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Impression", 1)) + } + if s.Properties != nil && len(*s.Properties) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Properties", 1)) + } + if s.RecommendationId != nil && len(*s.RecommendationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RecommendationId", 1)) + } + if s.SessionId == nil { + invalidParams.Add(request.NewErrParamRequired("SessionId")) + } + if s.SessionId != nil && len(*s.SessionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SessionId", 1)) + } + if s.Timestamp == nil { + invalidParams.Add(request.NewErrParamRequired("Timestamp")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActionId sets the ActionId field's value. +func (s *ActionInteraction) SetActionId(v string) *ActionInteraction { + s.ActionId = &v + return s +} + +// SetEventId sets the EventId field's value. +func (s *ActionInteraction) SetEventId(v string) *ActionInteraction { + s.EventId = &v + return s +} + +// SetEventType sets the EventType field's value. +func (s *ActionInteraction) SetEventType(v string) *ActionInteraction { + s.EventType = &v + return s +} + +// SetImpression sets the Impression field's value. +func (s *ActionInteraction) SetImpression(v []*string) *ActionInteraction { + s.Impression = v + return s +} + +// SetProperties sets the Properties field's value. +func (s *ActionInteraction) SetProperties(v string) *ActionInteraction { + s.Properties = &v + return s +} + +// SetRecommendationId sets the RecommendationId field's value. +func (s *ActionInteraction) SetRecommendationId(v string) *ActionInteraction { + s.RecommendationId = &v + return s +} + +// SetSessionId sets the SessionId field's value. +func (s *ActionInteraction) SetSessionId(v string) *ActionInteraction { + s.SessionId = &v + return s +} + +// SetTimestamp sets the Timestamp field's value. +func (s *ActionInteraction) SetTimestamp(v time.Time) *ActionInteraction { + s.Timestamp = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *ActionInteraction) SetUserId(v string) *ActionInteraction { + s.UserId = &v + return s +} + +// Represents item interaction event information sent using the PutEvents API. type Event struct { _ struct{} `type:"structure" sensitive:"true"` // An ID associated with the event. If an event ID is not provided, Amazon Personalize // generates a unique ID for the event. An event ID is not used as an input - // to the model. Amazon Personalize uses the event ID to distinquish unique + // to the model. Amazon Personalize uses the event ID to distinguish unique // events. Any subsequent events after the first with the same event ID are // not used in model training. EventId *string `locationName:"eventId" min:"1" type:"string"` // The type of event, such as click or download. This property corresponds to - // the EVENT_TYPE field of your Interactions schema and depends on the types - // of events you are tracking. + // the EVENT_TYPE field of your Item interactions dataset's schema and depends + // on the types of events you are tracking. // // EventType is a required field EventType *string `locationName:"eventType" min:"1" type:"string" required:"true"` - // The event value that corresponds to the EVENT_VALUE field of the Interactions + // The event value that corresponds to the EVENT_VALUE field of the Item interactions // schema. EventValue *float64 `locationName:"eventValue" type:"float"` @@ -295,8 +758,8 @@ type Event struct { // recording impressions data, see Recording impressions data (https://docs.aws.amazon.com/personalize/latest/dg/recording-events.html#putevents-including-impressions-data). Impression []*string `locationName:"impression" min:"1" type:"list"` - // The item ID key that corresponds to the ITEM_ID field of the Interactions - // schema. + // The item ID key that corresponds to the ITEM_ID field of the Item interactions + // dataset's schema. // // ItemId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by Event's @@ -317,9 +780,23 @@ type Event struct { // // {"numberOfRatings": "12"} // - // The keys use camel case names that match the fields in the Interactions schema. - // In the above example, the numberOfRatings would match the 'NUMBER_OF_RATINGS' - // field defined in the Interactions schema. + // The keys use camel case names that match the fields in the Item interactions + // dataset's schema. In the above example, the numberOfRatings would match the + // 'NUMBER_OF_RATINGS' field defined in the Item interactions dataset's schema. + // + // The following can't be included as a keyword for properties (case insensitive). + // + // * userId + // + // * sessionId + // + // * eventType + // + // * timestamp + // + // * recommendationId + // + // * impression Properties aws.JSONValue `locationName:"properties" type:"jsonvalue"` // The ID of the list of recommendations that contains the item the user interacted @@ -513,7 +990,7 @@ func (s *InvalidInputException) RequestID() string { } // Represents item metadata added to an Items dataset using the PutItems API. -// For more information see Importing Items Incrementally (https://docs.aws.amazon.com/personalize/latest/dg/importing-items.html). +// For more information see Importing items individually (https://docs.aws.amazon.com/personalize/latest/dg/importing-items.html). type Item struct { _ struct{} `type:"structure"` @@ -628,6 +1105,203 @@ func (s *MetricAttribution) SetEventAttributionSource(v string) *MetricAttributi return s } +type PutActionInteractionsInput struct { + _ struct{} `type:"structure"` + + // A list of action interaction events from the session. + // + // ActionInteractions is a required field + ActionInteractions []*ActionInteraction `locationName:"actionInteractions" min:"1" type:"list" required:"true"` + + // The ID of your action interaction event tracker. When you create an Action + // interactions dataset, Amazon Personalize creates an action interaction event + // tracker for you. For more information, see Action interaction event tracker + // ID (https://docs.aws.amazon.com/personalize/latest/dg/action-interaction-tracker-id.html). + // + // TrackingId is a required field + TrackingId *string `locationName:"trackingId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutActionInteractionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutActionInteractionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutActionInteractionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutActionInteractionsInput"} + if s.ActionInteractions == nil { + invalidParams.Add(request.NewErrParamRequired("ActionInteractions")) + } + if s.ActionInteractions != nil && len(s.ActionInteractions) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ActionInteractions", 1)) + } + if s.TrackingId == nil { + invalidParams.Add(request.NewErrParamRequired("TrackingId")) + } + if s.TrackingId != nil && len(*s.TrackingId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TrackingId", 1)) + } + if s.ActionInteractions != nil { + for i, v := range s.ActionInteractions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ActionInteractions", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActionInteractions sets the ActionInteractions field's value. +func (s *PutActionInteractionsInput) SetActionInteractions(v []*ActionInteraction) *PutActionInteractionsInput { + s.ActionInteractions = v + return s +} + +// SetTrackingId sets the TrackingId field's value. +func (s *PutActionInteractionsInput) SetTrackingId(v string) *PutActionInteractionsInput { + s.TrackingId = &v + return s +} + +type PutActionInteractionsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutActionInteractionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutActionInteractionsOutput) GoString() string { + return s.String() +} + +type PutActionsInput struct { + _ struct{} `type:"structure"` + + // A list of action data. + // + // Actions is a required field + Actions []*Action `locationName:"actions" min:"1" type:"list" required:"true"` + + // The Amazon Resource Name (ARN) of the Actions dataset you are adding the + // action or actions to. + // + // DatasetArn is a required field + DatasetArn *string `locationName:"datasetArn" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutActionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutActionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutActionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutActionsInput"} + if s.Actions == nil { + invalidParams.Add(request.NewErrParamRequired("Actions")) + } + if s.Actions != nil && len(s.Actions) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Actions", 1)) + } + if s.DatasetArn == nil { + invalidParams.Add(request.NewErrParamRequired("DatasetArn")) + } + 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 invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActions sets the Actions field's value. +func (s *PutActionsInput) SetActions(v []*Action) *PutActionsInput { + s.Actions = v + return s +} + +// SetDatasetArn sets the DatasetArn field's value. +func (s *PutActionsInput) SetDatasetArn(v string) *PutActionsInput { + s.DatasetArn = &v + return s +} + +type PutActionsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutActionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutActionsOutput) GoString() string { + return s.String() +} + type PutEventsInput struct { _ struct{} `type:"structure"` @@ -639,7 +1313,8 @@ type PutEventsInput struct { // The session ID associated with the user's visit. Your application generates // the sessionId when a user first visits your website or uses your application. // Amazon Personalize uses the sessionId to associate events with the user before - // they log in. For more information, see Recording Events (https://docs.aws.amazon.com/personalize/latest/dg/recording-events.html). + // they log in. For more information, see Recording item interaction events + // (https://docs.aws.amazon.com/personalize/latest/dg/recording-item-interaction-events.html). // // SessionId is a required field SessionId *string `locationName:"sessionId" min:"1" type:"string" required:"true"` @@ -1085,7 +1760,7 @@ func (s *ResourceNotFoundException) RequestID() string { } // Represents user metadata added to a Users dataset using the PutUsers API. -// For more information see Importing Users Incrementally (https://docs.aws.amazon.com/personalize/latest/dg/importing-users.html). +// For more information see Importing users individually (https://docs.aws.amazon.com/personalize/latest/dg/importing-users.html). type User struct { _ struct{} `type:"structure"` diff --git a/service/personalizeevents/doc.go b/service/personalizeevents/doc.go index 712570c177a..07ed5f54600 100644 --- a/service/personalizeevents/doc.go +++ b/service/personalizeevents/doc.go @@ -5,7 +5,8 @@ // // Amazon Personalize can consume real-time user event data, such as stream // or click data, and use it for model training either alone or combined with -// historical data. For more information see Recording Events (https://docs.aws.amazon.com/personalize/latest/dg/recording-events.html). +// historical data. For more information see Recording item interaction events +// (https://docs.aws.amazon.com/personalize/latest/dg/recording-item-interaction-events.html). // // See https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22 for more information on this service. // diff --git a/service/personalizeevents/personalizeeventsiface/interface.go b/service/personalizeevents/personalizeeventsiface/interface.go index dc973dfd488..6b2a103d715 100644 --- a/service/personalizeevents/personalizeeventsiface/interface.go +++ b/service/personalizeevents/personalizeeventsiface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // Amazon Personalize Events. // func myFunc(svc personalizeeventsiface.PersonalizeEventsAPI) bool { -// // Make svc.PutEvents request +// // Make svc.PutActionInteractions request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockPersonalizeEventsClient struct { // personalizeeventsiface.PersonalizeEventsAPI // } -// func (m *mockPersonalizeEventsClient) PutEvents(input *personalizeevents.PutEventsInput) (*personalizeevents.PutEventsOutput, error) { +// func (m *mockPersonalizeEventsClient) PutActionInteractions(input *personalizeevents.PutActionInteractionsInput) (*personalizeevents.PutActionInteractionsOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,14 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type PersonalizeEventsAPI interface { + PutActionInteractions(*personalizeevents.PutActionInteractionsInput) (*personalizeevents.PutActionInteractionsOutput, error) + PutActionInteractionsWithContext(aws.Context, *personalizeevents.PutActionInteractionsInput, ...request.Option) (*personalizeevents.PutActionInteractionsOutput, error) + PutActionInteractionsRequest(*personalizeevents.PutActionInteractionsInput) (*request.Request, *personalizeevents.PutActionInteractionsOutput) + + PutActions(*personalizeevents.PutActionsInput) (*personalizeevents.PutActionsOutput, error) + PutActionsWithContext(aws.Context, *personalizeevents.PutActionsInput, ...request.Option) (*personalizeevents.PutActionsOutput, error) + PutActionsRequest(*personalizeevents.PutActionsInput) (*request.Request, *personalizeevents.PutActionsOutput) + PutEvents(*personalizeevents.PutEventsInput) (*personalizeevents.PutEventsOutput, error) PutEventsWithContext(aws.Context, *personalizeevents.PutEventsInput, ...request.Option) (*personalizeevents.PutEventsOutput, error) PutEventsRequest(*personalizeevents.PutEventsInput) (*request.Request, *personalizeevents.PutEventsOutput) diff --git a/service/personalizeruntime/api.go b/service/personalizeruntime/api.go index 733f9f9692b..78ed214dc75 100644 --- a/service/personalizeruntime/api.go +++ b/service/personalizeruntime/api.go @@ -11,6 +11,95 @@ import ( "github.com/aws/aws-sdk-go/private/protocol" ) +const opGetActionRecommendations = "GetActionRecommendations" + +// GetActionRecommendationsRequest generates a "aws/request.Request" representing the +// client's request for the GetActionRecommendations 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 GetActionRecommendations for more information on using the GetActionRecommendations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetActionRecommendationsRequest method. +// req, resp := client.GetActionRecommendationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-runtime-2018-05-22/GetActionRecommendations +func (c *PersonalizeRuntime) GetActionRecommendationsRequest(input *GetActionRecommendationsInput) (req *request.Request, output *GetActionRecommendationsOutput) { + op := &request.Operation{ + Name: opGetActionRecommendations, + HTTPMethod: "POST", + HTTPPath: "/action-recommendations", + } + + if input == nil { + input = &GetActionRecommendationsInput{} + } + + output = &GetActionRecommendationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetActionRecommendations API operation for Amazon Personalize Runtime. +// +// Returns a list of recommended actions in sorted in descending order by prediction +// score. Use the GetActionRecommendations API if you have a custom campaign +// that deploys a solution version trained with a PERSONALIZED_ACTIONS recipe. +// +// For more information about PERSONALIZED_ACTIONS recipes, see PERSONALIZED_ACTIONS +// recipes (https://docs.aws.amazon.com/personalize/latest/dg/nexts-best-action-recipes.html). +// For more information about getting action recommendations, see Getting action +// recommendations (https://docs.aws.amazon.com/personalize/latest/dg/get-action-recommendations.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Personalize Runtime's +// API operation GetActionRecommendations for usage and error information. +// +// Returned Error Types: +// +// - InvalidInputException +// Provide a valid value for the field or parameter. +// +// - ResourceNotFoundException +// The specified resource does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-runtime-2018-05-22/GetActionRecommendations +func (c *PersonalizeRuntime) GetActionRecommendations(input *GetActionRecommendationsInput) (*GetActionRecommendationsOutput, error) { + req, out := c.GetActionRecommendationsRequest(input) + return out, req.Send() +} + +// GetActionRecommendationsWithContext is the same as GetActionRecommendations with the addition of +// the ability to pass a context and additional request options. +// +// See GetActionRecommendations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *PersonalizeRuntime) GetActionRecommendationsWithContext(ctx aws.Context, input *GetActionRecommendationsInput, opts ...request.Option) (*GetActionRecommendationsOutput, error) { + req, out := c.GetActionRecommendationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetPersonalizedRanking = "GetPersonalizedRanking" // GetPersonalizedRankingRequest generates a "aws/request.Request" representing the @@ -193,6 +282,131 @@ func (c *PersonalizeRuntime) GetRecommendationsWithContext(ctx aws.Context, inpu return out, req.Send() } +type GetActionRecommendationsInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the campaign to use for getting action + // recommendations. This campaign must deploy a solution version trained with + // a PERSONALIZED_ACTIONS recipe. + CampaignArn *string `locationName:"campaignArn" type:"string"` + + // The ARN of the filter to apply to the returned recommendations. For more + // information, see Filtering Recommendations (https://docs.aws.amazon.com/personalize/latest/dg/filter.html). + // + // When using this parameter, be sure the filter resource is ACTIVE. + FilterArn *string `locationName:"filterArn" type:"string"` + + // The values to use when filtering recommendations. For each placeholder parameter + // in your filter expression, provide the parameter name (in matching case) + // as a key and the filter value(s) as the corresponding value. Separate multiple + // values for one parameter with a comma. + // + // For filter expressions that use an INCLUDE element to include actions, you + // must provide values for all parameters that are defined in the expression. + // For filters with expressions that use an EXCLUDE element to exclude actions, + // you can omit the filter-values. In this case, Amazon Personalize doesn't + // use that portion of the expression to filter recommendations. + // + // For more information, see Filtering recommendations and user segments (https://docs.aws.amazon.com/personalize/latest/dg/filter.html). + FilterValues map[string]*string `locationName:"filterValues" type:"map"` + + // The number of results to return. The default is 5. The maximum is 100. + NumResults *int64 `locationName:"numResults" type:"integer"` + + // The user ID of the user to provide action recommendations for. + UserId *string `locationName:"userId" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetActionRecommendationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetActionRecommendationsInput) GoString() string { + return s.String() +} + +// SetCampaignArn sets the CampaignArn field's value. +func (s *GetActionRecommendationsInput) SetCampaignArn(v string) *GetActionRecommendationsInput { + s.CampaignArn = &v + return s +} + +// SetFilterArn sets the FilterArn field's value. +func (s *GetActionRecommendationsInput) SetFilterArn(v string) *GetActionRecommendationsInput { + s.FilterArn = &v + return s +} + +// SetFilterValues sets the FilterValues field's value. +func (s *GetActionRecommendationsInput) SetFilterValues(v map[string]*string) *GetActionRecommendationsInput { + s.FilterValues = v + return s +} + +// SetNumResults sets the NumResults field's value. +func (s *GetActionRecommendationsInput) SetNumResults(v int64) *GetActionRecommendationsInput { + s.NumResults = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *GetActionRecommendationsInput) SetUserId(v string) *GetActionRecommendationsInput { + s.UserId = &v + return s +} + +type GetActionRecommendationsOutput struct { + _ struct{} `type:"structure"` + + // A list of action recommendations sorted in descending order by prediction + // score. There can be a maximum of 100 actions in the list. For information + // about action scores, see How action recommendation scoring works (https://docs.aws.amazon.com/personalize/latest/dg/how-action-recommendation-scoring-works.html). + ActionList []*PredictedAction `locationName:"actionList" type:"list"` + + // The ID of the recommendation. + RecommendationId *string `locationName:"recommendationId" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetActionRecommendationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetActionRecommendationsOutput) GoString() string { + return s.String() +} + +// SetActionList sets the ActionList field's value. +func (s *GetActionRecommendationsOutput) SetActionList(v []*PredictedAction) *GetActionRecommendationsOutput { + s.ActionList = v + return s +} + +// SetRecommendationId sets the RecommendationId field's value. +func (s *GetActionRecommendationsOutput) SetRecommendationId(v string) *GetActionRecommendationsOutput { + s.RecommendationId = &v + return s +} + type GetPersonalizedRankingInput struct { _ struct{} `type:"structure"` @@ -227,12 +441,23 @@ type GetPersonalizedRankingInput struct { FilterValues map[string]*string `locationName:"filterValues" type:"map"` // A list of items (by itemId) to rank. If an item was not included in the training - // dataset, the item is appended to the end of the reranked list. The maximum - // is 500. + // dataset, the item is appended to the end of the reranked list. If you are + // including metadata in recommendations, the maximum is 50. Otherwise, the + // maximum is 500. // // InputList is a required field InputList []*string `locationName:"inputList" type:"list" required:"true"` + // If you enabled metadata in recommendations when you created or updated the + // campaign, specify metadata columns from your Items dataset to include in + // the personalized ranking. The map key is ITEMS and the value is a list of + // column names from your Items dataset. The maximum number of columns you can + // provide is 10. + // + // For information about enabling metadata for a campaign, see Enabling metadata + // in recommendations for a campaign (https://docs.aws.amazon.com/personalize/latest/dg/create-campaign-return-metadata.html). + MetadataColumns map[string][]*string `locationName:"metadataColumns" type:"map"` + // The user for which you want the campaign to provide a personalized ranking. // // UserId is a required field @@ -306,6 +531,12 @@ func (s *GetPersonalizedRankingInput) SetInputList(v []*string) *GetPersonalized return s } +// SetMetadataColumns sets the MetadataColumns field's value. +func (s *GetPersonalizedRankingInput) SetMetadataColumns(v map[string][]*string) *GetPersonalizedRankingInput { + s.MetadataColumns = v + return s +} + // SetUserId sets the UserId field's value. func (s *GetPersonalizedRankingInput) SetUserId(v string) *GetPersonalizedRankingInput { s.UserId = &v @@ -389,7 +620,21 @@ type GetRecommendationsInput struct { // Required for RELATED_ITEMS recipe type. ItemId *string `locationName:"itemId" type:"string"` - // The number of results to return. The default is 25. The maximum is 500. + // If you enabled metadata in recommendations when you created or updated the + // campaign or recommender, specify the metadata columns from your Items dataset + // to include in item recommendations. The map key is ITEMS and the value is + // a list of column names from your Items dataset. The maximum number of columns + // you can provide is 10. + // + // For information about enabling metadata for a campaign, see Enabling metadata + // in recommendations for a campaign (https://docs.aws.amazon.com/personalize/latest/dg/create-campaign-return-metadata.html). + // For information about enabling metadata for a recommender, see Enabling metadata + // in recommendations for a recommender (https://docs.aws.amazon.com/personalize/latest/dg/create-recommender-return-metadata.html). + MetadataColumns map[string][]*string `locationName:"metadataColumns" type:"map"` + + // The number of results to return. The default is 25. If you are including + // metadata in recommendations, the maximum is 50. Otherwise, the maximum is + // 500. NumResults *int64 `locationName:"numResults" type:"integer"` // The promotions to apply to the recommendation request. A promotion defines @@ -476,6 +721,12 @@ func (s *GetRecommendationsInput) SetItemId(v string) *GetRecommendationsInput { return s } +// SetMetadataColumns sets the MetadataColumns field's value. +func (s *GetRecommendationsInput) SetMetadataColumns(v map[string][]*string) *GetRecommendationsInput { + s.MetadataColumns = v + return s +} + // SetNumResults sets the NumResults field's value. func (s *GetRecommendationsInput) SetNumResults(v int64) *GetRecommendationsInput { s.NumResults = &v @@ -605,6 +856,50 @@ func (s *InvalidInputException) RequestID() string { return s.RespMetadata.RequestID } +// An object that identifies an action. +// +// The API returns a list of PredictedActions. +type PredictedAction struct { + _ struct{} `type:"structure"` + + // The ID of the recommended action. + ActionId *string `locationName:"actionId" type:"string"` + + // The score of the recommended action. For information about action scores, + // see How action recommendation scoring works (https://docs.aws.amazon.com/personalize/latest/dg/how-action-recommendation-scoring-works.html). + Score *float64 `locationName:"score" type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PredictedAction) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PredictedAction) GoString() string { + return s.String() +} + +// SetActionId sets the ActionId field's value. +func (s *PredictedAction) SetActionId(v string) *PredictedAction { + s.ActionId = &v + return s +} + +// SetScore sets the Score field's value. +func (s *PredictedAction) SetScore(v float64) *PredictedAction { + s.Score = &v + return s +} + // An object that identifies an item. // // The and APIs return a list of PredictedItems. @@ -614,6 +909,9 @@ type PredictedItem struct { // The recommended item ID. ItemId *string `locationName:"itemId" type:"string"` + // Metadata about the item from your Items dataset. + Metadata map[string]*string `locationName:"metadata" type:"map"` + // The name of the promotion that included the predicted item. PromotionName *string `locationName:"promotionName" min:"1" type:"string"` @@ -646,6 +944,12 @@ func (s *PredictedItem) SetItemId(v string) *PredictedItem { return s } +// SetMetadata sets the Metadata field's value. +func (s *PredictedItem) SetMetadata(v map[string]*string) *PredictedItem { + s.Metadata = v + return s +} + // SetPromotionName sets the PromotionName field's value. func (s *PredictedItem) SetPromotionName(v string) *PredictedItem { s.PromotionName = &v diff --git a/service/personalizeruntime/personalizeruntimeiface/interface.go b/service/personalizeruntime/personalizeruntimeiface/interface.go index cb12e5d8e8e..74a3c3950d5 100644 --- a/service/personalizeruntime/personalizeruntimeiface/interface.go +++ b/service/personalizeruntime/personalizeruntimeiface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // Amazon Personalize Runtime. // func myFunc(svc personalizeruntimeiface.PersonalizeRuntimeAPI) bool { -// // Make svc.GetPersonalizedRanking request +// // Make svc.GetActionRecommendations request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockPersonalizeRuntimeClient struct { // personalizeruntimeiface.PersonalizeRuntimeAPI // } -// func (m *mockPersonalizeRuntimeClient) GetPersonalizedRanking(input *personalizeruntime.GetPersonalizedRankingInput) (*personalizeruntime.GetPersonalizedRankingOutput, error) { +// func (m *mockPersonalizeRuntimeClient) GetActionRecommendations(input *personalizeruntime.GetActionRecommendationsInput) (*personalizeruntime.GetActionRecommendationsOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,10 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type PersonalizeRuntimeAPI interface { + GetActionRecommendations(*personalizeruntime.GetActionRecommendationsInput) (*personalizeruntime.GetActionRecommendationsOutput, error) + GetActionRecommendationsWithContext(aws.Context, *personalizeruntime.GetActionRecommendationsInput, ...request.Option) (*personalizeruntime.GetActionRecommendationsOutput, error) + GetActionRecommendationsRequest(*personalizeruntime.GetActionRecommendationsInput) (*request.Request, *personalizeruntime.GetActionRecommendationsOutput) + GetPersonalizedRanking(*personalizeruntime.GetPersonalizedRankingInput) (*personalizeruntime.GetPersonalizedRankingOutput, error) GetPersonalizedRankingWithContext(aws.Context, *personalizeruntime.GetPersonalizedRankingInput, ...request.Option) (*personalizeruntime.GetPersonalizedRankingOutput, error) GetPersonalizedRankingRequest(*personalizeruntime.GetPersonalizedRankingInput) (*request.Request, *personalizeruntime.GetPersonalizedRankingOutput) diff --git a/service/prometheusservice/api.go b/service/prometheusservice/api.go index 89ee2eec205..ea90602f64d 100644 --- a/service/prometheusservice/api.go +++ b/service/prometheusservice/api.go @@ -295,6 +295,103 @@ func (c *PrometheusService) CreateRuleGroupsNamespaceWithContext(ctx aws.Context return out, req.Send() } +const opCreateScraper = "CreateScraper" + +// CreateScraperRequest generates a "aws/request.Request" representing the +// client's request for the CreateScraper 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 CreateScraper for more information on using the CreateScraper +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateScraperRequest method. +// req, resp := client.CreateScraperRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/CreateScraper +func (c *PrometheusService) CreateScraperRequest(input *CreateScraperInput) (req *request.Request, output *CreateScraperOutput) { + op := &request.Operation{ + Name: opCreateScraper, + HTTPMethod: "POST", + HTTPPath: "/scrapers", + } + + if input == nil { + input = &CreateScraperInput{} + } + + output = &CreateScraperOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateScraper API operation for Amazon Prometheus Service. +// +// Create a scraper. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Prometheus Service's +// API operation CreateScraper for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - ConflictException +// Updating or deleting a resource can cause an inconsistent state. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// - ServiceQuotaExceededException +// Request would cause a service quota to be exceeded. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/CreateScraper +func (c *PrometheusService) CreateScraper(input *CreateScraperInput) (*CreateScraperOutput, error) { + req, out := c.CreateScraperRequest(input) + return out, req.Send() +} + +// CreateScraperWithContext is the same as CreateScraper with the addition of +// the ability to pass a context and additional request options. +// +// See CreateScraper for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *PrometheusService) CreateScraperWithContext(ctx aws.Context, input *CreateScraperInput, opts ...request.Option) (*CreateScraperOutput, error) { + req, out := c.CreateScraperRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateWorkspace = "CreateWorkspace" // CreateWorkspaceRequest generates a "aws/request.Request" representing the @@ -671,6 +768,100 @@ func (c *PrometheusService) DeleteRuleGroupsNamespaceWithContext(ctx aws.Context return out, req.Send() } +const opDeleteScraper = "DeleteScraper" + +// DeleteScraperRequest generates a "aws/request.Request" representing the +// client's request for the DeleteScraper 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 DeleteScraper for more information on using the DeleteScraper +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteScraperRequest method. +// req, resp := client.DeleteScraperRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/DeleteScraper +func (c *PrometheusService) DeleteScraperRequest(input *DeleteScraperInput) (req *request.Request, output *DeleteScraperOutput) { + op := &request.Operation{ + Name: opDeleteScraper, + HTTPMethod: "DELETE", + HTTPPath: "/scrapers/{scraperId}", + } + + if input == nil { + input = &DeleteScraperInput{} + } + + output = &DeleteScraperOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteScraper API operation for Amazon Prometheus Service. +// +// Deletes a scraper. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Prometheus Service's +// API operation DeleteScraper for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - ConflictException +// Updating or deleting a resource can cause an inconsistent state. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/DeleteScraper +func (c *PrometheusService) DeleteScraper(input *DeleteScraperInput) (*DeleteScraperOutput, error) { + req, out := c.DeleteScraperRequest(input) + return out, req.Send() +} + +// DeleteScraperWithContext is the same as DeleteScraper with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteScraper for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *PrometheusService) DeleteScraperWithContext(ctx aws.Context, input *DeleteScraperInput, opts ...request.Option) (*DeleteScraperOutput, error) { + req, out := c.DeleteScraperRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteWorkspace = "DeleteWorkspace" // DeleteWorkspaceRequest generates a "aws/request.Request" representing the @@ -1036,6 +1227,97 @@ func (c *PrometheusService) DescribeRuleGroupsNamespaceWithContext(ctx aws.Conte return out, req.Send() } +const opDescribeScraper = "DescribeScraper" + +// DescribeScraperRequest generates a "aws/request.Request" representing the +// client's request for the DescribeScraper 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 DescribeScraper for more information on using the DescribeScraper +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DescribeScraperRequest method. +// req, resp := client.DescribeScraperRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/DescribeScraper +func (c *PrometheusService) DescribeScraperRequest(input *DescribeScraperInput) (req *request.Request, output *DescribeScraperOutput) { + op := &request.Operation{ + Name: opDescribeScraper, + HTTPMethod: "GET", + HTTPPath: "/scrapers/{scraperId}", + } + + if input == nil { + input = &DescribeScraperInput{} + } + + output = &DescribeScraperOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeScraper API operation for Amazon Prometheus Service. +// +// Describe an existing scraper. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Prometheus Service's +// API operation DescribeScraper for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/DescribeScraper +func (c *PrometheusService) DescribeScraper(input *DescribeScraperInput) (*DescribeScraperOutput, error) { + req, out := c.DescribeScraperRequest(input) + return out, req.Send() +} + +// DescribeScraperWithContext is the same as DescribeScraper with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeScraper for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *PrometheusService) DescribeScraperWithContext(ctx aws.Context, input *DescribeScraperInput, opts ...request.Option) (*DescribeScraperOutput, error) { + req, out := c.DescribeScraperRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeWorkspace = "DescribeWorkspace" // DescribeWorkspaceRequest generates a "aws/request.Request" representing the @@ -1127,109 +1409,194 @@ func (c *PrometheusService) DescribeWorkspaceWithContext(ctx aws.Context, input return out, req.Send() } -const opListRuleGroupsNamespaces = "ListRuleGroupsNamespaces" +const opGetDefaultScraperConfiguration = "GetDefaultScraperConfiguration" -// ListRuleGroupsNamespacesRequest generates a "aws/request.Request" representing the -// client's request for the ListRuleGroupsNamespaces operation. The "output" return +// GetDefaultScraperConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetDefaultScraperConfiguration 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 ListRuleGroupsNamespaces for more information on using the ListRuleGroupsNamespaces +// See GetDefaultScraperConfiguration for more information on using the GetDefaultScraperConfiguration // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ListRuleGroupsNamespacesRequest method. -// req, resp := client.ListRuleGroupsNamespacesRequest(params) +// // Example sending a request using the GetDefaultScraperConfigurationRequest method. +// req, resp := client.GetDefaultScraperConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/ListRuleGroupsNamespaces -func (c *PrometheusService) ListRuleGroupsNamespacesRequest(input *ListRuleGroupsNamespacesInput) (req *request.Request, output *ListRuleGroupsNamespacesOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/GetDefaultScraperConfiguration +func (c *PrometheusService) GetDefaultScraperConfigurationRequest(input *GetDefaultScraperConfigurationInput) (req *request.Request, output *GetDefaultScraperConfigurationOutput) { op := &request.Operation{ - Name: opListRuleGroupsNamespaces, + Name: opGetDefaultScraperConfiguration, HTTPMethod: "GET", - HTTPPath: "/workspaces/{workspaceId}/rulegroupsnamespaces", - Paginator: &request.Paginator{ - InputTokens: []string{"nextToken"}, - OutputTokens: []string{"nextToken"}, - LimitToken: "maxResults", - TruncationToken: "", - }, + HTTPPath: "/scraperconfiguration", } if input == nil { - input = &ListRuleGroupsNamespacesInput{} + input = &GetDefaultScraperConfigurationInput{} } - output = &ListRuleGroupsNamespacesOutput{} + output = &GetDefaultScraperConfigurationOutput{} req = c.newRequest(op, input, output) return } -// ListRuleGroupsNamespaces API operation for Amazon Prometheus Service. +// GetDefaultScraperConfiguration API operation for Amazon Prometheus Service. // -// Lists rule groups namespaces. +// Gets a default configuration. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 Prometheus Service's -// API operation ListRuleGroupsNamespaces for usage and error information. +// API operation GetDefaultScraperConfiguration for usage and error information. // // Returned Error Types: // // - ThrottlingException // Request was denied due to request throttling. // -// - ValidationException -// The input fails to satisfy the constraints specified by an AWS service. -// -// - ResourceNotFoundException -// Request references a resource which does not exist. -// // - AccessDeniedException // User does not have sufficient access to perform this action. // // - InternalServerException // Unexpected error during processing of request. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/ListRuleGroupsNamespaces -func (c *PrometheusService) ListRuleGroupsNamespaces(input *ListRuleGroupsNamespacesInput) (*ListRuleGroupsNamespacesOutput, error) { - req, out := c.ListRuleGroupsNamespacesRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/GetDefaultScraperConfiguration +func (c *PrometheusService) GetDefaultScraperConfiguration(input *GetDefaultScraperConfigurationInput) (*GetDefaultScraperConfigurationOutput, error) { + req, out := c.GetDefaultScraperConfigurationRequest(input) return out, req.Send() } -// ListRuleGroupsNamespacesWithContext is the same as ListRuleGroupsNamespaces with the addition of +// GetDefaultScraperConfigurationWithContext is the same as GetDefaultScraperConfiguration with the addition of // the ability to pass a context and additional request options. // -// See ListRuleGroupsNamespaces for details on how to use this API operation. +// See GetDefaultScraperConfiguration for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *PrometheusService) ListRuleGroupsNamespacesWithContext(ctx aws.Context, input *ListRuleGroupsNamespacesInput, opts ...request.Option) (*ListRuleGroupsNamespacesOutput, error) { - req, out := c.ListRuleGroupsNamespacesRequest(input) +func (c *PrometheusService) GetDefaultScraperConfigurationWithContext(ctx aws.Context, input *GetDefaultScraperConfigurationInput, opts ...request.Option) (*GetDefaultScraperConfigurationOutput, error) { + req, out := c.GetDefaultScraperConfigurationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListRuleGroupsNamespacesPages iterates over the pages of a ListRuleGroupsNamespaces operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListRuleGroupsNamespaces method for more information on how to use this operation. -// +const opListRuleGroupsNamespaces = "ListRuleGroupsNamespaces" + +// ListRuleGroupsNamespacesRequest generates a "aws/request.Request" representing the +// client's request for the ListRuleGroupsNamespaces 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 ListRuleGroupsNamespaces for more information on using the ListRuleGroupsNamespaces +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListRuleGroupsNamespacesRequest method. +// req, resp := client.ListRuleGroupsNamespacesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/ListRuleGroupsNamespaces +func (c *PrometheusService) ListRuleGroupsNamespacesRequest(input *ListRuleGroupsNamespacesInput) (req *request.Request, output *ListRuleGroupsNamespacesOutput) { + op := &request.Operation{ + Name: opListRuleGroupsNamespaces, + HTTPMethod: "GET", + HTTPPath: "/workspaces/{workspaceId}/rulegroupsnamespaces", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListRuleGroupsNamespacesInput{} + } + + output = &ListRuleGroupsNamespacesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListRuleGroupsNamespaces API operation for Amazon Prometheus Service. +// +// Lists rule groups namespaces. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Prometheus Service's +// API operation ListRuleGroupsNamespaces for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/ListRuleGroupsNamespaces +func (c *PrometheusService) ListRuleGroupsNamespaces(input *ListRuleGroupsNamespacesInput) (*ListRuleGroupsNamespacesOutput, error) { + req, out := c.ListRuleGroupsNamespacesRequest(input) + return out, req.Send() +} + +// ListRuleGroupsNamespacesWithContext is the same as ListRuleGroupsNamespaces with the addition of +// the ability to pass a context and additional request options. +// +// See ListRuleGroupsNamespaces for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *PrometheusService) ListRuleGroupsNamespacesWithContext(ctx aws.Context, input *ListRuleGroupsNamespacesInput, opts ...request.Option) (*ListRuleGroupsNamespacesOutput, error) { + req, out := c.ListRuleGroupsNamespacesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListRuleGroupsNamespacesPages iterates over the pages of a ListRuleGroupsNamespaces operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListRuleGroupsNamespaces 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 ListRuleGroupsNamespaces operation. @@ -1275,6 +1642,152 @@ func (c *PrometheusService) ListRuleGroupsNamespacesPagesWithContext(ctx aws.Con return p.Err() } +const opListScrapers = "ListScrapers" + +// ListScrapersRequest generates a "aws/request.Request" representing the +// client's request for the ListScrapers 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 ListScrapers for more information on using the ListScrapers +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListScrapersRequest method. +// req, resp := client.ListScrapersRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/ListScrapers +func (c *PrometheusService) ListScrapersRequest(input *ListScrapersInput) (req *request.Request, output *ListScrapersOutput) { + op := &request.Operation{ + Name: opListScrapers, + HTTPMethod: "GET", + HTTPPath: "/scrapers", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListScrapersInput{} + } + + output = &ListScrapersOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListScrapers API operation for Amazon Prometheus Service. +// +// Lists all scrapers in a customer account, including scrapers being created +// or deleted. You may provide filters to return a more specific list of results. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Prometheus Service's +// API operation ListScrapers for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/ListScrapers +func (c *PrometheusService) ListScrapers(input *ListScrapersInput) (*ListScrapersOutput, error) { + req, out := c.ListScrapersRequest(input) + return out, req.Send() +} + +// ListScrapersWithContext is the same as ListScrapers with the addition of +// the ability to pass a context and additional request options. +// +// See ListScrapers for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *PrometheusService) ListScrapersWithContext(ctx aws.Context, input *ListScrapersInput, opts ...request.Option) (*ListScrapersOutput, error) { + req, out := c.ListScrapersRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListScrapersPages iterates over the pages of a ListScrapers operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListScrapers 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 ListScrapers operation. +// pageNum := 0 +// err := client.ListScrapersPages(params, +// func(page *prometheusservice.ListScrapersOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *PrometheusService) ListScrapersPages(input *ListScrapersInput, fn func(*ListScrapersOutput, bool) bool) error { + return c.ListScrapersPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListScrapersPagesWithContext same as ListScrapersPages 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 *PrometheusService) ListScrapersPagesWithContext(ctx aws.Context, input *ListScrapersInput, fn func(*ListScrapersOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListScrapersInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListScrapersRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListScrapersOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListTagsForResource = "ListTagsForResource" // ListTagsForResourceRequest generates a "aws/request.Request" representing the @@ -2254,6 +2767,53 @@ func (s *AlertManagerDefinitionStatus) SetStatusReason(v string) *AlertManagerDe return s } +// A representation of an AMP destination. +type AmpConfiguration struct { + _ struct{} `type:"structure"` + + // The ARN of an AMP workspace. + // + // WorkspaceArn is a required field + WorkspaceArn *string `locationName:"workspaceArn" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AmpConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AmpConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AmpConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AmpConfiguration"} + if s.WorkspaceArn == nil { + invalidParams.Add(request.NewErrParamRequired("WorkspaceArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetWorkspaceArn sets the WorkspaceArn field's value. +func (s *AmpConfiguration) SetWorkspaceArn(v string) *AmpConfiguration { + s.WorkspaceArn = &v + return s +} + // Updating or deleting a resource can cause an inconsistent state. type ConflictException struct { _ struct{} `type:"structure"` @@ -2721,11 +3281,11 @@ func (s *CreateRuleGroupsNamespaceOutput) SetTags(v map[string]*string) *CreateR return s } -// Represents the input of a CreateWorkspace operation. -type CreateWorkspaceInput struct { +// Represents the input of a CreateScraper operation. +type CreateScraperInput struct { _ struct{} `type:"structure"` - // An optional user-assigned alias for this workspace. This alias is for user + // An optional user-assigned alias for this scraper. This alias is for user // reference and does not need to be unique. Alias *string `locationName:"alias" min:"1" type:"string"` @@ -2733,12 +3293,197 @@ type CreateWorkspaceInput struct { // idempotency of the request. ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` - // Optional, user-provided tags for this workspace. - Tags map[string]*string `locationName:"tags" type:"map"` -} + // The destination that the scraper will be producing metrics to. + // + // Destination is a required field + Destination *Destination `locationName:"destination" type:"structure" required:"true"` -// String returns the string representation. -// + // The configuration used to create the scraper. + // + // ScrapeConfiguration is a required field + ScrapeConfiguration *ScrapeConfiguration `locationName:"scrapeConfiguration" type:"structure" required:"true"` + + // The source that the scraper will be discovering and collecting metrics from. + // + // Source is a required field + Source *Source `locationName:"source" type:"structure" required:"true"` + + // Optional, user-provided tags for this scraper. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateScraperInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateScraperInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateScraperInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateScraperInput"} + if s.Alias != nil && len(*s.Alias) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Alias", 1)) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.Destination == nil { + invalidParams.Add(request.NewErrParamRequired("Destination")) + } + if s.ScrapeConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("ScrapeConfiguration")) + } + if s.Source == nil { + invalidParams.Add(request.NewErrParamRequired("Source")) + } + if s.Destination != nil { + if err := s.Destination.Validate(); err != nil { + invalidParams.AddNested("Destination", err.(request.ErrInvalidParams)) + } + } + if s.Source != nil { + if err := s.Source.Validate(); err != nil { + invalidParams.AddNested("Source", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAlias sets the Alias field's value. +func (s *CreateScraperInput) SetAlias(v string) *CreateScraperInput { + s.Alias = &v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateScraperInput) SetClientToken(v string) *CreateScraperInput { + s.ClientToken = &v + return s +} + +// SetDestination sets the Destination field's value. +func (s *CreateScraperInput) SetDestination(v *Destination) *CreateScraperInput { + s.Destination = v + return s +} + +// SetScrapeConfiguration sets the ScrapeConfiguration field's value. +func (s *CreateScraperInput) SetScrapeConfiguration(v *ScrapeConfiguration) *CreateScraperInput { + s.ScrapeConfiguration = v + return s +} + +// SetSource sets the Source field's value. +func (s *CreateScraperInput) SetSource(v *Source) *CreateScraperInput { + s.Source = v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateScraperInput) SetTags(v map[string]*string) *CreateScraperInput { + s.Tags = v + return s +} + +// Represents the output of a CreateScraper operation. +type CreateScraperOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the scraper that was just created. + // + // Arn is a required field + Arn *string `locationName:"arn" type:"string" required:"true"` + + // The generated ID of the scraper that was just created. + // + // ScraperId is a required field + ScraperId *string `locationName:"scraperId" min:"1" type:"string" required:"true"` + + // The status of the scraper that was just created (usually CREATING). + // + // Status is a required field + Status *ScraperStatus `locationName:"status" type:"structure" required:"true"` + + // The tags of this scraper. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateScraperOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateScraperOutput) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *CreateScraperOutput) SetArn(v string) *CreateScraperOutput { + s.Arn = &v + return s +} + +// SetScraperId sets the ScraperId field's value. +func (s *CreateScraperOutput) SetScraperId(v string) *CreateScraperOutput { + s.ScraperId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *CreateScraperOutput) SetStatus(v *ScraperStatus) *CreateScraperOutput { + s.Status = v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateScraperOutput) SetTags(v map[string]*string) *CreateScraperOutput { + s.Tags = v + return s +} + +// Represents the input of a CreateWorkspace operation. +type CreateWorkspaceInput struct { + _ struct{} `type:"structure"` + + // An optional user-assigned alias for this workspace. This alias is for user + // reference and does not need to be unique. + Alias *string `locationName:"alias" min:"1" type:"string"` + + // Optional, unique, case-sensitive, user-provided identifier to ensure the + // idempotency of the request. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // Optional, user-provided tags for this workspace. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". @@ -3126,6 +3871,114 @@ func (s DeleteRuleGroupsNamespaceOutput) GoString() string { return s.String() } +// Represents the input of a DeleteScraper operation. +type DeleteScraperInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Optional, unique, case-sensitive, user-provided identifier to ensure the + // idempotency of the request. + ClientToken *string `location:"querystring" locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The ID of the scraper to delete. + // + // ScraperId is a required field + ScraperId *string `location:"uri" locationName:"scraperId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteScraperInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteScraperInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteScraperInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteScraperInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.ScraperId == nil { + invalidParams.Add(request.NewErrParamRequired("ScraperId")) + } + if s.ScraperId != nil && len(*s.ScraperId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ScraperId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *DeleteScraperInput) SetClientToken(v string) *DeleteScraperInput { + s.ClientToken = &v + return s +} + +// SetScraperId sets the ScraperId field's value. +func (s *DeleteScraperInput) SetScraperId(v string) *DeleteScraperInput { + s.ScraperId = &v + return s +} + +// Represents the output of a DeleteScraper operation. +type DeleteScraperOutput struct { + _ struct{} `type:"structure"` + + // The ID of the scraper that was deleted. + // + // ScraperId is a required field + ScraperId *string `locationName:"scraperId" min:"1" type:"string" required:"true"` + + // The status of the scraper that is being deleted. + // + // Status is a required field + Status *ScraperStatus `locationName:"status" type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteScraperOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteScraperOutput) GoString() string { + return s.String() +} + +// SetScraperId sets the ScraperId field's value. +func (s *DeleteScraperOutput) SetScraperId(v string) *DeleteScraperOutput { + s.ScraperId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *DeleteScraperOutput) SetStatus(v *ScraperStatus) *DeleteScraperOutput { + s.Status = v + return s +} + // Represents the input of a DeleteWorkspace operation. type DeleteWorkspaceInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -3481,14 +4334,14 @@ func (s *DescribeRuleGroupsNamespaceOutput) SetRuleGroupsNamespace(v *RuleGroups return s } -// Represents the input of a DescribeWorkspace operation. -type DescribeWorkspaceInput struct { +// Represents the input of a DescribeScraper operation. +type DescribeScraperInput struct { _ struct{} `type:"structure" nopayload:"true"` - // The ID of the workspace to describe. + // The IDs of the scraper to describe. // - // WorkspaceId is a required field - WorkspaceId *string `location:"uri" locationName:"workspaceId" min:"1" type:"string" required:"true"` + // ScraperId is a required field + ScraperId *string `location:"uri" locationName:"scraperId" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -3496,7 +4349,7 @@ type DescribeWorkspaceInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeWorkspaceInput) String() string { +func (s DescribeScraperInput) String() string { return awsutil.Prettify(s) } @@ -3505,18 +4358,18 @@ func (s DescribeWorkspaceInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeWorkspaceInput) GoString() string { +func (s DescribeScraperInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeWorkspaceInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceInput"} - if s.WorkspaceId == nil { - invalidParams.Add(request.NewErrParamRequired("WorkspaceId")) +func (s *DescribeScraperInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeScraperInput"} + if s.ScraperId == nil { + invalidParams.Add(request.NewErrParamRequired("ScraperId")) } - if s.WorkspaceId != nil && len(*s.WorkspaceId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("WorkspaceId", 1)) + if s.ScraperId != nil && len(*s.ScraperId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ScraperId", 1)) } if invalidParams.Len() > 0 { @@ -3525,20 +4378,20 @@ func (s *DescribeWorkspaceInput) Validate() error { return nil } -// SetWorkspaceId sets the WorkspaceId field's value. -func (s *DescribeWorkspaceInput) SetWorkspaceId(v string) *DescribeWorkspaceInput { - s.WorkspaceId = &v +// SetScraperId sets the ScraperId field's value. +func (s *DescribeScraperInput) SetScraperId(v string) *DescribeScraperInput { + s.ScraperId = &v return s } -// Represents the output of a DescribeWorkspace operation. -type DescribeWorkspaceOutput struct { +// Represents the output of a DescribeScraper operation. +type DescribeScraperOutput struct { _ struct{} `type:"structure"` - // The properties of the selected workspace. + // The properties of the selected scrapers. // - // Workspace is a required field - Workspace *WorkspaceDescription `locationName:"workspace" type:"structure" required:"true"` + // Scraper is a required field + Scraper *ScraperDescription `locationName:"scraper" type:"structure" required:"true"` } // String returns the string representation. @@ -3546,7 +4399,7 @@ type DescribeWorkspaceOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeWorkspaceOutput) String() string { +func (s DescribeScraperOutput) String() string { return awsutil.Prettify(s) } @@ -3555,26 +4408,24 @@ func (s DescribeWorkspaceOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeWorkspaceOutput) GoString() string { +func (s DescribeScraperOutput) GoString() string { return s.String() } -// SetWorkspace sets the Workspace field's value. -func (s *DescribeWorkspaceOutput) SetWorkspace(v *WorkspaceDescription) *DescribeWorkspaceOutput { - s.Workspace = v +// SetScraper sets the Scraper field's value. +func (s *DescribeScraperOutput) SetScraper(v *ScraperDescription) *DescribeScraperOutput { + s.Scraper = v return s } -// Unexpected error during processing of request. -type InternalServerException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - // Description of the error. - Message_ *string `locationName:"message" type:"string"` +// Represents the input of a DescribeWorkspace operation. +type DescribeWorkspaceInput struct { + _ struct{} `type:"structure" nopayload:"true"` - // Advice to clients on when the call can be safely retried. - RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"` + // The ID of the workspace to describe. + // + // WorkspaceId is a required field + WorkspaceId *string `location:"uri" locationName:"workspaceId" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -3582,7 +4433,274 @@ type InternalServerException struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s InternalServerException) String() string { +func (s DescribeWorkspaceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeWorkspaceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeWorkspaceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceInput"} + if s.WorkspaceId == nil { + invalidParams.Add(request.NewErrParamRequired("WorkspaceId")) + } + if s.WorkspaceId != nil && len(*s.WorkspaceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("WorkspaceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetWorkspaceId sets the WorkspaceId field's value. +func (s *DescribeWorkspaceInput) SetWorkspaceId(v string) *DescribeWorkspaceInput { + s.WorkspaceId = &v + return s +} + +// Represents the output of a DescribeWorkspace operation. +type DescribeWorkspaceOutput struct { + _ struct{} `type:"structure"` + + // The properties of the selected workspace. + // + // Workspace is a required field + Workspace *WorkspaceDescription `locationName:"workspace" type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeWorkspaceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeWorkspaceOutput) GoString() string { + return s.String() +} + +// SetWorkspace sets the Workspace field's value. +func (s *DescribeWorkspaceOutput) SetWorkspace(v *WorkspaceDescription) *DescribeWorkspaceOutput { + s.Workspace = v + return s +} + +// A representation of a destination that a scraper can produce metrics to. +type Destination struct { + _ struct{} `type:"structure"` + + // A representation of an AMP destination. + AmpConfiguration *AmpConfiguration `locationName:"ampConfiguration" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Destination) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Destination) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Destination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Destination"} + if s.AmpConfiguration != nil { + if err := s.AmpConfiguration.Validate(); err != nil { + invalidParams.AddNested("AmpConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAmpConfiguration sets the AmpConfiguration field's value. +func (s *Destination) SetAmpConfiguration(v *AmpConfiguration) *Destination { + s.AmpConfiguration = v + return s +} + +// A representation of an EKS source. +type EksConfiguration struct { + _ struct{} `type:"structure"` + + // The ARN of an EKS cluster. + // + // ClusterArn is a required field + ClusterArn *string `locationName:"clusterArn" type:"string" required:"true"` + + // A list of security group IDs specified for VPC configuration. + SecurityGroupIds []*string `locationName:"securityGroupIds" min:"1" type:"list"` + + // A list of subnet IDs specified for VPC configuration. + // + // SubnetIds is a required field + SubnetIds []*string `locationName:"subnetIds" min:"1" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EksConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EksConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EksConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksConfiguration"} + if s.ClusterArn == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterArn")) + } + if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SecurityGroupIds", 1)) + } + if s.SubnetIds == nil { + invalidParams.Add(request.NewErrParamRequired("SubnetIds")) + } + if s.SubnetIds != nil && len(s.SubnetIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SubnetIds", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClusterArn sets the ClusterArn field's value. +func (s *EksConfiguration) SetClusterArn(v string) *EksConfiguration { + s.ClusterArn = &v + return s +} + +// SetSecurityGroupIds sets the SecurityGroupIds field's value. +func (s *EksConfiguration) SetSecurityGroupIds(v []*string) *EksConfiguration { + s.SecurityGroupIds = v + return s +} + +// SetSubnetIds sets the SubnetIds field's value. +func (s *EksConfiguration) SetSubnetIds(v []*string) *EksConfiguration { + s.SubnetIds = v + return s +} + +// Represents the input of a GetDefaultScraperConfiguration operation. +type GetDefaultScraperConfigurationInput struct { + _ struct{} `type:"structure" nopayload:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetDefaultScraperConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetDefaultScraperConfigurationInput) GoString() string { + return s.String() +} + +// Represents the output of a GetDefaultScraperConfiguration operation. +type GetDefaultScraperConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The default configuration. + // Configuration is automatically base64 encoded/decoded by the SDK. + // + // Configuration is a required field + Configuration []byte `locationName:"configuration" type:"blob" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetDefaultScraperConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetDefaultScraperConfigurationOutput) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *GetDefaultScraperConfigurationOutput) SetConfiguration(v []byte) *GetDefaultScraperConfigurationOutput { + s.Configuration = v + return s +} + +// Unexpected error during processing of request. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Description of the error. + Message_ *string `locationName:"message" type:"string"` + + // Advice to clients on when the call can be safely retried. + RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) String() string { return awsutil.Prettify(s) } @@ -3761,13 +4879,19 @@ func (s *ListRuleGroupsNamespacesOutput) SetRuleGroupsNamespaces(v []*RuleGroups return s } -type ListTagsForResourceInput struct { +// Represents the input of a ListScrapers operation. +type ListScrapersInput struct { _ struct{} `type:"structure" nopayload:"true"` - // The ARN of the resource. - // - // ResourceArn is a required field - ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + // A list of scraper filters. + Filters map[string][]*string `location:"querystring" locationName:"filters" min:"1" type:"map"` + + // Maximum results to return in response (default=100, maximum=1000). + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // Pagination token to request the next page in a paginated list. This token + // is obtained from the output of the previous ListScrapers request. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` } // String returns the string representation. @@ -3775,7 +4899,7 @@ type ListTagsForResourceInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListTagsForResourceInput) String() string { +func (s ListScrapersInput) String() string { return awsutil.Prettify(s) } @@ -3784,18 +4908,18 @@ func (s ListTagsForResourceInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListTagsForResourceInput) GoString() string { +func (s ListScrapersInput) 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")) +func (s *ListScrapersInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListScrapersInput"} + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) } - if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if invalidParams.Len() > 0 { @@ -3804,17 +4928,36 @@ func (s *ListTagsForResourceInput) Validate() error { return nil } -// SetResourceArn sets the ResourceArn field's value. -func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { - s.ResourceArn = &v +// SetFilters sets the Filters field's value. +func (s *ListScrapersInput) SetFilters(v map[string][]*string) *ListScrapersInput { + s.Filters = v return s } -type ListTagsForResourceOutput struct { +// SetMaxResults sets the MaxResults field's value. +func (s *ListScrapersInput) SetMaxResults(v int64) *ListScrapersInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListScrapersInput) SetNextToken(v string) *ListScrapersInput { + s.NextToken = &v + return s +} + +// Represents the output of a ListScrapers operation. +type ListScrapersOutput struct { _ struct{} `type:"structure"` - // The list of tags assigned to the resource. - Tags map[string]*string `locationName:"tags" type:"map"` + // Pagination token to use when requesting the next page in this list. + NextToken *string `locationName:"nextToken" type:"string"` + + // The list of scrapers, filtered down if a set of filters was provided in the + // request. + // + // Scrapers is a required field + Scrapers []*ScraperSummary `locationName:"scrapers" type:"list" required:"true"` } // String returns the string representation. @@ -3822,7 +4965,7 @@ type ListTagsForResourceOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListTagsForResourceOutput) String() string { +func (s ListScrapersOutput) String() string { return awsutil.Prettify(s) } @@ -3831,17 +4974,103 @@ func (s ListTagsForResourceOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListTagsForResourceOutput) GoString() string { +func (s ListScrapersOutput) GoString() string { return s.String() } -// SetTags sets the Tags field's value. -func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { - s.Tags = v +// SetNextToken sets the NextToken field's value. +func (s *ListScrapersOutput) SetNextToken(v string) *ListScrapersOutput { + s.NextToken = &v return s } -// Represents the input of a ListWorkspaces operation. +// SetScrapers sets the Scrapers field's value. +func (s *ListScrapersOutput) SetScrapers(v []*ScraperSummary) *ListScrapersOutput { + s.Scrapers = v + return s +} + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN of the resource. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The list of tags assigned to the resource. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +// Represents the input of a ListWorkspaces operation. type ListWorkspacesInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -4308,7 +5537,299 @@ type PutRuleGroupsNamespaceOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s PutRuleGroupsNamespaceOutput) String() string { +func (s PutRuleGroupsNamespaceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutRuleGroupsNamespaceOutput) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *PutRuleGroupsNamespaceOutput) SetArn(v string) *PutRuleGroupsNamespaceOutput { + s.Arn = &v + return s +} + +// SetName sets the Name field's value. +func (s *PutRuleGroupsNamespaceOutput) SetName(v string) *PutRuleGroupsNamespaceOutput { + s.Name = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *PutRuleGroupsNamespaceOutput) SetStatus(v *RuleGroupsNamespaceStatus) *PutRuleGroupsNamespaceOutput { + s.Status = v + return s +} + +// SetTags sets the Tags field's value. +func (s *PutRuleGroupsNamespaceOutput) SetTags(v map[string]*string) *PutRuleGroupsNamespaceOutput { + s.Tags = v + return s +} + +// Request references a resource which does not exist. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Description of the error. + Message_ *string `locationName:"message" type:"string"` + + // Identifier of the resource affected. + // + // ResourceId is a required field + ResourceId *string `locationName:"resourceId" type:"string" required:"true"` + + // Type of the resource affected. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Represents a description of the rule groups namespace. +type RuleGroupsNamespaceDescription struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of this rule groups namespace. + // + // Arn is a required field + Arn *string `locationName:"arn" type:"string" required:"true"` + + // The time when the rule groups namespace was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"` + + // The rule groups namespace data. + // Data is automatically base64 encoded/decoded by the SDK. + // + // Data is a required field + Data []byte `locationName:"data" type:"blob" required:"true"` + + // The time when the rule groups namespace was modified. + // + // ModifiedAt is a required field + ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp" required:"true"` + + // The rule groups namespace name. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` + + // The status of rule groups namespace. + // + // Status is a required field + Status *RuleGroupsNamespaceStatus `locationName:"status" type:"structure" required:"true"` + + // The tags of this rule groups namespace. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RuleGroupsNamespaceDescription) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RuleGroupsNamespaceDescription) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *RuleGroupsNamespaceDescription) SetArn(v string) *RuleGroupsNamespaceDescription { + s.Arn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *RuleGroupsNamespaceDescription) SetCreatedAt(v time.Time) *RuleGroupsNamespaceDescription { + s.CreatedAt = &v + return s +} + +// SetData sets the Data field's value. +func (s *RuleGroupsNamespaceDescription) SetData(v []byte) *RuleGroupsNamespaceDescription { + s.Data = v + return s +} + +// SetModifiedAt sets the ModifiedAt field's value. +func (s *RuleGroupsNamespaceDescription) SetModifiedAt(v time.Time) *RuleGroupsNamespaceDescription { + s.ModifiedAt = &v + return s +} + +// SetName sets the Name field's value. +func (s *RuleGroupsNamespaceDescription) SetName(v string) *RuleGroupsNamespaceDescription { + s.Name = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *RuleGroupsNamespaceDescription) SetStatus(v *RuleGroupsNamespaceStatus) *RuleGroupsNamespaceDescription { + s.Status = v + return s +} + +// SetTags sets the Tags field's value. +func (s *RuleGroupsNamespaceDescription) SetTags(v map[string]*string) *RuleGroupsNamespaceDescription { + s.Tags = v + return s +} + +// Represents the status of a namespace. +type RuleGroupsNamespaceStatus struct { + _ struct{} `type:"structure"` + + // Status code of this namespace. + // + // StatusCode is a required field + StatusCode *string `locationName:"statusCode" type:"string" required:"true" enum:"RuleGroupsNamespaceStatusCode"` + + // The reason for failure if any. + StatusReason *string `locationName:"statusReason" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RuleGroupsNamespaceStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RuleGroupsNamespaceStatus) GoString() string { + return s.String() +} + +// SetStatusCode sets the StatusCode field's value. +func (s *RuleGroupsNamespaceStatus) SetStatusCode(v string) *RuleGroupsNamespaceStatus { + s.StatusCode = &v + return s +} + +// SetStatusReason sets the StatusReason field's value. +func (s *RuleGroupsNamespaceStatus) SetStatusReason(v string) *RuleGroupsNamespaceStatus { + s.StatusReason = &v + return s +} + +// Represents a summary of the rule groups namespace. +type RuleGroupsNamespaceSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of this rule groups namespace. + // + // Arn is a required field + Arn *string `locationName:"arn" type:"string" required:"true"` + + // The time when the rule groups namespace was created. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"` + + // The time when the rule groups namespace was modified. + // + // ModifiedAt is a required field + ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp" required:"true"` + + // The rule groups namespace name. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` + + // The status of rule groups namespace. + // + // Status is a required field + Status *RuleGroupsNamespaceStatus `locationName:"status" type:"structure" required:"true"` + + // The tags of this rule groups namespace. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RuleGroupsNamespaceSummary) String() string { return awsutil.Prettify(s) } @@ -4317,51 +5838,53 @@ func (s PutRuleGroupsNamespaceOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s PutRuleGroupsNamespaceOutput) GoString() string { +func (s RuleGroupsNamespaceSummary) GoString() string { return s.String() } // SetArn sets the Arn field's value. -func (s *PutRuleGroupsNamespaceOutput) SetArn(v string) *PutRuleGroupsNamespaceOutput { +func (s *RuleGroupsNamespaceSummary) SetArn(v string) *RuleGroupsNamespaceSummary { s.Arn = &v return s } +// SetCreatedAt sets the CreatedAt field's value. +func (s *RuleGroupsNamespaceSummary) SetCreatedAt(v time.Time) *RuleGroupsNamespaceSummary { + s.CreatedAt = &v + return s +} + +// SetModifiedAt sets the ModifiedAt field's value. +func (s *RuleGroupsNamespaceSummary) SetModifiedAt(v time.Time) *RuleGroupsNamespaceSummary { + s.ModifiedAt = &v + return s +} + // SetName sets the Name field's value. -func (s *PutRuleGroupsNamespaceOutput) SetName(v string) *PutRuleGroupsNamespaceOutput { +func (s *RuleGroupsNamespaceSummary) SetName(v string) *RuleGroupsNamespaceSummary { s.Name = &v return s } // SetStatus sets the Status field's value. -func (s *PutRuleGroupsNamespaceOutput) SetStatus(v *RuleGroupsNamespaceStatus) *PutRuleGroupsNamespaceOutput { +func (s *RuleGroupsNamespaceSummary) SetStatus(v *RuleGroupsNamespaceStatus) *RuleGroupsNamespaceSummary { s.Status = v return s } // SetTags sets the Tags field's value. -func (s *PutRuleGroupsNamespaceOutput) SetTags(v map[string]*string) *PutRuleGroupsNamespaceOutput { +func (s *RuleGroupsNamespaceSummary) SetTags(v map[string]*string) *RuleGroupsNamespaceSummary { s.Tags = v return s } -// Request references a resource which does not exist. -type ResourceNotFoundException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - // Description of the error. - Message_ *string `locationName:"message" type:"string"` - - // Identifier of the resource affected. - // - // ResourceId is a required field - ResourceId *string `locationName:"resourceId" type:"string" required:"true"` +// A representation of a Prometheus configuration file. +type ScrapeConfiguration struct { + _ struct{} `type:"structure"` - // Type of the resource affected. - // - // ResourceType is a required field - ResourceType *string `locationName:"resourceType" type:"string" required:"true"` + // Binary data representing a Prometheus configuration file. + // ConfigurationBlob is automatically base64 encoded/decoded by the SDK. + ConfigurationBlob []byte `locationName:"configurationBlob" type:"blob"` } // String returns the string representation. @@ -4369,7 +5892,7 @@ type ResourceNotFoundException struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ResourceNotFoundException) String() string { +func (s ScrapeConfiguration) String() string { return awsutil.Prettify(s) } @@ -4378,84 +5901,73 @@ func (s ResourceNotFoundException) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ResourceNotFoundException) GoString() string { +func (s ScrapeConfiguration) GoString() string { return s.String() } -func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { - return &ResourceNotFoundException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ResourceNotFoundException) Code() string { - return "ResourceNotFoundException" -} - -// Message returns the exception's message. -func (s *ResourceNotFoundException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceNotFoundException) OrigErr() error { - return nil -} - -func (s *ResourceNotFoundException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ResourceNotFoundException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ResourceNotFoundException) RequestID() string { - return s.RespMetadata.RequestID +// SetConfigurationBlob sets the ConfigurationBlob field's value. +func (s *ScrapeConfiguration) SetConfigurationBlob(v []byte) *ScrapeConfiguration { + s.ConfigurationBlob = v + return s } -// Represents a description of the rule groups namespace. -type RuleGroupsNamespaceDescription struct { +// Represents the properties of a scraper. +type ScraperDescription struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of this rule groups namespace. + // Alias of this scraper. + Alias *string `locationName:"alias" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of this scraper. // // Arn is a required field Arn *string `locationName:"arn" type:"string" required:"true"` - // The time when the rule groups namespace was created. + // The time when the scraper was created. // // CreatedAt is a required field CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"` - // The rule groups namespace data. - // Data is automatically base64 encoded/decoded by the SDK. + // The destination that the scraper is producing metrics to. // - // Data is a required field - Data []byte `locationName:"data" type:"blob" required:"true"` + // Destination is a required field + Destination *Destination `locationName:"destination" type:"structure" required:"true"` - // The time when the rule groups namespace was modified. + // The time when the scraper was last modified. // - // ModifiedAt is a required field - ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp" required:"true"` + // LastModifiedAt is a required field + LastModifiedAt *time.Time `locationName:"lastModifiedAt" type:"timestamp" required:"true"` - // The rule groups namespace name. + // The Amazon Resource Name (ARN) of the IAM role that provides permissions + // for the scraper to dsicover, collect, and produce metrics on your behalf. // - // Name is a required field - Name *string `locationName:"name" min:"1" type:"string" required:"true"` + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` - // The status of rule groups namespace. + // The configuration used to create the scraper. + // + // ScrapeConfiguration is a required field + ScrapeConfiguration *ScrapeConfiguration `locationName:"scrapeConfiguration" type:"structure" required:"true"` + + // Unique string identifying this scraper. + // + // ScraperId is a required field + ScraperId *string `locationName:"scraperId" min:"1" type:"string" required:"true"` + + // The source that the scraper is discovering and collecting metrics from. + // + // Source is a required field + Source *Source `locationName:"source" type:"structure" required:"true"` + + // The status of this scraper. // // Status is a required field - Status *RuleGroupsNamespaceStatus `locationName:"status" type:"structure" required:"true"` + Status *ScraperStatus `locationName:"status" type:"structure" required:"true"` - // The tags of this rule groups namespace. + // The reason for failure if any. + StatusReason *string `locationName:"statusReason" min:"1" type:"string"` + + // The tags of this scraper. Tags map[string]*string `locationName:"tags" type:"map"` } @@ -4464,7 +5976,7 @@ type RuleGroupsNamespaceDescription struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RuleGroupsNamespaceDescription) String() string { +func (s ScraperDescription) String() string { return awsutil.Prettify(s) } @@ -4473,63 +5985,90 @@ func (s RuleGroupsNamespaceDescription) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RuleGroupsNamespaceDescription) GoString() string { +func (s ScraperDescription) GoString() string { return s.String() } +// SetAlias sets the Alias field's value. +func (s *ScraperDescription) SetAlias(v string) *ScraperDescription { + s.Alias = &v + return s +} + // SetArn sets the Arn field's value. -func (s *RuleGroupsNamespaceDescription) SetArn(v string) *RuleGroupsNamespaceDescription { +func (s *ScraperDescription) SetArn(v string) *ScraperDescription { s.Arn = &v return s } // SetCreatedAt sets the CreatedAt field's value. -func (s *RuleGroupsNamespaceDescription) SetCreatedAt(v time.Time) *RuleGroupsNamespaceDescription { +func (s *ScraperDescription) SetCreatedAt(v time.Time) *ScraperDescription { s.CreatedAt = &v return s } -// SetData sets the Data field's value. -func (s *RuleGroupsNamespaceDescription) SetData(v []byte) *RuleGroupsNamespaceDescription { - s.Data = v +// SetDestination sets the Destination field's value. +func (s *ScraperDescription) SetDestination(v *Destination) *ScraperDescription { + s.Destination = v return s } -// SetModifiedAt sets the ModifiedAt field's value. -func (s *RuleGroupsNamespaceDescription) SetModifiedAt(v time.Time) *RuleGroupsNamespaceDescription { - s.ModifiedAt = &v +// SetLastModifiedAt sets the LastModifiedAt field's value. +func (s *ScraperDescription) SetLastModifiedAt(v time.Time) *ScraperDescription { + s.LastModifiedAt = &v return s } -// SetName sets the Name field's value. -func (s *RuleGroupsNamespaceDescription) SetName(v string) *RuleGroupsNamespaceDescription { - s.Name = &v +// SetRoleArn sets the RoleArn field's value. +func (s *ScraperDescription) SetRoleArn(v string) *ScraperDescription { + s.RoleArn = &v + return s +} + +// SetScrapeConfiguration sets the ScrapeConfiguration field's value. +func (s *ScraperDescription) SetScrapeConfiguration(v *ScrapeConfiguration) *ScraperDescription { + s.ScrapeConfiguration = v + return s +} + +// SetScraperId sets the ScraperId field's value. +func (s *ScraperDescription) SetScraperId(v string) *ScraperDescription { + s.ScraperId = &v + return s +} + +// SetSource sets the Source field's value. +func (s *ScraperDescription) SetSource(v *Source) *ScraperDescription { + s.Source = v return s } // SetStatus sets the Status field's value. -func (s *RuleGroupsNamespaceDescription) SetStatus(v *RuleGroupsNamespaceStatus) *RuleGroupsNamespaceDescription { +func (s *ScraperDescription) SetStatus(v *ScraperStatus) *ScraperDescription { s.Status = v return s } +// SetStatusReason sets the StatusReason field's value. +func (s *ScraperDescription) SetStatusReason(v string) *ScraperDescription { + s.StatusReason = &v + return s +} + // SetTags sets the Tags field's value. -func (s *RuleGroupsNamespaceDescription) SetTags(v map[string]*string) *RuleGroupsNamespaceDescription { +func (s *ScraperDescription) SetTags(v map[string]*string) *ScraperDescription { s.Tags = v return s } -// Represents the status of a namespace. -type RuleGroupsNamespaceStatus struct { +// Represents the status of a scraper. +type ScraperStatus struct { _ struct{} `type:"structure"` - // Status code of this namespace. + // Status code of this scraper. // // StatusCode is a required field - StatusCode *string `locationName:"statusCode" type:"string" required:"true" enum:"RuleGroupsNamespaceStatusCode"` - - // The reason for failure if any. - StatusReason *string `locationName:"statusReason" type:"string"` + StatusCode *string `locationName:"statusCode" type:"string" required:"true" enum:"ScraperStatusCode"` } // String returns the string representation. @@ -4537,7 +6076,7 @@ type RuleGroupsNamespaceStatus struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RuleGroupsNamespaceStatus) String() string { +func (s ScraperStatus) String() string { return awsutil.Prettify(s) } @@ -4546,52 +6085,68 @@ func (s RuleGroupsNamespaceStatus) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RuleGroupsNamespaceStatus) GoString() string { +func (s ScraperStatus) GoString() string { return s.String() } // SetStatusCode sets the StatusCode field's value. -func (s *RuleGroupsNamespaceStatus) SetStatusCode(v string) *RuleGroupsNamespaceStatus { +func (s *ScraperStatus) SetStatusCode(v string) *ScraperStatus { s.StatusCode = &v return s } -// SetStatusReason sets the StatusReason field's value. -func (s *RuleGroupsNamespaceStatus) SetStatusReason(v string) *RuleGroupsNamespaceStatus { - s.StatusReason = &v - return s -} - -// Represents a summary of the rule groups namespace. -type RuleGroupsNamespaceSummary struct { +// Represents a summary of the properties of a scraper. +type ScraperSummary struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of this rule groups namespace. + // Alias of this scraper. + Alias *string `locationName:"alias" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of this scraper. // // Arn is a required field Arn *string `locationName:"arn" type:"string" required:"true"` - // The time when the rule groups namespace was created. + // The time when the scraper was created. // // CreatedAt is a required field CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"` - // The time when the rule groups namespace was modified. + // The destination that the scraper is producing metrics to. // - // ModifiedAt is a required field - ModifiedAt *time.Time `locationName:"modifiedAt" type:"timestamp" required:"true"` + // Destination is a required field + Destination *Destination `locationName:"destination" type:"structure" required:"true"` - // The rule groups namespace name. + // The time when the scraper was last modified. // - // Name is a required field - Name *string `locationName:"name" min:"1" type:"string" required:"true"` + // LastModifiedAt is a required field + LastModifiedAt *time.Time `locationName:"lastModifiedAt" type:"timestamp" required:"true"` - // The status of rule groups namespace. + // The Amazon Resource Name (ARN) of the IAM role that provides permissions + // for the scraper to dsicover, collect, and produce metrics on your behalf. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // Unique string identifying this scraper. + // + // ScraperId is a required field + ScraperId *string `locationName:"scraperId" min:"1" type:"string" required:"true"` + + // The source that the scraper is discovering and collecting metrics from. + // + // Source is a required field + Source *Source `locationName:"source" type:"structure" required:"true"` + + // The status of this scraper. // // Status is a required field - Status *RuleGroupsNamespaceStatus `locationName:"status" type:"structure" required:"true"` + Status *ScraperStatus `locationName:"status" type:"structure" required:"true"` - // The tags of this rule groups namespace. + // The reason for failure if any. + StatusReason *string `locationName:"statusReason" min:"1" type:"string"` + + // The tags of this scraper. Tags map[string]*string `locationName:"tags" type:"map"` } @@ -4600,7 +6155,7 @@ type RuleGroupsNamespaceSummary struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RuleGroupsNamespaceSummary) String() string { +func (s ScraperSummary) String() string { return awsutil.Prettify(s) } @@ -4609,42 +6164,72 @@ func (s RuleGroupsNamespaceSummary) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RuleGroupsNamespaceSummary) GoString() string { +func (s ScraperSummary) GoString() string { return s.String() } +// SetAlias sets the Alias field's value. +func (s *ScraperSummary) SetAlias(v string) *ScraperSummary { + s.Alias = &v + return s +} + // SetArn sets the Arn field's value. -func (s *RuleGroupsNamespaceSummary) SetArn(v string) *RuleGroupsNamespaceSummary { +func (s *ScraperSummary) SetArn(v string) *ScraperSummary { s.Arn = &v return s } // SetCreatedAt sets the CreatedAt field's value. -func (s *RuleGroupsNamespaceSummary) SetCreatedAt(v time.Time) *RuleGroupsNamespaceSummary { +func (s *ScraperSummary) SetCreatedAt(v time.Time) *ScraperSummary { s.CreatedAt = &v return s } -// SetModifiedAt sets the ModifiedAt field's value. -func (s *RuleGroupsNamespaceSummary) SetModifiedAt(v time.Time) *RuleGroupsNamespaceSummary { - s.ModifiedAt = &v +// SetDestination sets the Destination field's value. +func (s *ScraperSummary) SetDestination(v *Destination) *ScraperSummary { + s.Destination = v return s } -// SetName sets the Name field's value. -func (s *RuleGroupsNamespaceSummary) SetName(v string) *RuleGroupsNamespaceSummary { - s.Name = &v +// SetLastModifiedAt sets the LastModifiedAt field's value. +func (s *ScraperSummary) SetLastModifiedAt(v time.Time) *ScraperSummary { + s.LastModifiedAt = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *ScraperSummary) SetRoleArn(v string) *ScraperSummary { + s.RoleArn = &v + return s +} + +// SetScraperId sets the ScraperId field's value. +func (s *ScraperSummary) SetScraperId(v string) *ScraperSummary { + s.ScraperId = &v + return s +} + +// SetSource sets the Source field's value. +func (s *ScraperSummary) SetSource(v *Source) *ScraperSummary { + s.Source = v return s } // SetStatus sets the Status field's value. -func (s *RuleGroupsNamespaceSummary) SetStatus(v *RuleGroupsNamespaceStatus) *RuleGroupsNamespaceSummary { +func (s *ScraperSummary) SetStatus(v *ScraperStatus) *ScraperSummary { s.Status = v return s } +// SetStatusReason sets the StatusReason field's value. +func (s *ScraperSummary) SetStatusReason(v string) *ScraperSummary { + s.StatusReason = &v + return s +} + // SetTags sets the Tags field's value. -func (s *RuleGroupsNamespaceSummary) SetTags(v map[string]*string) *RuleGroupsNamespaceSummary { +func (s *ScraperSummary) SetTags(v map[string]*string) *ScraperSummary { s.Tags = v return s } @@ -4734,6 +6319,54 @@ func (s *ServiceQuotaExceededException) RequestID() string { return s.RespMetadata.RequestID } +// A representation of a source that a scraper can discover and collect metrics +// from. +type Source struct { + _ struct{} `type:"structure"` + + // A representation of an EKS source. + EksConfiguration *EksConfiguration `locationName:"eksConfiguration" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Source) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Source) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Source) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Source"} + if s.EksConfiguration != nil { + if err := s.EksConfiguration.Validate(); err != nil { + invalidParams.AddNested("EksConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEksConfiguration sets the EksConfiguration field's value. +func (s *Source) SetEksConfiguration(v *EksConfiguration) *Source { + s.EksConfiguration = v + return s +} + type TagResourceInput struct { _ struct{} `type:"structure"` @@ -5618,6 +7251,35 @@ func RuleGroupsNamespaceStatusCode_Values() []string { } } +// State of a scraper. +const ( + // ScraperStatusCodeCreating is a ScraperStatusCode enum value + ScraperStatusCodeCreating = "CREATING" + + // ScraperStatusCodeActive is a ScraperStatusCode enum value + ScraperStatusCodeActive = "ACTIVE" + + // ScraperStatusCodeDeleting is a ScraperStatusCode enum value + ScraperStatusCodeDeleting = "DELETING" + + // ScraperStatusCodeCreationFailed is a ScraperStatusCode enum value + ScraperStatusCodeCreationFailed = "CREATION_FAILED" + + // ScraperStatusCodeDeletionFailed is a ScraperStatusCode enum value + ScraperStatusCodeDeletionFailed = "DELETION_FAILED" +) + +// ScraperStatusCode_Values returns all elements of the ScraperStatusCode enum +func ScraperStatusCode_Values() []string { + return []string{ + ScraperStatusCodeCreating, + ScraperStatusCodeActive, + ScraperStatusCodeDeleting, + ScraperStatusCodeCreationFailed, + ScraperStatusCodeDeletionFailed, + } +} + // Possible reasons a request failed validation. const ( // ValidationExceptionReasonUnknownOperation is a ValidationExceptionReason enum value diff --git a/service/prometheusservice/prometheusserviceiface/interface.go b/service/prometheusservice/prometheusserviceiface/interface.go index bd77bca5233..d83274e63f0 100644 --- a/service/prometheusservice/prometheusserviceiface/interface.go +++ b/service/prometheusservice/prometheusserviceiface/interface.go @@ -72,6 +72,10 @@ type PrometheusServiceAPI interface { CreateRuleGroupsNamespaceWithContext(aws.Context, *prometheusservice.CreateRuleGroupsNamespaceInput, ...request.Option) (*prometheusservice.CreateRuleGroupsNamespaceOutput, error) CreateRuleGroupsNamespaceRequest(*prometheusservice.CreateRuleGroupsNamespaceInput) (*request.Request, *prometheusservice.CreateRuleGroupsNamespaceOutput) + CreateScraper(*prometheusservice.CreateScraperInput) (*prometheusservice.CreateScraperOutput, error) + CreateScraperWithContext(aws.Context, *prometheusservice.CreateScraperInput, ...request.Option) (*prometheusservice.CreateScraperOutput, error) + CreateScraperRequest(*prometheusservice.CreateScraperInput) (*request.Request, *prometheusservice.CreateScraperOutput) + CreateWorkspace(*prometheusservice.CreateWorkspaceInput) (*prometheusservice.CreateWorkspaceOutput, error) CreateWorkspaceWithContext(aws.Context, *prometheusservice.CreateWorkspaceInput, ...request.Option) (*prometheusservice.CreateWorkspaceOutput, error) CreateWorkspaceRequest(*prometheusservice.CreateWorkspaceInput) (*request.Request, *prometheusservice.CreateWorkspaceOutput) @@ -88,6 +92,10 @@ type PrometheusServiceAPI interface { DeleteRuleGroupsNamespaceWithContext(aws.Context, *prometheusservice.DeleteRuleGroupsNamespaceInput, ...request.Option) (*prometheusservice.DeleteRuleGroupsNamespaceOutput, error) DeleteRuleGroupsNamespaceRequest(*prometheusservice.DeleteRuleGroupsNamespaceInput) (*request.Request, *prometheusservice.DeleteRuleGroupsNamespaceOutput) + DeleteScraper(*prometheusservice.DeleteScraperInput) (*prometheusservice.DeleteScraperOutput, error) + DeleteScraperWithContext(aws.Context, *prometheusservice.DeleteScraperInput, ...request.Option) (*prometheusservice.DeleteScraperOutput, error) + DeleteScraperRequest(*prometheusservice.DeleteScraperInput) (*request.Request, *prometheusservice.DeleteScraperOutput) + DeleteWorkspace(*prometheusservice.DeleteWorkspaceInput) (*prometheusservice.DeleteWorkspaceOutput, error) DeleteWorkspaceWithContext(aws.Context, *prometheusservice.DeleteWorkspaceInput, ...request.Option) (*prometheusservice.DeleteWorkspaceOutput, error) DeleteWorkspaceRequest(*prometheusservice.DeleteWorkspaceInput) (*request.Request, *prometheusservice.DeleteWorkspaceOutput) @@ -104,10 +112,18 @@ type PrometheusServiceAPI interface { DescribeRuleGroupsNamespaceWithContext(aws.Context, *prometheusservice.DescribeRuleGroupsNamespaceInput, ...request.Option) (*prometheusservice.DescribeRuleGroupsNamespaceOutput, error) DescribeRuleGroupsNamespaceRequest(*prometheusservice.DescribeRuleGroupsNamespaceInput) (*request.Request, *prometheusservice.DescribeRuleGroupsNamespaceOutput) + DescribeScraper(*prometheusservice.DescribeScraperInput) (*prometheusservice.DescribeScraperOutput, error) + DescribeScraperWithContext(aws.Context, *prometheusservice.DescribeScraperInput, ...request.Option) (*prometheusservice.DescribeScraperOutput, error) + DescribeScraperRequest(*prometheusservice.DescribeScraperInput) (*request.Request, *prometheusservice.DescribeScraperOutput) + DescribeWorkspace(*prometheusservice.DescribeWorkspaceInput) (*prometheusservice.DescribeWorkspaceOutput, error) DescribeWorkspaceWithContext(aws.Context, *prometheusservice.DescribeWorkspaceInput, ...request.Option) (*prometheusservice.DescribeWorkspaceOutput, error) DescribeWorkspaceRequest(*prometheusservice.DescribeWorkspaceInput) (*request.Request, *prometheusservice.DescribeWorkspaceOutput) + GetDefaultScraperConfiguration(*prometheusservice.GetDefaultScraperConfigurationInput) (*prometheusservice.GetDefaultScraperConfigurationOutput, error) + GetDefaultScraperConfigurationWithContext(aws.Context, *prometheusservice.GetDefaultScraperConfigurationInput, ...request.Option) (*prometheusservice.GetDefaultScraperConfigurationOutput, error) + GetDefaultScraperConfigurationRequest(*prometheusservice.GetDefaultScraperConfigurationInput) (*request.Request, *prometheusservice.GetDefaultScraperConfigurationOutput) + ListRuleGroupsNamespaces(*prometheusservice.ListRuleGroupsNamespacesInput) (*prometheusservice.ListRuleGroupsNamespacesOutput, error) ListRuleGroupsNamespacesWithContext(aws.Context, *prometheusservice.ListRuleGroupsNamespacesInput, ...request.Option) (*prometheusservice.ListRuleGroupsNamespacesOutput, error) ListRuleGroupsNamespacesRequest(*prometheusservice.ListRuleGroupsNamespacesInput) (*request.Request, *prometheusservice.ListRuleGroupsNamespacesOutput) @@ -115,6 +131,13 @@ type PrometheusServiceAPI interface { ListRuleGroupsNamespacesPages(*prometheusservice.ListRuleGroupsNamespacesInput, func(*prometheusservice.ListRuleGroupsNamespacesOutput, bool) bool) error ListRuleGroupsNamespacesPagesWithContext(aws.Context, *prometheusservice.ListRuleGroupsNamespacesInput, func(*prometheusservice.ListRuleGroupsNamespacesOutput, bool) bool, ...request.Option) error + ListScrapers(*prometheusservice.ListScrapersInput) (*prometheusservice.ListScrapersOutput, error) + ListScrapersWithContext(aws.Context, *prometheusservice.ListScrapersInput, ...request.Option) (*prometheusservice.ListScrapersOutput, error) + ListScrapersRequest(*prometheusservice.ListScrapersInput) (*request.Request, *prometheusservice.ListScrapersOutput) + + ListScrapersPages(*prometheusservice.ListScrapersInput, func(*prometheusservice.ListScrapersOutput, bool) bool) error + ListScrapersPagesWithContext(aws.Context, *prometheusservice.ListScrapersInput, func(*prometheusservice.ListScrapersOutput, bool) bool, ...request.Option) error + ListTagsForResource(*prometheusservice.ListTagsForResourceInput) (*prometheusservice.ListTagsForResourceOutput, error) ListTagsForResourceWithContext(aws.Context, *prometheusservice.ListTagsForResourceInput, ...request.Option) (*prometheusservice.ListTagsForResourceOutput, error) ListTagsForResourceRequest(*prometheusservice.ListTagsForResourceInput) (*request.Request, *prometheusservice.ListTagsForResourceOutput) @@ -150,6 +173,12 @@ type PrometheusServiceAPI interface { UpdateWorkspaceAliasWithContext(aws.Context, *prometheusservice.UpdateWorkspaceAliasInput, ...request.Option) (*prometheusservice.UpdateWorkspaceAliasOutput, error) UpdateWorkspaceAliasRequest(*prometheusservice.UpdateWorkspaceAliasInput) (*request.Request, *prometheusservice.UpdateWorkspaceAliasOutput) + WaitUntilScraperActive(*prometheusservice.DescribeScraperInput) error + WaitUntilScraperActiveWithContext(aws.Context, *prometheusservice.DescribeScraperInput, ...request.WaiterOption) error + + WaitUntilScraperDeleted(*prometheusservice.DescribeScraperInput) error + WaitUntilScraperDeletedWithContext(aws.Context, *prometheusservice.DescribeScraperInput, ...request.WaiterOption) error + WaitUntilWorkspaceActive(*prometheusservice.DescribeWorkspaceInput) error WaitUntilWorkspaceActiveWithContext(aws.Context, *prometheusservice.DescribeWorkspaceInput, ...request.WaiterOption) error diff --git a/service/prometheusservice/waiters.go b/service/prometheusservice/waiters.go index 7e467c17160..f90c065b90c 100644 --- a/service/prometheusservice/waiters.go +++ b/service/prometheusservice/waiters.go @@ -9,6 +9,108 @@ import ( "github.com/aws/aws-sdk-go/aws/request" ) +// WaitUntilScraperActive uses the Amazon Prometheus Service API operation +// DescribeScraper to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +func (c *PrometheusService) WaitUntilScraperActive(input *DescribeScraperInput) error { + return c.WaitUntilScraperActiveWithContext(aws.BackgroundContext(), input) +} + +// WaitUntilScraperActiveWithContext is an extended version of WaitUntilScraperActive. +// With the support for passing in a context and options to configure the +// Waiter and the underlying request options. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *PrometheusService) WaitUntilScraperActiveWithContext(ctx aws.Context, input *DescribeScraperInput, opts ...request.WaiterOption) error { + w := request.Waiter{ + Name: "WaitUntilScraperActive", + MaxAttempts: 60, + Delay: request.ConstantWaiterDelay(2 * time.Second), + Acceptors: []request.WaiterAcceptor{ + { + State: request.SuccessWaiterState, + Matcher: request.PathWaiterMatch, Argument: "scraper.status.statusCode", + Expected: "ACTIVE", + }, + { + State: request.FailureWaiterState, + Matcher: request.PathWaiterMatch, Argument: "scraper.status.statusCode", + Expected: "CREATION_FAILED", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []request.Option) (*request.Request, error) { + var inCpy *DescribeScraperInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeScraperRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + w.ApplyOptions(opts...) + + return w.WaitWithContext(ctx) +} + +// WaitUntilScraperDeleted uses the Amazon Prometheus Service API operation +// DescribeScraper to wait for a condition to be met before returning. +// If the condition is not met within the max attempt window, an error will +// be returned. +func (c *PrometheusService) WaitUntilScraperDeleted(input *DescribeScraperInput) error { + return c.WaitUntilScraperDeletedWithContext(aws.BackgroundContext(), input) +} + +// WaitUntilScraperDeletedWithContext is an extended version of WaitUntilScraperDeleted. +// With the support for passing in a context and options to configure the +// Waiter and the underlying request options. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *PrometheusService) WaitUntilScraperDeletedWithContext(ctx aws.Context, input *DescribeScraperInput, opts ...request.WaiterOption) error { + w := request.Waiter{ + Name: "WaitUntilScraperDeleted", + MaxAttempts: 60, + Delay: request.ConstantWaiterDelay(2 * time.Second), + Acceptors: []request.WaiterAcceptor{ + { + State: request.SuccessWaiterState, + Matcher: request.ErrorWaiterMatch, + Expected: "ResourceNotFoundException", + }, + { + State: request.FailureWaiterState, + Matcher: request.PathWaiterMatch, Argument: "scraper.status.statusCode", + Expected: "DELETION_FAILED", + }, + }, + Logger: c.Config.Logger, + NewRequest: func(opts []request.Option) (*request.Request, error) { + var inCpy *DescribeScraperInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeScraperRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + w.ApplyOptions(opts...) + + return w.WaitWithContext(ctx) +} + // WaitUntilWorkspaceActive uses the Amazon Prometheus Service API operation // DescribeWorkspace to wait for a condition to be met before returning. // If the condition is not met within the max attempt window, an error will diff --git a/service/quicksight/api.go b/service/quicksight/api.go index 9a33c7c4d12..2028475d5da 100644 --- a/service/quicksight/api.go +++ b/service/quicksight/api.go @@ -3756,6 +3756,105 @@ func (c *QuickSight) DeleteIAMPolicyAssignmentWithContext(ctx aws.Context, input return out, req.Send() } +const opDeleteIdentityPropagationConfig = "DeleteIdentityPropagationConfig" + +// DeleteIdentityPropagationConfigRequest generates a "aws/request.Request" representing the +// client's request for the DeleteIdentityPropagationConfig 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 DeleteIdentityPropagationConfig for more information on using the DeleteIdentityPropagationConfig +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteIdentityPropagationConfigRequest method. +// req, resp := client.DeleteIdentityPropagationConfigRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/quicksight-2018-04-01/DeleteIdentityPropagationConfig +func (c *QuickSight) DeleteIdentityPropagationConfigRequest(input *DeleteIdentityPropagationConfigInput) (req *request.Request, output *DeleteIdentityPropagationConfigOutput) { + op := &request.Operation{ + Name: opDeleteIdentityPropagationConfig, + HTTPMethod: "DELETE", + HTTPPath: "/accounts/{AwsAccountId}/identity-propagation-config/{Service}", + } + + if input == nil { + input = &DeleteIdentityPropagationConfigInput{} + } + + output = &DeleteIdentityPropagationConfigOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteIdentityPropagationConfig API operation for Amazon QuickSight. +// +// Deletes all access scopes and authorized targets that are associated with +// a service from the Amazon QuickSight IAM Identity Center application. +// +// This operation is only supported for Amazon QuickSight accounts that use +// IAM Identity Center. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 QuickSight's +// API operation DeleteIdentityPropagationConfig for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You don't have access to this item. The provided credentials couldn't be +// validated. You might not be authorized to carry out the request. Make sure +// that your account is authorized to use the Amazon QuickSight service, that +// your policies have the correct permissions, and that you are using the correct +// credentials. +// +// - InvalidParameterValueException +// One or more parameters has a value that isn't valid. +// +// - ResourceNotFoundException +// One or more resources can't be found. +// +// - ThrottlingException +// Access is throttled. +// +// - InternalFailureException +// An internal failure occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/quicksight-2018-04-01/DeleteIdentityPropagationConfig +func (c *QuickSight) DeleteIdentityPropagationConfig(input *DeleteIdentityPropagationConfigInput) (*DeleteIdentityPropagationConfigOutput, error) { + req, out := c.DeleteIdentityPropagationConfigRequest(input) + return out, req.Send() +} + +// DeleteIdentityPropagationConfigWithContext is the same as DeleteIdentityPropagationConfig with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteIdentityPropagationConfig for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *QuickSight) DeleteIdentityPropagationConfigWithContext(ctx aws.Context, input *DeleteIdentityPropagationConfigInput, opts ...request.Option) (*DeleteIdentityPropagationConfigOutput, error) { + req, out := c.DeleteIdentityPropagationConfigRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteNamespace = "DeleteNamespace" // DeleteNamespaceRequest generates a "aws/request.Request" representing the @@ -12027,6 +12126,105 @@ func (c *QuickSight) ListIAMPolicyAssignmentsForUserPagesWithContext(ctx aws.Con return p.Err() } +const opListIdentityPropagationConfigs = "ListIdentityPropagationConfigs" + +// ListIdentityPropagationConfigsRequest generates a "aws/request.Request" representing the +// client's request for the ListIdentityPropagationConfigs 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 ListIdentityPropagationConfigs for more information on using the ListIdentityPropagationConfigs +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListIdentityPropagationConfigsRequest method. +// req, resp := client.ListIdentityPropagationConfigsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/quicksight-2018-04-01/ListIdentityPropagationConfigs +func (c *QuickSight) ListIdentityPropagationConfigsRequest(input *ListIdentityPropagationConfigsInput) (req *request.Request, output *ListIdentityPropagationConfigsOutput) { + op := &request.Operation{ + Name: opListIdentityPropagationConfigs, + HTTPMethod: "GET", + HTTPPath: "/accounts/{AwsAccountId}/identity-propagation-config", + } + + if input == nil { + input = &ListIdentityPropagationConfigsInput{} + } + + output = &ListIdentityPropagationConfigsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListIdentityPropagationConfigs API operation for Amazon QuickSight. +// +// Lists all services and authorized targets that the Amazon QuickSight IAM +// Identity Center application can access. +// +// This operation is only supported for Amazon QuickSight accounts that use +// IAM Identity Center. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 QuickSight's +// API operation ListIdentityPropagationConfigs for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You don't have access to this item. The provided credentials couldn't be +// validated. You might not be authorized to carry out the request. Make sure +// that your account is authorized to use the Amazon QuickSight service, that +// your policies have the correct permissions, and that you are using the correct +// credentials. +// +// - InvalidParameterValueException +// One or more parameters has a value that isn't valid. +// +// - ResourceNotFoundException +// One or more resources can't be found. +// +// - ThrottlingException +// Access is throttled. +// +// - InternalFailureException +// An internal failure occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/quicksight-2018-04-01/ListIdentityPropagationConfigs +func (c *QuickSight) ListIdentityPropagationConfigs(input *ListIdentityPropagationConfigsInput) (*ListIdentityPropagationConfigsOutput, error) { + req, out := c.ListIdentityPropagationConfigsRequest(input) + return out, req.Send() +} + +// ListIdentityPropagationConfigsWithContext is the same as ListIdentityPropagationConfigs with the addition of +// the ability to pass a context and additional request options. +// +// See ListIdentityPropagationConfigs for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *QuickSight) ListIdentityPropagationConfigsWithContext(ctx aws.Context, input *ListIdentityPropagationConfigsInput, opts ...request.Option) (*ListIdentityPropagationConfigsOutput, error) { + req, out := c.ListIdentityPropagationConfigsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListIngestions = "ListIngestions" // ListIngestionsRequest generates a "aws/request.Request" representing the @@ -17694,6 +17892,105 @@ func (c *QuickSight) UpdateIAMPolicyAssignmentWithContext(ctx aws.Context, input return out, req.Send() } +const opUpdateIdentityPropagationConfig = "UpdateIdentityPropagationConfig" + +// UpdateIdentityPropagationConfigRequest generates a "aws/request.Request" representing the +// client's request for the UpdateIdentityPropagationConfig 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 UpdateIdentityPropagationConfig for more information on using the UpdateIdentityPropagationConfig +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateIdentityPropagationConfigRequest method. +// req, resp := client.UpdateIdentityPropagationConfigRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/quicksight-2018-04-01/UpdateIdentityPropagationConfig +func (c *QuickSight) UpdateIdentityPropagationConfigRequest(input *UpdateIdentityPropagationConfigInput) (req *request.Request, output *UpdateIdentityPropagationConfigOutput) { + op := &request.Operation{ + Name: opUpdateIdentityPropagationConfig, + HTTPMethod: "POST", + HTTPPath: "/accounts/{AwsAccountId}/identity-propagation-config/{Service}", + } + + if input == nil { + input = &UpdateIdentityPropagationConfigInput{} + } + + output = &UpdateIdentityPropagationConfigOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateIdentityPropagationConfig API operation for Amazon QuickSight. +// +// Adds or updates services and authorized targets to configure what the Amazon +// QuickSight IAM Identity Center application can access. +// +// This operation is only supported for Amazon QuickSight accounts using IAM +// Identity Center +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 QuickSight's +// API operation UpdateIdentityPropagationConfig for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You don't have access to this item. The provided credentials couldn't be +// validated. You might not be authorized to carry out the request. Make sure +// that your account is authorized to use the Amazon QuickSight service, that +// your policies have the correct permissions, and that you are using the correct +// credentials. +// +// - InvalidParameterValueException +// One or more parameters has a value that isn't valid. +// +// - ResourceNotFoundException +// One or more resources can't be found. +// +// - ThrottlingException +// Access is throttled. +// +// - InternalFailureException +// An internal failure occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/quicksight-2018-04-01/UpdateIdentityPropagationConfig +func (c *QuickSight) UpdateIdentityPropagationConfig(input *UpdateIdentityPropagationConfigInput) (*UpdateIdentityPropagationConfigOutput, error) { + req, out := c.UpdateIdentityPropagationConfigRequest(input) + return out, req.Send() +} + +// UpdateIdentityPropagationConfigWithContext is the same as UpdateIdentityPropagationConfig with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateIdentityPropagationConfig for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *QuickSight) UpdateIdentityPropagationConfigWithContext(ctx aws.Context, input *UpdateIdentityPropagationConfigInput, opts ...request.Option) (*UpdateIdentityPropagationConfigOutput, error) { + req, out := c.UpdateIdentityPropagationConfigRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateIpRestriction = "UpdateIpRestriction" // UpdateIpRestrictionRequest generates a "aws/request.Request" representing the @@ -24791,6 +25088,48 @@ func (s *AuroraPostgreSqlParameters) SetPort(v int64) *AuroraPostgreSqlParameter return s } +// The authorized targets that are associated with a service. +type AuthorizedTargetsByService struct { + _ struct{} `type:"structure"` + + // Aist of authorized targets that are represented by IAM Identity Center application + // ARNs. + AuthorizedTargets []*string `type:"list"` + + // The name of the Amazon Web Services service. + Service *string `type:"string" enum:"ServiceType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AuthorizedTargetsByService) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AuthorizedTargetsByService) GoString() string { + return s.String() +} + +// SetAuthorizedTargets sets the AuthorizedTargets field's value. +func (s *AuthorizedTargetsByService) SetAuthorizedTargets(v []*string) *AuthorizedTargetsByService { + s.AuthorizedTargets = v + return s +} + +// SetService sets the Service field's value. +func (s *AuthorizedTargetsByService) SetService(v string) *AuthorizedTargetsByService { + s.Service = &v + return s +} + // The parameters for IoT Analytics. type AwsIotAnalyticsParameters struct { _ struct{} `type:"structure"` @@ -43900,6 +44239,114 @@ func (s *DeleteIAMPolicyAssignmentOutput) SetStatus(v int64) *DeleteIAMPolicyAss return s } +type DeleteIdentityPropagationConfigInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the Amazon Web Services account that you want to delete an identity + // propagation configuration from. + // + // AwsAccountId is a required field + AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` + + // The name of the Amazon Web Services service that you want to delete the associated + // access scopes and authorized targets from. + // + // Service is a required field + Service *string `location:"uri" locationName:"Service" type:"string" required:"true" enum:"ServiceType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteIdentityPropagationConfigInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteIdentityPropagationConfigInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteIdentityPropagationConfigInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteIdentityPropagationConfigInput"} + if s.AwsAccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AwsAccountId")) + } + if s.AwsAccountId != nil && len(*s.AwsAccountId) < 12 { + invalidParams.Add(request.NewErrParamMinLen("AwsAccountId", 12)) + } + if s.Service == nil { + invalidParams.Add(request.NewErrParamRequired("Service")) + } + if s.Service != nil && len(*s.Service) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Service", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAwsAccountId sets the AwsAccountId field's value. +func (s *DeleteIdentityPropagationConfigInput) SetAwsAccountId(v string) *DeleteIdentityPropagationConfigInput { + s.AwsAccountId = &v + return s +} + +// SetService sets the Service field's value. +func (s *DeleteIdentityPropagationConfigInput) SetService(v string) *DeleteIdentityPropagationConfigInput { + s.Service = &v + return s +} + +type DeleteIdentityPropagationConfigOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Web Services request ID for this operation. + RequestId *string `type:"string"` + + // The HTTP status of the request. + Status *int64 `location:"statusCode" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteIdentityPropagationConfigOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteIdentityPropagationConfigOutput) GoString() string { + return s.String() +} + +// SetRequestId sets the RequestId field's value. +func (s *DeleteIdentityPropagationConfigOutput) SetRequestId(v string) *DeleteIdentityPropagationConfigOutput { + s.RequestId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *DeleteIdentityPropagationConfigOutput) SetStatus(v int64) *DeleteIdentityPropagationConfigOutput { + s.Status = &v + return s +} + type DeleteNamespaceInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -61791,6 +62238,39 @@ func (s *IAMPolicyAssignmentSummary) SetAssignmentStatus(v string) *IAMPolicyAss return s } +// The parameters for an IAM Identity Center configuration. +type IdentityCenterConfiguration struct { + _ struct{} `type:"structure"` + + // A Boolean option that controls whether Trusted Identity Propagation should + // be used. + EnableIdentityPropagation *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IdentityCenterConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IdentityCenterConfiguration) GoString() string { + return s.String() +} + +// SetEnableIdentityPropagation sets the EnableIdentityPropagation field's value. +func (s *IdentityCenterConfiguration) SetEnableIdentityPropagation(v bool) *IdentityCenterConfiguration { + s.EnableIdentityPropagation = &v + return s +} + // The identity type specified isn't supported. Supported identity types include // IAM and QUICKSIGHT. type IdentityTypeNotSupportedException struct { @@ -67597,6 +68077,136 @@ func (s *ListIAMPolicyAssignmentsOutput) SetStatus(v int64) *ListIAMPolicyAssign return s } +type ListIdentityPropagationConfigsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the Amazon Web Services account that contain the identity propagation + // configurations of. + // + // AwsAccountId is a required field + AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` + + // The maximum number of results to be returned. + MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"` + + // The token for the next set of results, or null if there are no more results. + NextToken *string `location:"querystring" locationName:"next-token" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListIdentityPropagationConfigsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListIdentityPropagationConfigsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListIdentityPropagationConfigsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListIdentityPropagationConfigsInput"} + if s.AwsAccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AwsAccountId")) + } + if s.AwsAccountId != nil && len(*s.AwsAccountId) < 12 { + invalidParams.Add(request.NewErrParamMinLen("AwsAccountId", 12)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAwsAccountId sets the AwsAccountId field's value. +func (s *ListIdentityPropagationConfigsInput) SetAwsAccountId(v string) *ListIdentityPropagationConfigsInput { + s.AwsAccountId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListIdentityPropagationConfigsInput) SetMaxResults(v int64) *ListIdentityPropagationConfigsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListIdentityPropagationConfigsInput) SetNextToken(v string) *ListIdentityPropagationConfigsInput { + s.NextToken = &v + return s +} + +type ListIdentityPropagationConfigsOutput struct { + _ struct{} `type:"structure"` + + // The token for the next set of results, or null if there are no more results. + NextToken *string `type:"string"` + + // The Amazon Web Services request ID for this operation. + RequestId *string `type:"string"` + + // A list of services and their authorized targets that the Amazon QuickSight + // IAM Identity Center application can access. + Services []*AuthorizedTargetsByService `type:"list"` + + // The HTTP status of the request. + Status *int64 `location:"statusCode" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListIdentityPropagationConfigsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListIdentityPropagationConfigsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListIdentityPropagationConfigsOutput) SetNextToken(v string) *ListIdentityPropagationConfigsOutput { + s.NextToken = &v + return s +} + +// SetRequestId sets the RequestId field's value. +func (s *ListIdentityPropagationConfigsOutput) SetRequestId(v string) *ListIdentityPropagationConfigsOutput { + s.RequestId = &v + return s +} + +// SetServices sets the Services field's value. +func (s *ListIdentityPropagationConfigsOutput) SetServices(v []*AuthorizedTargetsByService) *ListIdentityPropagationConfigsOutput { + s.Services = v + return s +} + +// SetStatus sets the Status field's value. +func (s *ListIdentityPropagationConfigsOutput) SetStatus(v int64) *ListIdentityPropagationConfigsOutput { + s.Status = &v + return s +} + type ListIngestionsInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -78233,6 +78843,13 @@ type RedshiftParameters struct { // (https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DataSourceCredentials.html). IAMParameters *RedshiftIAMParameters `type:"structure"` + // An optional parameter that configures IAM Identity Center authentication + // to grant Amazon QuickSight access to your cluster. + // + // This parameter can only be specified if your Amazon QuickSight account is + // configured with IAM Identity Center. + IdentityCenterConfiguration *IdentityCenterConfiguration `type:"structure"` + // Port. This field can be blank if the ClusterId is provided. Port *int64 `type:"integer"` } @@ -78306,6 +78923,12 @@ func (s *RedshiftParameters) SetIAMParameters(v *RedshiftIAMParameters) *Redshif return s } +// SetIdentityCenterConfiguration sets the IdentityCenterConfiguration field's value. +func (s *RedshiftParameters) SetIdentityCenterConfiguration(v *IdentityCenterConfiguration) *RedshiftParameters { + s.IdentityCenterConfiguration = v + return s +} + // SetPort sets the Port field's value. func (s *RedshiftParameters) SetPort(v int64) *RedshiftParameters { s.Port = &v @@ -99232,6 +99855,124 @@ func (s *UpdateIAMPolicyAssignmentOutput) SetStatus(v int64) *UpdateIAMPolicyAss return s } +type UpdateIdentityPropagationConfigInput struct { + _ struct{} `type:"structure"` + + // Specifies a list of application ARNs that represent the authorized targets + // for a service. + AuthorizedTargets []*string `type:"list"` + + // The ID of the Amazon Web Services account that contains the identity propagation + // configuration that you want to update. + // + // AwsAccountId is a required field + AwsAccountId *string `location:"uri" locationName:"AwsAccountId" min:"12" type:"string" required:"true"` + + // The name of the Amazon Web Services service that contains the authorized + // targets that you want to add or update. + // + // Service is a required field + Service *string `location:"uri" locationName:"Service" type:"string" required:"true" enum:"ServiceType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateIdentityPropagationConfigInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateIdentityPropagationConfigInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateIdentityPropagationConfigInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateIdentityPropagationConfigInput"} + if s.AwsAccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AwsAccountId")) + } + if s.AwsAccountId != nil && len(*s.AwsAccountId) < 12 { + invalidParams.Add(request.NewErrParamMinLen("AwsAccountId", 12)) + } + if s.Service == nil { + invalidParams.Add(request.NewErrParamRequired("Service")) + } + if s.Service != nil && len(*s.Service) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Service", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAuthorizedTargets sets the AuthorizedTargets field's value. +func (s *UpdateIdentityPropagationConfigInput) SetAuthorizedTargets(v []*string) *UpdateIdentityPropagationConfigInput { + s.AuthorizedTargets = v + return s +} + +// SetAwsAccountId sets the AwsAccountId field's value. +func (s *UpdateIdentityPropagationConfigInput) SetAwsAccountId(v string) *UpdateIdentityPropagationConfigInput { + s.AwsAccountId = &v + return s +} + +// SetService sets the Service field's value. +func (s *UpdateIdentityPropagationConfigInput) SetService(v string) *UpdateIdentityPropagationConfigInput { + s.Service = &v + return s +} + +type UpdateIdentityPropagationConfigOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Web Services request ID for this operation. + RequestId *string `type:"string"` + + // The HTTP status of the request. + Status *int64 `location:"statusCode" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateIdentityPropagationConfigOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateIdentityPropagationConfigOutput) GoString() string { + return s.String() +} + +// SetRequestId sets the RequestId field's value. +func (s *UpdateIdentityPropagationConfigOutput) SetRequestId(v string) *UpdateIdentityPropagationConfigOutput { + s.RequestId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *UpdateIdentityPropagationConfigOutput) SetStatus(v int64) *UpdateIdentityPropagationConfigOutput { + s.Status = &v + return s +} + type UpdateIpRestrictionInput struct { _ struct{} `type:"structure"` @@ -108304,6 +109045,18 @@ func SelectedTooltipType_Values() []string { } } +const ( + // ServiceTypeRedshift is a ServiceType enum value + ServiceTypeRedshift = "REDSHIFT" +) + +// ServiceType_Values returns all elements of the ServiceType enum +func ServiceType_Values() []string { + return []string{ + ServiceTypeRedshift, + } +} + const ( // SharingModelAccount is a SharingModel enum value SharingModelAccount = "ACCOUNT" diff --git a/service/quicksight/quicksightiface/interface.go b/service/quicksight/quicksightiface/interface.go index 4e3b72c2318..862bdf2cbd7 100644 --- a/service/quicksight/quicksightiface/interface.go +++ b/service/quicksight/quicksightiface/interface.go @@ -200,6 +200,10 @@ type QuickSightAPI interface { DeleteIAMPolicyAssignmentWithContext(aws.Context, *quicksight.DeleteIAMPolicyAssignmentInput, ...request.Option) (*quicksight.DeleteIAMPolicyAssignmentOutput, error) DeleteIAMPolicyAssignmentRequest(*quicksight.DeleteIAMPolicyAssignmentInput) (*request.Request, *quicksight.DeleteIAMPolicyAssignmentOutput) + DeleteIdentityPropagationConfig(*quicksight.DeleteIdentityPropagationConfigInput) (*quicksight.DeleteIdentityPropagationConfigOutput, error) + DeleteIdentityPropagationConfigWithContext(aws.Context, *quicksight.DeleteIdentityPropagationConfigInput, ...request.Option) (*quicksight.DeleteIdentityPropagationConfigOutput, error) + DeleteIdentityPropagationConfigRequest(*quicksight.DeleteIdentityPropagationConfigInput) (*request.Request, *quicksight.DeleteIdentityPropagationConfigOutput) + DeleteNamespace(*quicksight.DeleteNamespaceInput) (*quicksight.DeleteNamespaceOutput, error) DeleteNamespaceWithContext(aws.Context, *quicksight.DeleteNamespaceInput, ...request.Option) (*quicksight.DeleteNamespaceOutput, error) DeleteNamespaceRequest(*quicksight.DeleteNamespaceInput) (*request.Request, *quicksight.DeleteNamespaceOutput) @@ -533,6 +537,10 @@ type QuickSightAPI interface { ListIAMPolicyAssignmentsForUserPages(*quicksight.ListIAMPolicyAssignmentsForUserInput, func(*quicksight.ListIAMPolicyAssignmentsForUserOutput, bool) bool) error ListIAMPolicyAssignmentsForUserPagesWithContext(aws.Context, *quicksight.ListIAMPolicyAssignmentsForUserInput, func(*quicksight.ListIAMPolicyAssignmentsForUserOutput, bool) bool, ...request.Option) error + ListIdentityPropagationConfigs(*quicksight.ListIdentityPropagationConfigsInput) (*quicksight.ListIdentityPropagationConfigsOutput, error) + ListIdentityPropagationConfigsWithContext(aws.Context, *quicksight.ListIdentityPropagationConfigsInput, ...request.Option) (*quicksight.ListIdentityPropagationConfigsOutput, error) + ListIdentityPropagationConfigsRequest(*quicksight.ListIdentityPropagationConfigsInput) (*request.Request, *quicksight.ListIdentityPropagationConfigsOutput) + ListIngestions(*quicksight.ListIngestionsInput) (*quicksight.ListIngestionsOutput, error) ListIngestionsWithContext(aws.Context, *quicksight.ListIngestionsInput, ...request.Option) (*quicksight.ListIngestionsOutput, error) ListIngestionsRequest(*quicksight.ListIngestionsInput) (*request.Request, *quicksight.ListIngestionsOutput) @@ -767,6 +775,10 @@ type QuickSightAPI interface { UpdateIAMPolicyAssignmentWithContext(aws.Context, *quicksight.UpdateIAMPolicyAssignmentInput, ...request.Option) (*quicksight.UpdateIAMPolicyAssignmentOutput, error) UpdateIAMPolicyAssignmentRequest(*quicksight.UpdateIAMPolicyAssignmentInput) (*request.Request, *quicksight.UpdateIAMPolicyAssignmentOutput) + UpdateIdentityPropagationConfig(*quicksight.UpdateIdentityPropagationConfigInput) (*quicksight.UpdateIdentityPropagationConfigOutput, error) + UpdateIdentityPropagationConfigWithContext(aws.Context, *quicksight.UpdateIdentityPropagationConfigInput, ...request.Option) (*quicksight.UpdateIdentityPropagationConfigOutput, error) + UpdateIdentityPropagationConfigRequest(*quicksight.UpdateIdentityPropagationConfigInput) (*request.Request, *quicksight.UpdateIdentityPropagationConfigOutput) + UpdateIpRestriction(*quicksight.UpdateIpRestrictionInput) (*quicksight.UpdateIpRestrictionOutput, error) UpdateIpRestrictionWithContext(aws.Context, *quicksight.UpdateIpRestrictionInput, ...request.Option) (*quicksight.UpdateIpRestrictionOutput, error) UpdateIpRestrictionRequest(*quicksight.UpdateIpRestrictionInput) (*request.Request, *quicksight.UpdateIpRestrictionOutput) diff --git a/service/redshift/api.go b/service/redshift/api.go index be2a92c5e56..55e7254f788 100644 --- a/service/redshift/api.go +++ b/service/redshift/api.go @@ -14679,6 +14679,9 @@ func (s *AquaConfiguration) SetAquaStatus(v string) *AquaConfiguration { type AssociateDataShareConsumerInput struct { _ struct{} `type:"structure"` + // If set to true, allows write operations for a datashare. + AllowWrites *bool `type:"boolean"` + // A value that specifies whether the datashare is associated with the entire // account. AssociateEntireAccount *bool `type:"boolean"` @@ -14729,6 +14732,12 @@ func (s *AssociateDataShareConsumerInput) Validate() error { return nil } +// SetAllowWrites sets the AllowWrites field's value. +func (s *AssociateDataShareConsumerInput) SetAllowWrites(v bool) *AssociateDataShareConsumerInput { + s.AllowWrites = &v + return s +} + // SetAssociateEntireAccount sets the AssociateEntireAccount field's value. func (s *AssociateDataShareConsumerInput) SetAssociateEntireAccount(v bool) *AssociateDataShareConsumerInput { s.AssociateEntireAccount = &v @@ -15061,6 +15070,9 @@ func (s *AuthorizeClusterSecurityGroupIngressOutput) SetClusterSecurityGroup(v * type AuthorizeDataShareInput struct { _ struct{} `type:"structure"` + // If set to true, allows write operations for a datashare. + AllowWrites *bool `type:"boolean"` + // The identifier of the data consumer that is authorized to access the datashare. // This identifier is an Amazon Web Services account ID or a keyword, such as // ADX. @@ -15109,6 +15121,12 @@ func (s *AuthorizeDataShareInput) Validate() error { return nil } +// SetAllowWrites sets the AllowWrites field's value. +func (s *AuthorizeDataShareInput) SetAllowWrites(v bool) *AuthorizeDataShareInput { + s.AllowWrites = &v + return s +} + // SetConsumerIdentifier sets the ConsumerIdentifier field's value. func (s *AuthorizeDataShareInput) SetConsumerIdentifier(v string) *AuthorizeDataShareInput { s.ConsumerIdentifier = &v @@ -20723,6 +20741,9 @@ func (s *DataShare) SetProducerArn(v string) *DataShare { type DataShareAssociation struct { _ struct{} `type:"structure"` + // Specifies whether write operations were allowed during data share association. + ConsumerAcceptedWrites *bool `type:"boolean"` + // The name of the consumer accounts that have an association with a producer // datashare. ConsumerIdentifier *string `type:"string"` @@ -20734,6 +20755,9 @@ type DataShareAssociation struct { // The creation date of the datashare that is associated. CreatedDate *time.Time `type:"timestamp"` + // Specifies whether write operations were allowed during data share authorization. + ProducerAllowedWrites *bool `type:"boolean"` + // The status of the datashare that is associated. Status *string `type:"string" enum:"DataShareStatus"` @@ -20759,6 +20783,12 @@ func (s DataShareAssociation) GoString() string { return s.String() } +// SetConsumerAcceptedWrites sets the ConsumerAcceptedWrites field's value. +func (s *DataShareAssociation) SetConsumerAcceptedWrites(v bool) *DataShareAssociation { + s.ConsumerAcceptedWrites = &v + return s +} + // SetConsumerIdentifier sets the ConsumerIdentifier field's value. func (s *DataShareAssociation) SetConsumerIdentifier(v string) *DataShareAssociation { s.ConsumerIdentifier = &v @@ -20777,6 +20807,12 @@ func (s *DataShareAssociation) SetCreatedDate(v time.Time) *DataShareAssociation return s } +// SetProducerAllowedWrites sets the ProducerAllowedWrites field's value. +func (s *DataShareAssociation) SetProducerAllowedWrites(v bool) *DataShareAssociation { + s.ProducerAllowedWrites = &v + return s +} + // SetStatus sets the Status field's value. func (s *DataShareAssociation) SetStatus(v string) *DataShareAssociation { s.Status = &v diff --git a/service/repostspace/api.go b/service/repostspace/api.go new file mode 100644 index 00000000000..e6168e91299 --- /dev/null +++ b/service/repostspace/api.go @@ -0,0 +1,3227 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package repostspace + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +const opCreateSpace = "CreateSpace" + +// CreateSpaceRequest generates a "aws/request.Request" representing the +// client's request for the CreateSpace 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 CreateSpace for more information on using the CreateSpace +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateSpaceRequest method. +// req, resp := client.CreateSpaceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/CreateSpace +func (c *Repostspace) CreateSpaceRequest(input *CreateSpaceInput) (req *request.Request, output *CreateSpaceOutput) { + op := &request.Operation{ + Name: opCreateSpace, + HTTPMethod: "POST", + HTTPPath: "/spaces", + } + + if input == nil { + input = &CreateSpaceInput{} + } + + output = &CreateSpaceOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateSpace API operation for AWS re:Post Private. +// +// Creates an AWS re:Post Private private re:Post. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 re:Post Private's +// API operation CreateSpace for usage and error information. +// +// Returned Error Types: +// +// - ServiceQuotaExceededException +// Request would cause a service quota to be exceeded. +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - ConflictException +// Updating or deleting a resource can cause an inconsistent state. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/CreateSpace +func (c *Repostspace) CreateSpace(input *CreateSpaceInput) (*CreateSpaceOutput, error) { + req, out := c.CreateSpaceRequest(input) + return out, req.Send() +} + +// CreateSpaceWithContext is the same as CreateSpace with the addition of +// the ability to pass a context and additional request options. +// +// See CreateSpace for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Repostspace) CreateSpaceWithContext(ctx aws.Context, input *CreateSpaceInput, opts ...request.Option) (*CreateSpaceOutput, error) { + req, out := c.CreateSpaceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteSpace = "DeleteSpace" + +// DeleteSpaceRequest generates a "aws/request.Request" representing the +// client's request for the DeleteSpace 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 DeleteSpace for more information on using the DeleteSpace +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteSpaceRequest method. +// req, resp := client.DeleteSpaceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/DeleteSpace +func (c *Repostspace) DeleteSpaceRequest(input *DeleteSpaceInput) (req *request.Request, output *DeleteSpaceOutput) { + op := &request.Operation{ + Name: opDeleteSpace, + HTTPMethod: "DELETE", + HTTPPath: "/spaces/{spaceId}", + } + + if input == nil { + input = &DeleteSpaceInput{} + } + + output = &DeleteSpaceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteSpace API operation for AWS re:Post Private. +// +// Deletes an AWS re:Post Private private re:Post. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 re:Post Private's +// API operation DeleteSpace for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/DeleteSpace +func (c *Repostspace) DeleteSpace(input *DeleteSpaceInput) (*DeleteSpaceOutput, error) { + req, out := c.DeleteSpaceRequest(input) + return out, req.Send() +} + +// DeleteSpaceWithContext is the same as DeleteSpace with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteSpace for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Repostspace) DeleteSpaceWithContext(ctx aws.Context, input *DeleteSpaceInput, opts ...request.Option) (*DeleteSpaceOutput, error) { + req, out := c.DeleteSpaceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeregisterAdmin = "DeregisterAdmin" + +// DeregisterAdminRequest generates a "aws/request.Request" representing the +// client's request for the DeregisterAdmin 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 DeregisterAdmin for more information on using the DeregisterAdmin +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeregisterAdminRequest method. +// req, resp := client.DeregisterAdminRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/DeregisterAdmin +func (c *Repostspace) DeregisterAdminRequest(input *DeregisterAdminInput) (req *request.Request, output *DeregisterAdminOutput) { + op := &request.Operation{ + Name: opDeregisterAdmin, + HTTPMethod: "DELETE", + HTTPPath: "/spaces/{spaceId}/admins/{adminId}", + } + + if input == nil { + input = &DeregisterAdminInput{} + } + + output = &DeregisterAdminOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeregisterAdmin API operation for AWS re:Post Private. +// +// Removes the user or group from the list of administrators of the private +// re:Post. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 re:Post Private's +// API operation DeregisterAdmin for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/DeregisterAdmin +func (c *Repostspace) DeregisterAdmin(input *DeregisterAdminInput) (*DeregisterAdminOutput, error) { + req, out := c.DeregisterAdminRequest(input) + return out, req.Send() +} + +// DeregisterAdminWithContext is the same as DeregisterAdmin with the addition of +// the ability to pass a context and additional request options. +// +// See DeregisterAdmin for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Repostspace) DeregisterAdminWithContext(ctx aws.Context, input *DeregisterAdminInput, opts ...request.Option) (*DeregisterAdminOutput, error) { + req, out := c.DeregisterAdminRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetSpace = "GetSpace" + +// GetSpaceRequest generates a "aws/request.Request" representing the +// client's request for the GetSpace 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 GetSpace for more information on using the GetSpace +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetSpaceRequest method. +// req, resp := client.GetSpaceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/GetSpace +func (c *Repostspace) GetSpaceRequest(input *GetSpaceInput) (req *request.Request, output *GetSpaceOutput) { + op := &request.Operation{ + Name: opGetSpace, + HTTPMethod: "GET", + HTTPPath: "/spaces/{spaceId}", + } + + if input == nil { + input = &GetSpaceInput{} + } + + output = &GetSpaceOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetSpace API operation for AWS re:Post Private. +// +// Displays information about the AWS re:Post Private private re:Post. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 re:Post Private's +// API operation GetSpace for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/GetSpace +func (c *Repostspace) GetSpace(input *GetSpaceInput) (*GetSpaceOutput, error) { + req, out := c.GetSpaceRequest(input) + return out, req.Send() +} + +// GetSpaceWithContext is the same as GetSpace with the addition of +// the ability to pass a context and additional request options. +// +// See GetSpace for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Repostspace) GetSpaceWithContext(ctx aws.Context, input *GetSpaceInput, opts ...request.Option) (*GetSpaceOutput, error) { + req, out := c.GetSpaceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListSpaces = "ListSpaces" + +// ListSpacesRequest generates a "aws/request.Request" representing the +// client's request for the ListSpaces 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 ListSpaces for more information on using the ListSpaces +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListSpacesRequest method. +// req, resp := client.ListSpacesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/ListSpaces +func (c *Repostspace) ListSpacesRequest(input *ListSpacesInput) (req *request.Request, output *ListSpacesOutput) { + op := &request.Operation{ + Name: opListSpaces, + HTTPMethod: "GET", + HTTPPath: "/spaces", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListSpacesInput{} + } + + output = &ListSpacesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListSpaces API operation for AWS re:Post Private. +// +// Returns a list of AWS re:Post Private private re:Posts in the account with +// some information about each private re:Post. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 re:Post Private's +// API operation ListSpaces for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/ListSpaces +func (c *Repostspace) ListSpaces(input *ListSpacesInput) (*ListSpacesOutput, error) { + req, out := c.ListSpacesRequest(input) + return out, req.Send() +} + +// ListSpacesWithContext is the same as ListSpaces with the addition of +// the ability to pass a context and additional request options. +// +// See ListSpaces for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Repostspace) ListSpacesWithContext(ctx aws.Context, input *ListSpacesInput, opts ...request.Option) (*ListSpacesOutput, error) { + req, out := c.ListSpacesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListSpacesPages iterates over the pages of a ListSpaces operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListSpaces 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 ListSpaces operation. +// pageNum := 0 +// err := client.ListSpacesPages(params, +// func(page *repostspace.ListSpacesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *Repostspace) ListSpacesPages(input *ListSpacesInput, fn func(*ListSpacesOutput, bool) bool) error { + return c.ListSpacesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListSpacesPagesWithContext same as ListSpacesPages 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 *Repostspace) ListSpacesPagesWithContext(ctx aws.Context, input *ListSpacesInput, fn func(*ListSpacesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListSpacesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListSpacesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListSpacesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/ListTagsForResource +func (c *Repostspace) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for AWS re:Post Private. +// +// Returns the tags that are associated with the AWS re:Post Private resource +// specified by the resourceArn. The only resource that can be tagged is a private +// re:Post. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 re:Post Private's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/ListTagsForResource +func (c *Repostspace) 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 *Repostspace) 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 opRegisterAdmin = "RegisterAdmin" + +// RegisterAdminRequest generates a "aws/request.Request" representing the +// client's request for the RegisterAdmin 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 RegisterAdmin for more information on using the RegisterAdmin +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the RegisterAdminRequest method. +// req, resp := client.RegisterAdminRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/RegisterAdmin +func (c *Repostspace) RegisterAdminRequest(input *RegisterAdminInput) (req *request.Request, output *RegisterAdminOutput) { + op := &request.Operation{ + Name: opRegisterAdmin, + HTTPMethod: "POST", + HTTPPath: "/spaces/{spaceId}/admins/{adminId}", + } + + if input == nil { + input = &RegisterAdminInput{} + } + + output = &RegisterAdminOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// RegisterAdmin API operation for AWS re:Post Private. +// +// Adds a user or group to the list of administrators of the private re:Post. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 re:Post Private's +// API operation RegisterAdmin for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/RegisterAdmin +func (c *Repostspace) RegisterAdmin(input *RegisterAdminInput) (*RegisterAdminOutput, error) { + req, out := c.RegisterAdminRequest(input) + return out, req.Send() +} + +// RegisterAdminWithContext is the same as RegisterAdmin with the addition of +// the ability to pass a context and additional request options. +// +// See RegisterAdmin for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Repostspace) RegisterAdminWithContext(ctx aws.Context, input *RegisterAdminInput, opts ...request.Option) (*RegisterAdminOutput, error) { + req, out := c.RegisterAdminRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opSendInvites = "SendInvites" + +// SendInvitesRequest generates a "aws/request.Request" representing the +// client's request for the SendInvites 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 SendInvites for more information on using the SendInvites +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the SendInvitesRequest method. +// req, resp := client.SendInvitesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/SendInvites +func (c *Repostspace) SendInvitesRequest(input *SendInvitesInput) (req *request.Request, output *SendInvitesOutput) { + op := &request.Operation{ + Name: opSendInvites, + HTTPMethod: "POST", + HTTPPath: "/spaces/{spaceId}/invite", + } + + if input == nil { + input = &SendInvitesInput{} + } + + output = &SendInvitesOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// SendInvites API operation for AWS re:Post Private. +// +// Sends an invitation email to selected users and groups. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 re:Post Private's +// API operation SendInvites for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/SendInvites +func (c *Repostspace) SendInvites(input *SendInvitesInput) (*SendInvitesOutput, error) { + req, out := c.SendInvitesRequest(input) + return out, req.Send() +} + +// SendInvitesWithContext is the same as SendInvites with the addition of +// the ability to pass a context and additional request options. +// +// See SendInvites for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Repostspace) SendInvitesWithContext(ctx aws.Context, input *SendInvitesInput, opts ...request.Option) (*SendInvitesOutput, error) { + req, out := c.SendInvitesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/TagResource +func (c *Repostspace) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// TagResource API operation for AWS re:Post Private. +// +// Associates tags with an AWS re:Post Private resource. Currently, the only +// resource that can be tagged is the private re:Post. If you specify a new +// tag key for the resource, the tag is appended to the list of tags that are +// associated with the resource. If you specify a tag key that’s already associated +// with the resource, the new tag value that you specify replaces the previous +// value for that tag. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 re:Post Private's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/TagResource +func (c *Repostspace) 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 *Repostspace) 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/repostspace-2022-05-13/UntagResource +func (c *Repostspace) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UntagResource API operation for AWS re:Post Private. +// +// Removes the association of the tag with the AWS re:Post Private 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 re:Post Private's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/UntagResource +func (c *Repostspace) 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 *Repostspace) 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 opUpdateSpace = "UpdateSpace" + +// UpdateSpaceRequest generates a "aws/request.Request" representing the +// client's request for the UpdateSpace 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 UpdateSpace for more information on using the UpdateSpace +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateSpaceRequest method. +// req, resp := client.UpdateSpaceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/UpdateSpace +func (c *Repostspace) UpdateSpaceRequest(input *UpdateSpaceInput) (req *request.Request, output *UpdateSpaceOutput) { + op := &request.Operation{ + Name: opUpdateSpace, + HTTPMethod: "PUT", + HTTPPath: "/spaces/{spaceId}", + } + + if input == nil { + input = &UpdateSpaceInput{} + } + + output = &UpdateSpaceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateSpace API operation for AWS re:Post Private. +// +// Modifies an existing AWS re:Post Private private re:Post. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 re:Post Private's +// API operation UpdateSpace for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// User does not have sufficient access to perform this action. +// +// - ConflictException +// Updating or deleting a resource can cause an inconsistent state. +// +// - ValidationException +// The input fails to satisfy the constraints specified by an AWS service. +// +// - ResourceNotFoundException +// Request references a resource which does not exist. +// +// - ThrottlingException +// Request was denied due to request throttling. +// +// - InternalServerException +// Unexpected error during processing of request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13/UpdateSpace +func (c *Repostspace) UpdateSpace(input *UpdateSpaceInput) (*UpdateSpaceOutput, error) { + req, out := c.UpdateSpaceRequest(input) + return out, req.Send() +} + +// UpdateSpaceWithContext is the same as UpdateSpace with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateSpace for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Repostspace) UpdateSpaceWithContext(ctx aws.Context, input *UpdateSpaceInput, opts ...request.Option) (*UpdateSpaceOutput, error) { + req, out := c.UpdateSpaceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// User does not have sufficient access to perform this action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Updating or deleting a resource can cause an inconsistent state. +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The ID of the resource. + // + // ResourceId is a required field + ResourceId *string `locationName:"resourceId" type:"string" required:"true"` + + // The type of the resource. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConflictException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConflictException) GoString() string { + return s.String() +} + +func newErrorConflictException(v protocol.ResponseMetadata) error { + return &ConflictException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConflictException) Code() string { + return "ConflictException" +} + +// Message returns the exception's message. +func (s *ConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConflictException) OrigErr() error { + return nil +} + +func (s *ConflictException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConflictException) RequestID() string { + return s.RespMetadata.RequestID +} + +type CreateSpaceInput struct { + _ struct{} `type:"structure"` + + // A description for the private re:Post. This is used only to help you identify + // this private re:Post. + // + // Description is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateSpaceInput's + // String and GoString methods. + Description *string `locationName:"description" min:"1" type:"string" sensitive:"true"` + + // The name for the private re:Post. This must be unique in your account. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateSpaceInput's + // String and GoString methods. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"` + + // The IAM role that grants permissions to the private re:Post to convert unanswered + // questions into AWS support tickets. + RoleArn *string `locationName:"roleArn" min:"20" type:"string"` + + // The subdomain that you use to access your AWS re:Post Private private re:Post. + // All custom subdomains must be approved by AWS before use. In addition to + // your custom subdomain, all private re:Posts are issued an AWS generated subdomain + // for immediate use. + // + // Subdomain is a required field + Subdomain *string `locationName:"subdomain" min:"1" type:"string" required:"true"` + + // The list of tags associated with the private re:Post. + // + // Tags is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateSpaceInput's + // String and GoString methods. + Tags map[string]*string `locationName:"tags" type:"map" sensitive:"true"` + + // The pricing tier for the private re:Post. + // + // Tier is a required field + Tier *string `locationName:"tier" type:"string" required:"true" enum:"TierLevel"` + + // The AWS KMS key ARN that’s used for the AWS KMS encryption. If you don't + // provide a key, your data is encrypted by default with a key that AWS owns + // and manages for you. + UserKMSKey *string `locationName:"userKMSKey" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateSpaceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateSpaceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateSpaceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateSpaceInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) + } + if s.Subdomain == nil { + invalidParams.Add(request.NewErrParamRequired("Subdomain")) + } + if s.Subdomain != nil && len(*s.Subdomain) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Subdomain", 1)) + } + if s.Tier == nil { + invalidParams.Add(request.NewErrParamRequired("Tier")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *CreateSpaceInput) SetDescription(v string) *CreateSpaceInput { + s.Description = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateSpaceInput) SetName(v string) *CreateSpaceInput { + s.Name = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *CreateSpaceInput) SetRoleArn(v string) *CreateSpaceInput { + s.RoleArn = &v + return s +} + +// SetSubdomain sets the Subdomain field's value. +func (s *CreateSpaceInput) SetSubdomain(v string) *CreateSpaceInput { + s.Subdomain = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateSpaceInput) SetTags(v map[string]*string) *CreateSpaceInput { + s.Tags = v + return s +} + +// SetTier sets the Tier field's value. +func (s *CreateSpaceInput) SetTier(v string) *CreateSpaceInput { + s.Tier = &v + return s +} + +// SetUserKMSKey sets the UserKMSKey field's value. +func (s *CreateSpaceInput) SetUserKMSKey(v string) *CreateSpaceInput { + s.UserKMSKey = &v + return s +} + +type CreateSpaceOutput struct { + _ struct{} `type:"structure"` + + // The unique ID of the private re:Post. + // + // SpaceId is a required field + SpaceId *string `locationName:"spaceId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateSpaceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateSpaceOutput) GoString() string { + return s.String() +} + +// SetSpaceId sets the SpaceId field's value. +func (s *CreateSpaceOutput) SetSpaceId(v string) *CreateSpaceOutput { + s.SpaceId = &v + return s +} + +type DeleteSpaceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The unique ID of the private re:Post. + // + // SpaceId is a required field + SpaceId *string `location:"uri" locationName:"spaceId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSpaceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSpaceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteSpaceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteSpaceInput"} + if s.SpaceId == nil { + invalidParams.Add(request.NewErrParamRequired("SpaceId")) + } + if s.SpaceId != nil && len(*s.SpaceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SpaceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSpaceId sets the SpaceId field's value. +func (s *DeleteSpaceInput) SetSpaceId(v string) *DeleteSpaceInput { + s.SpaceId = &v + return s +} + +type DeleteSpaceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSpaceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteSpaceOutput) GoString() string { + return s.String() +} + +type DeregisterAdminInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the admin to remove. + // + // AdminId is a required field + AdminId *string `location:"uri" locationName:"adminId" type:"string" required:"true"` + + // The ID of the private re:Post to remove the admin from. + // + // SpaceId is a required field + SpaceId *string `location:"uri" locationName:"spaceId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeregisterAdminInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeregisterAdminInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeregisterAdminInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeregisterAdminInput"} + if s.AdminId == nil { + invalidParams.Add(request.NewErrParamRequired("AdminId")) + } + if s.AdminId != nil && len(*s.AdminId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AdminId", 1)) + } + if s.SpaceId == nil { + invalidParams.Add(request.NewErrParamRequired("SpaceId")) + } + if s.SpaceId != nil && len(*s.SpaceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SpaceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAdminId sets the AdminId field's value. +func (s *DeregisterAdminInput) SetAdminId(v string) *DeregisterAdminInput { + s.AdminId = &v + return s +} + +// SetSpaceId sets the SpaceId field's value. +func (s *DeregisterAdminInput) SetSpaceId(v string) *DeregisterAdminInput { + s.SpaceId = &v + return s +} + +type DeregisterAdminOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeregisterAdminOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeregisterAdminOutput) GoString() string { + return s.String() +} + +type GetSpaceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the private re:Post. + // + // SpaceId is a required field + SpaceId *string `location:"uri" locationName:"spaceId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSpaceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSpaceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSpaceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetSpaceInput"} + if s.SpaceId == nil { + invalidParams.Add(request.NewErrParamRequired("SpaceId")) + } + if s.SpaceId != nil && len(*s.SpaceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SpaceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSpaceId sets the SpaceId field's value. +func (s *GetSpaceInput) SetSpaceId(v string) *GetSpaceInput { + s.SpaceId = &v + return s +} + +type GetSpaceOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the private re:Post. + // + // Arn is a required field + Arn *string `locationName:"arn" min:"20" type:"string" required:"true"` + + // The Identity Center identifier for the Application Instance. + // + // ClientId is a required field + ClientId *string `locationName:"clientId" type:"string" required:"true"` + + // The configuration status of the private re:Post. + // + // ConfigurationStatus is a required field + ConfigurationStatus *string `locationName:"configurationStatus" type:"string" required:"true" enum:"ConfigurationStatus"` + + // The content size of the private re:Post. + ContentSize *int64 `locationName:"contentSize" type:"long"` + + // The date when the private re:Post was created. + // + // CreateDateTime is a required field + CreateDateTime *time.Time `locationName:"createDateTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The IAM role that grants permissions to the private re:Post to convert unanswered + // questions into AWS support tickets. + CustomerRoleArn *string `locationName:"customerRoleArn" min:"20" type:"string"` + + // The date when the private re:Post was deleted. + DeleteDateTime *time.Time `locationName:"deleteDateTime" type:"timestamp" timestampFormat:"iso8601"` + + // The description of the private re:Post. + // + // Description is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetSpaceOutput's + // String and GoString methods. + Description *string `locationName:"description" min:"1" type:"string" sensitive:"true"` + + // The list of groups that are administrators of the private re:Post. + GroupAdmins []*string `locationName:"groupAdmins" type:"list"` + + // The name of the private re:Post. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetSpaceOutput's + // String and GoString methods. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"` + + // The AWS generated subdomain of the private re:Post + // + // RandomDomain is a required field + RandomDomain *string `locationName:"randomDomain" type:"string" required:"true"` + + // The unique ID of the private re:Post. + // + // SpaceId is a required field + SpaceId *string `locationName:"spaceId" type:"string" required:"true"` + + // The creation or deletion status of the private re:Post. + // + // Status is a required field + Status *string `locationName:"status" min:"1" type:"string" required:"true"` + + // The storage limit of the private re:Post. + // + // StorageLimit is a required field + StorageLimit *int64 `locationName:"storageLimit" type:"long" required:"true"` + + // The pricing tier of the private re:Post. + // + // Tier is a required field + Tier *string `locationName:"tier" type:"string" required:"true" enum:"TierLevel"` + + // The list of users that are administrators of the private re:Post. + UserAdmins []*string `locationName:"userAdmins" type:"list"` + + // The number of users that have onboarded to the private re:Post. + UserCount *int64 `locationName:"userCount" type:"integer"` + + // The custom AWS KMS key ARN that’s used for the AWS KMS encryption. + UserKMSKey *string `locationName:"userKMSKey" type:"string"` + + // The custom subdomain that you use to access your private re:Post. All custom + // subdomains must be approved by AWS before use. + // + // VanityDomain is a required field + VanityDomain *string `locationName:"vanityDomain" type:"string" required:"true"` + + // The approval status of the custom subdomain. + // + // VanityDomainStatus is a required field + VanityDomainStatus *string `locationName:"vanityDomainStatus" type:"string" required:"true" enum:"VanityDomainStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSpaceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSpaceOutput) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *GetSpaceOutput) SetArn(v string) *GetSpaceOutput { + s.Arn = &v + return s +} + +// SetClientId sets the ClientId field's value. +func (s *GetSpaceOutput) SetClientId(v string) *GetSpaceOutput { + s.ClientId = &v + return s +} + +// SetConfigurationStatus sets the ConfigurationStatus field's value. +func (s *GetSpaceOutput) SetConfigurationStatus(v string) *GetSpaceOutput { + s.ConfigurationStatus = &v + return s +} + +// SetContentSize sets the ContentSize field's value. +func (s *GetSpaceOutput) SetContentSize(v int64) *GetSpaceOutput { + s.ContentSize = &v + return s +} + +// SetCreateDateTime sets the CreateDateTime field's value. +func (s *GetSpaceOutput) SetCreateDateTime(v time.Time) *GetSpaceOutput { + s.CreateDateTime = &v + return s +} + +// SetCustomerRoleArn sets the CustomerRoleArn field's value. +func (s *GetSpaceOutput) SetCustomerRoleArn(v string) *GetSpaceOutput { + s.CustomerRoleArn = &v + return s +} + +// SetDeleteDateTime sets the DeleteDateTime field's value. +func (s *GetSpaceOutput) SetDeleteDateTime(v time.Time) *GetSpaceOutput { + s.DeleteDateTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *GetSpaceOutput) SetDescription(v string) *GetSpaceOutput { + s.Description = &v + return s +} + +// SetGroupAdmins sets the GroupAdmins field's value. +func (s *GetSpaceOutput) SetGroupAdmins(v []*string) *GetSpaceOutput { + s.GroupAdmins = v + return s +} + +// SetName sets the Name field's value. +func (s *GetSpaceOutput) SetName(v string) *GetSpaceOutput { + s.Name = &v + return s +} + +// SetRandomDomain sets the RandomDomain field's value. +func (s *GetSpaceOutput) SetRandomDomain(v string) *GetSpaceOutput { + s.RandomDomain = &v + return s +} + +// SetSpaceId sets the SpaceId field's value. +func (s *GetSpaceOutput) SetSpaceId(v string) *GetSpaceOutput { + s.SpaceId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GetSpaceOutput) SetStatus(v string) *GetSpaceOutput { + s.Status = &v + return s +} + +// SetStorageLimit sets the StorageLimit field's value. +func (s *GetSpaceOutput) SetStorageLimit(v int64) *GetSpaceOutput { + s.StorageLimit = &v + return s +} + +// SetTier sets the Tier field's value. +func (s *GetSpaceOutput) SetTier(v string) *GetSpaceOutput { + s.Tier = &v + return s +} + +// SetUserAdmins sets the UserAdmins field's value. +func (s *GetSpaceOutput) SetUserAdmins(v []*string) *GetSpaceOutput { + s.UserAdmins = v + return s +} + +// SetUserCount sets the UserCount field's value. +func (s *GetSpaceOutput) SetUserCount(v int64) *GetSpaceOutput { + s.UserCount = &v + return s +} + +// SetUserKMSKey sets the UserKMSKey field's value. +func (s *GetSpaceOutput) SetUserKMSKey(v string) *GetSpaceOutput { + s.UserKMSKey = &v + return s +} + +// SetVanityDomain sets the VanityDomain field's value. +func (s *GetSpaceOutput) SetVanityDomain(v string) *GetSpaceOutput { + s.VanityDomain = &v + return s +} + +// SetVanityDomainStatus sets the VanityDomainStatus field's value. +func (s *GetSpaceOutput) SetVanityDomainStatus(v string) *GetSpaceOutput { + s.VanityDomainStatus = &v + return s +} + +// Unexpected error during processing of request. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // Advice to clients on when the call can be safely retried. + RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +type ListSpacesInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The maximum number of private re:Posts to include in the results. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next set of private re:Posts to return. You receive this + // token from a previous ListSpaces operation. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSpacesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSpacesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListSpacesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListSpacesInput"} + 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 *ListSpacesInput) SetMaxResults(v int64) *ListSpacesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListSpacesInput) SetNextToken(v string) *ListSpacesInput { + s.NextToken = &v + return s +} + +type ListSpacesOutput struct { + _ struct{} `type:"structure"` + + // The token that you use when you request the next set of private re:Posts. + NextToken *string `locationName:"nextToken" type:"string"` + + // An array of structures that contain some information about the private re:Posts + // in the account. + // + // Spaces is a required field + Spaces []*SpaceData `locationName:"spaces" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSpacesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSpacesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListSpacesOutput) SetNextToken(v string) *ListSpacesOutput { + s.NextToken = &v + return s +} + +// SetSpaces sets the Spaces field's value. +func (s *ListSpacesOutput) SetSpaces(v []*SpaceData) *ListSpacesOutput { + s.Spaces = v + return s +} + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN of the resource that the tags are associated with. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The list of tags that are associated with the resource. + // + // Tags is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ListTagsForResourceOutput's + // String and GoString methods. + Tags map[string]*string `locationName:"tags" type:"map" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +type RegisterAdminInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the administrator. + // + // AdminId is a required field + AdminId *string `location:"uri" locationName:"adminId" type:"string" required:"true"` + + // The ID of the private re:Post. + // + // SpaceId is a required field + SpaceId *string `location:"uri" locationName:"spaceId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterAdminInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterAdminInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RegisterAdminInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RegisterAdminInput"} + if s.AdminId == nil { + invalidParams.Add(request.NewErrParamRequired("AdminId")) + } + if s.AdminId != nil && len(*s.AdminId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AdminId", 1)) + } + if s.SpaceId == nil { + invalidParams.Add(request.NewErrParamRequired("SpaceId")) + } + if s.SpaceId != nil && len(*s.SpaceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SpaceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAdminId sets the AdminId field's value. +func (s *RegisterAdminInput) SetAdminId(v string) *RegisterAdminInput { + s.AdminId = &v + return s +} + +// SetSpaceId sets the SpaceId field's value. +func (s *RegisterAdminInput) SetSpaceId(v string) *RegisterAdminInput { + s.SpaceId = &v + return s +} + +type RegisterAdminOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterAdminOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterAdminOutput) GoString() string { + return s.String() +} + +// Request references a resource which does not exist. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The ID of the resource. + // + // ResourceId is a required field + ResourceId *string `locationName:"resourceId" type:"string" required:"true"` + + // The type of the resource. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +type SendInvitesInput struct { + _ struct{} `type:"structure"` + + // The array of identifiers for the users and groups. + // + // AccessorIds is a required field + AccessorIds []*string `locationName:"accessorIds" type:"list" required:"true"` + + // The body of the invite. + // + // Body is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by SendInvitesInput's + // String and GoString methods. + // + // Body is a required field + Body *string `locationName:"body" min:"1" type:"string" required:"true" sensitive:"true"` + + // The ID of the private re:Post. + // + // SpaceId is a required field + SpaceId *string `location:"uri" locationName:"spaceId" type:"string" required:"true"` + + // The title of the invite. + // + // Title is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by SendInvitesInput's + // String and GoString methods. + // + // Title is a required field + Title *string `locationName:"title" min:"1" type:"string" required:"true" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SendInvitesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SendInvitesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SendInvitesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SendInvitesInput"} + if s.AccessorIds == nil { + invalidParams.Add(request.NewErrParamRequired("AccessorIds")) + } + if s.Body == nil { + invalidParams.Add(request.NewErrParamRequired("Body")) + } + if s.Body != nil && len(*s.Body) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Body", 1)) + } + if s.SpaceId == nil { + invalidParams.Add(request.NewErrParamRequired("SpaceId")) + } + if s.SpaceId != nil && len(*s.SpaceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SpaceId", 1)) + } + if s.Title == nil { + invalidParams.Add(request.NewErrParamRequired("Title")) + } + if s.Title != nil && len(*s.Title) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Title", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessorIds sets the AccessorIds field's value. +func (s *SendInvitesInput) SetAccessorIds(v []*string) *SendInvitesInput { + s.AccessorIds = v + return s +} + +// SetBody sets the Body field's value. +func (s *SendInvitesInput) SetBody(v string) *SendInvitesInput { + s.Body = &v + return s +} + +// SetSpaceId sets the SpaceId field's value. +func (s *SendInvitesInput) SetSpaceId(v string) *SendInvitesInput { + s.SpaceId = &v + return s +} + +// SetTitle sets the Title field's value. +func (s *SendInvitesInput) SetTitle(v string) *SendInvitesInput { + s.Title = &v + return s +} + +type SendInvitesOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SendInvitesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SendInvitesOutput) GoString() string { + return s.String() +} + +// Request would cause a service quota to be exceeded. +type ServiceQuotaExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The code to identify the quota. + // + // QuotaCode is a required field + QuotaCode *string `locationName:"quotaCode" type:"string" required:"true"` + + // The id of the resource. + // + // ResourceId is a required field + ResourceId *string `locationName:"resourceId" type:"string" required:"true"` + + // The type of the resource. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" type:"string" required:"true"` + + // The code to identify the service. + // + // ServiceCode is a required field + ServiceCode *string `locationName:"serviceCode" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceQuotaExceededException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceQuotaExceededException) GoString() string { + return s.String() +} + +func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error { + return &ServiceQuotaExceededException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ServiceQuotaExceededException) Code() string { + return "ServiceQuotaExceededException" +} + +// Message returns the exception's message. +func (s *ServiceQuotaExceededException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceQuotaExceededException) OrigErr() error { + return nil +} + +func (s *ServiceQuotaExceededException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceQuotaExceededException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServiceQuotaExceededException) RequestID() string { + return s.RespMetadata.RequestID +} + +// A structure that contains some information about a private re:Post in the +// account. +type SpaceData struct { + _ struct{} `type:"structure"` + + // The ARN of the private re:Post. + // + // Arn is a required field + Arn *string `locationName:"arn" min:"20" type:"string" required:"true"` + + // The configuration status of the private re:Post. + // + // ConfigurationStatus is a required field + ConfigurationStatus *string `locationName:"configurationStatus" type:"string" required:"true" enum:"ConfigurationStatus"` + + // The content size of the private re:Post. + ContentSize *int64 `locationName:"contentSize" type:"long"` + + // The date when the private re:Post was created. + // + // CreateDateTime is a required field + CreateDateTime *time.Time `locationName:"createDateTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The date when the private re:Post was deleted. + DeleteDateTime *time.Time `locationName:"deleteDateTime" type:"timestamp" timestampFormat:"iso8601"` + + // The description for the private re:Post. This is used only to help you identify + // this private re:Post. + // + // Description is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by SpaceData's + // String and GoString methods. + Description *string `locationName:"description" min:"1" type:"string" sensitive:"true"` + + // The name for the private re:Post. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by SpaceData's + // String and GoString methods. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"` + + // The AWS generated subdomain of the private re:Post. + // + // RandomDomain is a required field + RandomDomain *string `locationName:"randomDomain" type:"string" required:"true"` + + // The unique ID of the private re:Post. + // + // SpaceId is a required field + SpaceId *string `locationName:"spaceId" type:"string" required:"true"` + + // The creation/deletion status of the private re:Post. + // + // Status is a required field + Status *string `locationName:"status" min:"1" type:"string" required:"true"` + + // The storage limit of the private re:Post. + // + // StorageLimit is a required field + StorageLimit *int64 `locationName:"storageLimit" type:"long" required:"true"` + + // The pricing tier of the private re:Post. + // + // Tier is a required field + Tier *string `locationName:"tier" type:"string" required:"true" enum:"TierLevel"` + + // The number of onboarded users to the private re:Post. + UserCount *int64 `locationName:"userCount" type:"integer"` + + // The custom AWS KMS key ARN that’s used for the AWS KMS encryption. + UserKMSKey *string `locationName:"userKMSKey" type:"string"` + + // This custom subdomain that you use to access your private re:Post. All custom + // subdomains must be approved by AWS before use. + // + // VanityDomain is a required field + VanityDomain *string `locationName:"vanityDomain" type:"string" required:"true"` + + // This approval status of the custom subdomain. + // + // VanityDomainStatus is a required field + VanityDomainStatus *string `locationName:"vanityDomainStatus" type:"string" required:"true" enum:"VanityDomainStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SpaceData) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SpaceData) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *SpaceData) SetArn(v string) *SpaceData { + s.Arn = &v + return s +} + +// SetConfigurationStatus sets the ConfigurationStatus field's value. +func (s *SpaceData) SetConfigurationStatus(v string) *SpaceData { + s.ConfigurationStatus = &v + return s +} + +// SetContentSize sets the ContentSize field's value. +func (s *SpaceData) SetContentSize(v int64) *SpaceData { + s.ContentSize = &v + return s +} + +// SetCreateDateTime sets the CreateDateTime field's value. +func (s *SpaceData) SetCreateDateTime(v time.Time) *SpaceData { + s.CreateDateTime = &v + return s +} + +// SetDeleteDateTime sets the DeleteDateTime field's value. +func (s *SpaceData) SetDeleteDateTime(v time.Time) *SpaceData { + s.DeleteDateTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *SpaceData) SetDescription(v string) *SpaceData { + s.Description = &v + return s +} + +// SetName sets the Name field's value. +func (s *SpaceData) SetName(v string) *SpaceData { + s.Name = &v + return s +} + +// SetRandomDomain sets the RandomDomain field's value. +func (s *SpaceData) SetRandomDomain(v string) *SpaceData { + s.RandomDomain = &v + return s +} + +// SetSpaceId sets the SpaceId field's value. +func (s *SpaceData) SetSpaceId(v string) *SpaceData { + s.SpaceId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *SpaceData) SetStatus(v string) *SpaceData { + s.Status = &v + return s +} + +// SetStorageLimit sets the StorageLimit field's value. +func (s *SpaceData) SetStorageLimit(v int64) *SpaceData { + s.StorageLimit = &v + return s +} + +// SetTier sets the Tier field's value. +func (s *SpaceData) SetTier(v string) *SpaceData { + s.Tier = &v + return s +} + +// SetUserCount sets the UserCount field's value. +func (s *SpaceData) SetUserCount(v int64) *SpaceData { + s.UserCount = &v + return s +} + +// SetUserKMSKey sets the UserKMSKey field's value. +func (s *SpaceData) SetUserKMSKey(v string) *SpaceData { + s.UserKMSKey = &v + return s +} + +// SetVanityDomain sets the VanityDomain field's value. +func (s *SpaceData) SetVanityDomain(v string) *SpaceData { + s.VanityDomain = &v + return s +} + +// SetVanityDomainStatus sets the VanityDomainStatus field's value. +func (s *SpaceData) SetVanityDomainStatus(v string) *SpaceData { + s.VanityDomainStatus = &v + return s +} + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The ARN of the resource that the tag is associated with. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` + + // The list of tag keys and values that must be associated with the resource. + // You can associate tag keys only, tags (key and values) only, or a combination + // of tag keys and tags. + // + // Tags is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by TagResourceInput's + // String and GoString methods. + // + // Tags is a required field + Tags map[string]*string `locationName:"tags" type:"map" required:"true" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { + s.Tags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) GoString() string { + return s.String() +} + +// Request was denied due to request throttling. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The code to identify the quota. + QuotaCode *string `locationName:"quotaCode" type:"string"` + + // Advice to clients on when the call can be safely retried. + RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"` + + // The code to identify the service. + ServiceCode *string `locationName:"serviceCode" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +type UntagResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN of the resource. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` + + // The key values of the tag. + // + // TagKeys is a required field + TagKeys []*string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) + } + if s.TagKeys != nil && len(s.TagKeys) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTagKeys sets the TagKeys field's value. +func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { + s.TagKeys = v + return s +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) GoString() string { + return s.String() +} + +type UpdateSpaceInput struct { + _ struct{} `type:"structure"` + + // A description for the private re:Post. This is used only to help you identify + // this private re:Post. + // + // Description is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateSpaceInput's + // String and GoString methods. + Description *string `locationName:"description" min:"1" type:"string" sensitive:"true"` + + // The IAM role that grants permissions to the private re:Post to convert unanswered + // questions into AWS support tickets. + RoleArn *string `locationName:"roleArn" min:"20" type:"string"` + + // The unique ID of this private re:Post. + // + // SpaceId is a required field + SpaceId *string `location:"uri" locationName:"spaceId" type:"string" required:"true"` + + // The pricing tier of this private re:Post. + Tier *string `locationName:"tier" type:"string" enum:"TierLevel"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSpaceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSpaceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateSpaceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateSpaceInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) + } + if s.SpaceId == nil { + invalidParams.Add(request.NewErrParamRequired("SpaceId")) + } + if s.SpaceId != nil && len(*s.SpaceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SpaceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *UpdateSpaceInput) SetDescription(v string) *UpdateSpaceInput { + s.Description = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *UpdateSpaceInput) SetRoleArn(v string) *UpdateSpaceInput { + s.RoleArn = &v + return s +} + +// SetSpaceId sets the SpaceId field's value. +func (s *UpdateSpaceInput) SetSpaceId(v string) *UpdateSpaceInput { + s.SpaceId = &v + return s +} + +// SetTier sets the Tier field's value. +func (s *UpdateSpaceInput) SetTier(v string) *UpdateSpaceInput { + s.Tier = &v + return s +} + +type UpdateSpaceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSpaceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSpaceOutput) GoString() string { + return s.String() +} + +// The input fails to satisfy the constraints specified by an AWS service. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // The field that caused the error, if applicable. + FieldList []*ValidationExceptionField `locationName:"fieldList" type:"list"` + + Message_ *string `locationName:"message" type:"string"` + + // The reason why the request failed validation. + // + // Reason is a required field + Reason *string `locationName:"reason" type:"string" required:"true" enum:"ValidationExceptionReason"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) GoString() string { + return s.String() +} + +func newErrorValidationException(v protocol.ResponseMetadata) error { + return &ValidationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ValidationException) Code() string { + return "ValidationException" +} + +// Message returns the exception's message. +func (s *ValidationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ValidationException) OrigErr() error { + return nil +} + +func (s *ValidationException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ValidationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ValidationException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Stores information about a field that’s passed inside a request that resulted +// in an exception. +type ValidationExceptionField struct { + _ struct{} `type:"structure"` + + // The name of the field. + // + // Message is a required field + Message *string `locationName:"message" type:"string" required:"true"` + + // Message describing why the field failed validation. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationExceptionField) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationExceptionField) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *ValidationExceptionField) SetMessage(v string) *ValidationExceptionField { + s.Message = &v + return s +} + +// SetName sets the Name field's value. +func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField { + s.Name = &v + return s +} + +const ( + // ConfigurationStatusConfigured is a ConfigurationStatus enum value + ConfigurationStatusConfigured = "CONFIGURED" + + // ConfigurationStatusUnconfigured is a ConfigurationStatus enum value + ConfigurationStatusUnconfigured = "UNCONFIGURED" +) + +// ConfigurationStatus_Values returns all elements of the ConfigurationStatus enum +func ConfigurationStatus_Values() []string { + return []string{ + ConfigurationStatusConfigured, + ConfigurationStatusUnconfigured, + } +} + +const ( + // TierLevelBasic is a TierLevel enum value + TierLevelBasic = "BASIC" + + // TierLevelStandard is a TierLevel enum value + TierLevelStandard = "STANDARD" +) + +// TierLevel_Values returns all elements of the TierLevel enum +func TierLevel_Values() []string { + return []string{ + TierLevelBasic, + TierLevelStandard, + } +} + +const ( + // ValidationExceptionReasonUnknownOperation is a ValidationExceptionReason enum value + ValidationExceptionReasonUnknownOperation = "unknownOperation" + + // ValidationExceptionReasonCannotParse is a ValidationExceptionReason enum value + ValidationExceptionReasonCannotParse = "cannotParse" + + // ValidationExceptionReasonFieldValidationFailed is a ValidationExceptionReason enum value + ValidationExceptionReasonFieldValidationFailed = "fieldValidationFailed" + + // ValidationExceptionReasonOther is a ValidationExceptionReason enum value + ValidationExceptionReasonOther = "other" +) + +// ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum +func ValidationExceptionReason_Values() []string { + return []string{ + ValidationExceptionReasonUnknownOperation, + ValidationExceptionReasonCannotParse, + ValidationExceptionReasonFieldValidationFailed, + ValidationExceptionReasonOther, + } +} + +const ( + // VanityDomainStatusPending is a VanityDomainStatus enum value + VanityDomainStatusPending = "PENDING" + + // VanityDomainStatusApproved is a VanityDomainStatus enum value + VanityDomainStatusApproved = "APPROVED" + + // VanityDomainStatusUnapproved is a VanityDomainStatus enum value + VanityDomainStatusUnapproved = "UNAPPROVED" +) + +// VanityDomainStatus_Values returns all elements of the VanityDomainStatus enum +func VanityDomainStatus_Values() []string { + return []string{ + VanityDomainStatusPending, + VanityDomainStatusApproved, + VanityDomainStatusUnapproved, + } +} diff --git a/service/repostspace/doc.go b/service/repostspace/doc.go new file mode 100644 index 00000000000..7f6b84b8a76 --- /dev/null +++ b/service/repostspace/doc.go @@ -0,0 +1,37 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package repostspace provides the client and types for making API +// requests to AWS re:Post Private. +// +// AWS re:Post Private is a private version of AWS re:Post for enterprises with +// Enterprise Support or Enterprise On-Ramp Support plans. It provides access +// to knowledge and experts to accelerate cloud adoption and increase developer +// productivity. With your organization-specific private re:Post, you can build +// an organization-specific developer community that drives efficiencies at +// scale and provides access to valuable knowledge resources. Additionally, +// re:Post Private centralizes trusted AWS technical content and offers private +// discussion forums to improve how your teams collaborate internally and with +// AWS to remove technical obstacles, accelerate innovation, and scale more +// efficiently in the cloud. +// +// See https://docs.aws.amazon.com/goto/WebAPI/repostspace-2022-05-13 for more information on this service. +// +// See repostspace package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/repostspace/ +// +// # Using the Client +// +// To contact AWS re:Post Private with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AWS re:Post Private client Repostspace for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/repostspace/#New +package repostspace diff --git a/service/repostspace/errors.go b/service/repostspace/errors.go new file mode 100644 index 00000000000..031a83c11ea --- /dev/null +++ b/service/repostspace/errors.go @@ -0,0 +1,62 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package repostspace + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // User does not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // Updating or deleting a resource can cause an inconsistent state. + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // Unexpected error during processing of request. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // Request references a resource which does not exist. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // Request would cause a service quota to be exceeded. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // Request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input fails to satisfy the constraints specified by an AWS service. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "ConflictException": newErrorConflictException, + "InternalServerException": newErrorInternalServerException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "ThrottlingException": newErrorThrottlingException, + "ValidationException": newErrorValidationException, +} diff --git a/service/repostspace/repostspaceiface/interface.go b/service/repostspace/repostspaceiface/interface.go new file mode 100644 index 00000000000..432ab962d33 --- /dev/null +++ b/service/repostspace/repostspaceiface/interface.go @@ -0,0 +1,111 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package repostspaceiface provides an interface to enable mocking the AWS re:Post Private service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package repostspaceiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/repostspace" +) + +// RepostspaceAPI provides an interface to enable mocking the +// repostspace.Repostspace service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // AWS re:Post Private. +// func myFunc(svc repostspaceiface.RepostspaceAPI) bool { +// // Make svc.CreateSpace request +// } +// +// func main() { +// sess := session.New() +// svc := repostspace.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockRepostspaceClient struct { +// repostspaceiface.RepostspaceAPI +// } +// func (m *mockRepostspaceClient) CreateSpace(input *repostspace.CreateSpaceInput) (*repostspace.CreateSpaceOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockRepostspaceClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type RepostspaceAPI interface { + CreateSpace(*repostspace.CreateSpaceInput) (*repostspace.CreateSpaceOutput, error) + CreateSpaceWithContext(aws.Context, *repostspace.CreateSpaceInput, ...request.Option) (*repostspace.CreateSpaceOutput, error) + CreateSpaceRequest(*repostspace.CreateSpaceInput) (*request.Request, *repostspace.CreateSpaceOutput) + + DeleteSpace(*repostspace.DeleteSpaceInput) (*repostspace.DeleteSpaceOutput, error) + DeleteSpaceWithContext(aws.Context, *repostspace.DeleteSpaceInput, ...request.Option) (*repostspace.DeleteSpaceOutput, error) + DeleteSpaceRequest(*repostspace.DeleteSpaceInput) (*request.Request, *repostspace.DeleteSpaceOutput) + + DeregisterAdmin(*repostspace.DeregisterAdminInput) (*repostspace.DeregisterAdminOutput, error) + DeregisterAdminWithContext(aws.Context, *repostspace.DeregisterAdminInput, ...request.Option) (*repostspace.DeregisterAdminOutput, error) + DeregisterAdminRequest(*repostspace.DeregisterAdminInput) (*request.Request, *repostspace.DeregisterAdminOutput) + + GetSpace(*repostspace.GetSpaceInput) (*repostspace.GetSpaceOutput, error) + GetSpaceWithContext(aws.Context, *repostspace.GetSpaceInput, ...request.Option) (*repostspace.GetSpaceOutput, error) + GetSpaceRequest(*repostspace.GetSpaceInput) (*request.Request, *repostspace.GetSpaceOutput) + + ListSpaces(*repostspace.ListSpacesInput) (*repostspace.ListSpacesOutput, error) + ListSpacesWithContext(aws.Context, *repostspace.ListSpacesInput, ...request.Option) (*repostspace.ListSpacesOutput, error) + ListSpacesRequest(*repostspace.ListSpacesInput) (*request.Request, *repostspace.ListSpacesOutput) + + ListSpacesPages(*repostspace.ListSpacesInput, func(*repostspace.ListSpacesOutput, bool) bool) error + ListSpacesPagesWithContext(aws.Context, *repostspace.ListSpacesInput, func(*repostspace.ListSpacesOutput, bool) bool, ...request.Option) error + + ListTagsForResource(*repostspace.ListTagsForResourceInput) (*repostspace.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *repostspace.ListTagsForResourceInput, ...request.Option) (*repostspace.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*repostspace.ListTagsForResourceInput) (*request.Request, *repostspace.ListTagsForResourceOutput) + + RegisterAdmin(*repostspace.RegisterAdminInput) (*repostspace.RegisterAdminOutput, error) + RegisterAdminWithContext(aws.Context, *repostspace.RegisterAdminInput, ...request.Option) (*repostspace.RegisterAdminOutput, error) + RegisterAdminRequest(*repostspace.RegisterAdminInput) (*request.Request, *repostspace.RegisterAdminOutput) + + SendInvites(*repostspace.SendInvitesInput) (*repostspace.SendInvitesOutput, error) + SendInvitesWithContext(aws.Context, *repostspace.SendInvitesInput, ...request.Option) (*repostspace.SendInvitesOutput, error) + SendInvitesRequest(*repostspace.SendInvitesInput) (*request.Request, *repostspace.SendInvitesOutput) + + TagResource(*repostspace.TagResourceInput) (*repostspace.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *repostspace.TagResourceInput, ...request.Option) (*repostspace.TagResourceOutput, error) + TagResourceRequest(*repostspace.TagResourceInput) (*request.Request, *repostspace.TagResourceOutput) + + UntagResource(*repostspace.UntagResourceInput) (*repostspace.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *repostspace.UntagResourceInput, ...request.Option) (*repostspace.UntagResourceOutput, error) + UntagResourceRequest(*repostspace.UntagResourceInput) (*request.Request, *repostspace.UntagResourceOutput) + + UpdateSpace(*repostspace.UpdateSpaceInput) (*repostspace.UpdateSpaceOutput, error) + UpdateSpaceWithContext(aws.Context, *repostspace.UpdateSpaceInput, ...request.Option) (*repostspace.UpdateSpaceOutput, error) + UpdateSpaceRequest(*repostspace.UpdateSpaceInput) (*request.Request, *repostspace.UpdateSpaceOutput) +} + +var _ RepostspaceAPI = (*repostspace.Repostspace)(nil) diff --git a/service/repostspace/service.go b/service/repostspace/service.go new file mode 100644 index 00000000000..5e1671a2ef9 --- /dev/null +++ b/service/repostspace/service.go @@ -0,0 +1,106 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package repostspace + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// Repostspace provides the API operation methods for making requests to +// AWS re:Post Private. See this package's package overview docs +// for details on the service. +// +// Repostspace methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Repostspace struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "repostspace" // Name of service. + EndpointsID = ServiceName // ID to lookup a service endpoint with. + ServiceID = "repostspace" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the Repostspace client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a Repostspace client from just a session. +// svc := repostspace.New(mySession) +// +// // Create a Repostspace client with additional configuration +// svc := repostspace.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *Repostspace { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "repostspace" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *Repostspace { + svc := &Repostspace{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2022-05-13", + ResolvedRegion: resolvedRegion, + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a Repostspace operation and runs any +// custom request initialization. +func (c *Repostspace) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/s3/api.go b/service/s3/api.go index f8927a3c469..d2107e62a1a 100644 --- a/service/s3/api.go +++ b/service/s3/api.go @@ -9973,8 +9973,8 @@ func (c *S3) PutObjectLockConfigurationRequest(input *PutObjectLockConfiguration // - The DefaultRetention period can be either Days or Years but you must // select one. You cannot specify Days and Years at the same time. // -// - You can only enable Object Lock for new buckets. If you want to turn -// on Object Lock for an existing bucket, contact Amazon Web Services Support. +// - You can enable Object Lock for new or existing buckets. For more information, +// see Configuring Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.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 diff --git a/service/s3/examples_test.go b/service/s3/examples_test.go index 3c50a79dce4..c8a871cdaa0 100644 --- a/service/s3/examples_test.go +++ b/service/s3/examples_test.go @@ -125,12 +125,16 @@ func ExampleS3_CopyObject_shared00() { fmt.Println(result) } -// To create a bucket -// The following example creates a bucket. +// To create a bucket in a specific region +// The following example creates a bucket. The request specifies an AWS region where +// to create the bucket. func ExampleS3_CreateBucket_shared00() { svc := s3.New(session.New()) input := &s3.CreateBucketInput{ Bucket: aws.String("examplebucket"), + CreateBucketConfiguration: &s3.CreateBucketConfiguration{ + LocationConstraint: aws.String("eu-west-1"), + }, } result, err := svc.CreateBucket(input) @@ -155,16 +159,12 @@ func ExampleS3_CreateBucket_shared00() { fmt.Println(result) } -// To create a bucket in a specific region -// The following example creates a bucket. The request specifies an AWS region where -// to create the bucket. +// To create a bucket +// The following example creates a bucket. func ExampleS3_CreateBucket_shared01() { svc := s3.New(session.New()) input := &s3.CreateBucketInput{ Bucket: aws.String("examplebucket"), - CreateBucketConfiguration: &s3.CreateBucketConfiguration{ - LocationConstraint: aws.String("eu-west-1"), - }, } result, err := svc.CreateBucket(input) @@ -452,15 +452,15 @@ func ExampleS3_DeleteObject_shared01() { fmt.Println(result) } -// To remove tag set from an object version -// The following example removes tag set associated with the specified object version. -// The request specifies both the object key and object version. +// To remove tag set from an object +// The following example removes tag set associated with the specified object. If the +// bucket is versioning enabled, the operation removes tag set from the latest object +// version. func ExampleS3_DeleteObjectTagging_shared00() { svc := s3.New(session.New()) input := &s3.DeleteObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.DeleteObjectTagging(input) @@ -481,15 +481,15 @@ func ExampleS3_DeleteObjectTagging_shared00() { fmt.Println(result) } -// To remove tag set from an object -// The following example removes tag set associated with the specified object. If the -// bucket is versioning enabled, the operation removes tag set from the latest object -// version. +// To remove tag set from an object version +// The following example removes tag set associated with the specified object version. +// The request specifies both the object key and object version. func ExampleS3_DeleteObjectTagging_shared01() { svc := s3.New(session.New()) input := &s3.DeleteObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), } result, err := svc.DeleteObjectTagging(input) @@ -510,10 +510,10 @@ func ExampleS3_DeleteObjectTagging_shared01() { fmt.Println(result) } -// To delete multiple objects from a versioned bucket -// The following example deletes objects from a bucket. The bucket is versioned, and -// the request does not specify the object version to delete. In this case, all versions -// remain in the bucket and S3 adds a delete marker. +// To delete multiple object versions from a versioned bucket +// The following example deletes objects from a bucket. The request specifies object +// versions. S3 deletes specific object versions and returns the key and versions of +// deleted objects in the response. func ExampleS3_DeleteObjects_shared00() { svc := s3.New(session.New()) input := &s3.DeleteObjectsInput{ @@ -521,10 +521,12 @@ func ExampleS3_DeleteObjects_shared00() { Delete: &s3.Delete{ Objects: []*s3.ObjectIdentifier{ { - Key: aws.String("objectkey1"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"), }, { - Key: aws.String("objectkey2"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"), }, }, Quiet: aws.Bool(false), @@ -549,10 +551,10 @@ func ExampleS3_DeleteObjects_shared00() { fmt.Println(result) } -// To delete multiple object versions from a versioned bucket -// The following example deletes objects from a bucket. The request specifies object -// versions. S3 deletes specific object versions and returns the key and versions of -// deleted objects in the response. +// To delete multiple objects from a versioned bucket +// The following example deletes objects from a bucket. The bucket is versioned, and +// the request does not specify the object version to delete. In this case, all versions +// remain in the bucket and S3 adds a delete marker. func ExampleS3_DeleteObjects_shared01() { svc := s3.New(session.New()) input := &s3.DeleteObjectsInput{ @@ -560,12 +562,10 @@ func ExampleS3_DeleteObjects_shared01() { Delete: &s3.Delete{ Objects: []*s3.ObjectIdentifier{ { - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"), + Key: aws.String("objectkey1"), }, { - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"), + Key: aws.String("objectkey2"), }, }, Quiet: aws.Bool(false), @@ -903,15 +903,13 @@ func ExampleS3_GetBucketWebsite_shared00() { fmt.Println(result) } -// To retrieve a byte range of an object -// The following example retrieves an object for an S3 bucket. The request specifies -// the range header to retrieve a specific byte range. +// To retrieve an object +// The following example retrieves an object for an S3 bucket. func ExampleS3_GetObject_shared00() { svc := s3.New(session.New()) input := &s3.GetObjectInput{ Bucket: aws.String("examplebucket"), - Key: aws.String("SampleFile.txt"), - Range: aws.String("bytes=0-9"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.GetObject(input) @@ -936,13 +934,15 @@ func ExampleS3_GetObject_shared00() { fmt.Println(result) } -// To retrieve an object -// The following example retrieves an object for an S3 bucket. +// To retrieve a byte range of an object +// The following example retrieves an object for an S3 bucket. The request specifies +// the range header to retrieve a specific byte range. func ExampleS3_GetObject_shared01() { svc := s3.New(session.New()) input := &s3.GetObjectInput{ Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Key: aws.String("SampleFile.txt"), + Range: aws.String("bytes=0-9"), } result, err := svc.GetObject(input) @@ -996,13 +996,15 @@ func ExampleS3_GetObjectAcl_shared00() { fmt.Println(result) } -// To retrieve tag set of an object -// The following example retrieves tag set of an object. +// To retrieve tag set of a specific object version +// The following example retrieves tag set of an object. The request specifies object +// version. func ExampleS3_GetObjectTagging_shared00() { svc := s3.New(session.New()) input := &s3.GetObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), } result, err := svc.GetObjectTagging(input) @@ -1023,15 +1025,13 @@ func ExampleS3_GetObjectTagging_shared00() { fmt.Println(result) } -// To retrieve tag set of a specific object version -// The following example retrieves tag set of an object. The request specifies object -// version. +// To retrieve tag set of an object +// The following example retrieves tag set of an object. func ExampleS3_GetObjectTagging_shared01() { svc := s3.New(session.New()) input := &s3.GetObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.GetObjectTagging(input) @@ -1748,19 +1748,16 @@ func ExampleS3_PutBucketWebsite_shared00() { fmt.Println(result) } -// To upload object and specify user-defined metadata -// The following example creates an object. The request also specifies optional metadata. -// If the bucket is versioning enabled, S3 returns version ID in response. +// To upload an object and specify optional tags +// The following example uploads an object. The request specifies optional object tags. +// The bucket is versioned, therefore S3 returns version ID of the newly created object. func ExampleS3_PutObject_shared00() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - Metadata: map[string]*string{ - "metadata1": aws.String("value1"), - "metadata2": aws.String("value2"), - }, + Body: aws.ReadSeekCloser(strings.NewReader("c:\\HappyFace.jpg")), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), + Tagging: aws.String("key1=value1&key2=value2"), } result, err := svc.PutObject(input) @@ -1781,17 +1778,15 @@ func ExampleS3_PutObject_shared00() { fmt.Println(result) } -// To upload an object (specify optional headers) -// The following example uploads an object. The request specifies optional request headers -// to directs S3 to use specific storage class and use server-side encryption. +// To create an object. +// The following example creates an object. If the bucket is versioning enabled, S3 +// returns version ID in response. func ExampleS3_PutObject_shared01() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - ServerSideEncryption: aws.String("AES256"), - StorageClass: aws.String("STANDARD_IA"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("objectkey"), } result, err := svc.PutObject(input) @@ -1812,16 +1807,19 @@ func ExampleS3_PutObject_shared01() { fmt.Println(result) } -// To upload an object and specify optional tags -// The following example uploads an object. The request specifies optional object tags. -// The bucket is versioned, therefore S3 returns version ID of the newly created object. +// To upload object and specify user-defined metadata +// The following example creates an object. The request also specifies optional metadata. +// If the bucket is versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared02() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("c:\\HappyFace.jpg")), - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - Tagging: aws.String("key1=value1&key2=value2"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + Metadata: map[string]*string{ + "metadata1": aws.String("value1"), + "metadata2": aws.String("value2"), + }, } result, err := svc.PutObject(input) @@ -1842,15 +1840,16 @@ func ExampleS3_PutObject_shared02() { fmt.Println(result) } -// To create an object. -// The following example creates an object. If the bucket is versioning enabled, S3 -// returns version ID in response. +// To upload an object +// The following example uploads an object to a versioning-enabled bucket. The source +// file is specified using Windows file syntax. S3 returns VersionId of the newly created +// object. func ExampleS3_PutObject_shared03() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), Bucket: aws.String("examplebucket"), - Key: aws.String("objectkey"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.PutObject(input) @@ -1871,16 +1870,18 @@ func ExampleS3_PutObject_shared03() { fmt.Println(result) } -// To upload an object -// The following example uploads an object to a versioning-enabled bucket. The source -// file is specified using Windows file syntax. S3 returns VersionId of the newly created -// object. +// To upload an object and specify server-side encryption and object tags +// The following example uploads an object. The request specifies the optional server-side +// encryption option. The request also specifies optional object tags. If the bucket +// is versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared04() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + ServerSideEncryption: aws.String("AES256"), + Tagging: aws.String("key1=value1&key2=value2"), } result, err := svc.PutObject(input) @@ -1932,18 +1933,17 @@ func ExampleS3_PutObject_shared05() { fmt.Println(result) } -// To upload an object and specify server-side encryption and object tags -// The following example uploads an object. The request specifies the optional server-side -// encryption option. The request also specifies optional object tags. If the bucket -// is versioning enabled, S3 returns version ID in response. +// To upload an object (specify optional headers) +// The following example uploads an object. The request specifies optional request headers +// to directs S3 to use specific storage class and use server-side encryption. func ExampleS3_PutObject_shared06() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), + Key: aws.String("HappyFace.jpg"), ServerSideEncryption: aws.String("AES256"), - Tagging: aws.String("key1=value1&key2=value2"), + StorageClass: aws.String("STANDARD_IA"), } result, err := svc.PutObject(input) @@ -2104,17 +2104,18 @@ func ExampleS3_UploadPart_shared00() { fmt.Println(result) } -// To upload a part by copying data from an existing object as data source -// The following example uploads a part of a multipart upload by copying data from an -// existing object as data source. +// To upload a part by copying byte range from an existing object as data source +// The following example uploads a part of a multipart upload by copying a specified +// byte range from an existing object as data source. func ExampleS3_UploadPartCopy_shared00() { svc := s3.New(session.New()) input := &s3.UploadPartCopyInput{ - Bucket: aws.String("examplebucket"), - CopySource: aws.String("/bucketname/sourceobjectkey"), - Key: aws.String("examplelargeobject"), - PartNumber: aws.Int64(1), - UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), + Bucket: aws.String("examplebucket"), + CopySource: aws.String("/bucketname/sourceobjectkey"), + CopySourceRange: aws.String("bytes=1-100000"), + Key: aws.String("examplelargeobject"), + PartNumber: aws.Int64(2), + UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), } result, err := svc.UploadPartCopy(input) @@ -2135,18 +2136,17 @@ func ExampleS3_UploadPartCopy_shared00() { fmt.Println(result) } -// To upload a part by copying byte range from an existing object as data source -// The following example uploads a part of a multipart upload by copying a specified -// byte range from an existing object as data source. +// To upload a part by copying data from an existing object as data source +// The following example uploads a part of a multipart upload by copying data from an +// existing object as data source. func ExampleS3_UploadPartCopy_shared01() { svc := s3.New(session.New()) input := &s3.UploadPartCopyInput{ - Bucket: aws.String("examplebucket"), - CopySource: aws.String("/bucketname/sourceobjectkey"), - CopySourceRange: aws.String("bytes=1-100000"), - Key: aws.String("examplelargeobject"), - PartNumber: aws.Int64(2), - UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), + Bucket: aws.String("examplebucket"), + CopySource: aws.String("/bucketname/sourceobjectkey"), + Key: aws.String("examplelargeobject"), + PartNumber: aws.Int64(1), + UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), } result, err := svc.UploadPartCopy(input) diff --git a/service/s3control/api.go b/service/s3control/api.go index bb3ef243e92..2cbb68ab1c1 100644 --- a/service/s3control/api.go +++ b/service/s3control/api.go @@ -15,6 +15,390 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restxml" ) +const opAssociateAccessGrantsIdentityCenter = "AssociateAccessGrantsIdentityCenter" + +// AssociateAccessGrantsIdentityCenterRequest generates a "aws/request.Request" representing the +// client's request for the AssociateAccessGrantsIdentityCenter 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 AssociateAccessGrantsIdentityCenter for more information on using the AssociateAccessGrantsIdentityCenter +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the AssociateAccessGrantsIdentityCenterRequest method. +// req, resp := client.AssociateAccessGrantsIdentityCenterRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/AssociateAccessGrantsIdentityCenter +func (c *S3Control) AssociateAccessGrantsIdentityCenterRequest(input *AssociateAccessGrantsIdentityCenterInput) (req *request.Request, output *AssociateAccessGrantsIdentityCenterOutput) { + op := &request.Operation{ + Name: opAssociateAccessGrantsIdentityCenter, + HTTPMethod: "POST", + HTTPPath: "/v20180820/accessgrantsinstance/identitycenter", + } + + if input == nil { + input = &AssociateAccessGrantsIdentityCenterInput{} + } + + output = &AssociateAccessGrantsIdentityCenterOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// AssociateAccessGrantsIdentityCenter API operation for AWS S3 Control. +// +// Associate your S3 Access Grants instance with an Amazon Web Services IAM +// Identity Center instance. Use this action if you want to create access grants +// for users or groups from your corporate identity directory. First, you must +// add your corporate identity directory to Amazon Web Services IAM Identity +// Center. Then, you can associate this IAM Identity Center instance with your +// S3 Access Grants instance. +// +// # Permissions +// +// You must have the s3:AssociateAccessGrantsIdentityCenter permission to use +// this operation. +// +// # Additional Permissions +// +// You must also have the following permissions: sso:CreateApplication, sso:PutApplicationGrant, +// and sso:PutApplicationAuthenticationMethod. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's +// API operation AssociateAccessGrantsIdentityCenter for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/AssociateAccessGrantsIdentityCenter +func (c *S3Control) AssociateAccessGrantsIdentityCenter(input *AssociateAccessGrantsIdentityCenterInput) (*AssociateAccessGrantsIdentityCenterOutput, error) { + req, out := c.AssociateAccessGrantsIdentityCenterRequest(input) + return out, req.Send() +} + +// AssociateAccessGrantsIdentityCenterWithContext is the same as AssociateAccessGrantsIdentityCenter with the addition of +// the ability to pass a context and additional request options. +// +// See AssociateAccessGrantsIdentityCenter for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) AssociateAccessGrantsIdentityCenterWithContext(ctx aws.Context, input *AssociateAccessGrantsIdentityCenterInput, opts ...request.Option) (*AssociateAccessGrantsIdentityCenterOutput, error) { + req, out := c.AssociateAccessGrantsIdentityCenterRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateAccessGrant = "CreateAccessGrant" + +// CreateAccessGrantRequest generates a "aws/request.Request" representing the +// client's request for the CreateAccessGrant 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 CreateAccessGrant for more information on using the CreateAccessGrant +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateAccessGrantRequest method. +// req, resp := client.CreateAccessGrantRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessGrant +func (c *S3Control) CreateAccessGrantRequest(input *CreateAccessGrantInput) (req *request.Request, output *CreateAccessGrantOutput) { + op := &request.Operation{ + Name: opCreateAccessGrant, + HTTPMethod: "POST", + HTTPPath: "/v20180820/accessgrantsinstance/grant", + } + + if input == nil { + input = &CreateAccessGrantInput{} + } + + output = &CreateAccessGrantOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// CreateAccessGrant API operation for AWS S3 Control. +// +// Creates an access grant that gives a grantee access to your S3 data. The +// grantee can be an IAM user or role or a directory user, or group. Before +// you can create a grant, you must have an S3 Access Grants instance in the +// same Region as the S3 data. You can create an S3 Access Grants instance using +// the CreateAccessGrantsInstance (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsInstance.html). +// You must also have registered at least one S3 data location in your S3 Access +// Grants instance using CreateAccessGrantsLocation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsLocation.html). +// +// # Permissions +// +// You must have the s3:CreateAccessGrant permission to use this operation. +// +// # Additional Permissions +// +// For any directory identity - sso:DescribeInstance and sso:DescribeApplication +// +// For directory users - identitystore:DescribeUser +// +// For directory groups - identitystore:DescribeGroup +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's +// API operation CreateAccessGrant for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessGrant +func (c *S3Control) CreateAccessGrant(input *CreateAccessGrantInput) (*CreateAccessGrantOutput, error) { + req, out := c.CreateAccessGrantRequest(input) + return out, req.Send() +} + +// CreateAccessGrantWithContext is the same as CreateAccessGrant with the addition of +// the ability to pass a context and additional request options. +// +// See CreateAccessGrant for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) CreateAccessGrantWithContext(ctx aws.Context, input *CreateAccessGrantInput, opts ...request.Option) (*CreateAccessGrantOutput, error) { + req, out := c.CreateAccessGrantRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateAccessGrantsInstance = "CreateAccessGrantsInstance" + +// CreateAccessGrantsInstanceRequest generates a "aws/request.Request" representing the +// client's request for the CreateAccessGrantsInstance 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 CreateAccessGrantsInstance for more information on using the CreateAccessGrantsInstance +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateAccessGrantsInstanceRequest method. +// req, resp := client.CreateAccessGrantsInstanceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessGrantsInstance +func (c *S3Control) CreateAccessGrantsInstanceRequest(input *CreateAccessGrantsInstanceInput) (req *request.Request, output *CreateAccessGrantsInstanceOutput) { + op := &request.Operation{ + Name: opCreateAccessGrantsInstance, + HTTPMethod: "POST", + HTTPPath: "/v20180820/accessgrantsinstance", + } + + if input == nil { + input = &CreateAccessGrantsInstanceInput{} + } + + output = &CreateAccessGrantsInstanceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// CreateAccessGrantsInstance API operation for AWS S3 Control. +// +// Creates an S3 Access Grants instance, which serves as a logical grouping +// for access grants. You can create one S3 Access Grants instance per Region +// per account. +// +// # Permissions +// +// You must have the s3:CreateAccessGrantsInstance permission to use this operation. +// +// # Additional Permissions +// +// To associate an IAM Identity Center instance with your S3 Access Grants instance, +// you must also have the sso:DescribeInstance, sso:CreateApplication, sso:PutApplicationGrant, +// and sso:PutApplicationAuthenticationMethod permissions. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's +// API operation CreateAccessGrantsInstance for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessGrantsInstance +func (c *S3Control) CreateAccessGrantsInstance(input *CreateAccessGrantsInstanceInput) (*CreateAccessGrantsInstanceOutput, error) { + req, out := c.CreateAccessGrantsInstanceRequest(input) + return out, req.Send() +} + +// CreateAccessGrantsInstanceWithContext is the same as CreateAccessGrantsInstance with the addition of +// the ability to pass a context and additional request options. +// +// See CreateAccessGrantsInstance for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) CreateAccessGrantsInstanceWithContext(ctx aws.Context, input *CreateAccessGrantsInstanceInput, opts ...request.Option) (*CreateAccessGrantsInstanceOutput, error) { + req, out := c.CreateAccessGrantsInstanceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateAccessGrantsLocation = "CreateAccessGrantsLocation" + +// CreateAccessGrantsLocationRequest generates a "aws/request.Request" representing the +// client's request for the CreateAccessGrantsLocation 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 CreateAccessGrantsLocation for more information on using the CreateAccessGrantsLocation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateAccessGrantsLocationRequest method. +// req, resp := client.CreateAccessGrantsLocationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessGrantsLocation +func (c *S3Control) CreateAccessGrantsLocationRequest(input *CreateAccessGrantsLocationInput) (req *request.Request, output *CreateAccessGrantsLocationOutput) { + op := &request.Operation{ + Name: opCreateAccessGrantsLocation, + HTTPMethod: "POST", + HTTPPath: "/v20180820/accessgrantsinstance/location", + } + + if input == nil { + input = &CreateAccessGrantsLocationInput{} + } + + output = &CreateAccessGrantsLocationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// CreateAccessGrantsLocation API operation for AWS S3 Control. +// +// The S3 data location that you would like to register in your S3 Access Grants +// instance. Your S3 data must be in the same Region as your S3 Access Grants +// instance. The location can be one of the following: +// +// - The default S3 location s3:// +// +// - A bucket - S3:// +// +// - A bucket and prefix - S3:/// +// +// When you register a location, you must include the IAM role that has permission +// to manage the S3 location that you are registering. Give S3 Access Grants +// permission to assume this role using a policy (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-location.html). +// S3 Access Grants assumes this role to manage access to the location and to +// vend temporary credentials to grantees or client applications. +// +// # Permissions +// +// You must have the s3:CreateAccessGrantsLocation permission to use this operation. +// +// # Additional Permissions +// +// You must also have the following permission for the specified IAM role: iam:PassRole +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's +// API operation CreateAccessGrantsLocation for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessGrantsLocation +func (c *S3Control) CreateAccessGrantsLocation(input *CreateAccessGrantsLocationInput) (*CreateAccessGrantsLocationOutput, error) { + req, out := c.CreateAccessGrantsLocationRequest(input) + return out, req.Send() +} + +// CreateAccessGrantsLocationWithContext is the same as CreateAccessGrantsLocation with the addition of +// the ability to pass a context and additional request options. +// +// See CreateAccessGrantsLocation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) CreateAccessGrantsLocationWithContext(ctx aws.Context, input *CreateAccessGrantsLocationInput, opts ...request.Option) (*CreateAccessGrantsLocationOutput, error) { + req, out := c.CreateAccessGrantsLocationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateAccessPoint = "CreateAccessPoint" // CreateAccessPointRequest generates a "aws/request.Request" representing the @@ -621,7 +1005,361 @@ func (c *S3Control) CreateStorageLensGroupWithContext(ctx aws.Context, input *Cr return out, req.Send() } -const opDeleteAccessPoint = "DeleteAccessPoint" +const opDeleteAccessGrant = "DeleteAccessGrant" + +// DeleteAccessGrantRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAccessGrant 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 DeleteAccessGrant for more information on using the DeleteAccessGrant +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteAccessGrantRequest method. +// req, resp := client.DeleteAccessGrantRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessGrant +func (c *S3Control) DeleteAccessGrantRequest(input *DeleteAccessGrantInput) (req *request.Request, output *DeleteAccessGrantOutput) { + op := &request.Operation{ + Name: opDeleteAccessGrant, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/accessgrantsinstance/grant/{id}", + } + + if input == nil { + input = &DeleteAccessGrantInput{} + } + + output = &DeleteAccessGrantOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// DeleteAccessGrant API operation for AWS S3 Control. +// +// Deletes the access grant from the S3 Access Grants instance. You cannot undo +// an access grant deletion and the grantee will no longer have access to the +// S3 data. +// +// # Permissions +// +// You must have the s3:DeleteAccessGrant permission to use this operation. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation DeleteAccessGrant for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessGrant +func (c *S3Control) DeleteAccessGrant(input *DeleteAccessGrantInput) (*DeleteAccessGrantOutput, error) { + req, out := c.DeleteAccessGrantRequest(input) + return out, req.Send() +} + +// DeleteAccessGrantWithContext is the same as DeleteAccessGrant with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAccessGrant for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) DeleteAccessGrantWithContext(ctx aws.Context, input *DeleteAccessGrantInput, opts ...request.Option) (*DeleteAccessGrantOutput, error) { + req, out := c.DeleteAccessGrantRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteAccessGrantsInstance = "DeleteAccessGrantsInstance" + +// DeleteAccessGrantsInstanceRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAccessGrantsInstance 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 DeleteAccessGrantsInstance for more information on using the DeleteAccessGrantsInstance +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteAccessGrantsInstanceRequest method. +// req, resp := client.DeleteAccessGrantsInstanceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessGrantsInstance +func (c *S3Control) DeleteAccessGrantsInstanceRequest(input *DeleteAccessGrantsInstanceInput) (req *request.Request, output *DeleteAccessGrantsInstanceOutput) { + op := &request.Operation{ + Name: opDeleteAccessGrantsInstance, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/accessgrantsinstance", + } + + if input == nil { + input = &DeleteAccessGrantsInstanceInput{} + } + + output = &DeleteAccessGrantsInstanceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// DeleteAccessGrantsInstance API operation for AWS S3 Control. +// +// Deletes your S3 Access Grants instance. You must first delete the access +// grants and locations before S3 Access Grants can delete the instance. See +// DeleteAccessGrant (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrant.html) +// and DeleteAccessGrantsLocation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html). +// If you have associated an IAM Identity Center instance with your S3 Access +// Grants instance, you must first dissassociate the Identity Center instance +// from the S3 Access Grants instance before you can delete the S3 Access Grants +// instance. See AssociateAccessGrantsIdentityCenter (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_AssociateAccessGrantsIdentityCenter.html) +// and DissociateAccessGrantsIdentityCenter (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DissociateAccessGrantsIdentityCenter.html). +// +// # Permissions +// +// You must have the s3:DeleteAccessGrantsInstance permission to use this operation. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation DeleteAccessGrantsInstance for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessGrantsInstance +func (c *S3Control) DeleteAccessGrantsInstance(input *DeleteAccessGrantsInstanceInput) (*DeleteAccessGrantsInstanceOutput, error) { + req, out := c.DeleteAccessGrantsInstanceRequest(input) + return out, req.Send() +} + +// DeleteAccessGrantsInstanceWithContext is the same as DeleteAccessGrantsInstance with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAccessGrantsInstance for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) DeleteAccessGrantsInstanceWithContext(ctx aws.Context, input *DeleteAccessGrantsInstanceInput, opts ...request.Option) (*DeleteAccessGrantsInstanceOutput, error) { + req, out := c.DeleteAccessGrantsInstanceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteAccessGrantsInstanceResourcePolicy = "DeleteAccessGrantsInstanceResourcePolicy" + +// DeleteAccessGrantsInstanceResourcePolicyRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAccessGrantsInstanceResourcePolicy 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 DeleteAccessGrantsInstanceResourcePolicy for more information on using the DeleteAccessGrantsInstanceResourcePolicy +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteAccessGrantsInstanceResourcePolicyRequest method. +// req, resp := client.DeleteAccessGrantsInstanceResourcePolicyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessGrantsInstanceResourcePolicy +func (c *S3Control) DeleteAccessGrantsInstanceResourcePolicyRequest(input *DeleteAccessGrantsInstanceResourcePolicyInput) (req *request.Request, output *DeleteAccessGrantsInstanceResourcePolicyOutput) { + op := &request.Operation{ + Name: opDeleteAccessGrantsInstanceResourcePolicy, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/accessgrantsinstance/resourcepolicy", + } + + if input == nil { + input = &DeleteAccessGrantsInstanceResourcePolicyInput{} + } + + output = &DeleteAccessGrantsInstanceResourcePolicyOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// DeleteAccessGrantsInstanceResourcePolicy API operation for AWS S3 Control. +// +// Deletes the resource policy of the S3 Access Grants instance. The resource +// policy is used to manage cross-account access to your S3 Access Grants instance. +// By deleting the resource policy, you delete any cross-account permissions +// to your S3 Access Grants instance. +// +// # Permissions +// +// You must have the s3:DeleteAccessGrantsInstanceResourcePolicy permission +// to use this operation. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation DeleteAccessGrantsInstanceResourcePolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessGrantsInstanceResourcePolicy +func (c *S3Control) DeleteAccessGrantsInstanceResourcePolicy(input *DeleteAccessGrantsInstanceResourcePolicyInput) (*DeleteAccessGrantsInstanceResourcePolicyOutput, error) { + req, out := c.DeleteAccessGrantsInstanceResourcePolicyRequest(input) + return out, req.Send() +} + +// DeleteAccessGrantsInstanceResourcePolicyWithContext is the same as DeleteAccessGrantsInstanceResourcePolicy with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAccessGrantsInstanceResourcePolicy for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) DeleteAccessGrantsInstanceResourcePolicyWithContext(ctx aws.Context, input *DeleteAccessGrantsInstanceResourcePolicyInput, opts ...request.Option) (*DeleteAccessGrantsInstanceResourcePolicyOutput, error) { + req, out := c.DeleteAccessGrantsInstanceResourcePolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteAccessGrantsLocation = "DeleteAccessGrantsLocation" + +// DeleteAccessGrantsLocationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAccessGrantsLocation 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 DeleteAccessGrantsLocation for more information on using the DeleteAccessGrantsLocation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteAccessGrantsLocationRequest method. +// req, resp := client.DeleteAccessGrantsLocationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessGrantsLocation +func (c *S3Control) DeleteAccessGrantsLocationRequest(input *DeleteAccessGrantsLocationInput) (req *request.Request, output *DeleteAccessGrantsLocationOutput) { + op := &request.Operation{ + Name: opDeleteAccessGrantsLocation, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/accessgrantsinstance/location/{id}", + } + + if input == nil { + input = &DeleteAccessGrantsLocationInput{} + } + + output = &DeleteAccessGrantsLocationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// DeleteAccessGrantsLocation API operation for AWS S3 Control. +// +// Deregisters a location from your S3 Access Grants instance. You can only +// delete a location registration from an S3 Access Grants instance if there +// are no grants associated with this location. See Delete a grant (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrant.html) +// for information on how to delete grants. You need to have at least one registered +// location in your S3 Access Grants instance in order to create access grants. +// +// # Permissions +// +// You must have the s3:DeleteAccessGrantsLocation permission to use this operation. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation DeleteAccessGrantsLocation for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessGrantsLocation +func (c *S3Control) DeleteAccessGrantsLocation(input *DeleteAccessGrantsLocationInput) (*DeleteAccessGrantsLocationOutput, error) { + req, out := c.DeleteAccessGrantsLocationRequest(input) + return out, req.Send() +} + +// DeleteAccessGrantsLocationWithContext is the same as DeleteAccessGrantsLocation with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAccessGrantsLocation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) DeleteAccessGrantsLocationWithContext(ctx aws.Context, input *DeleteAccessGrantsLocationInput, opts ...request.Option) (*DeleteAccessGrantsLocationOutput, error) { + req, out := c.DeleteAccessGrantsLocationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteAccessPoint = "DeleteAccessPoint" // DeleteAccessPointRequest generates a "aws/request.Request" representing the // client's request for the DeleteAccessPoint operation. The "output" return @@ -2246,839 +2984,813 @@ func (c *S3Control) DescribeMultiRegionAccessPointOperationWithContext(ctx aws.C return out, req.Send() } -const opGetAccessPoint = "GetAccessPoint" +const opDissociateAccessGrantsIdentityCenter = "DissociateAccessGrantsIdentityCenter" -// GetAccessPointRequest generates a "aws/request.Request" representing the -// client's request for the GetAccessPoint operation. The "output" return +// DissociateAccessGrantsIdentityCenterRequest generates a "aws/request.Request" representing the +// client's request for the DissociateAccessGrantsIdentityCenter 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 GetAccessPoint for more information on using the GetAccessPoint +// See DissociateAccessGrantsIdentityCenter for more information on using the DissociateAccessGrantsIdentityCenter // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetAccessPointRequest method. -// req, resp := client.GetAccessPointRequest(params) +// // Example sending a request using the DissociateAccessGrantsIdentityCenterRequest method. +// req, resp := client.DissociateAccessGrantsIdentityCenterRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint -func (c *S3Control) GetAccessPointRequest(input *GetAccessPointInput) (req *request.Request, output *GetAccessPointOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DissociateAccessGrantsIdentityCenter +func (c *S3Control) DissociateAccessGrantsIdentityCenterRequest(input *DissociateAccessGrantsIdentityCenterInput) (req *request.Request, output *DissociateAccessGrantsIdentityCenterOutput) { op := &request.Operation{ - Name: opGetAccessPoint, - HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspoint/{name}", + Name: opDissociateAccessGrantsIdentityCenter, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/accessgrantsinstance/identitycenter", } if input == nil { - input = &GetAccessPointInput{} + input = &DissociateAccessGrantsIdentityCenterInput{} } - output = &GetAccessPointOutput{} + output = &DissociateAccessGrantsIdentityCenterOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// GetAccessPoint API operation for AWS S3 Control. +// DissociateAccessGrantsIdentityCenter API operation for AWS S3 Control. // -// Returns configuration information about the specified access point. -// -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples) -// section. +// Dissociates the Amazon Web Services IAM Identity Center instance from the +// S3 Access Grants instance. // -// The following actions are related to GetAccessPoint: +// # Permissions // -// - CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html) +// You must have the s3:DissociateAccessGrantsIdentityCenter permission to use +// this operation. // -// - DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html) +// # Additional Permissions // -// - ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html) +// You must have the sso:DeleteApplication permission to use this operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation GetAccessPoint for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint -func (c *S3Control) GetAccessPoint(input *GetAccessPointInput) (*GetAccessPointOutput, error) { - req, out := c.GetAccessPointRequest(input) +// API operation DissociateAccessGrantsIdentityCenter for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DissociateAccessGrantsIdentityCenter +func (c *S3Control) DissociateAccessGrantsIdentityCenter(input *DissociateAccessGrantsIdentityCenterInput) (*DissociateAccessGrantsIdentityCenterOutput, error) { + req, out := c.DissociateAccessGrantsIdentityCenterRequest(input) return out, req.Send() } -// GetAccessPointWithContext is the same as GetAccessPoint with the addition of +// DissociateAccessGrantsIdentityCenterWithContext is the same as DissociateAccessGrantsIdentityCenter with the addition of // the ability to pass a context and additional request options. // -// See GetAccessPoint for details on how to use this API operation. +// See DissociateAccessGrantsIdentityCenter for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetAccessPointWithContext(ctx aws.Context, input *GetAccessPointInput, opts ...request.Option) (*GetAccessPointOutput, error) { - req, out := c.GetAccessPointRequest(input) +func (c *S3Control) DissociateAccessGrantsIdentityCenterWithContext(ctx aws.Context, input *DissociateAccessGrantsIdentityCenterInput, opts ...request.Option) (*DissociateAccessGrantsIdentityCenterOutput, error) { + req, out := c.DissociateAccessGrantsIdentityCenterRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetAccessPointConfigurationForObjectLambda = "GetAccessPointConfigurationForObjectLambda" +const opGetAccessGrant = "GetAccessGrant" -// GetAccessPointConfigurationForObjectLambdaRequest generates a "aws/request.Request" representing the -// client's request for the GetAccessPointConfigurationForObjectLambda operation. The "output" return +// GetAccessGrantRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessGrant 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 GetAccessPointConfigurationForObjectLambda for more information on using the GetAccessPointConfigurationForObjectLambda +// See GetAccessGrant for more information on using the GetAccessGrant // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetAccessPointConfigurationForObjectLambdaRequest method. -// req, resp := client.GetAccessPointConfigurationForObjectLambdaRequest(params) +// // Example sending a request using the GetAccessGrantRequest method. +// req, resp := client.GetAccessGrantRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambda -func (c *S3Control) GetAccessPointConfigurationForObjectLambdaRequest(input *GetAccessPointConfigurationForObjectLambdaInput) (req *request.Request, output *GetAccessPointConfigurationForObjectLambdaOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessGrant +func (c *S3Control) GetAccessGrantRequest(input *GetAccessGrantInput) (req *request.Request, output *GetAccessGrantOutput) { op := &request.Operation{ - Name: opGetAccessPointConfigurationForObjectLambda, + Name: opGetAccessGrant, HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspointforobjectlambda/{name}/configuration", + HTTPPath: "/v20180820/accessgrantsinstance/grant/{id}", } if input == nil { - input = &GetAccessPointConfigurationForObjectLambdaInput{} + input = &GetAccessGrantInput{} } - output = &GetAccessPointConfigurationForObjectLambdaOutput{} + output = &GetAccessGrantOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// GetAccessPointConfigurationForObjectLambda API operation for AWS S3 Control. +// GetAccessGrant API operation for AWS S3 Control. // -// Returns configuration for an Object Lambda Access Point. +// Get the details of an access grant from your S3 Access Grants instance. // -// The following actions are related to GetAccessPointConfigurationForObjectLambda: +// # Permissions // -// - PutAccessPointConfigurationForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointConfigurationForObjectLambda.html) +// You must have the s3:GetAccessGrant permission to use this operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation GetAccessPointConfigurationForObjectLambda for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambda -func (c *S3Control) GetAccessPointConfigurationForObjectLambda(input *GetAccessPointConfigurationForObjectLambdaInput) (*GetAccessPointConfigurationForObjectLambdaOutput, error) { - req, out := c.GetAccessPointConfigurationForObjectLambdaRequest(input) +// API operation GetAccessGrant for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessGrant +func (c *S3Control) GetAccessGrant(input *GetAccessGrantInput) (*GetAccessGrantOutput, error) { + req, out := c.GetAccessGrantRequest(input) return out, req.Send() } -// GetAccessPointConfigurationForObjectLambdaWithContext is the same as GetAccessPointConfigurationForObjectLambda with the addition of +// GetAccessGrantWithContext is the same as GetAccessGrant with the addition of // the ability to pass a context and additional request options. // -// See GetAccessPointConfigurationForObjectLambda for details on how to use this API operation. +// See GetAccessGrant for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetAccessPointConfigurationForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointConfigurationForObjectLambdaInput, opts ...request.Option) (*GetAccessPointConfigurationForObjectLambdaOutput, error) { - req, out := c.GetAccessPointConfigurationForObjectLambdaRequest(input) +func (c *S3Control) GetAccessGrantWithContext(ctx aws.Context, input *GetAccessGrantInput, opts ...request.Option) (*GetAccessGrantOutput, error) { + req, out := c.GetAccessGrantRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetAccessPointForObjectLambda = "GetAccessPointForObjectLambda" +const opGetAccessGrantsInstance = "GetAccessGrantsInstance" -// GetAccessPointForObjectLambdaRequest generates a "aws/request.Request" representing the -// client's request for the GetAccessPointForObjectLambda operation. The "output" return +// GetAccessGrantsInstanceRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessGrantsInstance 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 GetAccessPointForObjectLambda for more information on using the GetAccessPointForObjectLambda +// See GetAccessGrantsInstance for more information on using the GetAccessGrantsInstance // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetAccessPointForObjectLambdaRequest method. -// req, resp := client.GetAccessPointForObjectLambdaRequest(params) +// // Example sending a request using the GetAccessGrantsInstanceRequest method. +// req, resp := client.GetAccessGrantsInstanceRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambda -func (c *S3Control) GetAccessPointForObjectLambdaRequest(input *GetAccessPointForObjectLambdaInput) (req *request.Request, output *GetAccessPointForObjectLambdaOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessGrantsInstance +func (c *S3Control) GetAccessGrantsInstanceRequest(input *GetAccessGrantsInstanceInput) (req *request.Request, output *GetAccessGrantsInstanceOutput) { op := &request.Operation{ - Name: opGetAccessPointForObjectLambda, + Name: opGetAccessGrantsInstance, HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspointforobjectlambda/{name}", + HTTPPath: "/v20180820/accessgrantsinstance", } if input == nil { - input = &GetAccessPointForObjectLambdaInput{} + input = &GetAccessGrantsInstanceInput{} } - output = &GetAccessPointForObjectLambdaOutput{} + output = &GetAccessGrantsInstanceOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// GetAccessPointForObjectLambda API operation for AWS S3 Control. +// GetAccessGrantsInstance API operation for AWS S3 Control. // -// Returns configuration information about the specified Object Lambda Access -// Point -// -// The following actions are related to GetAccessPointForObjectLambda: +// Retrieves the S3 Access Grants instance for a Region in your account. // -// - CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html) -// -// - DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html) +// # Permissions // -// - ListAccessPointsForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html) +// You must have the s3:GetAccessGrantsInstance permission to use this operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation GetAccessPointForObjectLambda for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambda -func (c *S3Control) GetAccessPointForObjectLambda(input *GetAccessPointForObjectLambdaInput) (*GetAccessPointForObjectLambdaOutput, error) { - req, out := c.GetAccessPointForObjectLambdaRequest(input) +// API operation GetAccessGrantsInstance for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessGrantsInstance +func (c *S3Control) GetAccessGrantsInstance(input *GetAccessGrantsInstanceInput) (*GetAccessGrantsInstanceOutput, error) { + req, out := c.GetAccessGrantsInstanceRequest(input) return out, req.Send() } -// GetAccessPointForObjectLambdaWithContext is the same as GetAccessPointForObjectLambda with the addition of +// GetAccessGrantsInstanceWithContext is the same as GetAccessGrantsInstance with the addition of // the ability to pass a context and additional request options. // -// See GetAccessPointForObjectLambda for details on how to use this API operation. +// See GetAccessGrantsInstance for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetAccessPointForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointForObjectLambdaInput, opts ...request.Option) (*GetAccessPointForObjectLambdaOutput, error) { - req, out := c.GetAccessPointForObjectLambdaRequest(input) +func (c *S3Control) GetAccessGrantsInstanceWithContext(ctx aws.Context, input *GetAccessGrantsInstanceInput, opts ...request.Option) (*GetAccessGrantsInstanceOutput, error) { + req, out := c.GetAccessGrantsInstanceRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetAccessPointPolicy = "GetAccessPointPolicy" +const opGetAccessGrantsInstanceForPrefix = "GetAccessGrantsInstanceForPrefix" -// GetAccessPointPolicyRequest generates a "aws/request.Request" representing the -// client's request for the GetAccessPointPolicy operation. The "output" return +// GetAccessGrantsInstanceForPrefixRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessGrantsInstanceForPrefix 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 GetAccessPointPolicy for more information on using the GetAccessPointPolicy +// See GetAccessGrantsInstanceForPrefix for more information on using the GetAccessGrantsInstanceForPrefix // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetAccessPointPolicyRequest method. -// req, resp := client.GetAccessPointPolicyRequest(params) +// // Example sending a request using the GetAccessGrantsInstanceForPrefixRequest method. +// req, resp := client.GetAccessGrantsInstanceForPrefixRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy -func (c *S3Control) GetAccessPointPolicyRequest(input *GetAccessPointPolicyInput) (req *request.Request, output *GetAccessPointPolicyOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessGrantsInstanceForPrefix +func (c *S3Control) GetAccessGrantsInstanceForPrefixRequest(input *GetAccessGrantsInstanceForPrefixInput) (req *request.Request, output *GetAccessGrantsInstanceForPrefixOutput) { op := &request.Operation{ - Name: opGetAccessPointPolicy, + Name: opGetAccessGrantsInstanceForPrefix, HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspoint/{name}/policy", + HTTPPath: "/v20180820/accessgrantsinstance/prefix", } if input == nil { - input = &GetAccessPointPolicyInput{} + input = &GetAccessGrantsInstanceForPrefixInput{} } - output = &GetAccessPointPolicyOutput{} + output = &GetAccessGrantsInstanceForPrefixOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// GetAccessPointPolicy API operation for AWS S3 Control. +// GetAccessGrantsInstanceForPrefix API operation for AWS S3 Control. // -// Returns the access point policy associated with the specified access point. +// Retrieve the S3 Access Grants instance that contains a particular prefix. // -// The following actions are related to GetAccessPointPolicy: +// # Permissions // -// - PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html) +// You must have the s3:GetAccessGrantsInstanceForPrefix permission for the +// caller account to use this operation. // -// - DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html) +// # Additional Permissions +// +// The prefix owner account must grant you the following permissions to their +// S3 Access Grants instance: s3:GetAccessGrantsInstanceForPrefix. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's -// API operation GetAccessPointPolicy for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy -func (c *S3Control) GetAccessPointPolicy(input *GetAccessPointPolicyInput) (*GetAccessPointPolicyOutput, error) { - req, out := c.GetAccessPointPolicyRequest(input) +// API operation GetAccessGrantsInstanceForPrefix for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessGrantsInstanceForPrefix +func (c *S3Control) GetAccessGrantsInstanceForPrefix(input *GetAccessGrantsInstanceForPrefixInput) (*GetAccessGrantsInstanceForPrefixOutput, error) { + req, out := c.GetAccessGrantsInstanceForPrefixRequest(input) return out, req.Send() } -// GetAccessPointPolicyWithContext is the same as GetAccessPointPolicy with the addition of +// GetAccessGrantsInstanceForPrefixWithContext is the same as GetAccessGrantsInstanceForPrefix with the addition of // the ability to pass a context and additional request options. // -// See GetAccessPointPolicy for details on how to use this API operation. +// See GetAccessGrantsInstanceForPrefix for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetAccessPointPolicyWithContext(ctx aws.Context, input *GetAccessPointPolicyInput, opts ...request.Option) (*GetAccessPointPolicyOutput, error) { - req, out := c.GetAccessPointPolicyRequest(input) +func (c *S3Control) GetAccessGrantsInstanceForPrefixWithContext(ctx aws.Context, input *GetAccessGrantsInstanceForPrefixInput, opts ...request.Option) (*GetAccessGrantsInstanceForPrefixOutput, error) { + req, out := c.GetAccessGrantsInstanceForPrefixRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetAccessPointPolicyForObjectLambda = "GetAccessPointPolicyForObjectLambda" +const opGetAccessGrantsInstanceResourcePolicy = "GetAccessGrantsInstanceResourcePolicy" -// GetAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the -// client's request for the GetAccessPointPolicyForObjectLambda operation. The "output" return +// GetAccessGrantsInstanceResourcePolicyRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessGrantsInstanceResourcePolicy 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 GetAccessPointPolicyForObjectLambda for more information on using the GetAccessPointPolicyForObjectLambda +// See GetAccessGrantsInstanceResourcePolicy for more information on using the GetAccessGrantsInstanceResourcePolicy // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetAccessPointPolicyForObjectLambdaRequest method. -// req, resp := client.GetAccessPointPolicyForObjectLambdaRequest(params) +// // Example sending a request using the GetAccessGrantsInstanceResourcePolicyRequest method. +// req, resp := client.GetAccessGrantsInstanceResourcePolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambda -func (c *S3Control) GetAccessPointPolicyForObjectLambdaRequest(input *GetAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *GetAccessPointPolicyForObjectLambdaOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessGrantsInstanceResourcePolicy +func (c *S3Control) GetAccessGrantsInstanceResourcePolicyRequest(input *GetAccessGrantsInstanceResourcePolicyInput) (req *request.Request, output *GetAccessGrantsInstanceResourcePolicyOutput) { op := &request.Operation{ - Name: opGetAccessPointPolicyForObjectLambda, + Name: opGetAccessGrantsInstanceResourcePolicy, HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspointforobjectlambda/{name}/policy", + HTTPPath: "/v20180820/accessgrantsinstance/resourcepolicy", } if input == nil { - input = &GetAccessPointPolicyForObjectLambdaInput{} + input = &GetAccessGrantsInstanceResourcePolicyInput{} } - output = &GetAccessPointPolicyForObjectLambdaOutput{} + output = &GetAccessGrantsInstanceResourcePolicyOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// GetAccessPointPolicyForObjectLambda API operation for AWS S3 Control. +// GetAccessGrantsInstanceResourcePolicy API operation for AWS S3 Control. // -// Returns the resource policy for an Object Lambda Access Point. -// -// The following actions are related to GetAccessPointPolicyForObjectLambda: +// Returns the resource policy of the S3 Access Grants instance. // -// - DeleteAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html) +// # Permissions // -// - PutAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicyForObjectLambda.html) +// You must have the s3:GetAccessGrantsInstanceResourcePolicy permission to +// use this operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation GetAccessPointPolicyForObjectLambda for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambda -func (c *S3Control) GetAccessPointPolicyForObjectLambda(input *GetAccessPointPolicyForObjectLambdaInput) (*GetAccessPointPolicyForObjectLambdaOutput, error) { - req, out := c.GetAccessPointPolicyForObjectLambdaRequest(input) +// API operation GetAccessGrantsInstanceResourcePolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessGrantsInstanceResourcePolicy +func (c *S3Control) GetAccessGrantsInstanceResourcePolicy(input *GetAccessGrantsInstanceResourcePolicyInput) (*GetAccessGrantsInstanceResourcePolicyOutput, error) { + req, out := c.GetAccessGrantsInstanceResourcePolicyRequest(input) return out, req.Send() } -// GetAccessPointPolicyForObjectLambdaWithContext is the same as GetAccessPointPolicyForObjectLambda with the addition of +// GetAccessGrantsInstanceResourcePolicyWithContext is the same as GetAccessGrantsInstanceResourcePolicy with the addition of // the ability to pass a context and additional request options. // -// See GetAccessPointPolicyForObjectLambda for details on how to use this API operation. +// See GetAccessGrantsInstanceResourcePolicy for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*GetAccessPointPolicyForObjectLambdaOutput, error) { - req, out := c.GetAccessPointPolicyForObjectLambdaRequest(input) +func (c *S3Control) GetAccessGrantsInstanceResourcePolicyWithContext(ctx aws.Context, input *GetAccessGrantsInstanceResourcePolicyInput, opts ...request.Option) (*GetAccessGrantsInstanceResourcePolicyOutput, error) { + req, out := c.GetAccessGrantsInstanceResourcePolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetAccessPointPolicyStatus = "GetAccessPointPolicyStatus" +const opGetAccessGrantsLocation = "GetAccessGrantsLocation" -// GetAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the -// client's request for the GetAccessPointPolicyStatus operation. The "output" return +// GetAccessGrantsLocationRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessGrantsLocation 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 GetAccessPointPolicyStatus for more information on using the GetAccessPointPolicyStatus +// See GetAccessGrantsLocation for more information on using the GetAccessGrantsLocation // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetAccessPointPolicyStatusRequest method. -// req, resp := client.GetAccessPointPolicyStatusRequest(params) +// // Example sending a request using the GetAccessGrantsLocationRequest method. +// req, resp := client.GetAccessGrantsLocationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus -func (c *S3Control) GetAccessPointPolicyStatusRequest(input *GetAccessPointPolicyStatusInput) (req *request.Request, output *GetAccessPointPolicyStatusOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessGrantsLocation +func (c *S3Control) GetAccessGrantsLocationRequest(input *GetAccessGrantsLocationInput) (req *request.Request, output *GetAccessGrantsLocationOutput) { op := &request.Operation{ - Name: opGetAccessPointPolicyStatus, + Name: opGetAccessGrantsLocation, HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspoint/{name}/policyStatus", + HTTPPath: "/v20180820/accessgrantsinstance/location/{id}", } if input == nil { - input = &GetAccessPointPolicyStatusInput{} + input = &GetAccessGrantsLocationInput{} } - output = &GetAccessPointPolicyStatusOutput{} + output = &GetAccessGrantsLocationOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// GetAccessPointPolicyStatus API operation for AWS S3 Control. +// GetAccessGrantsLocation API operation for AWS S3 Control. // -// Indicates whether the specified access point currently has a policy that -// allows public access. For more information about public access through access -// points, see Managing Data Access with Amazon S3 access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) -// in the Amazon S3 User Guide. +// Retrieves the details of a particular location registered in your S3 Access +// Grants instance. +// +// # Permissions +// +// You must have the s3:GetAccessGrantsLocation permission to use this operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation GetAccessPointPolicyStatus for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus -func (c *S3Control) GetAccessPointPolicyStatus(input *GetAccessPointPolicyStatusInput) (*GetAccessPointPolicyStatusOutput, error) { - req, out := c.GetAccessPointPolicyStatusRequest(input) +// API operation GetAccessGrantsLocation for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessGrantsLocation +func (c *S3Control) GetAccessGrantsLocation(input *GetAccessGrantsLocationInput) (*GetAccessGrantsLocationOutput, error) { + req, out := c.GetAccessGrantsLocationRequest(input) return out, req.Send() } -// GetAccessPointPolicyStatusWithContext is the same as GetAccessPointPolicyStatus with the addition of +// GetAccessGrantsLocationWithContext is the same as GetAccessGrantsLocation with the addition of // the ability to pass a context and additional request options. // -// See GetAccessPointPolicyStatus for details on how to use this API operation. +// See GetAccessGrantsLocation for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusInput, opts ...request.Option) (*GetAccessPointPolicyStatusOutput, error) { - req, out := c.GetAccessPointPolicyStatusRequest(input) +func (c *S3Control) GetAccessGrantsLocationWithContext(ctx aws.Context, input *GetAccessGrantsLocationInput, opts ...request.Option) (*GetAccessGrantsLocationOutput, error) { + req, out := c.GetAccessGrantsLocationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetAccessPointPolicyStatusForObjectLambda = "GetAccessPointPolicyStatusForObjectLambda" +const opGetAccessPoint = "GetAccessPoint" -// GetAccessPointPolicyStatusForObjectLambdaRequest generates a "aws/request.Request" representing the -// client's request for the GetAccessPointPolicyStatusForObjectLambda operation. The "output" return +// GetAccessPointRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessPoint 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 GetAccessPointPolicyStatusForObjectLambda for more information on using the GetAccessPointPolicyStatusForObjectLambda +// See GetAccessPoint for more information on using the GetAccessPoint // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetAccessPointPolicyStatusForObjectLambdaRequest method. -// req, resp := client.GetAccessPointPolicyStatusForObjectLambdaRequest(params) +// // Example sending a request using the GetAccessPointRequest method. +// req, resp := client.GetAccessPointRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambda -func (c *S3Control) GetAccessPointPolicyStatusForObjectLambdaRequest(input *GetAccessPointPolicyStatusForObjectLambdaInput) (req *request.Request, output *GetAccessPointPolicyStatusForObjectLambdaOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint +func (c *S3Control) GetAccessPointRequest(input *GetAccessPointInput) (req *request.Request, output *GetAccessPointOutput) { op := &request.Operation{ - Name: opGetAccessPointPolicyStatusForObjectLambda, + Name: opGetAccessPoint, HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspointforobjectlambda/{name}/policyStatus", + HTTPPath: "/v20180820/accesspoint/{name}", } if input == nil { - input = &GetAccessPointPolicyStatusForObjectLambdaInput{} + input = &GetAccessPointInput{} } - output = &GetAccessPointPolicyStatusForObjectLambdaOutput{} + output = &GetAccessPointOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetAccessPointPolicyStatusForObjectLambda API operation for AWS S3 Control. +// GetAccessPoint API operation for AWS S3 Control. // -// Returns the status of the resource policy associated with an Object Lambda -// Access Point. +// Returns configuration information about the specified access point. +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples) +// section. +// +// The following actions are related to GetAccessPoint: +// +// - CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html) +// +// - DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html) +// +// - ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.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 S3 Control's -// API operation GetAccessPointPolicyStatusForObjectLambda for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambda -func (c *S3Control) GetAccessPointPolicyStatusForObjectLambda(input *GetAccessPointPolicyStatusForObjectLambdaInput) (*GetAccessPointPolicyStatusForObjectLambdaOutput, error) { - req, out := c.GetAccessPointPolicyStatusForObjectLambdaRequest(input) +// API operation GetAccessPoint for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint +func (c *S3Control) GetAccessPoint(input *GetAccessPointInput) (*GetAccessPointOutput, error) { + req, out := c.GetAccessPointRequest(input) return out, req.Send() } -// GetAccessPointPolicyStatusForObjectLambdaWithContext is the same as GetAccessPointPolicyStatusForObjectLambda with the addition of +// GetAccessPointWithContext is the same as GetAccessPoint with the addition of // the ability to pass a context and additional request options. // -// See GetAccessPointPolicyStatusForObjectLambda for details on how to use this API operation. +// See GetAccessPoint for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetAccessPointPolicyStatusForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusForObjectLambdaInput, opts ...request.Option) (*GetAccessPointPolicyStatusForObjectLambdaOutput, error) { - req, out := c.GetAccessPointPolicyStatusForObjectLambdaRequest(input) +func (c *S3Control) GetAccessPointWithContext(ctx aws.Context, input *GetAccessPointInput, opts ...request.Option) (*GetAccessPointOutput, error) { + req, out := c.GetAccessPointRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetBucket = "GetBucket" +const opGetAccessPointConfigurationForObjectLambda = "GetAccessPointConfigurationForObjectLambda" -// GetBucketRequest generates a "aws/request.Request" representing the -// client's request for the GetBucket operation. The "output" return +// GetAccessPointConfigurationForObjectLambdaRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessPointConfigurationForObjectLambda 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 GetBucket for more information on using the GetBucket +// See GetAccessPointConfigurationForObjectLambda for more information on using the GetAccessPointConfigurationForObjectLambda // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetBucketRequest method. -// req, resp := client.GetBucketRequest(params) +// // Example sending a request using the GetAccessPointConfigurationForObjectLambdaRequest method. +// req, resp := client.GetAccessPointConfigurationForObjectLambdaRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket -func (c *S3Control) GetBucketRequest(input *GetBucketInput) (req *request.Request, output *GetBucketOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambda +func (c *S3Control) GetAccessPointConfigurationForObjectLambdaRequest(input *GetAccessPointConfigurationForObjectLambdaInput) (req *request.Request, output *GetAccessPointConfigurationForObjectLambdaOutput) { op := &request.Operation{ - Name: opGetBucket, + Name: opGetAccessPointConfigurationForObjectLambda, HTTPMethod: "GET", - HTTPPath: "/v20180820/bucket/{name}", + HTTPPath: "/v20180820/accesspointforobjectlambda/{name}/configuration", } if input == nil { - input = &GetBucketInput{} + input = &GetAccessPointConfigurationForObjectLambdaInput{} } - output = &GetBucketOutput{} + output = &GetAccessPointConfigurationForObjectLambdaOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetBucket API operation for AWS S3 Control. -// -// Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon -// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) -// in the Amazon S3 User Guide. -// -// If you are using an identity other than the root user of the Amazon Web Services -// account that owns the Outposts bucket, the calling identity must have the -// s3-outposts:GetBucket permissions on the specified Outposts bucket and belong -// to the Outposts bucket owner's account in order to use this action. Only -// users from Outposts bucket owner account with the right permissions can perform -// actions on an Outposts bucket. -// -// If you don't have s3-outposts:GetBucket permissions or you're not using an -// identity that belongs to the bucket owner's account, Amazon S3 returns a -// 403 Access Denied error. -// -// The following actions are related to GetBucket for Amazon S3 on Outposts: -// -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html#API_control_GetBucket_Examples) -// section. +// GetAccessPointConfigurationForObjectLambda API operation for AWS S3 Control. // -// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) +// Returns configuration for an Object Lambda Access Point. // -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html) +// The following actions are related to GetAccessPointConfigurationForObjectLambda: // -// - DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html) +// - PutAccessPointConfigurationForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointConfigurationForObjectLambda.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 S3 Control's -// API operation GetBucket for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket -func (c *S3Control) GetBucket(input *GetBucketInput) (*GetBucketOutput, error) { - req, out := c.GetBucketRequest(input) +// API operation GetAccessPointConfigurationForObjectLambda for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambda +func (c *S3Control) GetAccessPointConfigurationForObjectLambda(input *GetAccessPointConfigurationForObjectLambdaInput) (*GetAccessPointConfigurationForObjectLambdaOutput, error) { + req, out := c.GetAccessPointConfigurationForObjectLambdaRequest(input) return out, req.Send() } -// GetBucketWithContext is the same as GetBucket with the addition of +// GetAccessPointConfigurationForObjectLambdaWithContext is the same as GetAccessPointConfigurationForObjectLambda with the addition of // the ability to pass a context and additional request options. // -// See GetBucket for details on how to use this API operation. +// See GetAccessPointConfigurationForObjectLambda for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetBucketWithContext(ctx aws.Context, input *GetBucketInput, opts ...request.Option) (*GetBucketOutput, error) { - req, out := c.GetBucketRequest(input) +func (c *S3Control) GetAccessPointConfigurationForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointConfigurationForObjectLambdaInput, opts ...request.Option) (*GetAccessPointConfigurationForObjectLambdaOutput, error) { + req, out := c.GetAccessPointConfigurationForObjectLambdaRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration" +const opGetAccessPointForObjectLambda = "GetAccessPointForObjectLambda" -// GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the -// client's request for the GetBucketLifecycleConfiguration operation. The "output" return +// GetAccessPointForObjectLambdaRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessPointForObjectLambda 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 GetBucketLifecycleConfiguration for more information on using the GetBucketLifecycleConfiguration +// See GetAccessPointForObjectLambda for more information on using the GetAccessPointForObjectLambda // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetBucketLifecycleConfigurationRequest method. -// req, resp := client.GetBucketLifecycleConfigurationRequest(params) +// // Example sending a request using the GetAccessPointForObjectLambdaRequest method. +// req, resp := client.GetAccessPointForObjectLambdaRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration -func (c *S3Control) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleConfigurationInput) (req *request.Request, output *GetBucketLifecycleConfigurationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambda +func (c *S3Control) GetAccessPointForObjectLambdaRequest(input *GetAccessPointForObjectLambdaInput) (req *request.Request, output *GetAccessPointForObjectLambdaOutput) { op := &request.Operation{ - Name: opGetBucketLifecycleConfiguration, + Name: opGetAccessPointForObjectLambda, HTTPMethod: "GET", - HTTPPath: "/v20180820/bucket/{name}/lifecycleconfiguration", + HTTPPath: "/v20180820/accesspointforobjectlambda/{name}", } if input == nil { - input = &GetBucketLifecycleConfigurationInput{} + input = &GetAccessPointForObjectLambdaInput{} } - output = &GetBucketLifecycleConfigurationOutput{} + output = &GetAccessPointForObjectLambdaOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetBucketLifecycleConfiguration API operation for AWS S3 Control. -// -// This action gets an Amazon S3 on Outposts bucket's lifecycle configuration. -// To get an S3 bucket's lifecycle configuration, see GetBucketLifecycleConfiguration -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) -// in the Amazon S3 API Reference. -// -// Returns the lifecycle configuration information set on the Outposts bucket. -// For more information, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) -// and for information about lifecycle configuration, see Object Lifecycle Management -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) -// in Amazon S3 User Guide. -// -// To use this action, you must have permission to perform the s3-outposts:GetLifecycleConfiguration -// action. The Outposts bucket owner has this permission, by default. The bucket -// owner can grant this permission to others. For more information about permissions, -// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). -// -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html#API_control_GetBucketLifecycleConfiguration_Examples) -// section. +// GetAccessPointForObjectLambda API operation for AWS S3 Control. // -// GetBucketLifecycleConfiguration has the following special error: +// Returns configuration information about the specified Object Lambda Access +// Point // -// - Error code: NoSuchLifecycleConfiguration Description: The lifecycle -// configuration does not exist. HTTP Status Code: 404 Not Found SOAP Fault -// Code Prefix: Client +// The following actions are related to GetAccessPointForObjectLambda: // -// The following actions are related to GetBucketLifecycleConfiguration: +// - CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html) // -// - PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html) +// - DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html) // -// - DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html) +// - ListAccessPointsForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.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 S3 Control's -// API operation GetBucketLifecycleConfiguration for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration -func (c *S3Control) GetBucketLifecycleConfiguration(input *GetBucketLifecycleConfigurationInput) (*GetBucketLifecycleConfigurationOutput, error) { - req, out := c.GetBucketLifecycleConfigurationRequest(input) +// API operation GetAccessPointForObjectLambda for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambda +func (c *S3Control) GetAccessPointForObjectLambda(input *GetAccessPointForObjectLambdaInput) (*GetAccessPointForObjectLambdaOutput, error) { + req, out := c.GetAccessPointForObjectLambdaRequest(input) return out, req.Send() } -// GetBucketLifecycleConfigurationWithContext is the same as GetBucketLifecycleConfiguration with the addition of +// GetAccessPointForObjectLambdaWithContext is the same as GetAccessPointForObjectLambda with the addition of // the ability to pass a context and additional request options. // -// See GetBucketLifecycleConfiguration for details on how to use this API operation. +// See GetAccessPointForObjectLambda for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetBucketLifecycleConfigurationWithContext(ctx aws.Context, input *GetBucketLifecycleConfigurationInput, opts ...request.Option) (*GetBucketLifecycleConfigurationOutput, error) { - req, out := c.GetBucketLifecycleConfigurationRequest(input) +func (c *S3Control) GetAccessPointForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointForObjectLambdaInput, opts ...request.Option) (*GetAccessPointForObjectLambdaOutput, error) { + req, out := c.GetAccessPointForObjectLambdaRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetBucketPolicy = "GetBucketPolicy" +const opGetAccessPointPolicy = "GetAccessPointPolicy" -// GetBucketPolicyRequest generates a "aws/request.Request" representing the -// client's request for the GetBucketPolicy operation. The "output" return +// GetAccessPointPolicyRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessPointPolicy 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 GetBucketPolicy for more information on using the GetBucketPolicy +// See GetAccessPointPolicy for more information on using the GetAccessPointPolicy // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetBucketPolicyRequest method. -// req, resp := client.GetBucketPolicyRequest(params) +// // Example sending a request using the GetAccessPointPolicyRequest method. +// req, resp := client.GetAccessPointPolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy -func (c *S3Control) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *request.Request, output *GetBucketPolicyOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy +func (c *S3Control) GetAccessPointPolicyRequest(input *GetAccessPointPolicyInput) (req *request.Request, output *GetAccessPointPolicyOutput) { op := &request.Operation{ - Name: opGetBucketPolicy, + Name: opGetAccessPointPolicy, HTTPMethod: "GET", - HTTPPath: "/v20180820/bucket/{name}/policy", + HTTPPath: "/v20180820/accesspoint/{name}/policy", } if input == nil { - input = &GetBucketPolicyInput{} + input = &GetAccessPointPolicyInput{} } - output = &GetBucketPolicyOutput{} + output = &GetAccessPointPolicyOutput{} req = c.newRequest(op, input, output) // update account id or check if provided input for account id member matches // the account id present in ARN @@ -3088,2092 +3800,1976 @@ func (c *S3Control) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *re return } -// GetBucketPolicy API operation for AWS S3 Control. -// -// This action gets a bucket policy for an Amazon S3 on Outposts bucket. To -// get a policy for an S3 bucket, see GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html) -// in the Amazon S3 API Reference. -// -// Returns the policy of a specified Outposts bucket. For more information, -// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) -// in the Amazon S3 User Guide. -// -// If you are using an identity other than the root user of the Amazon Web Services -// account that owns the bucket, the calling identity must have the GetBucketPolicy -// permissions on the specified bucket and belong to the bucket owner's account -// in order to use this action. -// -// Only users from Outposts bucket owner account with the right permissions -// can perform actions on an Outposts bucket. If you don't have s3-outposts:GetBucketPolicy -// permissions or you're not using an identity that belongs to the bucket owner's -// account, Amazon S3 returns a 403 Access Denied error. -// -// As a security precaution, the root user of the Amazon Web Services account -// that owns a bucket can always use this action, even if the policy explicitly -// denies the root user the ability to perform this action. -// -// For more information about bucket policies, see Using Bucket Policies and -// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). -// -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html#API_control_GetBucketPolicy_Examples) -// section. +// GetAccessPointPolicy API operation for AWS S3 Control. // -// The following actions are related to GetBucketPolicy: +// Returns the access point policy associated with the specified access point. // -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) +// The following actions are related to GetAccessPointPolicy: // -// - PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html) +// - PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html) // -// - DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html) +// - DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.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 S3 Control's -// API operation GetBucketPolicy for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy -func (c *S3Control) GetBucketPolicy(input *GetBucketPolicyInput) (*GetBucketPolicyOutput, error) { - req, out := c.GetBucketPolicyRequest(input) +// API operation GetAccessPointPolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy +func (c *S3Control) GetAccessPointPolicy(input *GetAccessPointPolicyInput) (*GetAccessPointPolicyOutput, error) { + req, out := c.GetAccessPointPolicyRequest(input) return out, req.Send() } -// GetBucketPolicyWithContext is the same as GetBucketPolicy with the addition of +// GetAccessPointPolicyWithContext is the same as GetAccessPointPolicy with the addition of // the ability to pass a context and additional request options. // -// See GetBucketPolicy for details on how to use this API operation. +// See GetAccessPointPolicy for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetBucketPolicyWithContext(ctx aws.Context, input *GetBucketPolicyInput, opts ...request.Option) (*GetBucketPolicyOutput, error) { - req, out := c.GetBucketPolicyRequest(input) +func (c *S3Control) GetAccessPointPolicyWithContext(ctx aws.Context, input *GetAccessPointPolicyInput, opts ...request.Option) (*GetAccessPointPolicyOutput, error) { + req, out := c.GetAccessPointPolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetBucketReplication = "GetBucketReplication" +const opGetAccessPointPolicyForObjectLambda = "GetAccessPointPolicyForObjectLambda" -// GetBucketReplicationRequest generates a "aws/request.Request" representing the -// client's request for the GetBucketReplication operation. The "output" return +// GetAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessPointPolicyForObjectLambda 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 GetBucketReplication for more information on using the GetBucketReplication +// See GetAccessPointPolicyForObjectLambda for more information on using the GetAccessPointPolicyForObjectLambda // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetBucketReplicationRequest method. -// req, resp := client.GetBucketReplicationRequest(params) +// // Example sending a request using the GetAccessPointPolicyForObjectLambdaRequest method. +// req, resp := client.GetAccessPointPolicyForObjectLambdaRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketReplication -func (c *S3Control) GetBucketReplicationRequest(input *GetBucketReplicationInput) (req *request.Request, output *GetBucketReplicationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambda +func (c *S3Control) GetAccessPointPolicyForObjectLambdaRequest(input *GetAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *GetAccessPointPolicyForObjectLambdaOutput) { op := &request.Operation{ - Name: opGetBucketReplication, + Name: opGetAccessPointPolicyForObjectLambda, HTTPMethod: "GET", - HTTPPath: "/v20180820/bucket/{name}/replication", + HTTPPath: "/v20180820/accesspointforobjectlambda/{name}/policy", } if input == nil { - input = &GetBucketReplicationInput{} + input = &GetAccessPointPolicyForObjectLambdaInput{} } - output = &GetBucketReplicationOutput{} + output = &GetAccessPointPolicyForObjectLambdaOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetBucketReplication API operation for AWS S3 Control. -// -// This operation gets an Amazon S3 on Outposts bucket's replication configuration. -// To get an S3 bucket's replication configuration, see GetBucketReplication -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) -// in the Amazon S3 API Reference. -// -// Returns the replication configuration of an S3 on Outposts bucket. For more -// information about S3 on Outposts, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) -// in the Amazon S3 User Guide. For information about S3 replication on Outposts -// configuration, see Replicating objects for S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsReplication.html) -// in the Amazon S3 User Guide. -// -// It can take a while to propagate PUT or DELETE requests for a replication -// configuration to all S3 on Outposts systems. Therefore, the replication configuration -// that's returned by a GET request soon after a PUT or DELETE request might -// return a more recent result than what's on the Outpost. If an Outpost is -// offline, the delay in updating the replication configuration on that Outpost -// can be significant. -// -// This action requires permissions for the s3-outposts:GetReplicationConfiguration -// action. The Outposts bucket owner has this permission by default and can -// grant it to others. For more information about permissions, see Setting up -// IAM with S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsIAM.html) -// and Managing access to S3 on Outposts bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsBucketPolicy.html) -// in the Amazon S3 User Guide. -// -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketReplication.html#API_control_GetBucketReplication_Examples) -// section. -// -// If you include the Filter element in a replication configuration, you must -// also include the DeleteMarkerReplication, Status, and Priority elements. -// The response also returns those elements. +// GetAccessPointPolicyForObjectLambda API operation for AWS S3 Control. // -// For information about S3 on Outposts replication failure reasons, see Replication -// failure reasons (https://docs.aws.amazon.com/AmazonS3/latest/userguide/outposts-replication-eventbridge.html#outposts-replication-failure-codes) -// in the Amazon S3 User Guide. +// Returns the resource policy for an Object Lambda Access Point. // -// The following operations are related to GetBucketReplication: +// The following actions are related to GetAccessPointPolicyForObjectLambda: // -// - PutBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketReplication.html) +// - DeleteAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html) // -// - DeleteBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketReplication.html) +// - PutAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicyForObjectLambda.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 S3 Control's -// API operation GetBucketReplication for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketReplication -func (c *S3Control) GetBucketReplication(input *GetBucketReplicationInput) (*GetBucketReplicationOutput, error) { - req, out := c.GetBucketReplicationRequest(input) +// API operation GetAccessPointPolicyForObjectLambda for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambda +func (c *S3Control) GetAccessPointPolicyForObjectLambda(input *GetAccessPointPolicyForObjectLambdaInput) (*GetAccessPointPolicyForObjectLambdaOutput, error) { + req, out := c.GetAccessPointPolicyForObjectLambdaRequest(input) return out, req.Send() } -// GetBucketReplicationWithContext is the same as GetBucketReplication with the addition of +// GetAccessPointPolicyForObjectLambdaWithContext is the same as GetAccessPointPolicyForObjectLambda with the addition of // the ability to pass a context and additional request options. // -// See GetBucketReplication for details on how to use this API operation. +// See GetAccessPointPolicyForObjectLambda for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetBucketReplicationWithContext(ctx aws.Context, input *GetBucketReplicationInput, opts ...request.Option) (*GetBucketReplicationOutput, error) { - req, out := c.GetBucketReplicationRequest(input) +func (c *S3Control) GetAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*GetAccessPointPolicyForObjectLambdaOutput, error) { + req, out := c.GetAccessPointPolicyForObjectLambdaRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetBucketTagging = "GetBucketTagging" +const opGetAccessPointPolicyStatus = "GetAccessPointPolicyStatus" -// GetBucketTaggingRequest generates a "aws/request.Request" representing the -// client's request for the GetBucketTagging operation. The "output" return +// GetAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessPointPolicyStatus 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 GetBucketTagging for more information on using the GetBucketTagging +// See GetAccessPointPolicyStatus for more information on using the GetAccessPointPolicyStatus // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetBucketTaggingRequest method. -// req, resp := client.GetBucketTaggingRequest(params) +// // Example sending a request using the GetAccessPointPolicyStatusRequest method. +// req, resp := client.GetAccessPointPolicyStatusRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging -func (c *S3Control) GetBucketTaggingRequest(input *GetBucketTaggingInput) (req *request.Request, output *GetBucketTaggingOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus +func (c *S3Control) GetAccessPointPolicyStatusRequest(input *GetAccessPointPolicyStatusInput) (req *request.Request, output *GetAccessPointPolicyStatusOutput) { op := &request.Operation{ - Name: opGetBucketTagging, + Name: opGetAccessPointPolicyStatus, HTTPMethod: "GET", - HTTPPath: "/v20180820/bucket/{name}/tagging", + HTTPPath: "/v20180820/accesspoint/{name}/policyStatus", } if input == nil { - input = &GetBucketTaggingInput{} + input = &GetAccessPointPolicyStatusInput{} } - output = &GetBucketTaggingOutput{} + output = &GetAccessPointPolicyStatusOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetBucketTagging API operation for AWS S3 Control. -// -// This action gets an Amazon S3 on Outposts bucket's tags. To get an S3 bucket -// tags, see GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) -// in the Amazon S3 API Reference. +// GetAccessPointPolicyStatus API operation for AWS S3 Control. // -// Returns the tag set associated with the Outposts bucket. For more information, -// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) +// Indicates whether the specified access point currently has a policy that +// allows public access. For more information about public access through access +// points, see Managing Data Access with Amazon S3 access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) // in the Amazon S3 User Guide. // -// To use this action, you must have permission to perform the GetBucketTagging -// action. By default, the bucket owner has this permission and can grant this -// permission to others. -// -// GetBucketTagging has the following special error: -// -// - Error code: NoSuchTagSetError Description: There is no tag set associated -// with the bucket. -// -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html#API_control_GetBucketTagging_Examples) -// section. -// -// The following actions are related to GetBucketTagging: -// -// - PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html) -// -// - DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.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 S3 Control's -// API operation GetBucketTagging for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging -func (c *S3Control) GetBucketTagging(input *GetBucketTaggingInput) (*GetBucketTaggingOutput, error) { - req, out := c.GetBucketTaggingRequest(input) +// API operation GetAccessPointPolicyStatus for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus +func (c *S3Control) GetAccessPointPolicyStatus(input *GetAccessPointPolicyStatusInput) (*GetAccessPointPolicyStatusOutput, error) { + req, out := c.GetAccessPointPolicyStatusRequest(input) return out, req.Send() } -// GetBucketTaggingWithContext is the same as GetBucketTagging with the addition of +// GetAccessPointPolicyStatusWithContext is the same as GetAccessPointPolicyStatus with the addition of // the ability to pass a context and additional request options. // -// See GetBucketTagging for details on how to use this API operation. +// See GetAccessPointPolicyStatus for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetBucketTaggingWithContext(ctx aws.Context, input *GetBucketTaggingInput, opts ...request.Option) (*GetBucketTaggingOutput, error) { - req, out := c.GetBucketTaggingRequest(input) +func (c *S3Control) GetAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusInput, opts ...request.Option) (*GetAccessPointPolicyStatusOutput, error) { + req, out := c.GetAccessPointPolicyStatusRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetBucketVersioning = "GetBucketVersioning" +const opGetAccessPointPolicyStatusForObjectLambda = "GetAccessPointPolicyStatusForObjectLambda" -// GetBucketVersioningRequest generates a "aws/request.Request" representing the -// client's request for the GetBucketVersioning operation. The "output" return +// GetAccessPointPolicyStatusForObjectLambdaRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessPointPolicyStatusForObjectLambda 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 GetBucketVersioning for more information on using the GetBucketVersioning +// See GetAccessPointPolicyStatusForObjectLambda for more information on using the GetAccessPointPolicyStatusForObjectLambda // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetBucketVersioningRequest method. -// req, resp := client.GetBucketVersioningRequest(params) +// // Example sending a request using the GetAccessPointPolicyStatusForObjectLambdaRequest method. +// req, resp := client.GetAccessPointPolicyStatusForObjectLambdaRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketVersioning -func (c *S3Control) GetBucketVersioningRequest(input *GetBucketVersioningInput) (req *request.Request, output *GetBucketVersioningOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambda +func (c *S3Control) GetAccessPointPolicyStatusForObjectLambdaRequest(input *GetAccessPointPolicyStatusForObjectLambdaInput) (req *request.Request, output *GetAccessPointPolicyStatusForObjectLambdaOutput) { op := &request.Operation{ - Name: opGetBucketVersioning, + Name: opGetAccessPointPolicyStatusForObjectLambda, HTTPMethod: "GET", - HTTPPath: "/v20180820/bucket/{name}/versioning", + HTTPPath: "/v20180820/accesspointforobjectlambda/{name}/policyStatus", } if input == nil { - input = &GetBucketVersioningInput{} + input = &GetAccessPointPolicyStatusForObjectLambdaInput{} } - output = &GetBucketVersioningOutput{} + output = &GetAccessPointPolicyStatusForObjectLambdaOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetBucketVersioning API operation for AWS S3 Control. -// -// This operation returns the versioning state for S3 on Outposts buckets only. -// To return the versioning state for an S3 bucket, see GetBucketVersioning -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) -// in the Amazon S3 API Reference. -// -// Returns the versioning state for an S3 on Outposts bucket. With S3 Versioning, -// you can save multiple distinct copies of your objects and recover from unintended -// user actions and application failures. -// -// If you've never set versioning on your bucket, it has no versioning state. -// In that case, the GetBucketVersioning request does not return a versioning -// state value. -// -// For more information about versioning, see Versioning (https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html) -// in the Amazon S3 User Guide. -// -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketVersioning.html#API_control_GetBucketVersioning_Examples) -// section. -// -// The following operations are related to GetBucketVersioning for S3 on Outposts. -// -// - PutBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketVersioning.html) -// -// - PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html) +// GetAccessPointPolicyStatusForObjectLambda API operation for AWS S3 Control. // -// - GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html) +// Returns the status of the resource policy associated with an Object Lambda +// Access Point. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's -// API operation GetBucketVersioning for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketVersioning -func (c *S3Control) GetBucketVersioning(input *GetBucketVersioningInput) (*GetBucketVersioningOutput, error) { - req, out := c.GetBucketVersioningRequest(input) +// API operation GetAccessPointPolicyStatusForObjectLambda for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambda +func (c *S3Control) GetAccessPointPolicyStatusForObjectLambda(input *GetAccessPointPolicyStatusForObjectLambdaInput) (*GetAccessPointPolicyStatusForObjectLambdaOutput, error) { + req, out := c.GetAccessPointPolicyStatusForObjectLambdaRequest(input) return out, req.Send() } -// GetBucketVersioningWithContext is the same as GetBucketVersioning with the addition of +// GetAccessPointPolicyStatusForObjectLambdaWithContext is the same as GetAccessPointPolicyStatusForObjectLambda with the addition of // the ability to pass a context and additional request options. // -// See GetBucketVersioning for details on how to use this API operation. +// See GetAccessPointPolicyStatusForObjectLambda for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetBucketVersioningWithContext(ctx aws.Context, input *GetBucketVersioningInput, opts ...request.Option) (*GetBucketVersioningOutput, error) { - req, out := c.GetBucketVersioningRequest(input) +func (c *S3Control) GetAccessPointPolicyStatusForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusForObjectLambdaInput, opts ...request.Option) (*GetAccessPointPolicyStatusForObjectLambdaOutput, error) { + req, out := c.GetAccessPointPolicyStatusForObjectLambdaRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetJobTagging = "GetJobTagging" +const opGetBucket = "GetBucket" -// GetJobTaggingRequest generates a "aws/request.Request" representing the -// client's request for the GetJobTagging operation. The "output" return +// GetBucketRequest generates a "aws/request.Request" representing the +// client's request for the GetBucket 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 GetJobTagging for more information on using the GetJobTagging +// See GetBucket for more information on using the GetBucket // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetJobTaggingRequest method. -// req, resp := client.GetJobTaggingRequest(params) +// // Example sending a request using the GetBucketRequest method. +// req, resp := client.GetBucketRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging -func (c *S3Control) GetJobTaggingRequest(input *GetJobTaggingInput) (req *request.Request, output *GetJobTaggingOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket +func (c *S3Control) GetBucketRequest(input *GetBucketInput) (req *request.Request, output *GetBucketOutput) { op := &request.Operation{ - Name: opGetJobTagging, + Name: opGetBucket, HTTPMethod: "GET", - HTTPPath: "/v20180820/jobs/{id}/tagging", + HTTPPath: "/v20180820/bucket/{name}", } if input == nil { - input = &GetJobTaggingInput{} + input = &GetBucketInput{} } - output = &GetJobTaggingOutput{} + output = &GetBucketOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetJobTagging API operation for AWS S3 Control. +// GetBucket API operation for AWS S3 Control. // -// Returns the tags on an S3 Batch Operations job. To use the GetJobTagging -// operation, you must have permission to perform the s3:GetJobTagging action. -// For more information, see Controlling access and labeling jobs using tags -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) +// Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon +// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // -// Related actions include: +// If you are using an identity other than the root user of the Amazon Web Services +// account that owns the Outposts bucket, the calling identity must have the +// s3-outposts:GetBucket permissions on the specified Outposts bucket and belong +// to the Outposts bucket owner's account in order to use this action. Only +// users from Outposts bucket owner account with the right permissions can perform +// actions on an Outposts bucket. // -// - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// If you don't have s3-outposts:GetBucket permissions or you're not using an +// identity that belongs to the bucket owner's account, Amazon S3 returns a +// 403 Access Denied error. // -// - PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html) +// The following actions are related to GetBucket for Amazon S3 on Outposts: // -// - DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html) +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html#API_control_GetBucket_Examples) +// section. +// +// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) +// +// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html) +// +// - DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.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 S3 Control's -// API operation GetJobTagging for usage and error information. -// -// Returned Error Codes: -// -// - ErrCodeInternalServiceException "InternalServiceException" -// -// - ErrCodeTooManyRequestsException "TooManyRequestsException" -// -// - ErrCodeNotFoundException "NotFoundException" -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging -func (c *S3Control) GetJobTagging(input *GetJobTaggingInput) (*GetJobTaggingOutput, error) { - req, out := c.GetJobTaggingRequest(input) +// API operation GetBucket for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket +func (c *S3Control) GetBucket(input *GetBucketInput) (*GetBucketOutput, error) { + req, out := c.GetBucketRequest(input) return out, req.Send() } -// GetJobTaggingWithContext is the same as GetJobTagging with the addition of +// GetBucketWithContext is the same as GetBucket with the addition of // the ability to pass a context and additional request options. // -// See GetJobTagging for details on how to use this API operation. +// See GetBucket for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetJobTaggingWithContext(ctx aws.Context, input *GetJobTaggingInput, opts ...request.Option) (*GetJobTaggingOutput, error) { - req, out := c.GetJobTaggingRequest(input) +func (c *S3Control) GetBucketWithContext(ctx aws.Context, input *GetBucketInput, opts ...request.Option) (*GetBucketOutput, error) { + req, out := c.GetBucketRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetMultiRegionAccessPoint = "GetMultiRegionAccessPoint" +const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration" -// GetMultiRegionAccessPointRequest generates a "aws/request.Request" representing the -// client's request for the GetMultiRegionAccessPoint operation. The "output" return +// GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketLifecycleConfiguration 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 GetMultiRegionAccessPoint for more information on using the GetMultiRegionAccessPoint +// See GetBucketLifecycleConfiguration for more information on using the GetBucketLifecycleConfiguration // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetMultiRegionAccessPointRequest method. -// req, resp := client.GetMultiRegionAccessPointRequest(params) +// // Example sending a request using the GetBucketLifecycleConfigurationRequest method. +// req, resp := client.GetBucketLifecycleConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPoint -func (c *S3Control) GetMultiRegionAccessPointRequest(input *GetMultiRegionAccessPointInput) (req *request.Request, output *GetMultiRegionAccessPointOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration +func (c *S3Control) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleConfigurationInput) (req *request.Request, output *GetBucketLifecycleConfigurationOutput) { op := &request.Operation{ - Name: opGetMultiRegionAccessPoint, + Name: opGetBucketLifecycleConfiguration, HTTPMethod: "GET", - HTTPPath: "/v20180820/mrap/instances/{name+}", + HTTPPath: "/v20180820/bucket/{name}/lifecycleconfiguration", } if input == nil { - input = &GetMultiRegionAccessPointInput{} + input = &GetBucketLifecycleConfigurationInput{} } - output = &GetMultiRegionAccessPointOutput{} + output = &GetBucketLifecycleConfigurationOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) - req.Handlers.Build.PushBackNamed(request.NamedHandler{ - Name: "contentMd5Handler", - Fn: checksum.AddBodyContentMD5Handler, - }) return } -// GetMultiRegionAccessPoint API operation for AWS S3 Control. +// GetBucketLifecycleConfiguration API operation for AWS S3 Control. // -// Returns configuration information about the specified Multi-Region Access -// Point. +// This action gets an Amazon S3 on Outposts bucket's lifecycle configuration. +// To get an S3 bucket's lifecycle configuration, see GetBucketLifecycleConfiguration +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) +// in the Amazon S3 API Reference. // -// This action will always be routed to the US West (Oregon) Region. For more -// information about the restrictions around managing Multi-Region Access Points, -// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) -// in the Amazon S3 User Guide. +// Returns the lifecycle configuration information set on the Outposts bucket. +// For more information, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) +// and for information about lifecycle configuration, see Object Lifecycle Management +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) +// in Amazon S3 User Guide. // -// The following actions are related to GetMultiRegionAccessPoint: +// To use this action, you must have permission to perform the s3-outposts:GetLifecycleConfiguration +// action. The Outposts bucket owner has this permission, by default. The bucket +// owner can grant this permission to others. For more information about permissions, +// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) +// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). // -// - CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html#API_control_GetBucketLifecycleConfiguration_Examples) +// section. // -// - DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) +// GetBucketLifecycleConfiguration has the following special error: // -// - DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) +// - Error code: NoSuchLifecycleConfiguration Description: The lifecycle +// configuration does not exist. HTTP Status Code: 404 Not Found SOAP Fault +// Code Prefix: Client // -// - ListMultiRegionAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html) +// The following actions are related to GetBucketLifecycleConfiguration: +// +// - PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html) +// +// - DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.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 S3 Control's -// API operation GetMultiRegionAccessPoint for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPoint -func (c *S3Control) GetMultiRegionAccessPoint(input *GetMultiRegionAccessPointInput) (*GetMultiRegionAccessPointOutput, error) { - req, out := c.GetMultiRegionAccessPointRequest(input) +// API operation GetBucketLifecycleConfiguration for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration +func (c *S3Control) GetBucketLifecycleConfiguration(input *GetBucketLifecycleConfigurationInput) (*GetBucketLifecycleConfigurationOutput, error) { + req, out := c.GetBucketLifecycleConfigurationRequest(input) return out, req.Send() } -// GetMultiRegionAccessPointWithContext is the same as GetMultiRegionAccessPoint with the addition of +// GetBucketLifecycleConfigurationWithContext is the same as GetBucketLifecycleConfiguration with the addition of // the ability to pass a context and additional request options. // -// See GetMultiRegionAccessPoint for details on how to use this API operation. +// See GetBucketLifecycleConfiguration for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetMultiRegionAccessPointWithContext(ctx aws.Context, input *GetMultiRegionAccessPointInput, opts ...request.Option) (*GetMultiRegionAccessPointOutput, error) { - req, out := c.GetMultiRegionAccessPointRequest(input) +func (c *S3Control) GetBucketLifecycleConfigurationWithContext(ctx aws.Context, input *GetBucketLifecycleConfigurationInput, opts ...request.Option) (*GetBucketLifecycleConfigurationOutput, error) { + req, out := c.GetBucketLifecycleConfigurationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetMultiRegionAccessPointPolicy = "GetMultiRegionAccessPointPolicy" +const opGetBucketPolicy = "GetBucketPolicy" -// GetMultiRegionAccessPointPolicyRequest generates a "aws/request.Request" representing the -// client's request for the GetMultiRegionAccessPointPolicy operation. The "output" return +// GetBucketPolicyRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketPolicy 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 GetMultiRegionAccessPointPolicy for more information on using the GetMultiRegionAccessPointPolicy +// See GetBucketPolicy for more information on using the GetBucketPolicy // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetMultiRegionAccessPointPolicyRequest method. -// req, resp := client.GetMultiRegionAccessPointPolicyRequest(params) +// // Example sending a request using the GetBucketPolicyRequest method. +// req, resp := client.GetBucketPolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicy -func (c *S3Control) GetMultiRegionAccessPointPolicyRequest(input *GetMultiRegionAccessPointPolicyInput) (req *request.Request, output *GetMultiRegionAccessPointPolicyOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy +func (c *S3Control) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *request.Request, output *GetBucketPolicyOutput) { op := &request.Operation{ - Name: opGetMultiRegionAccessPointPolicy, + Name: opGetBucketPolicy, HTTPMethod: "GET", - HTTPPath: "/v20180820/mrap/instances/{name+}/policy", + HTTPPath: "/v20180820/bucket/{name}/policy", } if input == nil { - input = &GetMultiRegionAccessPointPolicyInput{} + input = &GetBucketPolicyInput{} } - output = &GetMultiRegionAccessPointPolicyOutput{} + output = &GetBucketPolicyOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) - req.Handlers.Build.PushBackNamed(request.NamedHandler{ - Name: "contentMd5Handler", - Fn: checksum.AddBodyContentMD5Handler, - }) return } -// GetMultiRegionAccessPointPolicy API operation for AWS S3 Control. +// GetBucketPolicy API operation for AWS S3 Control. // -// Returns the access control policy of the specified Multi-Region Access Point. +// This action gets a bucket policy for an Amazon S3 on Outposts bucket. To +// get a policy for an S3 bucket, see GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html) +// in the Amazon S3 API Reference. // -// This action will always be routed to the US West (Oregon) Region. For more -// information about the restrictions around managing Multi-Region Access Points, -// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// Returns the policy of a specified Outposts bucket. For more information, +// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // -// The following actions are related to GetMultiRegionAccessPointPolicy: +// If you are using an identity other than the root user of the Amazon Web Services +// account that owns the bucket, the calling identity must have the GetBucketPolicy +// permissions on the specified bucket and belong to the bucket owner's account +// in order to use this action. // -// - GetMultiRegionAccessPointPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html) +// Only users from Outposts bucket owner account with the right permissions +// can perform actions on an Outposts bucket. If you don't have s3-outposts:GetBucketPolicy +// permissions or you're not using an identity that belongs to the bucket owner's +// account, Amazon S3 returns a 403 Access Denied error. // -// - PutMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html) +// As a security precaution, the root user of the Amazon Web Services account +// that owns a bucket can always use this action, even if the policy explicitly +// denies the root user the ability to perform this action. +// +// For more information about bucket policies, see Using Bucket Policies and +// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html#API_control_GetBucketPolicy_Examples) +// section. +// +// The following actions are related to GetBucketPolicy: +// +// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) +// +// - PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html) +// +// - DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.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 S3 Control's -// API operation GetMultiRegionAccessPointPolicy for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicy -func (c *S3Control) GetMultiRegionAccessPointPolicy(input *GetMultiRegionAccessPointPolicyInput) (*GetMultiRegionAccessPointPolicyOutput, error) { - req, out := c.GetMultiRegionAccessPointPolicyRequest(input) +// API operation GetBucketPolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy +func (c *S3Control) GetBucketPolicy(input *GetBucketPolicyInput) (*GetBucketPolicyOutput, error) { + req, out := c.GetBucketPolicyRequest(input) return out, req.Send() } -// GetMultiRegionAccessPointPolicyWithContext is the same as GetMultiRegionAccessPointPolicy with the addition of +// GetBucketPolicyWithContext is the same as GetBucketPolicy with the addition of // the ability to pass a context and additional request options. // -// See GetMultiRegionAccessPointPolicy for details on how to use this API operation. +// See GetBucketPolicy for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetMultiRegionAccessPointPolicyWithContext(ctx aws.Context, input *GetMultiRegionAccessPointPolicyInput, opts ...request.Option) (*GetMultiRegionAccessPointPolicyOutput, error) { - req, out := c.GetMultiRegionAccessPointPolicyRequest(input) +func (c *S3Control) GetBucketPolicyWithContext(ctx aws.Context, input *GetBucketPolicyInput, opts ...request.Option) (*GetBucketPolicyOutput, error) { + req, out := c.GetBucketPolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetMultiRegionAccessPointPolicyStatus = "GetMultiRegionAccessPointPolicyStatus" +const opGetBucketReplication = "GetBucketReplication" -// GetMultiRegionAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the -// client's request for the GetMultiRegionAccessPointPolicyStatus operation. The "output" return +// GetBucketReplicationRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketReplication 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 GetMultiRegionAccessPointPolicyStatus for more information on using the GetMultiRegionAccessPointPolicyStatus +// See GetBucketReplication for more information on using the GetBucketReplication // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetMultiRegionAccessPointPolicyStatusRequest method. -// req, resp := client.GetMultiRegionAccessPointPolicyStatusRequest(params) +// // Example sending a request using the GetBucketReplicationRequest method. +// req, resp := client.GetBucketReplicationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicyStatus -func (c *S3Control) GetMultiRegionAccessPointPolicyStatusRequest(input *GetMultiRegionAccessPointPolicyStatusInput) (req *request.Request, output *GetMultiRegionAccessPointPolicyStatusOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketReplication +func (c *S3Control) GetBucketReplicationRequest(input *GetBucketReplicationInput) (req *request.Request, output *GetBucketReplicationOutput) { op := &request.Operation{ - Name: opGetMultiRegionAccessPointPolicyStatus, + Name: opGetBucketReplication, HTTPMethod: "GET", - HTTPPath: "/v20180820/mrap/instances/{name+}/policystatus", + HTTPPath: "/v20180820/bucket/{name}/replication", } if input == nil { - input = &GetMultiRegionAccessPointPolicyStatusInput{} + input = &GetBucketReplicationInput{} } - output = &GetMultiRegionAccessPointPolicyStatusOutput{} + output = &GetBucketReplicationOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) - req.Handlers.Build.PushBackNamed(request.NamedHandler{ - Name: "contentMd5Handler", - Fn: checksum.AddBodyContentMD5Handler, - }) return } -// GetMultiRegionAccessPointPolicyStatus API operation for AWS S3 Control. +// GetBucketReplication API operation for AWS S3 Control. // -// Indicates whether the specified Multi-Region Access Point has an access control -// policy that allows public access. +// This operation gets an Amazon S3 on Outposts bucket's replication configuration. +// To get an S3 bucket's replication configuration, see GetBucketReplication +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) +// in the Amazon S3 API Reference. // -// This action will always be routed to the US West (Oregon) Region. For more -// information about the restrictions around managing Multi-Region Access Points, -// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// Returns the replication configuration of an S3 on Outposts bucket. For more +// information about S3 on Outposts, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) +// in the Amazon S3 User Guide. For information about S3 replication on Outposts +// configuration, see Replicating objects for S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsReplication.html) // in the Amazon S3 User Guide. // -// The following actions are related to GetMultiRegionAccessPointPolicyStatus: +// It can take a while to propagate PUT or DELETE requests for a replication +// configuration to all S3 on Outposts systems. Therefore, the replication configuration +// that's returned by a GET request soon after a PUT or DELETE request might +// return a more recent result than what's on the Outpost. If an Outpost is +// offline, the delay in updating the replication configuration on that Outpost +// can be significant. // -// - GetMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html) +// This action requires permissions for the s3-outposts:GetReplicationConfiguration +// action. The Outposts bucket owner has this permission by default and can +// grant it to others. For more information about permissions, see Setting up +// IAM with S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsIAM.html) +// and Managing access to S3 on Outposts bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsBucketPolicy.html) +// in the Amazon S3 User Guide. // -// - PutMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html) +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketReplication.html#API_control_GetBucketReplication_Examples) +// section. +// +// If you include the Filter element in a replication configuration, you must +// also include the DeleteMarkerReplication, Status, and Priority elements. +// The response also returns those elements. +// +// For information about S3 on Outposts replication failure reasons, see Replication +// failure reasons (https://docs.aws.amazon.com/AmazonS3/latest/userguide/outposts-replication-eventbridge.html#outposts-replication-failure-codes) +// in the Amazon S3 User Guide. +// +// The following operations are related to GetBucketReplication: +// +// - PutBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketReplication.html) +// +// - DeleteBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketReplication.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 S3 Control's -// API operation GetMultiRegionAccessPointPolicyStatus for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicyStatus -func (c *S3Control) GetMultiRegionAccessPointPolicyStatus(input *GetMultiRegionAccessPointPolicyStatusInput) (*GetMultiRegionAccessPointPolicyStatusOutput, error) { - req, out := c.GetMultiRegionAccessPointPolicyStatusRequest(input) +// API operation GetBucketReplication for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketReplication +func (c *S3Control) GetBucketReplication(input *GetBucketReplicationInput) (*GetBucketReplicationOutput, error) { + req, out := c.GetBucketReplicationRequest(input) return out, req.Send() } -// GetMultiRegionAccessPointPolicyStatusWithContext is the same as GetMultiRegionAccessPointPolicyStatus with the addition of +// GetBucketReplicationWithContext is the same as GetBucketReplication with the addition of // the ability to pass a context and additional request options. // -// See GetMultiRegionAccessPointPolicyStatus for details on how to use this API operation. +// See GetBucketReplication for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetMultiRegionAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetMultiRegionAccessPointPolicyStatusInput, opts ...request.Option) (*GetMultiRegionAccessPointPolicyStatusOutput, error) { - req, out := c.GetMultiRegionAccessPointPolicyStatusRequest(input) +func (c *S3Control) GetBucketReplicationWithContext(ctx aws.Context, input *GetBucketReplicationInput, opts ...request.Option) (*GetBucketReplicationOutput, error) { + req, out := c.GetBucketReplicationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetMultiRegionAccessPointRoutes = "GetMultiRegionAccessPointRoutes" +const opGetBucketTagging = "GetBucketTagging" -// GetMultiRegionAccessPointRoutesRequest generates a "aws/request.Request" representing the -// client's request for the GetMultiRegionAccessPointRoutes operation. The "output" return +// GetBucketTaggingRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketTagging 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 GetMultiRegionAccessPointRoutes for more information on using the GetMultiRegionAccessPointRoutes +// See GetBucketTagging for more information on using the GetBucketTagging // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetMultiRegionAccessPointRoutesRequest method. -// req, resp := client.GetMultiRegionAccessPointRoutesRequest(params) +// // Example sending a request using the GetBucketTaggingRequest method. +// req, resp := client.GetBucketTaggingRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointRoutes -func (c *S3Control) GetMultiRegionAccessPointRoutesRequest(input *GetMultiRegionAccessPointRoutesInput) (req *request.Request, output *GetMultiRegionAccessPointRoutesOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging +func (c *S3Control) GetBucketTaggingRequest(input *GetBucketTaggingInput) (req *request.Request, output *GetBucketTaggingOutput) { op := &request.Operation{ - Name: opGetMultiRegionAccessPointRoutes, + Name: opGetBucketTagging, HTTPMethod: "GET", - HTTPPath: "/v20180820/mrap/instances/{mrap+}/routes", + HTTPPath: "/v20180820/bucket/{name}/tagging", } if input == nil { - input = &GetMultiRegionAccessPointRoutesInput{} + input = &GetBucketTaggingInput{} } - output = &GetMultiRegionAccessPointRoutesOutput{} + output = &GetBucketTaggingOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) - req.Handlers.Build.PushBackNamed(request.NamedHandler{ - Name: "contentMd5Handler", - Fn: checksum.AddBodyContentMD5Handler, - }) return } -// GetMultiRegionAccessPointRoutes API operation for AWS S3 Control. +// GetBucketTagging API operation for AWS S3 Control. // -// Returns the routing configuration for a Multi-Region Access Point, indicating -// which Regions are active or passive. +// This action gets an Amazon S3 on Outposts bucket's tags. To get an S3 bucket +// tags, see GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) +// in the Amazon S3 API Reference. // -// To obtain routing control changes and failover requests, use the Amazon S3 -// failover control infrastructure endpoints in these five Amazon Web Services -// Regions: +// Returns the tag set associated with the Outposts bucket. For more information, +// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) +// in the Amazon S3 User Guide. // -// - us-east-1 +// To use this action, you must have permission to perform the GetBucketTagging +// action. By default, the bucket owner has this permission and can grant this +// permission to others. // -// - us-west-2 +// GetBucketTagging has the following special error: // -// - ap-southeast-2 +// - Error code: NoSuchTagSetError Description: There is no tag set associated +// with the bucket. // -// - ap-northeast-1 +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html#API_control_GetBucketTagging_Examples) +// section. // -// - eu-west-1 +// The following actions are related to GetBucketTagging: // -// Your Amazon S3 bucket does not need to be in these five Regions. +// - PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html) +// +// - DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.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 S3 Control's -// API operation GetMultiRegionAccessPointRoutes for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointRoutes -func (c *S3Control) GetMultiRegionAccessPointRoutes(input *GetMultiRegionAccessPointRoutesInput) (*GetMultiRegionAccessPointRoutesOutput, error) { - req, out := c.GetMultiRegionAccessPointRoutesRequest(input) +// API operation GetBucketTagging for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging +func (c *S3Control) GetBucketTagging(input *GetBucketTaggingInput) (*GetBucketTaggingOutput, error) { + req, out := c.GetBucketTaggingRequest(input) return out, req.Send() } -// GetMultiRegionAccessPointRoutesWithContext is the same as GetMultiRegionAccessPointRoutes with the addition of +// GetBucketTaggingWithContext is the same as GetBucketTagging with the addition of // the ability to pass a context and additional request options. // -// See GetMultiRegionAccessPointRoutes for details on how to use this API operation. +// See GetBucketTagging for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetMultiRegionAccessPointRoutesWithContext(ctx aws.Context, input *GetMultiRegionAccessPointRoutesInput, opts ...request.Option) (*GetMultiRegionAccessPointRoutesOutput, error) { - req, out := c.GetMultiRegionAccessPointRoutesRequest(input) +func (c *S3Control) GetBucketTaggingWithContext(ctx aws.Context, input *GetBucketTaggingInput, opts ...request.Option) (*GetBucketTaggingOutput, error) { + req, out := c.GetBucketTaggingRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetPublicAccessBlock = "GetPublicAccessBlock" +const opGetBucketVersioning = "GetBucketVersioning" -// GetPublicAccessBlockRequest generates a "aws/request.Request" representing the -// client's request for the GetPublicAccessBlock operation. The "output" return +// GetBucketVersioningRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketVersioning 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 GetPublicAccessBlock for more information on using the GetPublicAccessBlock +// See GetBucketVersioning for more information on using the GetBucketVersioning // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetPublicAccessBlockRequest method. -// req, resp := client.GetPublicAccessBlockRequest(params) +// // Example sending a request using the GetBucketVersioningRequest method. +// req, resp := client.GetBucketVersioningRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock -func (c *S3Control) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req *request.Request, output *GetPublicAccessBlockOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketVersioning +func (c *S3Control) GetBucketVersioningRequest(input *GetBucketVersioningInput) (req *request.Request, output *GetBucketVersioningOutput) { op := &request.Operation{ - Name: opGetPublicAccessBlock, + Name: opGetBucketVersioning, HTTPMethod: "GET", - HTTPPath: "/v20180820/configuration/publicAccessBlock", + HTTPPath: "/v20180820/bucket/{name}/versioning", } if input == nil { - input = &GetPublicAccessBlockInput{} + input = &GetBucketVersioningInput{} } - output = &GetPublicAccessBlockOutput{} + output = &GetBucketVersioningOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetPublicAccessBlock API operation for AWS S3 Control. +// GetBucketVersioning API operation for AWS S3 Control. // -// Retrieves the PublicAccessBlock configuration for an Amazon Web Services -// account. For more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). +// This operation returns the versioning state for S3 on Outposts buckets only. +// To return the versioning state for an S3 bucket, see GetBucketVersioning +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) +// in the Amazon S3 API Reference. // -// Related actions include: +// Returns the versioning state for an S3 on Outposts bucket. With S3 Versioning, +// you can save multiple distinct copies of your objects and recover from unintended +// user actions and application failures. // -// - DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html) +// If you've never set versioning on your bucket, it has no versioning state. +// In that case, the GetBucketVersioning request does not return a versioning +// state value. // -// - PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html) +// For more information about versioning, see Versioning (https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html) +// in the Amazon S3 User Guide. +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketVersioning.html#API_control_GetBucketVersioning_Examples) +// section. +// +// The following operations are related to GetBucketVersioning for S3 on Outposts. +// +// - PutBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketVersioning.html) +// +// - PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html) +// +// - GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.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 S3 Control's -// API operation GetPublicAccessBlock for usage and error information. -// -// Returned Error Codes: -// - ErrCodeNoSuchPublicAccessBlockConfiguration "NoSuchPublicAccessBlockConfiguration" -// Amazon S3 throws this exception if you make a GetPublicAccessBlock request -// against an account that doesn't have a PublicAccessBlockConfiguration set. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock -func (c *S3Control) GetPublicAccessBlock(input *GetPublicAccessBlockInput) (*GetPublicAccessBlockOutput, error) { - req, out := c.GetPublicAccessBlockRequest(input) +// API operation GetBucketVersioning for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketVersioning +func (c *S3Control) GetBucketVersioning(input *GetBucketVersioningInput) (*GetBucketVersioningOutput, error) { + req, out := c.GetBucketVersioningRequest(input) return out, req.Send() } -// GetPublicAccessBlockWithContext is the same as GetPublicAccessBlock with the addition of +// GetBucketVersioningWithContext is the same as GetBucketVersioning with the addition of // the ability to pass a context and additional request options. // -// See GetPublicAccessBlock for details on how to use this API operation. +// See GetBucketVersioning for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetPublicAccessBlockWithContext(ctx aws.Context, input *GetPublicAccessBlockInput, opts ...request.Option) (*GetPublicAccessBlockOutput, error) { - req, out := c.GetPublicAccessBlockRequest(input) +func (c *S3Control) GetBucketVersioningWithContext(ctx aws.Context, input *GetBucketVersioningInput, opts ...request.Option) (*GetBucketVersioningOutput, error) { + req, out := c.GetBucketVersioningRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetStorageLensConfiguration = "GetStorageLensConfiguration" +const opGetDataAccess = "GetDataAccess" -// GetStorageLensConfigurationRequest generates a "aws/request.Request" representing the -// client's request for the GetStorageLensConfiguration operation. The "output" return +// GetDataAccessRequest generates a "aws/request.Request" representing the +// client's request for the GetDataAccess 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 GetStorageLensConfiguration for more information on using the GetStorageLensConfiguration +// See GetDataAccess for more information on using the GetDataAccess // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetStorageLensConfigurationRequest method. -// req, resp := client.GetStorageLensConfigurationRequest(params) +// // Example sending a request using the GetDataAccessRequest method. +// req, resp := client.GetDataAccessRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration -func (c *S3Control) GetStorageLensConfigurationRequest(input *GetStorageLensConfigurationInput) (req *request.Request, output *GetStorageLensConfigurationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetDataAccess +func (c *S3Control) GetDataAccessRequest(input *GetDataAccessInput) (req *request.Request, output *GetDataAccessOutput) { op := &request.Operation{ - Name: opGetStorageLensConfiguration, + Name: opGetDataAccess, HTTPMethod: "GET", - HTTPPath: "/v20180820/storagelens/{storagelensid}", + HTTPPath: "/v20180820/accessgrantsinstance/dataaccess", } if input == nil { - input = &GetStorageLensConfigurationInput{} + input = &GetDataAccessInput{} } - output = &GetStorageLensConfigurationOutput{} + output = &GetDataAccessOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// GetStorageLensConfiguration API operation for AWS S3 Control. +// GetDataAccess API operation for AWS S3 Control. // -// Gets the Amazon S3 Storage Lens configuration. For more information, see -// Assessing your storage activity and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) -// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, -// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) -// in the Amazon S3 User Guide. +// Returns a temporary access credential from S3 Access Grants to the grantee +// or client application. The temporary credential (https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) +// is an Amazon Web Services STS token that grants them access to the S3 data. // -// To use this action, you must have permission to perform the s3:GetStorageLensConfiguration -// action. For more information, see Setting permissions to use Amazon S3 Storage -// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html) -// in the Amazon S3 User Guide. +// # Permissions +// +// You must have the s3:GetDataAccess permission to use this operation. +// +// # Additional Permissions +// +// The IAM role that S3 Access Grants assumes must have the following permissions +// specified in the trust policy when registering the location: sts:AssumeRole, +// for directory users or groups sts:SetContext, and for IAM users or roles +// sts:SourceIdentity. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's -// API operation GetStorageLensConfiguration for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration -func (c *S3Control) GetStorageLensConfiguration(input *GetStorageLensConfigurationInput) (*GetStorageLensConfigurationOutput, error) { - req, out := c.GetStorageLensConfigurationRequest(input) +// API operation GetDataAccess for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetDataAccess +func (c *S3Control) GetDataAccess(input *GetDataAccessInput) (*GetDataAccessOutput, error) { + req, out := c.GetDataAccessRequest(input) return out, req.Send() } -// GetStorageLensConfigurationWithContext is the same as GetStorageLensConfiguration with the addition of +// GetDataAccessWithContext is the same as GetDataAccess with the addition of // the ability to pass a context and additional request options. // -// See GetStorageLensConfiguration for details on how to use this API operation. +// See GetDataAccess for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetStorageLensConfigurationWithContext(ctx aws.Context, input *GetStorageLensConfigurationInput, opts ...request.Option) (*GetStorageLensConfigurationOutput, error) { - req, out := c.GetStorageLensConfigurationRequest(input) +func (c *S3Control) GetDataAccessWithContext(ctx aws.Context, input *GetDataAccessInput, opts ...request.Option) (*GetDataAccessOutput, error) { + req, out := c.GetDataAccessRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetStorageLensConfigurationTagging = "GetStorageLensConfigurationTagging" +const opGetJobTagging = "GetJobTagging" -// GetStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the -// client's request for the GetStorageLensConfigurationTagging operation. The "output" return +// GetJobTaggingRequest generates a "aws/request.Request" representing the +// client's request for the GetJobTagging 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 GetStorageLensConfigurationTagging for more information on using the GetStorageLensConfigurationTagging +// See GetJobTagging for more information on using the GetJobTagging // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetStorageLensConfigurationTaggingRequest method. -// req, resp := client.GetStorageLensConfigurationTaggingRequest(params) +// // Example sending a request using the GetJobTaggingRequest method. +// req, resp := client.GetJobTaggingRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging -func (c *S3Control) GetStorageLensConfigurationTaggingRequest(input *GetStorageLensConfigurationTaggingInput) (req *request.Request, output *GetStorageLensConfigurationTaggingOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging +func (c *S3Control) GetJobTaggingRequest(input *GetJobTaggingInput) (req *request.Request, output *GetJobTaggingOutput) { op := &request.Operation{ - Name: opGetStorageLensConfigurationTagging, + Name: opGetJobTagging, HTTPMethod: "GET", - HTTPPath: "/v20180820/storagelens/{storagelensid}/tagging", + HTTPPath: "/v20180820/jobs/{id}/tagging", } if input == nil { - input = &GetStorageLensConfigurationTaggingInput{} + input = &GetJobTaggingInput{} } - output = &GetStorageLensConfigurationTaggingOutput{} + output = &GetJobTaggingOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetStorageLensConfigurationTagging API operation for AWS S3 Control. +// GetJobTagging API operation for AWS S3 Control. // -// Gets the tags of Amazon S3 Storage Lens configuration. For more information -// about S3 Storage Lens, see Assessing your storage activity and usage with -// Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) +// Returns the tags on an S3 Batch Operations job. To use the GetJobTagging +// operation, you must have permission to perform the s3:GetJobTagging action. +// For more information, see Controlling access and labeling jobs using tags +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) // in the Amazon S3 User Guide. // -// To use this action, you must have permission to perform the s3:GetStorageLensConfigurationTagging -// action. For more information, see Setting permissions to use Amazon S3 Storage -// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html) -// in the Amazon S3 User Guide. +// Related actions include: +// +// - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// +// - PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html) +// +// - DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.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 S3 Control's -// API operation GetStorageLensConfigurationTagging for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging -func (c *S3Control) GetStorageLensConfigurationTagging(input *GetStorageLensConfigurationTaggingInput) (*GetStorageLensConfigurationTaggingOutput, error) { - req, out := c.GetStorageLensConfigurationTaggingRequest(input) +// API operation GetJobTagging for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeInternalServiceException "InternalServiceException" +// +// - ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// - ErrCodeNotFoundException "NotFoundException" +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging +func (c *S3Control) GetJobTagging(input *GetJobTaggingInput) (*GetJobTaggingOutput, error) { + req, out := c.GetJobTaggingRequest(input) return out, req.Send() } -// GetStorageLensConfigurationTaggingWithContext is the same as GetStorageLensConfigurationTagging with the addition of +// GetJobTaggingWithContext is the same as GetJobTagging with the addition of // the ability to pass a context and additional request options. // -// See GetStorageLensConfigurationTagging for details on how to use this API operation. +// See GetJobTagging for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *GetStorageLensConfigurationTaggingInput, opts ...request.Option) (*GetStorageLensConfigurationTaggingOutput, error) { - req, out := c.GetStorageLensConfigurationTaggingRequest(input) +func (c *S3Control) GetJobTaggingWithContext(ctx aws.Context, input *GetJobTaggingInput, opts ...request.Option) (*GetJobTaggingOutput, error) { + req, out := c.GetJobTaggingRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetStorageLensGroup = "GetStorageLensGroup" +const opGetMultiRegionAccessPoint = "GetMultiRegionAccessPoint" -// GetStorageLensGroupRequest generates a "aws/request.Request" representing the -// client's request for the GetStorageLensGroup operation. The "output" return +// GetMultiRegionAccessPointRequest generates a "aws/request.Request" representing the +// client's request for the GetMultiRegionAccessPoint 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 GetStorageLensGroup for more information on using the GetStorageLensGroup +// See GetMultiRegionAccessPoint for more information on using the GetMultiRegionAccessPoint // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the GetStorageLensGroupRequest method. -// req, resp := client.GetStorageLensGroupRequest(params) +// // Example sending a request using the GetMultiRegionAccessPointRequest method. +// req, resp := client.GetMultiRegionAccessPointRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensGroup -func (c *S3Control) GetStorageLensGroupRequest(input *GetStorageLensGroupInput) (req *request.Request, output *GetStorageLensGroupOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPoint +func (c *S3Control) GetMultiRegionAccessPointRequest(input *GetMultiRegionAccessPointInput) (req *request.Request, output *GetMultiRegionAccessPointOutput) { op := &request.Operation{ - Name: opGetStorageLensGroup, + Name: opGetMultiRegionAccessPoint, HTTPMethod: "GET", - HTTPPath: "/v20180820/storagelensgroup/{name}", + HTTPPath: "/v20180820/mrap/instances/{name+}", } if input == nil { - input = &GetStorageLensGroupInput{} + input = &GetMultiRegionAccessPointInput{} } - output = &GetStorageLensGroupOutput{} + output = &GetMultiRegionAccessPointOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// GetStorageLensGroup API operation for AWS S3 Control. +// GetMultiRegionAccessPoint API operation for AWS S3 Control. // -// Retrieves the Storage Lens group configuration details. +// Returns configuration information about the specified Multi-Region Access +// Point. // -// To use this operation, you must have the permission to perform the s3:GetStorageLensGroup -// action. For more information about the required Storage Lens Groups permissions, -// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). +// This action will always be routed to the US West (Oregon) Region. For more +// information about the restrictions around managing Multi-Region Access Points, +// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. // -// For information about Storage Lens groups errors, see List of Amazon S3 Storage -// Lens error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3LensErrorCodeList). +// The following actions are related to GetMultiRegionAccessPoint: +// +// - CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) +// +// - DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) +// +// - DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) +// +// - ListMultiRegionAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.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 S3 Control's -// API operation GetStorageLensGroup for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensGroup -func (c *S3Control) GetStorageLensGroup(input *GetStorageLensGroupInput) (*GetStorageLensGroupOutput, error) { - req, out := c.GetStorageLensGroupRequest(input) +// API operation GetMultiRegionAccessPoint for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPoint +func (c *S3Control) GetMultiRegionAccessPoint(input *GetMultiRegionAccessPointInput) (*GetMultiRegionAccessPointOutput, error) { + req, out := c.GetMultiRegionAccessPointRequest(input) return out, req.Send() } -// GetStorageLensGroupWithContext is the same as GetStorageLensGroup with the addition of +// GetMultiRegionAccessPointWithContext is the same as GetMultiRegionAccessPoint with the addition of // the ability to pass a context and additional request options. // -// See GetStorageLensGroup for details on how to use this API operation. +// See GetMultiRegionAccessPoint for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetStorageLensGroupWithContext(ctx aws.Context, input *GetStorageLensGroupInput, opts ...request.Option) (*GetStorageLensGroupOutput, error) { - req, out := c.GetStorageLensGroupRequest(input) +func (c *S3Control) GetMultiRegionAccessPointWithContext(ctx aws.Context, input *GetMultiRegionAccessPointInput, opts ...request.Option) (*GetMultiRegionAccessPointOutput, error) { + req, out := c.GetMultiRegionAccessPointRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opListAccessPoints = "ListAccessPoints" +const opGetMultiRegionAccessPointPolicy = "GetMultiRegionAccessPointPolicy" -// ListAccessPointsRequest generates a "aws/request.Request" representing the -// client's request for the ListAccessPoints operation. The "output" return +// GetMultiRegionAccessPointPolicyRequest generates a "aws/request.Request" representing the +// client's request for the GetMultiRegionAccessPointPolicy 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 ListAccessPoints for more information on using the ListAccessPoints +// See GetMultiRegionAccessPointPolicy for more information on using the GetMultiRegionAccessPointPolicy // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ListAccessPointsRequest method. -// req, resp := client.ListAccessPointsRequest(params) +// // Example sending a request using the GetMultiRegionAccessPointPolicyRequest method. +// req, resp := client.GetMultiRegionAccessPointPolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints -func (c *S3Control) ListAccessPointsRequest(input *ListAccessPointsInput) (req *request.Request, output *ListAccessPointsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicy +func (c *S3Control) GetMultiRegionAccessPointPolicyRequest(input *GetMultiRegionAccessPointPolicyInput) (req *request.Request, output *GetMultiRegionAccessPointPolicyOutput) { op := &request.Operation{ - Name: opListAccessPoints, + Name: opGetMultiRegionAccessPointPolicy, HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspoint", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, + HTTPPath: "/v20180820/mrap/instances/{name+}/policy", } if input == nil { - input = &ListAccessPointsInput{} + input = &GetMultiRegionAccessPointPolicyInput{} } - output = &ListAccessPointsOutput{} + output = &GetMultiRegionAccessPointPolicyOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// ListAccessPoints API operation for AWS S3 Control. -// -// Returns a list of the access points that are owned by the current account -// that's associated with the specified bucket. You can retrieve up to 1000 -// access points per call. If the specified bucket has more than 1,000 access -// points (or the number specified in maxResults, whichever is less), the response -// will include a continuation token that you can use to list the additional -// access points. +// GetMultiRegionAccessPointPolicy API operation for AWS S3 Control. // -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples) -// section. +// Returns the access control policy of the specified Multi-Region Access Point. // -// The following actions are related to ListAccessPoints: +// This action will always be routed to the US West (Oregon) Region. For more +// information about the restrictions around managing Multi-Region Access Points, +// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. // -// - CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html) +// The following actions are related to GetMultiRegionAccessPointPolicy: // -// - DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html) +// - GetMultiRegionAccessPointPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html) // -// - GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html) +// - PutMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.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 S3 Control's -// API operation ListAccessPoints for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints -func (c *S3Control) ListAccessPoints(input *ListAccessPointsInput) (*ListAccessPointsOutput, error) { - req, out := c.ListAccessPointsRequest(input) +// API operation GetMultiRegionAccessPointPolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicy +func (c *S3Control) GetMultiRegionAccessPointPolicy(input *GetMultiRegionAccessPointPolicyInput) (*GetMultiRegionAccessPointPolicyOutput, error) { + req, out := c.GetMultiRegionAccessPointPolicyRequest(input) return out, req.Send() } -// ListAccessPointsWithContext is the same as ListAccessPoints with the addition of +// GetMultiRegionAccessPointPolicyWithContext is the same as GetMultiRegionAccessPointPolicy with the addition of // the ability to pass a context and additional request options. // -// See ListAccessPoints for details on how to use this API operation. +// See GetMultiRegionAccessPointPolicy for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) ListAccessPointsWithContext(ctx aws.Context, input *ListAccessPointsInput, opts ...request.Option) (*ListAccessPointsOutput, error) { - req, out := c.ListAccessPointsRequest(input) +func (c *S3Control) GetMultiRegionAccessPointPolicyWithContext(ctx aws.Context, input *GetMultiRegionAccessPointPolicyInput, opts ...request.Option) (*GetMultiRegionAccessPointPolicyOutput, error) { + req, out := c.GetMultiRegionAccessPointPolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListAccessPointsPages iterates over the pages of a ListAccessPoints operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListAccessPoints 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 ListAccessPoints operation. -// pageNum := 0 -// err := client.ListAccessPointsPages(params, -// func(page *s3control.ListAccessPointsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -func (c *S3Control) ListAccessPointsPages(input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool) error { - return c.ListAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListAccessPointsPagesWithContext same as ListAccessPointsPages 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 *S3Control) ListAccessPointsPagesWithContext(ctx aws.Context, input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListAccessPointsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListAccessPointsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListAccessPointsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListAccessPointsForObjectLambda = "ListAccessPointsForObjectLambda" +const opGetMultiRegionAccessPointPolicyStatus = "GetMultiRegionAccessPointPolicyStatus" -// ListAccessPointsForObjectLambdaRequest generates a "aws/request.Request" representing the -// client's request for the ListAccessPointsForObjectLambda operation. The "output" return +// GetMultiRegionAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the +// client's request for the GetMultiRegionAccessPointPolicyStatus 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 ListAccessPointsForObjectLambda for more information on using the ListAccessPointsForObjectLambda +// See GetMultiRegionAccessPointPolicyStatus for more information on using the GetMultiRegionAccessPointPolicyStatus // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ListAccessPointsForObjectLambdaRequest method. -// req, resp := client.ListAccessPointsForObjectLambdaRequest(params) +// // Example sending a request using the GetMultiRegionAccessPointPolicyStatusRequest method. +// req, resp := client.GetMultiRegionAccessPointPolicyStatusRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambda -func (c *S3Control) ListAccessPointsForObjectLambdaRequest(input *ListAccessPointsForObjectLambdaInput) (req *request.Request, output *ListAccessPointsForObjectLambdaOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicyStatus +func (c *S3Control) GetMultiRegionAccessPointPolicyStatusRequest(input *GetMultiRegionAccessPointPolicyStatusInput) (req *request.Request, output *GetMultiRegionAccessPointPolicyStatusOutput) { op := &request.Operation{ - Name: opListAccessPointsForObjectLambda, + Name: opGetMultiRegionAccessPointPolicyStatus, HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspointforobjectlambda", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, + HTTPPath: "/v20180820/mrap/instances/{name+}/policystatus", } if input == nil { - input = &ListAccessPointsForObjectLambdaInput{} + input = &GetMultiRegionAccessPointPolicyStatusInput{} } - output = &ListAccessPointsForObjectLambdaOutput{} + output = &GetMultiRegionAccessPointPolicyStatusOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// ListAccessPointsForObjectLambda API operation for AWS S3 Control. +// GetMultiRegionAccessPointPolicyStatus API operation for AWS S3 Control. // -// Returns some or all (up to 1,000) access points associated with the Object -// Lambda Access Point per call. If there are more access points than what can -// be returned in one call, the response will include a continuation token that -// you can use to list the additional access points. +// Indicates whether the specified Multi-Region Access Point has an access control +// policy that allows public access. // -// The following actions are related to ListAccessPointsForObjectLambda: +// This action will always be routed to the US West (Oregon) Region. For more +// information about the restrictions around managing Multi-Region Access Points, +// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. // -// - CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html) +// The following actions are related to GetMultiRegionAccessPointPolicyStatus: // -// - DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html) +// - GetMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html) // -// - GetAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html) +// - PutMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.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 S3 Control's -// API operation ListAccessPointsForObjectLambda for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambda -func (c *S3Control) ListAccessPointsForObjectLambda(input *ListAccessPointsForObjectLambdaInput) (*ListAccessPointsForObjectLambdaOutput, error) { - req, out := c.ListAccessPointsForObjectLambdaRequest(input) +// API operation GetMultiRegionAccessPointPolicyStatus for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicyStatus +func (c *S3Control) GetMultiRegionAccessPointPolicyStatus(input *GetMultiRegionAccessPointPolicyStatusInput) (*GetMultiRegionAccessPointPolicyStatusOutput, error) { + req, out := c.GetMultiRegionAccessPointPolicyStatusRequest(input) return out, req.Send() } -// ListAccessPointsForObjectLambdaWithContext is the same as ListAccessPointsForObjectLambda with the addition of +// GetMultiRegionAccessPointPolicyStatusWithContext is the same as GetMultiRegionAccessPointPolicyStatus with the addition of // the ability to pass a context and additional request options. // -// See ListAccessPointsForObjectLambda for details on how to use this API operation. +// See GetMultiRegionAccessPointPolicyStatus for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) ListAccessPointsForObjectLambdaWithContext(ctx aws.Context, input *ListAccessPointsForObjectLambdaInput, opts ...request.Option) (*ListAccessPointsForObjectLambdaOutput, error) { - req, out := c.ListAccessPointsForObjectLambdaRequest(input) +func (c *S3Control) GetMultiRegionAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetMultiRegionAccessPointPolicyStatusInput, opts ...request.Option) (*GetMultiRegionAccessPointPolicyStatusOutput, error) { + req, out := c.GetMultiRegionAccessPointPolicyStatusRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListAccessPointsForObjectLambdaPages iterates over the pages of a ListAccessPointsForObjectLambda operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListAccessPointsForObjectLambda 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 ListAccessPointsForObjectLambda operation. -// pageNum := 0 -// err := client.ListAccessPointsForObjectLambdaPages(params, -// func(page *s3control.ListAccessPointsForObjectLambdaOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -func (c *S3Control) ListAccessPointsForObjectLambdaPages(input *ListAccessPointsForObjectLambdaInput, fn func(*ListAccessPointsForObjectLambdaOutput, bool) bool) error { - return c.ListAccessPointsForObjectLambdaPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListAccessPointsForObjectLambdaPagesWithContext same as ListAccessPointsForObjectLambdaPages 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 *S3Control) ListAccessPointsForObjectLambdaPagesWithContext(ctx aws.Context, input *ListAccessPointsForObjectLambdaInput, fn func(*ListAccessPointsForObjectLambdaOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListAccessPointsForObjectLambdaInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListAccessPointsForObjectLambdaRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListAccessPointsForObjectLambdaOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListJobs = "ListJobs" +const opGetMultiRegionAccessPointRoutes = "GetMultiRegionAccessPointRoutes" -// ListJobsRequest generates a "aws/request.Request" representing the -// client's request for the ListJobs operation. The "output" return +// GetMultiRegionAccessPointRoutesRequest generates a "aws/request.Request" representing the +// client's request for the GetMultiRegionAccessPointRoutes 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 +// See GetMultiRegionAccessPointRoutes for more information on using the GetMultiRegionAccessPointRoutes // API call, and error handling. // // This method is useful when you want to 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) +// // Example sending a request using the GetMultiRegionAccessPointRoutesRequest method. +// req, resp := client.GetMultiRegionAccessPointRoutesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs -func (c *S3Control) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointRoutes +func (c *S3Control) GetMultiRegionAccessPointRoutesRequest(input *GetMultiRegionAccessPointRoutesInput) (req *request.Request, output *GetMultiRegionAccessPointRoutesOutput) { op := &request.Operation{ - Name: opListJobs, + Name: opGetMultiRegionAccessPointRoutes, HTTPMethod: "GET", - HTTPPath: "/v20180820/jobs", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, + HTTPPath: "/v20180820/mrap/instances/{mrap+}/routes", } if input == nil { - input = &ListJobsInput{} + input = &GetMultiRegionAccessPointRoutesInput{} } - output = &ListJobsOutput{} + output = &GetMultiRegionAccessPointRoutesOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// ListJobs API operation for AWS S3 Control. +// GetMultiRegionAccessPointRoutes API operation for AWS S3 Control. // -// Lists current S3 Batch Operations jobs and jobs that have ended within the -// last 30 days for the Amazon Web Services account making the request. For -// more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) -// in the Amazon S3 User Guide. +// Returns the routing configuration for a Multi-Region Access Point, indicating +// which Regions are active or passive. // -// Related actions include: +// To obtain routing control changes and failover requests, use the Amazon S3 +// failover control infrastructure endpoints in these five Amazon Web Services +// Regions: // -// - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// - us-east-1 // -// - DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html) +// - us-west-2 // -// - UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html) +// - ap-southeast-2 // -// - UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html) +// - ap-northeast-1 +// +// - eu-west-1 +// +// Your Amazon S3 bucket does not need to be in these five Regions. // // Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's -// API operation ListJobs for usage and error information. -// -// Returned Error Codes: -// -// - ErrCodeInvalidRequestException "InvalidRequestException" -// -// - ErrCodeInternalServiceException "InternalServiceException" -// -// - ErrCodeInvalidNextTokenException "InvalidNextTokenException" -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs -func (c *S3Control) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) { - req, out := c.ListJobsRequest(input) +// API operation GetMultiRegionAccessPointRoutes for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointRoutes +func (c *S3Control) GetMultiRegionAccessPointRoutes(input *GetMultiRegionAccessPointRoutesInput) (*GetMultiRegionAccessPointRoutesOutput, error) { + req, out := c.GetMultiRegionAccessPointRoutesRequest(input) return out, req.Send() } -// ListJobsWithContext is the same as ListJobs with the addition of +// GetMultiRegionAccessPointRoutesWithContext is the same as GetMultiRegionAccessPointRoutes with the addition of // the ability to pass a context and additional request options. // -// See ListJobs for details on how to use this API operation. +// See GetMultiRegionAccessPointRoutes for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) { - req, out := c.ListJobsRequest(input) +func (c *S3Control) GetMultiRegionAccessPointRoutesWithContext(ctx aws.Context, input *GetMultiRegionAccessPointRoutesInput, opts ...request.Option) (*GetMultiRegionAccessPointRoutesOutput, error) { + req, out := c.GetMultiRegionAccessPointRoutesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListJobsPages iterates over the pages of a ListJobs operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListJobs method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListJobs operation. -// pageNum := 0 -// err := client.ListJobsPages(params, -// func(page *s3control.ListJobsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -func (c *S3Control) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error { - return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListJobsPagesWithContext same as ListJobsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *S3Control) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListJobsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListJobsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListMultiRegionAccessPoints = "ListMultiRegionAccessPoints" +const opGetPublicAccessBlock = "GetPublicAccessBlock" -// ListMultiRegionAccessPointsRequest generates a "aws/request.Request" representing the -// client's request for the ListMultiRegionAccessPoints operation. The "output" return +// GetPublicAccessBlockRequest generates a "aws/request.Request" representing the +// client's request for the GetPublicAccessBlock 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 ListMultiRegionAccessPoints for more information on using the ListMultiRegionAccessPoints +// See GetPublicAccessBlock for more information on using the GetPublicAccessBlock // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ListMultiRegionAccessPointsRequest method. -// req, resp := client.ListMultiRegionAccessPointsRequest(params) +// // Example sending a request using the GetPublicAccessBlockRequest method. +// req, resp := client.GetPublicAccessBlockRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListMultiRegionAccessPoints -func (c *S3Control) ListMultiRegionAccessPointsRequest(input *ListMultiRegionAccessPointsInput) (req *request.Request, output *ListMultiRegionAccessPointsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock +func (c *S3Control) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req *request.Request, output *GetPublicAccessBlockOutput) { op := &request.Operation{ - Name: opListMultiRegionAccessPoints, + Name: opGetPublicAccessBlock, HTTPMethod: "GET", - HTTPPath: "/v20180820/mrap/instances", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, + HTTPPath: "/v20180820/configuration/publicAccessBlock", } if input == nil { - input = &ListMultiRegionAccessPointsInput{} + input = &GetPublicAccessBlockInput{} } - output = &ListMultiRegionAccessPointsOutput{} + output = &GetPublicAccessBlockOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) - req.Handlers.Build.PushBackNamed(request.NamedHandler{ - Name: "contentMd5Handler", - Fn: checksum.AddBodyContentMD5Handler, - }) return } -// ListMultiRegionAccessPoints API operation for AWS S3 Control. -// -// Returns a list of the Multi-Region Access Points currently associated with -// the specified Amazon Web Services account. Each call can return up to 100 -// Multi-Region Access Points, the maximum number of Multi-Region Access Points -// that can be associated with a single account. -// -// This action will always be routed to the US West (Oregon) Region. For more -// information about the restrictions around managing Multi-Region Access Points, -// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) -// in the Amazon S3 User Guide. -// -// The following actions are related to ListMultiRegionAccessPoint: +// GetPublicAccessBlock API operation for AWS S3 Control. // -// - CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) +// Retrieves the PublicAccessBlock configuration for an Amazon Web Services +// account. For more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). // -// - DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) +// Related actions include: // -// - DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) +// - DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html) // -// - GetMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html) +// - PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.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 S3 Control's -// API operation ListMultiRegionAccessPoints for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListMultiRegionAccessPoints -func (c *S3Control) ListMultiRegionAccessPoints(input *ListMultiRegionAccessPointsInput) (*ListMultiRegionAccessPointsOutput, error) { - req, out := c.ListMultiRegionAccessPointsRequest(input) +// API operation GetPublicAccessBlock for usage and error information. +// +// Returned Error Codes: +// - ErrCodeNoSuchPublicAccessBlockConfiguration "NoSuchPublicAccessBlockConfiguration" +// Amazon S3 throws this exception if you make a GetPublicAccessBlock request +// against an account that doesn't have a PublicAccessBlockConfiguration set. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock +func (c *S3Control) GetPublicAccessBlock(input *GetPublicAccessBlockInput) (*GetPublicAccessBlockOutput, error) { + req, out := c.GetPublicAccessBlockRequest(input) return out, req.Send() } -// ListMultiRegionAccessPointsWithContext is the same as ListMultiRegionAccessPoints with the addition of +// GetPublicAccessBlockWithContext is the same as GetPublicAccessBlock with the addition of // the ability to pass a context and additional request options. // -// See ListMultiRegionAccessPoints for details on how to use this API operation. +// See GetPublicAccessBlock for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) ListMultiRegionAccessPointsWithContext(ctx aws.Context, input *ListMultiRegionAccessPointsInput, opts ...request.Option) (*ListMultiRegionAccessPointsOutput, error) { - req, out := c.ListMultiRegionAccessPointsRequest(input) +func (c *S3Control) GetPublicAccessBlockWithContext(ctx aws.Context, input *GetPublicAccessBlockInput, opts ...request.Option) (*GetPublicAccessBlockOutput, error) { + req, out := c.GetPublicAccessBlockRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListMultiRegionAccessPointsPages iterates over the pages of a ListMultiRegionAccessPoints operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListMultiRegionAccessPoints 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 ListMultiRegionAccessPoints operation. -// pageNum := 0 -// err := client.ListMultiRegionAccessPointsPages(params, -// func(page *s3control.ListMultiRegionAccessPointsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -func (c *S3Control) ListMultiRegionAccessPointsPages(input *ListMultiRegionAccessPointsInput, fn func(*ListMultiRegionAccessPointsOutput, bool) bool) error { - return c.ListMultiRegionAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListMultiRegionAccessPointsPagesWithContext same as ListMultiRegionAccessPointsPages 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 *S3Control) ListMultiRegionAccessPointsPagesWithContext(ctx aws.Context, input *ListMultiRegionAccessPointsInput, fn func(*ListMultiRegionAccessPointsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListMultiRegionAccessPointsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListMultiRegionAccessPointsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListMultiRegionAccessPointsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListRegionalBuckets = "ListRegionalBuckets" +const opGetStorageLensConfiguration = "GetStorageLensConfiguration" -// ListRegionalBucketsRequest generates a "aws/request.Request" representing the -// client's request for the ListRegionalBuckets operation. The "output" return +// GetStorageLensConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetStorageLensConfiguration 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 ListRegionalBuckets for more information on using the ListRegionalBuckets +// See GetStorageLensConfiguration for more information on using the GetStorageLensConfiguration // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ListRegionalBucketsRequest method. -// req, resp := client.ListRegionalBucketsRequest(params) +// // Example sending a request using the GetStorageLensConfigurationRequest method. +// req, resp := client.GetStorageLensConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets -func (c *S3Control) ListRegionalBucketsRequest(input *ListRegionalBucketsInput) (req *request.Request, output *ListRegionalBucketsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration +func (c *S3Control) GetStorageLensConfigurationRequest(input *GetStorageLensConfigurationInput) (req *request.Request, output *GetStorageLensConfigurationOutput) { op := &request.Operation{ - Name: opListRegionalBuckets, + Name: opGetStorageLensConfiguration, HTTPMethod: "GET", - HTTPPath: "/v20180820/bucket", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, + HTTPPath: "/v20180820/storagelens/{storagelensid}", } if input == nil { - input = &ListRegionalBucketsInput{} + input = &GetStorageLensConfigurationInput{} } - output = &ListRegionalBucketsOutput{} + output = &GetStorageLensConfigurationOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// ListRegionalBuckets API operation for AWS S3 Control. +// GetStorageLensConfiguration API operation for AWS S3 Control. // -// Returns a list of all Outposts buckets in an Outpost that are owned by the -// authenticated sender of the request. For more information, see Using Amazon -// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) +// Gets the Amazon S3 Storage Lens configuration. For more information, see +// Assessing your storage activity and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) +// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, +// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) // in the Amazon S3 User Guide. // -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your -// request, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html#API_control_ListRegionalBuckets_Examples) -// section. +// To use this action, you must have permission to perform the s3:GetStorageLensConfiguration +// action. For more information, see Setting permissions to use Amazon S3 Storage +// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html) +// in the Amazon S3 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation ListRegionalBuckets for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets -func (c *S3Control) ListRegionalBuckets(input *ListRegionalBucketsInput) (*ListRegionalBucketsOutput, error) { - req, out := c.ListRegionalBucketsRequest(input) +// API operation GetStorageLensConfiguration for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration +func (c *S3Control) GetStorageLensConfiguration(input *GetStorageLensConfigurationInput) (*GetStorageLensConfigurationOutput, error) { + req, out := c.GetStorageLensConfigurationRequest(input) return out, req.Send() } -// ListRegionalBucketsWithContext is the same as ListRegionalBuckets with the addition of +// GetStorageLensConfigurationWithContext is the same as GetStorageLensConfiguration with the addition of // the ability to pass a context and additional request options. // -// See ListRegionalBuckets for details on how to use this API operation. +// See GetStorageLensConfiguration for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) ListRegionalBucketsWithContext(ctx aws.Context, input *ListRegionalBucketsInput, opts ...request.Option) (*ListRegionalBucketsOutput, error) { - req, out := c.ListRegionalBucketsRequest(input) +func (c *S3Control) GetStorageLensConfigurationWithContext(ctx aws.Context, input *GetStorageLensConfigurationInput, opts ...request.Option) (*GetStorageLensConfigurationOutput, error) { + req, out := c.GetStorageLensConfigurationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListRegionalBucketsPages iterates over the pages of a ListRegionalBuckets operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. +const opGetStorageLensConfigurationTagging = "GetStorageLensConfigurationTagging" + +// GetStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the +// client's request for the GetStorageLensConfigurationTagging operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. // -// See ListRegionalBuckets method for more information on how to use this operation. +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. // -// Note: This operation can generate multiple requests to a service. +// See GetStorageLensConfigurationTagging for more information on using the GetStorageLensConfigurationTagging +// API call, and error handling. // -// // Example iterating over at most 3 pages of a ListRegionalBuckets operation. -// pageNum := 0 -// err := client.ListRegionalBucketsPages(params, -// func(page *s3control.ListRegionalBucketsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -func (c *S3Control) ListRegionalBucketsPages(input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool) error { - return c.ListRegionalBucketsPagesWithContext(aws.BackgroundContext(), input, fn) +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetStorageLensConfigurationTaggingRequest method. +// req, resp := client.GetStorageLensConfigurationTaggingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging +func (c *S3Control) GetStorageLensConfigurationTaggingRequest(input *GetStorageLensConfigurationTaggingInput) (req *request.Request, output *GetStorageLensConfigurationTaggingOutput) { + op := &request.Operation{ + Name: opGetStorageLensConfigurationTagging, + HTTPMethod: "GET", + HTTPPath: "/v20180820/storagelens/{storagelensid}/tagging", + } + + if input == nil { + input = &GetStorageLensConfigurationTaggingInput{} + } + + output = &GetStorageLensConfigurationTaggingOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return } -// ListRegionalBucketsPagesWithContext same as ListRegionalBucketsPages except -// it takes a Context and allows setting request options on the pages. +// GetStorageLensConfigurationTagging API operation for AWS S3 Control. +// +// Gets the tags of Amazon S3 Storage Lens configuration. For more information +// about S3 Storage Lens, see Assessing your storage activity and usage with +// Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) +// in the Amazon S3 User Guide. +// +// To use this action, you must have permission to perform the s3:GetStorageLensConfigurationTagging +// action. For more information, see Setting permissions to use Amazon S3 Storage +// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html) +// in the Amazon S3 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation GetStorageLensConfigurationTagging for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging +func (c *S3Control) GetStorageLensConfigurationTagging(input *GetStorageLensConfigurationTaggingInput) (*GetStorageLensConfigurationTaggingOutput, error) { + req, out := c.GetStorageLensConfigurationTaggingRequest(input) + return out, req.Send() +} + +// GetStorageLensConfigurationTaggingWithContext is the same as GetStorageLensConfigurationTagging with the addition of +// the ability to pass a context and additional request options. +// +// See GetStorageLensConfigurationTagging for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) ListRegionalBucketsPagesWithContext(ctx aws.Context, input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListRegionalBucketsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListRegionalBucketsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, +func (c *S3Control) GetStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *GetStorageLensConfigurationTaggingInput, opts ...request.Option) (*GetStorageLensConfigurationTaggingOutput, error) { + req, out := c.GetStorageLensConfigurationTaggingRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetStorageLensGroup = "GetStorageLensGroup" + +// GetStorageLensGroupRequest generates a "aws/request.Request" representing the +// client's request for the GetStorageLensGroup 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 GetStorageLensGroup for more information on using the GetStorageLensGroup +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetStorageLensGroupRequest method. +// req, resp := client.GetStorageLensGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensGroup +func (c *S3Control) GetStorageLensGroupRequest(input *GetStorageLensGroupInput) (req *request.Request, output *GetStorageLensGroupOutput) { + op := &request.Operation{ + Name: opGetStorageLensGroup, + HTTPMethod: "GET", + HTTPPath: "/v20180820/storagelensgroup/{name}", } - for p.Next() { - if !fn(p.Page().(*ListRegionalBucketsOutput), !p.HasNextPage()) { - break - } + if input == nil { + input = &GetStorageLensGroupInput{} } - return p.Err() + output = &GetStorageLensGroupOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return } -const opListStorageLensConfigurations = "ListStorageLensConfigurations" +// GetStorageLensGroup API operation for AWS S3 Control. +// +// Retrieves the Storage Lens group configuration details. +// +// To use this operation, you must have the permission to perform the s3:GetStorageLensGroup +// action. For more information about the required Storage Lens Groups permissions, +// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). +// +// For information about Storage Lens groups errors, see List of Amazon S3 Storage +// Lens error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3LensErrorCodeList). +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's +// API operation GetStorageLensGroup for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensGroup +func (c *S3Control) GetStorageLensGroup(input *GetStorageLensGroupInput) (*GetStorageLensGroupOutput, error) { + req, out := c.GetStorageLensGroupRequest(input) + return out, req.Send() +} -// ListStorageLensConfigurationsRequest generates a "aws/request.Request" representing the -// client's request for the ListStorageLensConfigurations operation. The "output" return +// GetStorageLensGroupWithContext is the same as GetStorageLensGroup with the addition of +// the ability to pass a context and additional request options. +// +// See GetStorageLensGroup for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) GetStorageLensGroupWithContext(ctx aws.Context, input *GetStorageLensGroupInput, opts ...request.Option) (*GetStorageLensGroupOutput, error) { + req, out := c.GetStorageLensGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListAccessGrants = "ListAccessGrants" + +// ListAccessGrantsRequest generates a "aws/request.Request" representing the +// client's request for the ListAccessGrants 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 ListStorageLensConfigurations for more information on using the ListStorageLensConfigurations +// See ListAccessGrants for more information on using the ListAccessGrants // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ListStorageLensConfigurationsRequest method. -// req, resp := client.ListStorageLensConfigurationsRequest(params) +// // Example sending a request using the ListAccessGrantsRequest method. +// req, resp := client.ListAccessGrantsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations -func (c *S3Control) ListStorageLensConfigurationsRequest(input *ListStorageLensConfigurationsInput) (req *request.Request, output *ListStorageLensConfigurationsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessGrants +func (c *S3Control) ListAccessGrantsRequest(input *ListAccessGrantsInput) (req *request.Request, output *ListAccessGrantsOutput) { op := &request.Operation{ - Name: opListStorageLensConfigurations, + Name: opListAccessGrants, HTTPMethod: "GET", - HTTPPath: "/v20180820/storagelens", + HTTPPath: "/v20180820/accessgrantsinstance/grants", Paginator: &request.Paginator{ InputTokens: []string{"NextToken"}, OutputTokens: []string{"NextToken"}, - LimitToken: "", + LimitToken: "MaxResults", TruncationToken: "", }, } if input == nil { - input = &ListStorageLensConfigurationsInput{} + input = &ListAccessGrantsInput{} } - output = &ListStorageLensConfigurationsOutput{} + output = &ListAccessGrantsOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// ListStorageLensConfigurations API operation for AWS S3 Control. +// ListAccessGrants API operation for AWS S3 Control. // -// Gets a list of Amazon S3 Storage Lens configurations. For more information -// about S3 Storage Lens, see Assessing your storage activity and usage with -// Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) -// in the Amazon S3 User Guide. +// Returns the list of access grants in your S3 Access Grants instance. // -// To use this action, you must have permission to perform the s3:ListStorageLensConfigurations -// action. For more information, see Setting permissions to use Amazon S3 Storage -// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html) -// in the Amazon S3 User Guide. +// # Permissions +// +// You must have the s3:ListAccessGrants permission to use this operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation ListStorageLensConfigurations for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations -func (c *S3Control) ListStorageLensConfigurations(input *ListStorageLensConfigurationsInput) (*ListStorageLensConfigurationsOutput, error) { - req, out := c.ListStorageLensConfigurationsRequest(input) +// API operation ListAccessGrants for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessGrants +func (c *S3Control) ListAccessGrants(input *ListAccessGrantsInput) (*ListAccessGrantsOutput, error) { + req, out := c.ListAccessGrantsRequest(input) return out, req.Send() } -// ListStorageLensConfigurationsWithContext is the same as ListStorageLensConfigurations with the addition of +// ListAccessGrantsWithContext is the same as ListAccessGrants with the addition of // the ability to pass a context and additional request options. // -// See ListStorageLensConfigurations for details on how to use this API operation. +// See ListAccessGrants for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) ListStorageLensConfigurationsWithContext(ctx aws.Context, input *ListStorageLensConfigurationsInput, opts ...request.Option) (*ListStorageLensConfigurationsOutput, error) { - req, out := c.ListStorageLensConfigurationsRequest(input) +func (c *S3Control) ListAccessGrantsWithContext(ctx aws.Context, input *ListAccessGrantsInput, opts ...request.Option) (*ListAccessGrantsOutput, error) { + req, out := c.ListAccessGrantsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListStorageLensConfigurationsPages iterates over the pages of a ListStorageLensConfigurations operation, +// ListAccessGrantsPages iterates over the pages of a ListAccessGrants operation, // calling the "fn" function with the response data for each page. To stop // iterating, return false from the fn function. // -// See ListStorageLensConfigurations method for more information on how to use this operation. +// See ListAccessGrants 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 ListStorageLensConfigurations operation. +// // Example iterating over at most 3 pages of a ListAccessGrants operation. // pageNum := 0 -// err := client.ListStorageLensConfigurationsPages(params, -// func(page *s3control.ListStorageLensConfigurationsOutput, lastPage bool) bool { +// err := client.ListAccessGrantsPages(params, +// func(page *s3control.ListAccessGrantsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) -func (c *S3Control) ListStorageLensConfigurationsPages(input *ListStorageLensConfigurationsInput, fn func(*ListStorageLensConfigurationsOutput, bool) bool) error { - return c.ListStorageLensConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn) +func (c *S3Control) ListAccessGrantsPages(input *ListAccessGrantsInput, fn func(*ListAccessGrantsOutput, bool) bool) error { + return c.ListAccessGrantsPagesWithContext(aws.BackgroundContext(), input, fn) } -// ListStorageLensConfigurationsPagesWithContext same as ListStorageLensConfigurationsPages except +// ListAccessGrantsPagesWithContext same as ListAccessGrantsPages 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 *S3Control) ListStorageLensConfigurationsPagesWithContext(ctx aws.Context, input *ListStorageLensConfigurationsInput, fn func(*ListStorageLensConfigurationsOutput, bool) bool, opts ...request.Option) error { +func (c *S3Control) ListAccessGrantsPagesWithContext(ctx aws.Context, input *ListAccessGrantsInput, fn func(*ListAccessGrantsOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { - var inCpy *ListStorageLensConfigurationsInput + var inCpy *ListAccessGrantsInput if input != nil { tmp := *input inCpy = &tmp } - req, _ := c.ListStorageLensConfigurationsRequest(inCpy) + req, _ := c.ListAccessGrantsRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil @@ -5181,7 +5777,7 @@ func (c *S3Control) ListStorageLensConfigurationsPagesWithContext(ctx aws.Contex } for p.Next() { - if !fn(p.Page().(*ListStorageLensConfigurationsOutput), !p.HasNextPage()) { + if !fn(p.Page().(*ListAccessGrantsOutput), !p.HasNextPage()) { break } } @@ -5189,130 +5785,133 @@ func (c *S3Control) ListStorageLensConfigurationsPagesWithContext(ctx aws.Contex return p.Err() } -const opListStorageLensGroups = "ListStorageLensGroups" +const opListAccessGrantsInstances = "ListAccessGrantsInstances" -// ListStorageLensGroupsRequest generates a "aws/request.Request" representing the -// client's request for the ListStorageLensGroups operation. The "output" return +// ListAccessGrantsInstancesRequest generates a "aws/request.Request" representing the +// client's request for the ListAccessGrantsInstances 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 ListStorageLensGroups for more information on using the ListStorageLensGroups +// See ListAccessGrantsInstances for more information on using the ListAccessGrantsInstances // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the ListStorageLensGroupsRequest method. -// req, resp := client.ListStorageLensGroupsRequest(params) +// // Example sending a request using the ListAccessGrantsInstancesRequest method. +// req, resp := client.ListAccessGrantsInstancesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensGroups -func (c *S3Control) ListStorageLensGroupsRequest(input *ListStorageLensGroupsInput) (req *request.Request, output *ListStorageLensGroupsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessGrantsInstances +func (c *S3Control) ListAccessGrantsInstancesRequest(input *ListAccessGrantsInstancesInput) (req *request.Request, output *ListAccessGrantsInstancesOutput) { op := &request.Operation{ - Name: opListStorageLensGroups, + Name: opListAccessGrantsInstances, HTTPMethod: "GET", - HTTPPath: "/v20180820/storagelensgroup", + HTTPPath: "/v20180820/accessgrantsinstances", Paginator: &request.Paginator{ InputTokens: []string{"NextToken"}, OutputTokens: []string{"NextToken"}, - LimitToken: "", + LimitToken: "MaxResults", TruncationToken: "", }, } if input == nil { - input = &ListStorageLensGroupsInput{} + input = &ListAccessGrantsInstancesInput{} } - output = &ListStorageLensGroupsOutput{} + output = &ListAccessGrantsInstancesOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// ListStorageLensGroups API operation for AWS S3 Control. +// ListAccessGrantsInstances API operation for AWS S3 Control. // -// Lists all the Storage Lens groups in the specified home Region. +// Returns a list of S3 Access Grants instances. An S3 Access Grants instance +// serves as a logical grouping for your individual access grants. You can only +// have one S3 Access Grants instance per Region per account. // -// To use this operation, you must have the permission to perform the s3:ListStorageLensGroups -// action. For more information about the required Storage Lens Groups permissions, -// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). +// # Permissions // -// For information about Storage Lens groups errors, see List of Amazon S3 Storage -// Lens error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3LensErrorCodeList). +// You must have the s3:ListAccessGrantsInstances permission to use this operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation ListStorageLensGroups for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensGroups -func (c *S3Control) ListStorageLensGroups(input *ListStorageLensGroupsInput) (*ListStorageLensGroupsOutput, error) { - req, out := c.ListStorageLensGroupsRequest(input) +// API operation ListAccessGrantsInstances for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessGrantsInstances +func (c *S3Control) ListAccessGrantsInstances(input *ListAccessGrantsInstancesInput) (*ListAccessGrantsInstancesOutput, error) { + req, out := c.ListAccessGrantsInstancesRequest(input) return out, req.Send() } -// ListStorageLensGroupsWithContext is the same as ListStorageLensGroups with the addition of +// ListAccessGrantsInstancesWithContext is the same as ListAccessGrantsInstances with the addition of // the ability to pass a context and additional request options. // -// See ListStorageLensGroups for details on how to use this API operation. +// See ListAccessGrantsInstances for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) ListStorageLensGroupsWithContext(ctx aws.Context, input *ListStorageLensGroupsInput, opts ...request.Option) (*ListStorageLensGroupsOutput, error) { - req, out := c.ListStorageLensGroupsRequest(input) +func (c *S3Control) ListAccessGrantsInstancesWithContext(ctx aws.Context, input *ListAccessGrantsInstancesInput, opts ...request.Option) (*ListAccessGrantsInstancesOutput, error) { + req, out := c.ListAccessGrantsInstancesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListStorageLensGroupsPages iterates over the pages of a ListStorageLensGroups operation, +// ListAccessGrantsInstancesPages iterates over the pages of a ListAccessGrantsInstances operation, // calling the "fn" function with the response data for each page. To stop // iterating, return false from the fn function. // -// See ListStorageLensGroups method for more information on how to use this operation. +// See ListAccessGrantsInstances 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 ListStorageLensGroups operation. +// // Example iterating over at most 3 pages of a ListAccessGrantsInstances operation. // pageNum := 0 -// err := client.ListStorageLensGroupsPages(params, -// func(page *s3control.ListStorageLensGroupsOutput, lastPage bool) bool { +// err := client.ListAccessGrantsInstancesPages(params, +// func(page *s3control.ListAccessGrantsInstancesOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) -func (c *S3Control) ListStorageLensGroupsPages(input *ListStorageLensGroupsInput, fn func(*ListStorageLensGroupsOutput, bool) bool) error { - return c.ListStorageLensGroupsPagesWithContext(aws.BackgroundContext(), input, fn) +func (c *S3Control) ListAccessGrantsInstancesPages(input *ListAccessGrantsInstancesInput, fn func(*ListAccessGrantsInstancesOutput, bool) bool) error { + return c.ListAccessGrantsInstancesPagesWithContext(aws.BackgroundContext(), input, fn) } -// ListStorageLensGroupsPagesWithContext same as ListStorageLensGroupsPages except +// ListAccessGrantsInstancesPagesWithContext same as ListAccessGrantsInstancesPages 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 *S3Control) ListStorageLensGroupsPagesWithContext(ctx aws.Context, input *ListStorageLensGroupsInput, fn func(*ListStorageLensGroupsOutput, bool) bool, opts ...request.Option) error { +func (c *S3Control) ListAccessGrantsInstancesPagesWithContext(ctx aws.Context, input *ListAccessGrantsInstancesInput, fn func(*ListAccessGrantsInstancesOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { - var inCpy *ListStorageLensGroupsInput + var inCpy *ListAccessGrantsInstancesInput if input != nil { tmp := *input inCpy = &tmp } - req, _ := c.ListStorageLensGroupsRequest(inCpy) + req, _ := c.ListAccessGrantsInstancesRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil @@ -5320,7 +5919,7 @@ func (c *S3Control) ListStorageLensGroupsPagesWithContext(ctx aws.Context, input } for p.Next() { - if !fn(p.Page().(*ListStorageLensGroupsOutput), !p.HasNextPage()) { + if !fn(p.Page().(*ListAccessGrantsInstancesOutput), !p.HasNextPage()) { break } } @@ -5328,392 +5927,643 @@ func (c *S3Control) ListStorageLensGroupsPagesWithContext(ctx aws.Context, input return p.Err() } -const opListTagsForResource = "ListTagsForResource" +const opListAccessGrantsLocations = "ListAccessGrantsLocations" -// ListTagsForResourceRequest generates a "aws/request.Request" representing the -// client's request for the ListTagsForResource operation. The "output" return +// ListAccessGrantsLocationsRequest generates a "aws/request.Request" representing the +// client's request for the ListAccessGrantsLocations 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 +// See ListAccessGrantsLocations for more information on using the ListAccessGrantsLocations // API call, and error handling. // // This method is useful when you want to 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) +// // Example sending a request using the ListAccessGrantsLocationsRequest method. +// req, resp := client.ListAccessGrantsLocationsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListTagsForResource -func (c *S3Control) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessGrantsLocations +func (c *S3Control) ListAccessGrantsLocationsRequest(input *ListAccessGrantsLocationsInput) (req *request.Request, output *ListAccessGrantsLocationsOutput) { op := &request.Operation{ - Name: opListTagsForResource, + Name: opListAccessGrantsLocations, HTTPMethod: "GET", - HTTPPath: "/v20180820/tags/{resourceArn+}", + HTTPPath: "/v20180820/accessgrantsinstance/locations", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { - input = &ListTagsForResourceInput{} + input = &ListAccessGrantsLocationsInput{} } - output = &ListTagsForResourceOutput{} + output = &ListAccessGrantsLocationsOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// ListTagsForResource API operation for AWS S3 Control. -// -// This operation allows you to list all the Amazon Web Services resource tags -// for the specified resource. +// ListAccessGrantsLocations API operation for AWS S3 Control. // -// To use this operation, you must have the permission to perform the s3:ListTagsForResource -// action. For more information about the required Storage Lens Groups permissions, -// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). +// Returns a list of the locations registered in your S3 Access Grants instance. // -// For information about S3 Tagging errors, see List of Amazon S3 Tagging error -// codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3TaggingErrorCodeList). +// # Permissions // -// This operation is only supported for S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups.html). +// You must have the s3:ListAccessGrantsLocations permission to use this operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation ListTagsForResource for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListTagsForResource -func (c *S3Control) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +// API operation ListAccessGrantsLocations for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessGrantsLocations +func (c *S3Control) ListAccessGrantsLocations(input *ListAccessGrantsLocationsInput) (*ListAccessGrantsLocationsOutput, error) { + req, out := c.ListAccessGrantsLocationsRequest(input) return out, req.Send() } -// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// ListAccessGrantsLocationsWithContext is the same as ListAccessGrantsLocations 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. +// See ListAccessGrantsLocations for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +func (c *S3Control) ListAccessGrantsLocationsWithContext(ctx aws.Context, input *ListAccessGrantsLocationsInput, opts ...request.Option) (*ListAccessGrantsLocationsOutput, error) { + req, out := c.ListAccessGrantsLocationsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutAccessPointConfigurationForObjectLambda = "PutAccessPointConfigurationForObjectLambda" +// ListAccessGrantsLocationsPages iterates over the pages of a ListAccessGrantsLocations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListAccessGrantsLocations 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 ListAccessGrantsLocations operation. +// pageNum := 0 +// err := client.ListAccessGrantsLocationsPages(params, +// func(page *s3control.ListAccessGrantsLocationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *S3Control) ListAccessGrantsLocationsPages(input *ListAccessGrantsLocationsInput, fn func(*ListAccessGrantsLocationsOutput, bool) bool) error { + return c.ListAccessGrantsLocationsPagesWithContext(aws.BackgroundContext(), input, fn) +} -// PutAccessPointConfigurationForObjectLambdaRequest generates a "aws/request.Request" representing the -// client's request for the PutAccessPointConfigurationForObjectLambda operation. The "output" return +// ListAccessGrantsLocationsPagesWithContext same as ListAccessGrantsLocationsPages 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 *S3Control) ListAccessGrantsLocationsPagesWithContext(ctx aws.Context, input *ListAccessGrantsLocationsInput, fn func(*ListAccessGrantsLocationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListAccessGrantsLocationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAccessGrantsLocationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListAccessGrantsLocationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListAccessPoints = "ListAccessPoints" + +// ListAccessPointsRequest generates a "aws/request.Request" representing the +// client's request for the ListAccessPoints 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 PutAccessPointConfigurationForObjectLambda for more information on using the PutAccessPointConfigurationForObjectLambda +// See ListAccessPoints for more information on using the ListAccessPoints // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutAccessPointConfigurationForObjectLambdaRequest method. -// req, resp := client.PutAccessPointConfigurationForObjectLambdaRequest(params) +// // Example sending a request using the ListAccessPointsRequest method. +// req, resp := client.ListAccessPointsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointConfigurationForObjectLambda -func (c *S3Control) PutAccessPointConfigurationForObjectLambdaRequest(input *PutAccessPointConfigurationForObjectLambdaInput) (req *request.Request, output *PutAccessPointConfigurationForObjectLambdaOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints +func (c *S3Control) ListAccessPointsRequest(input *ListAccessPointsInput) (req *request.Request, output *ListAccessPointsOutput) { op := &request.Operation{ - Name: opPutAccessPointConfigurationForObjectLambda, - HTTPMethod: "PUT", - HTTPPath: "/v20180820/accesspointforobjectlambda/{name}/configuration", + Name: opListAccessPoints, + HTTPMethod: "GET", + HTTPPath: "/v20180820/accesspoint", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { - input = &PutAccessPointConfigurationForObjectLambdaInput{} + input = &ListAccessPointsInput{} } - output = &PutAccessPointConfigurationForObjectLambdaOutput{} + output = &ListAccessPointsOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// PutAccessPointConfigurationForObjectLambda API operation for AWS S3 Control. +// ListAccessPoints API operation for AWS S3 Control. // -// Replaces configuration for an Object Lambda Access Point. +// Returns a list of the access points that are owned by the current account +// that's associated with the specified bucket. You can retrieve up to 1000 +// access points per call. If the specified bucket has more than 1,000 access +// points (or the number specified in maxResults, whichever is less), the response +// will include a continuation token that you can use to list the additional +// access points. // -// The following actions are related to PutAccessPointConfigurationForObjectLambda: +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples) +// section. // -// - GetAccessPointConfigurationForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointConfigurationForObjectLambda.html) +// The following actions are related to ListAccessPoints: +// +// - CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html) +// +// - DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html) +// +// - GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.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 S3 Control's -// API operation PutAccessPointConfigurationForObjectLambda for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointConfigurationForObjectLambda -func (c *S3Control) PutAccessPointConfigurationForObjectLambda(input *PutAccessPointConfigurationForObjectLambdaInput) (*PutAccessPointConfigurationForObjectLambdaOutput, error) { - req, out := c.PutAccessPointConfigurationForObjectLambdaRequest(input) +// API operation ListAccessPoints for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints +func (c *S3Control) ListAccessPoints(input *ListAccessPointsInput) (*ListAccessPointsOutput, error) { + req, out := c.ListAccessPointsRequest(input) return out, req.Send() } -// PutAccessPointConfigurationForObjectLambdaWithContext is the same as PutAccessPointConfigurationForObjectLambda with the addition of +// ListAccessPointsWithContext is the same as ListAccessPoints with the addition of // the ability to pass a context and additional request options. // -// See PutAccessPointConfigurationForObjectLambda for details on how to use this API operation. +// See ListAccessPoints for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutAccessPointConfigurationForObjectLambdaWithContext(ctx aws.Context, input *PutAccessPointConfigurationForObjectLambdaInput, opts ...request.Option) (*PutAccessPointConfigurationForObjectLambdaOutput, error) { - req, out := c.PutAccessPointConfigurationForObjectLambdaRequest(input) +func (c *S3Control) ListAccessPointsWithContext(ctx aws.Context, input *ListAccessPointsInput, opts ...request.Option) (*ListAccessPointsOutput, error) { + req, out := c.ListAccessPointsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutAccessPointPolicy = "PutAccessPointPolicy" +// ListAccessPointsPages iterates over the pages of a ListAccessPoints operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListAccessPoints 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 ListAccessPoints operation. +// pageNum := 0 +// err := client.ListAccessPointsPages(params, +// func(page *s3control.ListAccessPointsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *S3Control) ListAccessPointsPages(input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool) error { + return c.ListAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn) +} -// PutAccessPointPolicyRequest generates a "aws/request.Request" representing the -// client's request for the PutAccessPointPolicy operation. The "output" return +// ListAccessPointsPagesWithContext same as ListAccessPointsPages 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 *S3Control) ListAccessPointsPagesWithContext(ctx aws.Context, input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListAccessPointsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAccessPointsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListAccessPointsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListAccessPointsForObjectLambda = "ListAccessPointsForObjectLambda" + +// ListAccessPointsForObjectLambdaRequest generates a "aws/request.Request" representing the +// client's request for the ListAccessPointsForObjectLambda 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 PutAccessPointPolicy for more information on using the PutAccessPointPolicy +// See ListAccessPointsForObjectLambda for more information on using the ListAccessPointsForObjectLambda // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutAccessPointPolicyRequest method. -// req, resp := client.PutAccessPointPolicyRequest(params) +// // Example sending a request using the ListAccessPointsForObjectLambdaRequest method. +// req, resp := client.ListAccessPointsForObjectLambdaRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy -func (c *S3Control) PutAccessPointPolicyRequest(input *PutAccessPointPolicyInput) (req *request.Request, output *PutAccessPointPolicyOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambda +func (c *S3Control) ListAccessPointsForObjectLambdaRequest(input *ListAccessPointsForObjectLambdaInput) (req *request.Request, output *ListAccessPointsForObjectLambdaOutput) { op := &request.Operation{ - Name: opPutAccessPointPolicy, - HTTPMethod: "PUT", - HTTPPath: "/v20180820/accesspoint/{name}/policy", + Name: opListAccessPointsForObjectLambda, + HTTPMethod: "GET", + HTTPPath: "/v20180820/accesspointforobjectlambda", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { - input = &PutAccessPointPolicyInput{} + input = &ListAccessPointsForObjectLambdaInput{} } - output = &PutAccessPointPolicyOutput{} + output = &ListAccessPointsForObjectLambdaOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// PutAccessPointPolicy API operation for AWS S3 Control. -// -// Associates an access policy with the specified access point. Each access -// point can have only one policy, so a request made to this API replaces any -// existing policy associated with the specified access point. +// ListAccessPointsForObjectLambda API operation for AWS S3 Control. // -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html#API_control_PutAccessPointPolicy_Examples) -// section. +// Returns some or all (up to 1,000) access points associated with the Object +// Lambda Access Point per call. If there are more access points than what can +// be returned in one call, the response will include a continuation token that +// you can use to list the additional access points. // -// The following actions are related to PutAccessPointPolicy: +// The following actions are related to ListAccessPointsForObjectLambda: // -// - GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) +// - CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html) // -// - DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html) +// - DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html) +// +// - GetAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.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 S3 Control's -// API operation PutAccessPointPolicy for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy -func (c *S3Control) PutAccessPointPolicy(input *PutAccessPointPolicyInput) (*PutAccessPointPolicyOutput, error) { - req, out := c.PutAccessPointPolicyRequest(input) +// API operation ListAccessPointsForObjectLambda for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambda +func (c *S3Control) ListAccessPointsForObjectLambda(input *ListAccessPointsForObjectLambdaInput) (*ListAccessPointsForObjectLambdaOutput, error) { + req, out := c.ListAccessPointsForObjectLambdaRequest(input) return out, req.Send() } -// PutAccessPointPolicyWithContext is the same as PutAccessPointPolicy with the addition of +// ListAccessPointsForObjectLambdaWithContext is the same as ListAccessPointsForObjectLambda with the addition of // the ability to pass a context and additional request options. // -// See PutAccessPointPolicy for details on how to use this API operation. +// See ListAccessPointsForObjectLambda for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutAccessPointPolicyWithContext(ctx aws.Context, input *PutAccessPointPolicyInput, opts ...request.Option) (*PutAccessPointPolicyOutput, error) { - req, out := c.PutAccessPointPolicyRequest(input) +func (c *S3Control) ListAccessPointsForObjectLambdaWithContext(ctx aws.Context, input *ListAccessPointsForObjectLambdaInput, opts ...request.Option) (*ListAccessPointsForObjectLambdaOutput, error) { + req, out := c.ListAccessPointsForObjectLambdaRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutAccessPointPolicyForObjectLambda = "PutAccessPointPolicyForObjectLambda" +// ListAccessPointsForObjectLambdaPages iterates over the pages of a ListAccessPointsForObjectLambda operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListAccessPointsForObjectLambda 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 ListAccessPointsForObjectLambda operation. +// pageNum := 0 +// err := client.ListAccessPointsForObjectLambdaPages(params, +// func(page *s3control.ListAccessPointsForObjectLambdaOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *S3Control) ListAccessPointsForObjectLambdaPages(input *ListAccessPointsForObjectLambdaInput, fn func(*ListAccessPointsForObjectLambdaOutput, bool) bool) error { + return c.ListAccessPointsForObjectLambdaPagesWithContext(aws.BackgroundContext(), input, fn) +} -// PutAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the -// client's request for the PutAccessPointPolicyForObjectLambda operation. The "output" return +// ListAccessPointsForObjectLambdaPagesWithContext same as ListAccessPointsForObjectLambdaPages 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 *S3Control) ListAccessPointsForObjectLambdaPagesWithContext(ctx aws.Context, input *ListAccessPointsForObjectLambdaInput, fn func(*ListAccessPointsForObjectLambdaOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListAccessPointsForObjectLambdaInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAccessPointsForObjectLambdaRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListAccessPointsForObjectLambdaOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListJobs = "ListJobs" + +// ListJobsRequest generates a "aws/request.Request" representing the +// client's request for the ListJobs operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See PutAccessPointPolicyForObjectLambda for more information on using the PutAccessPointPolicyForObjectLambda +// 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 PutAccessPointPolicyForObjectLambdaRequest method. -// req, resp := client.PutAccessPointPolicyForObjectLambdaRequest(params) +// // 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/s3control-2018-08-20/PutAccessPointPolicyForObjectLambda -func (c *S3Control) PutAccessPointPolicyForObjectLambdaRequest(input *PutAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *PutAccessPointPolicyForObjectLambdaOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs +func (c *S3Control) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) { op := &request.Operation{ - Name: opPutAccessPointPolicyForObjectLambda, - HTTPMethod: "PUT", - HTTPPath: "/v20180820/accesspointforobjectlambda/{name}/policy", + Name: opListJobs, + HTTPMethod: "GET", + HTTPPath: "/v20180820/jobs", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { - input = &PutAccessPointPolicyForObjectLambdaInput{} + input = &ListJobsInput{} } - output = &PutAccessPointPolicyForObjectLambdaOutput{} + output = &ListJobsOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// PutAccessPointPolicyForObjectLambda API operation for AWS S3 Control. +// ListJobs API operation for AWS S3 Control. // -// Creates or replaces resource policy for an Object Lambda Access Point. For -// an example policy, see Creating Object Lambda Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-create.html#olap-create-cli) +// Lists current S3 Batch Operations jobs and jobs that have ended within the +// last 30 days for the Amazon Web Services account making the request. For +// more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) // in the Amazon S3 User Guide. // -// The following actions are related to PutAccessPointPolicyForObjectLambda: +// Related actions include: // -// - DeleteAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html) +// - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) // -// - GetAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyForObjectLambda.html) +// - DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html) +// +// - UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html) +// +// - UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.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 S3 Control's -// API operation PutAccessPointPolicyForObjectLambda for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicyForObjectLambda -func (c *S3Control) PutAccessPointPolicyForObjectLambda(input *PutAccessPointPolicyForObjectLambdaInput) (*PutAccessPointPolicyForObjectLambdaOutput, error) { - req, out := c.PutAccessPointPolicyForObjectLambdaRequest(input) +// API operation ListJobs for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeInvalidRequestException "InvalidRequestException" +// +// - ErrCodeInternalServiceException "InternalServiceException" +// +// - ErrCodeInvalidNextTokenException "InvalidNextTokenException" +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs +func (c *S3Control) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) { + req, out := c.ListJobsRequest(input) return out, req.Send() } -// PutAccessPointPolicyForObjectLambdaWithContext is the same as PutAccessPointPolicyForObjectLambda 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 PutAccessPointPolicyForObjectLambda 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 *S3Control) PutAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *PutAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*PutAccessPointPolicyForObjectLambdaOutput, error) { - req, out := c.PutAccessPointPolicyForObjectLambdaRequest(input) +func (c *S3Control) 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 opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration" +// 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 *s3control.ListJobsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *S3Control) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error { + return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn) +} -// PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the -// client's request for the PutBucketLifecycleConfiguration 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 *S3Control) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListJobsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListJobsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListMultiRegionAccessPoints = "ListMultiRegionAccessPoints" + +// ListMultiRegionAccessPointsRequest generates a "aws/request.Request" representing the +// client's request for the ListMultiRegionAccessPoints 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 PutBucketLifecycleConfiguration for more information on using the PutBucketLifecycleConfiguration +// See ListMultiRegionAccessPoints for more information on using the ListMultiRegionAccessPoints // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutBucketLifecycleConfigurationRequest method. -// req, resp := client.PutBucketLifecycleConfigurationRequest(params) +// // Example sending a request using the ListMultiRegionAccessPointsRequest method. +// req, resp := client.ListMultiRegionAccessPointsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration -func (c *S3Control) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleConfigurationInput) (req *request.Request, output *PutBucketLifecycleConfigurationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListMultiRegionAccessPoints +func (c *S3Control) ListMultiRegionAccessPointsRequest(input *ListMultiRegionAccessPointsInput) (req *request.Request, output *ListMultiRegionAccessPointsOutput) { op := &request.Operation{ - Name: opPutBucketLifecycleConfiguration, - HTTPMethod: "PUT", - HTTPPath: "/v20180820/bucket/{name}/lifecycleconfiguration", + Name: opListMultiRegionAccessPoints, + HTTPMethod: "GET", + HTTPPath: "/v20180820/mrap/instances", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { - input = &PutBucketLifecycleConfigurationInput{} + input = &ListMultiRegionAccessPointsInput{} } - output = &PutBucketLifecycleConfigurationOutput{} + output = &ListMultiRegionAccessPointsOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) req.Handlers.Build.PushBackNamed(request.NamedHandler{ @@ -5723,524 +6573,657 @@ func (c *S3Control) PutBucketLifecycleConfigurationRequest(input *PutBucketLifec return } -// PutBucketLifecycleConfiguration API operation for AWS S3 Control. -// -// This action puts a lifecycle configuration to an Amazon S3 on Outposts bucket. -// To put a lifecycle configuration to an S3 bucket, see PutBucketLifecycleConfiguration -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) -// in the Amazon S3 API Reference. +// ListMultiRegionAccessPoints API operation for AWS S3 Control. // -// Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces -// an existing lifecycle configuration. Outposts buckets only support lifecycle -// configurations that delete/expire objects after a certain period of time -// and abort incomplete multipart uploads. +// Returns a list of the Multi-Region Access Points currently associated with +// the specified Amazon Web Services account. Each call can return up to 100 +// Multi-Region Access Points, the maximum number of Multi-Region Access Points +// that can be associated with a single account. // -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html#API_control_PutBucketLifecycleConfiguration_Examples) -// section. +// This action will always be routed to the US West (Oregon) Region. For more +// information about the restrictions around managing Multi-Region Access Points, +// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. // -// The following actions are related to PutBucketLifecycleConfiguration: +// The following actions are related to ListMultiRegionAccessPoint: // -// - GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html) +// - CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) // -// - DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html) +// - DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) +// +// - DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) +// +// - GetMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.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 S3 Control's -// API operation PutBucketLifecycleConfiguration for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration -func (c *S3Control) PutBucketLifecycleConfiguration(input *PutBucketLifecycleConfigurationInput) (*PutBucketLifecycleConfigurationOutput, error) { - req, out := c.PutBucketLifecycleConfigurationRequest(input) +// API operation ListMultiRegionAccessPoints for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListMultiRegionAccessPoints +func (c *S3Control) ListMultiRegionAccessPoints(input *ListMultiRegionAccessPointsInput) (*ListMultiRegionAccessPointsOutput, error) { + req, out := c.ListMultiRegionAccessPointsRequest(input) return out, req.Send() } -// PutBucketLifecycleConfigurationWithContext is the same as PutBucketLifecycleConfiguration with the addition of +// ListMultiRegionAccessPointsWithContext is the same as ListMultiRegionAccessPoints with the addition of // the ability to pass a context and additional request options. // -// See PutBucketLifecycleConfiguration for details on how to use this API operation. +// See ListMultiRegionAccessPoints for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutBucketLifecycleConfigurationWithContext(ctx aws.Context, input *PutBucketLifecycleConfigurationInput, opts ...request.Option) (*PutBucketLifecycleConfigurationOutput, error) { - req, out := c.PutBucketLifecycleConfigurationRequest(input) +func (c *S3Control) ListMultiRegionAccessPointsWithContext(ctx aws.Context, input *ListMultiRegionAccessPointsInput, opts ...request.Option) (*ListMultiRegionAccessPointsOutput, error) { + req, out := c.ListMultiRegionAccessPointsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutBucketPolicy = "PutBucketPolicy" +// ListMultiRegionAccessPointsPages iterates over the pages of a ListMultiRegionAccessPoints operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListMultiRegionAccessPoints 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 ListMultiRegionAccessPoints operation. +// pageNum := 0 +// err := client.ListMultiRegionAccessPointsPages(params, +// func(page *s3control.ListMultiRegionAccessPointsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *S3Control) ListMultiRegionAccessPointsPages(input *ListMultiRegionAccessPointsInput, fn func(*ListMultiRegionAccessPointsOutput, bool) bool) error { + return c.ListMultiRegionAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn) +} -// PutBucketPolicyRequest generates a "aws/request.Request" representing the -// client's request for the PutBucketPolicy operation. The "output" return +// ListMultiRegionAccessPointsPagesWithContext same as ListMultiRegionAccessPointsPages 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 *S3Control) ListMultiRegionAccessPointsPagesWithContext(ctx aws.Context, input *ListMultiRegionAccessPointsInput, fn func(*ListMultiRegionAccessPointsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListMultiRegionAccessPointsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListMultiRegionAccessPointsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListMultiRegionAccessPointsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListRegionalBuckets = "ListRegionalBuckets" + +// ListRegionalBucketsRequest generates a "aws/request.Request" representing the +// client's request for the ListRegionalBuckets 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 PutBucketPolicy for more information on using the PutBucketPolicy +// See ListRegionalBuckets for more information on using the ListRegionalBuckets // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutBucketPolicyRequest method. -// req, resp := client.PutBucketPolicyRequest(params) +// // Example sending a request using the ListRegionalBucketsRequest method. +// req, resp := client.ListRegionalBucketsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy -func (c *S3Control) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.Request, output *PutBucketPolicyOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets +func (c *S3Control) ListRegionalBucketsRequest(input *ListRegionalBucketsInput) (req *request.Request, output *ListRegionalBucketsOutput) { op := &request.Operation{ - Name: opPutBucketPolicy, - HTTPMethod: "PUT", - HTTPPath: "/v20180820/bucket/{name}/policy", + Name: opListRegionalBuckets, + HTTPMethod: "GET", + HTTPPath: "/v20180820/bucket", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, } if input == nil { - input = &PutBucketPolicyInput{} + input = &ListRegionalBucketsInput{} } - output = &PutBucketPolicyOutput{} + output = &ListRegionalBucketsOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) - req.Handlers.Build.PushBackNamed(request.NamedHandler{ - Name: "contentMd5Handler", - Fn: checksum.AddBodyContentMD5Handler, - }) return } -// PutBucketPolicy API operation for AWS S3 Control. -// -// This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put -// a policy on an S3 bucket, see PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html) -// in the Amazon S3 API Reference. +// ListRegionalBuckets API operation for AWS S3 Control. // -// Applies an Amazon S3 bucket policy to an Outposts bucket. For more information, -// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) +// Returns a list of all Outposts buckets in an Outpost that are owned by the +// authenticated sender of the request. For more information, see Using Amazon +// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // -// If you are using an identity other than the root user of the Amazon Web Services -// account that owns the Outposts bucket, the calling identity must have the -// PutBucketPolicy permissions on the specified Outposts bucket and belong to -// the bucket owner's account in order to use this action. -// -// If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access -// Denied error. If you have the correct permissions, but you're not using an -// identity that belongs to the bucket owner's account, Amazon S3 returns a -// 405 Method Not Allowed error. -// -// As a security precaution, the root user of the Amazon Web Services account -// that owns a bucket can always use this action, even if the policy explicitly -// denies the root user the ability to perform this action. -// -// For more information about bucket policies, see Using Bucket Policies and -// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). -// -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. // For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html#API_control_PutBucketPolicy_Examples) +// the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your +// request, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html#API_control_ListRegionalBuckets_Examples) // section. // -// The following actions are related to PutBucketPolicy: -// -// - GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html) -// -// - DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.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 S3 Control's -// API operation PutBucketPolicy for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy -func (c *S3Control) PutBucketPolicy(input *PutBucketPolicyInput) (*PutBucketPolicyOutput, error) { - req, out := c.PutBucketPolicyRequest(input) +// API operation ListRegionalBuckets for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets +func (c *S3Control) ListRegionalBuckets(input *ListRegionalBucketsInput) (*ListRegionalBucketsOutput, error) { + req, out := c.ListRegionalBucketsRequest(input) return out, req.Send() } -// PutBucketPolicyWithContext is the same as PutBucketPolicy with the addition of +// ListRegionalBucketsWithContext is the same as ListRegionalBuckets with the addition of // the ability to pass a context and additional request options. // -// See PutBucketPolicy for details on how to use this API operation. +// See ListRegionalBuckets for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutBucketPolicyWithContext(ctx aws.Context, input *PutBucketPolicyInput, opts ...request.Option) (*PutBucketPolicyOutput, error) { - req, out := c.PutBucketPolicyRequest(input) +func (c *S3Control) ListRegionalBucketsWithContext(ctx aws.Context, input *ListRegionalBucketsInput, opts ...request.Option) (*ListRegionalBucketsOutput, error) { + req, out := c.ListRegionalBucketsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutBucketReplication = "PutBucketReplication" +// ListRegionalBucketsPages iterates over the pages of a ListRegionalBuckets operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListRegionalBuckets 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 ListRegionalBuckets operation. +// pageNum := 0 +// err := client.ListRegionalBucketsPages(params, +// func(page *s3control.ListRegionalBucketsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *S3Control) ListRegionalBucketsPages(input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool) error { + return c.ListRegionalBucketsPagesWithContext(aws.BackgroundContext(), input, fn) +} -// PutBucketReplicationRequest generates a "aws/request.Request" representing the -// client's request for the PutBucketReplication operation. The "output" return +// ListRegionalBucketsPagesWithContext same as ListRegionalBucketsPages 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 *S3Control) ListRegionalBucketsPagesWithContext(ctx aws.Context, input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListRegionalBucketsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListRegionalBucketsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListRegionalBucketsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListStorageLensConfigurations = "ListStorageLensConfigurations" + +// ListStorageLensConfigurationsRequest generates a "aws/request.Request" representing the +// client's request for the ListStorageLensConfigurations 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 PutBucketReplication for more information on using the PutBucketReplication +// See ListStorageLensConfigurations for more information on using the ListStorageLensConfigurations // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutBucketReplicationRequest method. -// req, resp := client.PutBucketReplicationRequest(params) +// // Example sending a request using the ListStorageLensConfigurationsRequest method. +// req, resp := client.ListStorageLensConfigurationsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketReplication -func (c *S3Control) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req *request.Request, output *PutBucketReplicationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations +func (c *S3Control) ListStorageLensConfigurationsRequest(input *ListStorageLensConfigurationsInput) (req *request.Request, output *ListStorageLensConfigurationsOutput) { op := &request.Operation{ - Name: opPutBucketReplication, - HTTPMethod: "PUT", - HTTPPath: "/v20180820/bucket/{name}/replication", + Name: opListStorageLensConfigurations, + HTTPMethod: "GET", + HTTPPath: "/v20180820/storagelens", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "", + TruncationToken: "", + }, } if input == nil { - input = &PutBucketReplicationInput{} + input = &ListStorageLensConfigurationsInput{} } - output = &PutBucketReplicationOutput{} + output = &ListStorageLensConfigurationsOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) - req.Handlers.Build.PushBackNamed(request.NamedHandler{ - Name: "contentMd5Handler", - Fn: checksum.AddBodyContentMD5Handler, - }) return } -// PutBucketReplication API operation for AWS S3 Control. -// -// This action creates an Amazon S3 on Outposts bucket's replication configuration. -// To create an S3 bucket's replication configuration, see PutBucketReplication -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) -// in the Amazon S3 API Reference. +// ListStorageLensConfigurations API operation for AWS S3 Control. // -// Creates a replication configuration or replaces an existing one. For information -// about S3 replication on Outposts configuration, see Replicating objects for -// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsReplication.html) +// Gets a list of Amazon S3 Storage Lens configurations. For more information +// about S3 Storage Lens, see Assessing your storage activity and usage with +// Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) // in the Amazon S3 User Guide. // -// It can take a while to propagate PUT or DELETE requests for a replication -// configuration to all S3 on Outposts systems. Therefore, the replication configuration -// that's returned by a GET request soon after a PUT or DELETE request might -// return a more recent result than what's on the Outpost. If an Outpost is -// offline, the delay in updating the replication configuration on that Outpost -// can be significant. -// -// Specify the replication configuration in the request body. In the replication -// configuration, you provide the following information: -// -// - The name of the destination bucket or buckets where you want S3 on Outposts -// to replicate objects -// -// - The Identity and Access Management (IAM) role that S3 on Outposts can -// assume to replicate objects on your behalf -// -// - Other relevant information, such as replication rules -// -// A replication configuration must include at least one rule and can contain -// a maximum of 100. Each rule identifies a subset of objects to replicate by -// filtering the objects in the source Outposts bucket. To choose additional -// subsets of objects to replicate, add a rule for each subset. -// -// To specify a subset of the objects in the source Outposts bucket to apply -// a replication rule to, add the Filter element as a child of the Rule element. -// You can filter objects based on an object key prefix, one or more object -// tags, or both. When you add the Filter element in the configuration, you -// must also add the following elements: DeleteMarkerReplication, Status, and -// Priority. -// -// Using PutBucketReplication on Outposts requires that both the source and -// destination buckets must have versioning enabled. For information about enabling -// versioning on a bucket, see Managing S3 Versioning for your S3 on Outposts -// bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsManagingVersioning.html). -// -// For information about S3 on Outposts replication failure reasons, see Replication -// failure reasons (https://docs.aws.amazon.com/AmazonS3/latest/userguide/outposts-replication-eventbridge.html#outposts-replication-failure-codes) +// To use this action, you must have permission to perform the s3:ListStorageLensConfigurations +// action. For more information, see Setting permissions to use Amazon S3 Storage +// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html) // in the Amazon S3 User Guide. // -// # Handling Replication of Encrypted Objects -// -// Outposts buckets are encrypted at all times. All the objects in the source -// Outposts bucket are encrypted and can be replicated. Also, all the replicas -// in the destination Outposts bucket are encrypted with the same encryption -// key as the objects in the source Outposts bucket. -// -// # Permissions -// -// To create a PutBucketReplication request, you must have s3-outposts:PutReplicationConfiguration -// permissions for the bucket. The Outposts bucket owner has this permission -// by default and can grant it to others. For more information about permissions, -// see Setting up IAM with S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsIAM.html) -// and Managing access to S3 on Outposts buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsBucketPolicy.html). -// -// To perform this operation, the user or role must also have the iam:CreateRole -// and iam:PassRole permissions. For more information, see Granting a user permissions -// to pass a role to an Amazon Web Services service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html). -// -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketReplication.html#API_control_PutBucketReplication_Examples) -// section. -// -// The following operations are related to PutBucketReplication: -// -// - GetBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketReplication.html) -// -// - DeleteBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketReplication.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 S3 Control's -// API operation PutBucketReplication for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketReplication -func (c *S3Control) PutBucketReplication(input *PutBucketReplicationInput) (*PutBucketReplicationOutput, error) { - req, out := c.PutBucketReplicationRequest(input) +// API operation ListStorageLensConfigurations for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations +func (c *S3Control) ListStorageLensConfigurations(input *ListStorageLensConfigurationsInput) (*ListStorageLensConfigurationsOutput, error) { + req, out := c.ListStorageLensConfigurationsRequest(input) return out, req.Send() } -// PutBucketReplicationWithContext is the same as PutBucketReplication with the addition of +// ListStorageLensConfigurationsWithContext is the same as ListStorageLensConfigurations with the addition of // the ability to pass a context and additional request options. // -// See PutBucketReplication for details on how to use this API operation. +// See ListStorageLensConfigurations for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutBucketReplicationWithContext(ctx aws.Context, input *PutBucketReplicationInput, opts ...request.Option) (*PutBucketReplicationOutput, error) { - req, out := c.PutBucketReplicationRequest(input) +func (c *S3Control) ListStorageLensConfigurationsWithContext(ctx aws.Context, input *ListStorageLensConfigurationsInput, opts ...request.Option) (*ListStorageLensConfigurationsOutput, error) { + req, out := c.ListStorageLensConfigurationsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutBucketTagging = "PutBucketTagging" +// ListStorageLensConfigurationsPages iterates over the pages of a ListStorageLensConfigurations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListStorageLensConfigurations 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 ListStorageLensConfigurations operation. +// pageNum := 0 +// err := client.ListStorageLensConfigurationsPages(params, +// func(page *s3control.ListStorageLensConfigurationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *S3Control) ListStorageLensConfigurationsPages(input *ListStorageLensConfigurationsInput, fn func(*ListStorageLensConfigurationsOutput, bool) bool) error { + return c.ListStorageLensConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn) +} -// PutBucketTaggingRequest generates a "aws/request.Request" representing the -// client's request for the PutBucketTagging operation. The "output" return +// ListStorageLensConfigurationsPagesWithContext same as ListStorageLensConfigurationsPages 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 *S3Control) ListStorageLensConfigurationsPagesWithContext(ctx aws.Context, input *ListStorageLensConfigurationsInput, fn func(*ListStorageLensConfigurationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListStorageLensConfigurationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListStorageLensConfigurationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListStorageLensConfigurationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListStorageLensGroups = "ListStorageLensGroups" + +// ListStorageLensGroupsRequest generates a "aws/request.Request" representing the +// client's request for the ListStorageLensGroups 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 PutBucketTagging for more information on using the PutBucketTagging +// See ListStorageLensGroups for more information on using the ListStorageLensGroups // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutBucketTaggingRequest method. -// req, resp := client.PutBucketTaggingRequest(params) +// // Example sending a request using the ListStorageLensGroupsRequest method. +// req, resp := client.ListStorageLensGroupsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging -func (c *S3Control) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request.Request, output *PutBucketTaggingOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensGroups +func (c *S3Control) ListStorageLensGroupsRequest(input *ListStorageLensGroupsInput) (req *request.Request, output *ListStorageLensGroupsOutput) { op := &request.Operation{ - Name: opPutBucketTagging, - HTTPMethod: "PUT", - HTTPPath: "/v20180820/bucket/{name}/tagging", + Name: opListStorageLensGroups, + HTTPMethod: "GET", + HTTPPath: "/v20180820/storagelensgroup", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "", + TruncationToken: "", + }, } if input == nil { - input = &PutBucketTaggingInput{} + input = &ListStorageLensGroupsInput{} } - output = &PutBucketTaggingOutput{} + output = &ListStorageLensGroupsOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) - req.Handlers.Build.PushBackNamed(request.NamedHandler{ - Name: "contentMd5Handler", - Fn: checksum.AddBodyContentMD5Handler, - }) return } -// PutBucketTagging API operation for AWS S3 Control. -// -// This action puts tags on an Amazon S3 on Outposts bucket. To put tags on -// an S3 bucket, see PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) -// in the Amazon S3 API Reference. -// -// Sets the tags for an S3 on Outposts bucket. For more information, see Using -// Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) -// in the Amazon S3 User Guide. +// ListStorageLensGroups API operation for AWS S3 Control. // -// Use tags to organize your Amazon Web Services bill to reflect your own cost -// structure. To do this, sign up to get your Amazon Web Services account bill -// with tag key values included. Then, to see the cost of combined resources, -// organize your billing information according to resources with the same tag -// key values. For example, you can tag several resources with a specific application -// name, and then organize your billing information to see the total cost of -// that application across several services. For more information, see Cost -// allocation and tagging (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html). +// Lists all the Storage Lens groups in the specified home Region. // -// Within a bucket, if you add a tag that has the same key as an existing tag, -// the new value overwrites the old value. For more information, see Using cost -// allocation in Amazon S3 bucket tags (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html). +// To use this operation, you must have the permission to perform the s3:ListStorageLensGroups +// action. For more information about the required Storage Lens Groups permissions, +// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). // -// To use this action, you must have permissions to perform the s3-outposts:PutBucketTagging -// action. The Outposts bucket owner has this permission by default and can -// grant this permission to others. For more information about permissions, -// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing access permissions to your Amazon S3 resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). +// For information about Storage Lens groups errors, see List of Amazon S3 Storage +// Lens error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3LensErrorCodeList). // -// PutBucketTagging has the following special errors: +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. // -// - Error code: InvalidTagError Description: The tag provided was not a -// valid tag. This error can occur if the tag did not pass input validation. -// For information about tag restrictions, see User-Defined Tag Restrictions -// (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) -// and Amazon Web Services-Generated Cost Allocation Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html). +// See the AWS API reference guide for AWS S3 Control's +// API operation ListStorageLensGroups for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensGroups +func (c *S3Control) ListStorageLensGroups(input *ListStorageLensGroupsInput) (*ListStorageLensGroupsOutput, error) { + req, out := c.ListStorageLensGroupsRequest(input) + return out, req.Send() +} + +// ListStorageLensGroupsWithContext is the same as ListStorageLensGroups with the addition of +// the ability to pass a context and additional request options. // -// - Error code: MalformedXMLError Description: The XML provided does not -// match the schema. +// See ListStorageLensGroups for details on how to use this API operation. // -// - Error code: OperationAbortedError Description: A conflicting conditional -// action is currently in progress against this resource. Try again. +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) ListStorageLensGroupsWithContext(ctx aws.Context, input *ListStorageLensGroupsInput, opts ...request.Option) (*ListStorageLensGroupsOutput, error) { + req, out := c.ListStorageLensGroupsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListStorageLensGroupsPages iterates over the pages of a ListStorageLensGroups operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. // -// - Error code: InternalError Description: The service was unable to apply -// the provided tag to the bucket. +// See ListStorageLensGroups method for more information on how to use this operation. // -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html#API_control_PutBucketTagging_Examples) -// section. +// Note: This operation can generate multiple requests to a service. // -// The following actions are related to PutBucketTagging: +// // Example iterating over at most 3 pages of a ListStorageLensGroups operation. +// pageNum := 0 +// err := client.ListStorageLensGroupsPages(params, +// func(page *s3control.ListStorageLensGroupsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *S3Control) ListStorageLensGroupsPages(input *ListStorageLensGroupsInput, fn func(*ListStorageLensGroupsOutput, bool) bool) error { + return c.ListStorageLensGroupsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListStorageLensGroupsPagesWithContext same as ListStorageLensGroupsPages except +// it takes a Context and allows setting request options on the pages. // -// - GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html) +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) ListStorageLensGroupsPagesWithContext(ctx aws.Context, input *ListStorageLensGroupsInput, fn func(*ListStorageLensGroupsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListStorageLensGroupsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListStorageLensGroupsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListStorageLensGroupsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. // -// - DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html) +// Use "Send" method on the 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/s3control-2018-08-20/ListTagsForResource +func (c *S3Control) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/v20180820/tags/{resourceArn+}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// ListTagsForResource API operation for AWS S3 Control. +// +// This operation allows you to list all the Amazon Web Services resource tags +// for a specified resource. Each tag is a label consisting of a user-defined +// key and value. Tags can help you manage, identify, organize, search for, +// and filter resources. +// +// # Permissions +// +// You must have the s3:ListTagsForResource permission to use this operation. +// +// This operation is only supported for S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups.html) +// and for S3 Access Grants (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-tagging.html). +// The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, +// registered location, or grant. +// +// For more information about the required Storage Lens Groups permissions, +// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). +// +// For information about S3 Tagging errors, see List of Amazon S3 Tagging error +// codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3TaggingErrorCodeList). // // Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's -// API operation PutBucketTagging for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging -func (c *S3Control) PutBucketTagging(input *PutBucketTaggingInput) (*PutBucketTaggingOutput, error) { - req, out := c.PutBucketTaggingRequest(input) +// API operation ListTagsForResource for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListTagsForResource +func (c *S3Control) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) return out, req.Send() } -// PutBucketTaggingWithContext is the same as PutBucketTagging with the addition of +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of // the ability to pass a context and additional request options. // -// See PutBucketTagging for details on how to use this API operation. +// 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 *S3Control) PutBucketTaggingWithContext(ctx aws.Context, input *PutBucketTaggingInput, opts ...request.Option) (*PutBucketTaggingOutput, error) { - req, out := c.PutBucketTaggingRequest(input) +func (c *S3Control) 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 opPutBucketVersioning = "PutBucketVersioning" +const opPutAccessGrantsInstanceResourcePolicy = "PutAccessGrantsInstanceResourcePolicy" -// PutBucketVersioningRequest generates a "aws/request.Request" representing the -// client's request for the PutBucketVersioning operation. The "output" return +// PutAccessGrantsInstanceResourcePolicyRequest generates a "aws/request.Request" representing the +// client's request for the PutAccessGrantsInstanceResourcePolicy 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 PutBucketVersioning for more information on using the PutBucketVersioning +// See PutAccessGrantsInstanceResourcePolicy for more information on using the PutAccessGrantsInstanceResourcePolicy // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutBucketVersioningRequest method. -// req, resp := client.PutBucketVersioningRequest(params) +// // Example sending a request using the PutAccessGrantsInstanceResourcePolicyRequest method. +// req, resp := client.PutAccessGrantsInstanceResourcePolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketVersioning -func (c *S3Control) PutBucketVersioningRequest(input *PutBucketVersioningInput) (req *request.Request, output *PutBucketVersioningOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessGrantsInstanceResourcePolicy +func (c *S3Control) PutAccessGrantsInstanceResourcePolicyRequest(input *PutAccessGrantsInstanceResourcePolicyInput) (req *request.Request, output *PutAccessGrantsInstanceResourcePolicyOutput) { op := &request.Operation{ - Name: opPutBucketVersioning, + Name: opPutAccessGrantsInstanceResourcePolicy, HTTPMethod: "PUT", - HTTPPath: "/v20180820/bucket/{name}/versioning", + HTTPPath: "/v20180820/accessgrantsinstance/resourcepolicy", } if input == nil { - input = &PutBucketVersioningInput{} + input = &PutAccessGrantsInstanceResourcePolicyInput{} } - output = &PutBucketVersioningOutput{} + output = &PutAccessGrantsInstanceResourcePolicyOutput{} req = c.newRequest(op, input, output) - // update account id or check if provided input for account id member matches - // the account id present in ARN - req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) req.Handlers.Build.PushBackNamed(request.NamedHandler{ @@ -6250,124 +7233,80 @@ func (c *S3Control) PutBucketVersioningRequest(input *PutBucketVersioningInput) return } -// PutBucketVersioning API operation for AWS S3 Control. -// -// This operation sets the versioning state for S3 on Outposts buckets only. -// To set the versioning state for an S3 bucket, see PutBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html) -// in the Amazon S3 API Reference. -// -// Sets the versioning state for an S3 on Outposts bucket. With S3 Versioning, -// you can save multiple distinct copies of your objects and recover from unintended -// user actions and application failures. -// -// You can set the versioning state to one of the following: -// -// - Enabled - Enables versioning for the objects in the bucket. All objects -// added to the bucket receive a unique version ID. -// -// - Suspended - Suspends versioning for the objects in the bucket. All objects -// added to the bucket receive the version ID null. +// PutAccessGrantsInstanceResourcePolicy API operation for AWS S3 Control. // -// If you've never set versioning on your bucket, it has no versioning state. -// In that case, a GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketVersioning.html) -// request does not return a versioning state value. -// -// When you enable S3 Versioning, for each object in your bucket, you have a -// current version and zero or more noncurrent versions. You can configure your -// bucket S3 Lifecycle rules to expire noncurrent versions after a specified -// time period. For more information, see Creating and managing a lifecycle -// configuration for your S3 on Outposts bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsLifecycleManaging.html) -// in the Amazon S3 User Guide. -// -// If you have an object expiration lifecycle configuration in your non-versioned -// bucket and you want to maintain the same permanent delete behavior when you -// enable versioning, you must add a noncurrent expiration policy. The noncurrent -// expiration lifecycle configuration will manage the deletes of the noncurrent -// object versions in the version-enabled bucket. For more information, see -// Versioning (https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html) -// in the Amazon S3 User Guide. -// -// All Amazon S3 on Outposts REST API requests for this action require an additional -// parameter of x-amz-outpost-id to be passed with the request. In addition, -// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. -// For an example of the request syntax for Amazon S3 on Outposts that uses -// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived -// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketVersioning.html#API_control_PutBucketVersioning_Examples) -// section. -// -// The following operations are related to PutBucketVersioning for S3 on Outposts. +// Updates the resource policy of the S3 Access Grants instance. // -// - GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketVersioning.html) -// -// - PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html) +// # Permissions // -// - GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html) +// You must have the s3:PutAccessGrantsInstanceResourcePolicy permission to +// use this operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation PutBucketVersioning for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketVersioning -func (c *S3Control) PutBucketVersioning(input *PutBucketVersioningInput) (*PutBucketVersioningOutput, error) { - req, out := c.PutBucketVersioningRequest(input) +// API operation PutAccessGrantsInstanceResourcePolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessGrantsInstanceResourcePolicy +func (c *S3Control) PutAccessGrantsInstanceResourcePolicy(input *PutAccessGrantsInstanceResourcePolicyInput) (*PutAccessGrantsInstanceResourcePolicyOutput, error) { + req, out := c.PutAccessGrantsInstanceResourcePolicyRequest(input) return out, req.Send() } -// PutBucketVersioningWithContext is the same as PutBucketVersioning with the addition of +// PutAccessGrantsInstanceResourcePolicyWithContext is the same as PutAccessGrantsInstanceResourcePolicy with the addition of // the ability to pass a context and additional request options. // -// See PutBucketVersioning for details on how to use this API operation. +// See PutAccessGrantsInstanceResourcePolicy for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutBucketVersioningWithContext(ctx aws.Context, input *PutBucketVersioningInput, opts ...request.Option) (*PutBucketVersioningOutput, error) { - req, out := c.PutBucketVersioningRequest(input) +func (c *S3Control) PutAccessGrantsInstanceResourcePolicyWithContext(ctx aws.Context, input *PutAccessGrantsInstanceResourcePolicyInput, opts ...request.Option) (*PutAccessGrantsInstanceResourcePolicyOutput, error) { + req, out := c.PutAccessGrantsInstanceResourcePolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutJobTagging = "PutJobTagging" +const opPutAccessPointConfigurationForObjectLambda = "PutAccessPointConfigurationForObjectLambda" -// PutJobTaggingRequest generates a "aws/request.Request" representing the -// client's request for the PutJobTagging operation. The "output" return +// PutAccessPointConfigurationForObjectLambdaRequest generates a "aws/request.Request" representing the +// client's request for the PutAccessPointConfigurationForObjectLambda 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 PutJobTagging for more information on using the PutJobTagging +// See PutAccessPointConfigurationForObjectLambda for more information on using the PutAccessPointConfigurationForObjectLambda // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutJobTaggingRequest method. -// req, resp := client.PutJobTaggingRequest(params) +// // Example sending a request using the PutAccessPointConfigurationForObjectLambdaRequest method. +// req, resp := client.PutAccessPointConfigurationForObjectLambdaRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging -func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *request.Request, output *PutJobTaggingOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointConfigurationForObjectLambda +func (c *S3Control) PutAccessPointConfigurationForObjectLambdaRequest(input *PutAccessPointConfigurationForObjectLambdaInput) (req *request.Request, output *PutAccessPointConfigurationForObjectLambdaOutput) { op := &request.Operation{ - Name: opPutJobTagging, + Name: opPutAccessPointConfigurationForObjectLambda, HTTPMethod: "PUT", - HTTPPath: "/v20180820/jobs/{id}/tagging", + HTTPPath: "/v20180820/accesspointforobjectlambda/{name}/configuration", } if input == nil { - input = &PutJobTaggingInput{} + input = &PutAccessPointConfigurationForObjectLambdaInput{} } - output = &PutJobTaggingOutput{} + output = &PutAccessPointConfigurationForObjectLambdaOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) @@ -6375,220 +7314,174 @@ func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *reques return } -// PutJobTagging API operation for AWS S3 Control. -// -// Sets the supplied tag-set on an S3 Batch Operations job. -// -// A tag is a key-value pair. You can associate S3 Batch Operations tags with -// any job by sending a PUT request against the tagging subresource that is -// associated with the job. To modify the existing tag set, you can either replace -// the existing tag set entirely, or make changes within the existing tag set -// by retrieving the existing tag set using GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html), -// modify that tag set, and use this action to replace the tag set with the -// one you modified. For more information, see Controlling access and labeling -// jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) -// in the Amazon S3 User Guide. -// -// - If you send this request with an empty tag set, Amazon S3 deletes the -// existing tag set on the Batch Operations job. If you use this method, -// you are charged for a Tier 1 Request (PUT). For more information, see -// Amazon S3 pricing (http://aws.amazon.com/s3/pricing/). -// -// - For deleting existing tags for your Batch Operations job, a DeleteJobTagging -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html) -// request is preferred because it achieves the same result without incurring -// charges. -// -// - A few things to consider about using tags: Amazon S3 limits the maximum -// number of tags to 50 tags per job. You can associate up to 50 tags with -// a job as long as they have unique tag keys. A tag key can be up to 128 -// Unicode characters in length, and tag values can be up to 256 Unicode -// characters in length. The key and values are case sensitive. For tagging-related -// restrictions related to characters and encodings, see User-Defined Tag -// Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) -// in the Billing and Cost Management User Guide. -// -// To use the PutJobTagging operation, you must have permission to perform the -// s3:PutJobTagging action. -// -// Related actions include: +// PutAccessPointConfigurationForObjectLambda API operation for AWS S3 Control. // -// - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// Replaces configuration for an Object Lambda Access Point. // -// - GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html) +// The following actions are related to PutAccessPointConfigurationForObjectLambda: // -// - DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html) +// - GetAccessPointConfigurationForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointConfigurationForObjectLambda.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 S3 Control's -// API operation PutJobTagging for usage and error information. -// -// Returned Error Codes: -// -// - ErrCodeInternalServiceException "InternalServiceException" -// -// - ErrCodeTooManyRequestsException "TooManyRequestsException" -// -// - ErrCodeNotFoundException "NotFoundException" -// -// - ErrCodeTooManyTagsException "TooManyTagsException" -// Amazon S3 throws this exception if you have too many tags in your tag set. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging -func (c *S3Control) PutJobTagging(input *PutJobTaggingInput) (*PutJobTaggingOutput, error) { - req, out := c.PutJobTaggingRequest(input) +// API operation PutAccessPointConfigurationForObjectLambda for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointConfigurationForObjectLambda +func (c *S3Control) PutAccessPointConfigurationForObjectLambda(input *PutAccessPointConfigurationForObjectLambdaInput) (*PutAccessPointConfigurationForObjectLambdaOutput, error) { + req, out := c.PutAccessPointConfigurationForObjectLambdaRequest(input) return out, req.Send() } -// PutJobTaggingWithContext is the same as PutJobTagging with the addition of +// PutAccessPointConfigurationForObjectLambdaWithContext is the same as PutAccessPointConfigurationForObjectLambda with the addition of // the ability to pass a context and additional request options. // -// See PutJobTagging for details on how to use this API operation. +// See PutAccessPointConfigurationForObjectLambda for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutJobTaggingWithContext(ctx aws.Context, input *PutJobTaggingInput, opts ...request.Option) (*PutJobTaggingOutput, error) { - req, out := c.PutJobTaggingRequest(input) +func (c *S3Control) PutAccessPointConfigurationForObjectLambdaWithContext(ctx aws.Context, input *PutAccessPointConfigurationForObjectLambdaInput, opts ...request.Option) (*PutAccessPointConfigurationForObjectLambdaOutput, error) { + req, out := c.PutAccessPointConfigurationForObjectLambdaRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutMultiRegionAccessPointPolicy = "PutMultiRegionAccessPointPolicy" +const opPutAccessPointPolicy = "PutAccessPointPolicy" -// PutMultiRegionAccessPointPolicyRequest generates a "aws/request.Request" representing the -// client's request for the PutMultiRegionAccessPointPolicy operation. The "output" return +// PutAccessPointPolicyRequest generates a "aws/request.Request" representing the +// client's request for the PutAccessPointPolicy 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 PutMultiRegionAccessPointPolicy for more information on using the PutMultiRegionAccessPointPolicy +// See PutAccessPointPolicy for more information on using the PutAccessPointPolicy // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutMultiRegionAccessPointPolicyRequest method. -// req, resp := client.PutMultiRegionAccessPointPolicyRequest(params) +// // Example sending a request using the PutAccessPointPolicyRequest method. +// req, resp := client.PutAccessPointPolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutMultiRegionAccessPointPolicy -func (c *S3Control) PutMultiRegionAccessPointPolicyRequest(input *PutMultiRegionAccessPointPolicyInput) (req *request.Request, output *PutMultiRegionAccessPointPolicyOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy +func (c *S3Control) PutAccessPointPolicyRequest(input *PutAccessPointPolicyInput) (req *request.Request, output *PutAccessPointPolicyOutput) { op := &request.Operation{ - Name: opPutMultiRegionAccessPointPolicy, - HTTPMethod: "POST", - HTTPPath: "/v20180820/async-requests/mrap/put-policy", + Name: opPutAccessPointPolicy, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/accesspoint/{name}/policy", } if input == nil { - input = &PutMultiRegionAccessPointPolicyInput{} + input = &PutAccessPointPolicyInput{} } - output = &PutMultiRegionAccessPointPolicyOutput{} + output = &PutAccessPointPolicyOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) - req.Handlers.Build.PushBackNamed(request.NamedHandler{ - Name: "contentMd5Handler", - Fn: checksum.AddBodyContentMD5Handler, - }) return } -// PutMultiRegionAccessPointPolicy API operation for AWS S3 Control. +// PutAccessPointPolicy API operation for AWS S3 Control. // -// Associates an access control policy with the specified Multi-Region Access -// Point. Each Multi-Region Access Point can have only one policy, so a request -// made to this action replaces any existing policy that is associated with -// the specified Multi-Region Access Point. +// Associates an access policy with the specified access point. Each access +// point can have only one policy, so a request made to this API replaces any +// existing policy associated with the specified access point. // -// This action will always be routed to the US West (Oregon) Region. For more -// information about the restrictions around managing Multi-Region Access Points, -// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) -// in the Amazon S3 User Guide. +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html#API_control_PutAccessPointPolicy_Examples) +// section. // -// The following actions are related to PutMultiRegionAccessPointPolicy: +// The following actions are related to PutAccessPointPolicy: // -// - GetMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html) +// - GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) // -// - GetMultiRegionAccessPointPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html) +// - DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.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 S3 Control's -// API operation PutMultiRegionAccessPointPolicy for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutMultiRegionAccessPointPolicy -func (c *S3Control) PutMultiRegionAccessPointPolicy(input *PutMultiRegionAccessPointPolicyInput) (*PutMultiRegionAccessPointPolicyOutput, error) { - req, out := c.PutMultiRegionAccessPointPolicyRequest(input) +// API operation PutAccessPointPolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy +func (c *S3Control) PutAccessPointPolicy(input *PutAccessPointPolicyInput) (*PutAccessPointPolicyOutput, error) { + req, out := c.PutAccessPointPolicyRequest(input) return out, req.Send() } -// PutMultiRegionAccessPointPolicyWithContext is the same as PutMultiRegionAccessPointPolicy with the addition of +// PutAccessPointPolicyWithContext is the same as PutAccessPointPolicy with the addition of // the ability to pass a context and additional request options. // -// See PutMultiRegionAccessPointPolicy for details on how to use this API operation. +// See PutAccessPointPolicy for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutMultiRegionAccessPointPolicyWithContext(ctx aws.Context, input *PutMultiRegionAccessPointPolicyInput, opts ...request.Option) (*PutMultiRegionAccessPointPolicyOutput, error) { - req, out := c.PutMultiRegionAccessPointPolicyRequest(input) +func (c *S3Control) PutAccessPointPolicyWithContext(ctx aws.Context, input *PutAccessPointPolicyInput, opts ...request.Option) (*PutAccessPointPolicyOutput, error) { + req, out := c.PutAccessPointPolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutPublicAccessBlock = "PutPublicAccessBlock" +const opPutAccessPointPolicyForObjectLambda = "PutAccessPointPolicyForObjectLambda" -// PutPublicAccessBlockRequest generates a "aws/request.Request" representing the -// client's request for the PutPublicAccessBlock operation. The "output" return +// PutAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the +// client's request for the PutAccessPointPolicyForObjectLambda 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 PutPublicAccessBlock for more information on using the PutPublicAccessBlock +// See PutAccessPointPolicyForObjectLambda for more information on using the PutAccessPointPolicyForObjectLambda // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutPublicAccessBlockRequest method. -// req, resp := client.PutPublicAccessBlockRequest(params) +// // Example sending a request using the PutAccessPointPolicyForObjectLambdaRequest method. +// req, resp := client.PutAccessPointPolicyForObjectLambdaRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock -func (c *S3Control) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicyForObjectLambda +func (c *S3Control) PutAccessPointPolicyForObjectLambdaRequest(input *PutAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *PutAccessPointPolicyForObjectLambdaOutput) { op := &request.Operation{ - Name: opPutPublicAccessBlock, + Name: opPutAccessPointPolicyForObjectLambda, HTTPMethod: "PUT", - HTTPPath: "/v20180820/configuration/publicAccessBlock", + HTTPPath: "/v20180820/accesspointforobjectlambda/{name}/policy", } if input == nil { - input = &PutPublicAccessBlockInput{} + input = &PutAccessPointPolicyForObjectLambdaInput{} } - output = &PutPublicAccessBlockOutput{} + output = &PutAccessPointPolicyForObjectLambdaOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) @@ -6596,254 +7489,312 @@ func (c *S3Control) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput return } -// PutPublicAccessBlock API operation for AWS S3 Control. +// PutAccessPointPolicyForObjectLambda API operation for AWS S3 Control. // -// Creates or modifies the PublicAccessBlock configuration for an Amazon Web -// Services account. For this operation, users must have the s3:PutAccountPublicAccessBlock -// permission. For more information, see Using Amazon S3 block public access -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). +// Creates or replaces resource policy for an Object Lambda Access Point. For +// an example policy, see Creating Object Lambda Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-create.html#olap-create-cli) +// in the Amazon S3 User Guide. // -// Related actions include: +// The following actions are related to PutAccessPointPolicyForObjectLambda: // -// - GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html) +// - DeleteAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html) // -// - DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html) +// - GetAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyForObjectLambda.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 S3 Control's -// API operation PutPublicAccessBlock for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock -func (c *S3Control) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) { - req, out := c.PutPublicAccessBlockRequest(input) +// API operation PutAccessPointPolicyForObjectLambda for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicyForObjectLambda +func (c *S3Control) PutAccessPointPolicyForObjectLambda(input *PutAccessPointPolicyForObjectLambdaInput) (*PutAccessPointPolicyForObjectLambdaOutput, error) { + req, out := c.PutAccessPointPolicyForObjectLambdaRequest(input) return out, req.Send() } -// PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of +// PutAccessPointPolicyForObjectLambdaWithContext is the same as PutAccessPointPolicyForObjectLambda with the addition of // the ability to pass a context and additional request options. // -// See PutPublicAccessBlock for details on how to use this API operation. +// See PutAccessPointPolicyForObjectLambda for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) { - req, out := c.PutPublicAccessBlockRequest(input) +func (c *S3Control) PutAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *PutAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*PutAccessPointPolicyForObjectLambdaOutput, error) { + req, out := c.PutAccessPointPolicyForObjectLambdaRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutStorageLensConfiguration = "PutStorageLensConfiguration" +const opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration" -// PutStorageLensConfigurationRequest generates a "aws/request.Request" representing the -// client's request for the PutStorageLensConfiguration operation. The "output" return +// PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketLifecycleConfiguration 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 PutStorageLensConfiguration for more information on using the PutStorageLensConfiguration +// See PutBucketLifecycleConfiguration for more information on using the PutBucketLifecycleConfiguration // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutStorageLensConfigurationRequest method. -// req, resp := client.PutStorageLensConfigurationRequest(params) +// // Example sending a request using the PutBucketLifecycleConfigurationRequest method. +// req, resp := client.PutBucketLifecycleConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration -func (c *S3Control) PutStorageLensConfigurationRequest(input *PutStorageLensConfigurationInput) (req *request.Request, output *PutStorageLensConfigurationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration +func (c *S3Control) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleConfigurationInput) (req *request.Request, output *PutBucketLifecycleConfigurationOutput) { op := &request.Operation{ - Name: opPutStorageLensConfiguration, + Name: opPutBucketLifecycleConfiguration, HTTPMethod: "PUT", - HTTPPath: "/v20180820/storagelens/{storagelensid}", + HTTPPath: "/v20180820/bucket/{name}/lifecycleconfiguration", } if input == nil { - input = &PutStorageLensConfigurationInput{} + input = &PutBucketLifecycleConfigurationInput{} } - output = &PutStorageLensConfigurationOutput{} + output = &PutBucketLifecycleConfigurationOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// PutStorageLensConfiguration API operation for AWS S3 Control. +// PutBucketLifecycleConfiguration API operation for AWS S3 Control. // -// Puts an Amazon S3 Storage Lens configuration. For more information about -// S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) -// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, -// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) -// in the Amazon S3 User Guide. +// This action puts a lifecycle configuration to an Amazon S3 on Outposts bucket. +// To put a lifecycle configuration to an S3 bucket, see PutBucketLifecycleConfiguration +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) +// in the Amazon S3 API Reference. // -// To use this action, you must have permission to perform the s3:PutStorageLensConfiguration -// action. For more information, see Setting permissions to use Amazon S3 Storage -// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html) -// in the Amazon S3 User Guide. +// Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces +// an existing lifecycle configuration. Outposts buckets only support lifecycle +// configurations that delete/expire objects after a certain period of time +// and abort incomplete multipart uploads. // -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html#API_control_PutBucketLifecycleConfiguration_Examples) +// section. +// +// The following actions are related to PutBucketLifecycleConfiguration: +// +// - GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html) +// +// - DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.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 S3 Control's -// API operation PutStorageLensConfiguration for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration -func (c *S3Control) PutStorageLensConfiguration(input *PutStorageLensConfigurationInput) (*PutStorageLensConfigurationOutput, error) { - req, out := c.PutStorageLensConfigurationRequest(input) +// API operation PutBucketLifecycleConfiguration for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration +func (c *S3Control) PutBucketLifecycleConfiguration(input *PutBucketLifecycleConfigurationInput) (*PutBucketLifecycleConfigurationOutput, error) { + req, out := c.PutBucketLifecycleConfigurationRequest(input) return out, req.Send() } -// PutStorageLensConfigurationWithContext is the same as PutStorageLensConfiguration with the addition of +// PutBucketLifecycleConfigurationWithContext is the same as PutBucketLifecycleConfiguration with the addition of // the ability to pass a context and additional request options. // -// See PutStorageLensConfiguration for details on how to use this API operation. +// See PutBucketLifecycleConfiguration for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutStorageLensConfigurationWithContext(ctx aws.Context, input *PutStorageLensConfigurationInput, opts ...request.Option) (*PutStorageLensConfigurationOutput, error) { - req, out := c.PutStorageLensConfigurationRequest(input) +func (c *S3Control) PutBucketLifecycleConfigurationWithContext(ctx aws.Context, input *PutBucketLifecycleConfigurationInput, opts ...request.Option) (*PutBucketLifecycleConfigurationOutput, error) { + req, out := c.PutBucketLifecycleConfigurationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutStorageLensConfigurationTagging = "PutStorageLensConfigurationTagging" +const opPutBucketPolicy = "PutBucketPolicy" -// PutStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the -// client's request for the PutStorageLensConfigurationTagging operation. The "output" return +// PutBucketPolicyRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketPolicy 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 PutStorageLensConfigurationTagging for more information on using the PutStorageLensConfigurationTagging +// See PutBucketPolicy for more information on using the PutBucketPolicy // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the PutStorageLensConfigurationTaggingRequest method. -// req, resp := client.PutStorageLensConfigurationTaggingRequest(params) +// // Example sending a request using the PutBucketPolicyRequest method. +// req, resp := client.PutBucketPolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging -func (c *S3Control) PutStorageLensConfigurationTaggingRequest(input *PutStorageLensConfigurationTaggingInput) (req *request.Request, output *PutStorageLensConfigurationTaggingOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy +func (c *S3Control) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.Request, output *PutBucketPolicyOutput) { op := &request.Operation{ - Name: opPutStorageLensConfigurationTagging, + Name: opPutBucketPolicy, HTTPMethod: "PUT", - HTTPPath: "/v20180820/storagelens/{storagelensid}/tagging", + HTTPPath: "/v20180820/bucket/{name}/policy", } if input == nil { - input = &PutStorageLensConfigurationTaggingInput{} + input = &PutBucketPolicyInput{} } - output = &PutStorageLensConfigurationTaggingOutput{} + output = &PutBucketPolicyOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// PutStorageLensConfigurationTagging API operation for AWS S3 Control. +// PutBucketPolicy API operation for AWS S3 Control. // -// Put or replace tags on an existing Amazon S3 Storage Lens configuration. -// For more information about S3 Storage Lens, see Assessing your storage activity -// and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) -// in the Amazon S3 User Guide. +// This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put +// a policy on an S3 bucket, see PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html) +// in the Amazon S3 API Reference. // -// To use this action, you must have permission to perform the s3:PutStorageLensConfigurationTagging -// action. For more information, see Setting permissions to use Amazon S3 Storage -// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html) +// Applies an Amazon S3 bucket policy to an Outposts bucket. For more information, +// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // +// If you are using an identity other than the root user of the Amazon Web Services +// account that owns the Outposts bucket, the calling identity must have the +// PutBucketPolicy permissions on the specified Outposts bucket and belong to +// the bucket owner's account in order to use this action. +// +// If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access +// Denied error. If you have the correct permissions, but you're not using an +// identity that belongs to the bucket owner's account, Amazon S3 returns a +// 405 Method Not Allowed error. +// +// As a security precaution, the root user of the Amazon Web Services account +// that owns a bucket can always use this action, even if the policy explicitly +// denies the root user the ability to perform this action. +// +// For more information about bucket policies, see Using Bucket Policies and +// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html#API_control_PutBucketPolicy_Examples) +// section. +// +// The following actions are related to PutBucketPolicy: +// +// - GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html) +// +// - DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.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 S3 Control's -// API operation PutStorageLensConfigurationTagging for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging -func (c *S3Control) PutStorageLensConfigurationTagging(input *PutStorageLensConfigurationTaggingInput) (*PutStorageLensConfigurationTaggingOutput, error) { - req, out := c.PutStorageLensConfigurationTaggingRequest(input) +// API operation PutBucketPolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy +func (c *S3Control) PutBucketPolicy(input *PutBucketPolicyInput) (*PutBucketPolicyOutput, error) { + req, out := c.PutBucketPolicyRequest(input) return out, req.Send() } -// PutStorageLensConfigurationTaggingWithContext is the same as PutStorageLensConfigurationTagging with the addition of +// PutBucketPolicyWithContext is the same as PutBucketPolicy with the addition of // the ability to pass a context and additional request options. // -// See PutStorageLensConfigurationTagging for details on how to use this API operation. +// See PutBucketPolicy for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *PutStorageLensConfigurationTaggingInput, opts ...request.Option) (*PutStorageLensConfigurationTaggingOutput, error) { - req, out := c.PutStorageLensConfigurationTaggingRequest(input) +func (c *S3Control) PutBucketPolicyWithContext(ctx aws.Context, input *PutBucketPolicyInput, opts ...request.Option) (*PutBucketPolicyOutput, error) { + req, out := c.PutBucketPolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opSubmitMultiRegionAccessPointRoutes = "SubmitMultiRegionAccessPointRoutes" +const opPutBucketReplication = "PutBucketReplication" -// SubmitMultiRegionAccessPointRoutesRequest generates a "aws/request.Request" representing the -// client's request for the SubmitMultiRegionAccessPointRoutes operation. The "output" return +// PutBucketReplicationRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketReplication 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 SubmitMultiRegionAccessPointRoutes for more information on using the SubmitMultiRegionAccessPointRoutes +// See PutBucketReplication for more information on using the PutBucketReplication // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the SubmitMultiRegionAccessPointRoutesRequest method. -// req, resp := client.SubmitMultiRegionAccessPointRoutesRequest(params) +// // Example sending a request using the PutBucketReplicationRequest method. +// req, resp := client.PutBucketReplicationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SubmitMultiRegionAccessPointRoutes -func (c *S3Control) SubmitMultiRegionAccessPointRoutesRequest(input *SubmitMultiRegionAccessPointRoutesInput) (req *request.Request, output *SubmitMultiRegionAccessPointRoutesOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketReplication +func (c *S3Control) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req *request.Request, output *PutBucketReplicationOutput) { op := &request.Operation{ - Name: opSubmitMultiRegionAccessPointRoutes, - HTTPMethod: "PATCH", - HTTPPath: "/v20180820/mrap/instances/{mrap+}/routes", + Name: opPutBucketReplication, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/bucket/{name}/replication", } if input == nil { - input = &SubmitMultiRegionAccessPointRoutesInput{} + input = &PutBucketReplicationInput{} } - output = &SubmitMultiRegionAccessPointRoutesOutput{} + output = &PutBucketReplicationOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) @@ -6854,475 +7805,647 @@ func (c *S3Control) SubmitMultiRegionAccessPointRoutesRequest(input *SubmitMulti return } -// SubmitMultiRegionAccessPointRoutes API operation for AWS S3 Control. +// PutBucketReplication API operation for AWS S3 Control. // -// Submits an updated route configuration for a Multi-Region Access Point. This -// API operation updates the routing status for the specified Regions from active -// to passive, or from passive to active. A value of 0 indicates a passive status, -// which means that traffic won't be routed to the specified Region. A value -// of 100 indicates an active status, which means that traffic will be routed -// to the specified Region. At least one Region must be active at all times. +// This action creates an Amazon S3 on Outposts bucket's replication configuration. +// To create an S3 bucket's replication configuration, see PutBucketReplication +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) +// in the Amazon S3 API Reference. // -// When the routing configuration is changed, any in-progress operations (uploads, -// copies, deletes, and so on) to formerly active Regions will continue to run -// to their final completion state (success or failure). The routing configurations -// of any Regions that aren’t specified remain unchanged. +// Creates a replication configuration or replaces an existing one. For information +// about S3 replication on Outposts configuration, see Replicating objects for +// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsReplication.html) +// in the Amazon S3 User Guide. // -// Updated routing configurations might not be immediately applied. It can take -// up to 2 minutes for your changes to take effect. +// It can take a while to propagate PUT or DELETE requests for a replication +// configuration to all S3 on Outposts systems. Therefore, the replication configuration +// that's returned by a GET request soon after a PUT or DELETE request might +// return a more recent result than what's on the Outpost. If an Outpost is +// offline, the delay in updating the replication configuration on that Outpost +// can be significant. // -// To submit routing control changes and failover requests, use the Amazon S3 -// failover control infrastructure endpoints in these five Amazon Web Services -// Regions: +// Specify the replication configuration in the request body. In the replication +// configuration, you provide the following information: // -// - us-east-1 +// - The name of the destination bucket or buckets where you want S3 on Outposts +// to replicate objects // -// - us-west-2 +// - The Identity and Access Management (IAM) role that S3 on Outposts can +// assume to replicate objects on your behalf // -// - ap-southeast-2 +// - Other relevant information, such as replication rules // -// - ap-northeast-1 +// A replication configuration must include at least one rule and can contain +// a maximum of 100. Each rule identifies a subset of objects to replicate by +// filtering the objects in the source Outposts bucket. To choose additional +// subsets of objects to replicate, add a rule for each subset. // -// - eu-west-1 +// To specify a subset of the objects in the source Outposts bucket to apply +// a replication rule to, add the Filter element as a child of the Rule element. +// You can filter objects based on an object key prefix, one or more object +// tags, or both. When you add the Filter element in the configuration, you +// must also add the following elements: DeleteMarkerReplication, Status, and +// Priority. // -// Your Amazon S3 bucket does not need to be in these five Regions. +// Using PutBucketReplication on Outposts requires that both the source and +// destination buckets must have versioning enabled. For information about enabling +// versioning on a bucket, see Managing S3 Versioning for your S3 on Outposts +// bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsManagingVersioning.html). +// +// For information about S3 on Outposts replication failure reasons, see Replication +// failure reasons (https://docs.aws.amazon.com/AmazonS3/latest/userguide/outposts-replication-eventbridge.html#outposts-replication-failure-codes) +// in the Amazon S3 User Guide. +// +// # Handling Replication of Encrypted Objects +// +// Outposts buckets are encrypted at all times. All the objects in the source +// Outposts bucket are encrypted and can be replicated. Also, all the replicas +// in the destination Outposts bucket are encrypted with the same encryption +// key as the objects in the source Outposts bucket. +// +// # Permissions +// +// To create a PutBucketReplication request, you must have s3-outposts:PutReplicationConfiguration +// permissions for the bucket. The Outposts bucket owner has this permission +// by default and can grant it to others. For more information about permissions, +// see Setting up IAM with S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsIAM.html) +// and Managing access to S3 on Outposts buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsBucketPolicy.html). +// +// To perform this operation, the user or role must also have the iam:CreateRole +// and iam:PassRole permissions. For more information, see Granting a user permissions +// to pass a role to an Amazon Web Services service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html). +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketReplication.html#API_control_PutBucketReplication_Examples) +// section. +// +// The following operations are related to PutBucketReplication: +// +// - GetBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketReplication.html) +// +// - DeleteBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketReplication.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 S3 Control's -// API operation SubmitMultiRegionAccessPointRoutes for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SubmitMultiRegionAccessPointRoutes -func (c *S3Control) SubmitMultiRegionAccessPointRoutes(input *SubmitMultiRegionAccessPointRoutesInput) (*SubmitMultiRegionAccessPointRoutesOutput, error) { - req, out := c.SubmitMultiRegionAccessPointRoutesRequest(input) +// API operation PutBucketReplication for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketReplication +func (c *S3Control) PutBucketReplication(input *PutBucketReplicationInput) (*PutBucketReplicationOutput, error) { + req, out := c.PutBucketReplicationRequest(input) return out, req.Send() } -// SubmitMultiRegionAccessPointRoutesWithContext is the same as SubmitMultiRegionAccessPointRoutes with the addition of +// PutBucketReplicationWithContext is the same as PutBucketReplication with the addition of // the ability to pass a context and additional request options. // -// See SubmitMultiRegionAccessPointRoutes for details on how to use this API operation. +// See PutBucketReplication for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) SubmitMultiRegionAccessPointRoutesWithContext(ctx aws.Context, input *SubmitMultiRegionAccessPointRoutesInput, opts ...request.Option) (*SubmitMultiRegionAccessPointRoutesOutput, error) { - req, out := c.SubmitMultiRegionAccessPointRoutesRequest(input) +func (c *S3Control) PutBucketReplicationWithContext(ctx aws.Context, input *PutBucketReplicationInput, opts ...request.Option) (*PutBucketReplicationOutput, error) { + req, out := c.PutBucketReplicationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opTagResource = "TagResource" +const opPutBucketTagging = "PutBucketTagging" -// TagResourceRequest generates a "aws/request.Request" representing the -// client's request for the TagResource operation. The "output" return +// PutBucketTaggingRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketTagging 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 +// See PutBucketTagging for more information on using the PutBucketTagging // API call, and error handling. // // This method is useful when you want to 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) +// // Example sending a request using the PutBucketTaggingRequest method. +// req, resp := client.PutBucketTaggingRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/TagResource -func (c *S3Control) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging +func (c *S3Control) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request.Request, output *PutBucketTaggingOutput) { op := &request.Operation{ - Name: opTagResource, - HTTPMethod: "POST", - HTTPPath: "/v20180820/tags/{resourceArn+}", + Name: opPutBucketTagging, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/bucket/{name}/tagging", } if input == nil { - input = &TagResourceInput{} + input = &PutBucketTaggingInput{} } - output = &TagResourceOutput{} + output = &PutBucketTaggingOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// TagResource API operation for AWS S3 Control. +// PutBucketTagging API operation for AWS S3 Control. // -// Creates a new Amazon Web Services resource tag or updates an existing resource -// tag. You can add up to 50 Amazon Web Services resource tags for each S3 resource. +// This action puts tags on an Amazon S3 on Outposts bucket. To put tags on +// an S3 bucket, see PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) +// in the Amazon S3 API Reference. // -// To use this operation, you must have the permission to perform the s3:TagResource -// action. For more information about the required Storage Lens Groups permissions, -// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). +// Sets the tags for an S3 on Outposts bucket. For more information, see Using +// Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) +// in the Amazon S3 User Guide. // -// For information about S3 Tagging errors, see List of Amazon S3 Tagging error -// codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3TaggingErrorCodeList). +// Use tags to organize your Amazon Web Services bill to reflect your own cost +// structure. To do this, sign up to get your Amazon Web Services account bill +// with tag key values included. Then, to see the cost of combined resources, +// organize your billing information according to resources with the same tag +// key values. For example, you can tag several resources with a specific application +// name, and then organize your billing information to see the total cost of +// that application across several services. For more information, see Cost +// allocation and tagging (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html). +// +// Within a bucket, if you add a tag that has the same key as an existing tag, +// the new value overwrites the old value. For more information, see Using cost +// allocation in Amazon S3 bucket tags (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html). +// +// To use this action, you must have permissions to perform the s3-outposts:PutBucketTagging +// action. The Outposts bucket owner has this permission by default and can +// grant this permission to others. For more information about permissions, +// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) +// and Managing access permissions to your Amazon S3 resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). +// +// PutBucketTagging has the following special errors: +// +// - Error code: InvalidTagError Description: The tag provided was not a +// valid tag. This error can occur if the tag did not pass input validation. +// For information about tag restrictions, see User-Defined Tag Restrictions +// (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) +// and Amazon Web Services-Generated Cost Allocation Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html). +// +// - Error code: MalformedXMLError Description: The XML provided does not +// match the schema. +// +// - Error code: OperationAbortedError Description: A conflicting conditional +// action is currently in progress against this resource. Try again. +// +// - Error code: InternalError Description: The service was unable to apply +// the provided tag to the bucket. +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html#API_control_PutBucketTagging_Examples) +// section. +// +// The following actions are related to PutBucketTagging: +// +// - GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html) // -// This operation is only supported for S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups.html). +// - DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.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 S3 Control's -// API operation TagResource for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/TagResource -func (c *S3Control) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { - req, out := c.TagResourceRequest(input) +// API operation PutBucketTagging for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging +func (c *S3Control) PutBucketTagging(input *PutBucketTaggingInput) (*PutBucketTaggingOutput, error) { + req, out := c.PutBucketTaggingRequest(input) return out, req.Send() } -// TagResourceWithContext is the same as TagResource with the addition of +// PutBucketTaggingWithContext is the same as PutBucketTagging 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. +// See PutBucketTagging for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { - req, out := c.TagResourceRequest(input) +func (c *S3Control) PutBucketTaggingWithContext(ctx aws.Context, input *PutBucketTaggingInput, opts ...request.Option) (*PutBucketTaggingOutput, error) { + req, out := c.PutBucketTaggingRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opUntagResource = "UntagResource" +const opPutBucketVersioning = "PutBucketVersioning" -// UntagResourceRequest generates a "aws/request.Request" representing the -// client's request for the UntagResource operation. The "output" return +// PutBucketVersioningRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketVersioning 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 +// See PutBucketVersioning for more information on using the PutBucketVersioning // API call, and error handling. // // This method is useful when you want to 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) +// // Example sending a request using the PutBucketVersioningRequest method. +// req, resp := client.PutBucketVersioningRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UntagResource -func (c *S3Control) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketVersioning +func (c *S3Control) PutBucketVersioningRequest(input *PutBucketVersioningInput) (req *request.Request, output *PutBucketVersioningOutput) { op := &request.Operation{ - Name: opUntagResource, - HTTPMethod: "DELETE", - HTTPPath: "/v20180820/tags/{resourceArn+}", + Name: opPutBucketVersioning, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/bucket/{name}/versioning", } if input == nil { - input = &UntagResourceInput{} + input = &PutBucketVersioningInput{} } - output = &UntagResourceOutput{} + output = &PutBucketVersioningOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// UntagResource API operation for AWS S3 Control. +// PutBucketVersioning API operation for AWS S3 Control. // -// This operation removes the specified Amazon Web Services resource tags from -// an S3 resource. +// This operation sets the versioning state for S3 on Outposts buckets only. +// To set the versioning state for an S3 bucket, see PutBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html) +// in the Amazon S3 API Reference. // -// To use this operation, you must have the permission to perform the s3:UntagResource -// action. For more information about the required Storage Lens Groups permissions, -// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). +// Sets the versioning state for an S3 on Outposts bucket. With S3 Versioning, +// you can save multiple distinct copies of your objects and recover from unintended +// user actions and application failures. // -// For information about S3 Tagging errors, see List of Amazon S3 Tagging error -// codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3TaggingErrorCodeList). +// You can set the versioning state to one of the following: +// +// - Enabled - Enables versioning for the objects in the bucket. All objects +// added to the bucket receive a unique version ID. +// +// - Suspended - Suspends versioning for the objects in the bucket. All objects +// added to the bucket receive the version ID null. +// +// If you've never set versioning on your bucket, it has no versioning state. +// In that case, a GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketVersioning.html) +// request does not return a versioning state value. +// +// When you enable S3 Versioning, for each object in your bucket, you have a +// current version and zero or more noncurrent versions. You can configure your +// bucket S3 Lifecycle rules to expire noncurrent versions after a specified +// time period. For more information, see Creating and managing a lifecycle +// configuration for your S3 on Outposts bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsLifecycleManaging.html) +// in the Amazon S3 User Guide. +// +// If you have an object expiration lifecycle configuration in your non-versioned +// bucket and you want to maintain the same permanent delete behavior when you +// enable versioning, you must add a noncurrent expiration policy. The noncurrent +// expiration lifecycle configuration will manage the deletes of the noncurrent +// object versions in the version-enabled bucket. For more information, see +// Versioning (https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html) +// in the Amazon S3 User Guide. +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of x-amz-outpost-id to be passed with the request. In addition, +// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived +// by using the access point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketVersioning.html#API_control_PutBucketVersioning_Examples) +// section. +// +// The following operations are related to PutBucketVersioning for S3 on Outposts. // -// This operation is only supported for S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups.html). +// - GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketVersioning.html) +// +// - PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html) +// +// - GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.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 S3 Control's -// API operation UntagResource for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UntagResource -func (c *S3Control) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { - req, out := c.UntagResourceRequest(input) +// API operation PutBucketVersioning for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketVersioning +func (c *S3Control) PutBucketVersioning(input *PutBucketVersioningInput) (*PutBucketVersioningOutput, error) { + req, out := c.PutBucketVersioningRequest(input) return out, req.Send() } -// UntagResourceWithContext is the same as UntagResource with the addition of +// PutBucketVersioningWithContext is the same as PutBucketVersioning 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. +// See PutBucketVersioning for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { - req, out := c.UntagResourceRequest(input) +func (c *S3Control) PutBucketVersioningWithContext(ctx aws.Context, input *PutBucketVersioningInput, opts ...request.Option) (*PutBucketVersioningOutput, error) { + req, out := c.PutBucketVersioningRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opUpdateJobPriority = "UpdateJobPriority" +const opPutJobTagging = "PutJobTagging" -// UpdateJobPriorityRequest generates a "aws/request.Request" representing the -// client's request for the UpdateJobPriority operation. The "output" return +// PutJobTaggingRequest generates a "aws/request.Request" representing the +// client's request for the PutJobTagging 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 UpdateJobPriority for more information on using the UpdateJobPriority +// See PutJobTagging for more information on using the PutJobTagging // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the UpdateJobPriorityRequest method. -// req, resp := client.UpdateJobPriorityRequest(params) +// // Example sending a request using the PutJobTaggingRequest method. +// req, resp := client.PutJobTaggingRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority -func (c *S3Control) UpdateJobPriorityRequest(input *UpdateJobPriorityInput) (req *request.Request, output *UpdateJobPriorityOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging +func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *request.Request, output *PutJobTaggingOutput) { op := &request.Operation{ - Name: opUpdateJobPriority, - HTTPMethod: "POST", - HTTPPath: "/v20180820/jobs/{id}/priority", + Name: opPutJobTagging, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/jobs/{id}/tagging", } if input == nil { - input = &UpdateJobPriorityInput{} + input = &PutJobTaggingInput{} } - output = &UpdateJobPriorityOutput{} + output = &PutJobTaggingOutput{} req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// UpdateJobPriority API operation for AWS S3 Control. -// -// Updates an existing S3 Batch Operations job's priority. For more information, -// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) -// in the Amazon S3 User Guide. +// PutJobTagging API operation for AWS S3 Control. // -// Related actions include: +// Sets the supplied tag-set on an S3 Batch Operations job. // -// - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// A tag is a key-value pair. You can associate S3 Batch Operations tags with +// any job by sending a PUT request against the tagging subresource that is +// associated with the job. To modify the existing tag set, you can either replace +// the existing tag set entirely, or make changes within the existing tag set +// by retrieving the existing tag set using GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html), +// modify that tag set, and use this action to replace the tag set with the +// one you modified. For more information, see Controlling access and labeling +// jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) +// in the Amazon S3 User Guide. // -// - ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html) +// - If you send this request with an empty tag set, Amazon S3 deletes the +// existing tag set on the Batch Operations job. If you use this method, +// you are charged for a Tier 1 Request (PUT). For more information, see +// Amazon S3 pricing (http://aws.amazon.com/s3/pricing/). // -// - DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html) +// - For deleting existing tags for your Batch Operations job, a DeleteJobTagging +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html) +// request is preferred because it achieves the same result without incurring +// charges. // -// - UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html) +// - A few things to consider about using tags: Amazon S3 limits the maximum +// number of tags to 50 tags per job. You can associate up to 50 tags with +// a job as long as they have unique tag keys. A tag key can be up to 128 +// Unicode characters in length, and tag values can be up to 256 Unicode +// characters in length. The key and values are case sensitive. For tagging-related +// restrictions related to characters and encodings, see User-Defined Tag +// Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) +// in the Billing and Cost Management User Guide. +// +// To use the PutJobTagging operation, you must have permission to perform the +// s3:PutJobTagging action. +// +// Related actions include: +// +// - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// +// - GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html) +// +// - DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.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 S3 Control's -// API operation UpdateJobPriority for usage and error information. +// API operation PutJobTagging for usage and error information. // // Returned Error Codes: // -// - ErrCodeBadRequestException "BadRequestException" +// - ErrCodeInternalServiceException "InternalServiceException" // // - ErrCodeTooManyRequestsException "TooManyRequestsException" // // - ErrCodeNotFoundException "NotFoundException" // -// - ErrCodeInternalServiceException "InternalServiceException" +// - ErrCodeTooManyTagsException "TooManyTagsException" +// Amazon S3 throws this exception if you have too many tags in your tag set. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority -func (c *S3Control) UpdateJobPriority(input *UpdateJobPriorityInput) (*UpdateJobPriorityOutput, error) { - req, out := c.UpdateJobPriorityRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging +func (c *S3Control) PutJobTagging(input *PutJobTaggingInput) (*PutJobTaggingOutput, error) { + req, out := c.PutJobTaggingRequest(input) return out, req.Send() } -// UpdateJobPriorityWithContext is the same as UpdateJobPriority with the addition of +// PutJobTaggingWithContext is the same as PutJobTagging with the addition of // the ability to pass a context and additional request options. // -// See UpdateJobPriority for details on how to use this API operation. +// See PutJobTagging for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) UpdateJobPriorityWithContext(ctx aws.Context, input *UpdateJobPriorityInput, opts ...request.Option) (*UpdateJobPriorityOutput, error) { - req, out := c.UpdateJobPriorityRequest(input) +func (c *S3Control) PutJobTaggingWithContext(ctx aws.Context, input *PutJobTaggingInput, opts ...request.Option) (*PutJobTaggingOutput, error) { + req, out := c.PutJobTaggingRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opUpdateJobStatus = "UpdateJobStatus" +const opPutMultiRegionAccessPointPolicy = "PutMultiRegionAccessPointPolicy" -// UpdateJobStatusRequest generates a "aws/request.Request" representing the -// client's request for the UpdateJobStatus operation. The "output" return +// PutMultiRegionAccessPointPolicyRequest generates a "aws/request.Request" representing the +// client's request for the PutMultiRegionAccessPointPolicy 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 UpdateJobStatus for more information on using the UpdateJobStatus +// See PutMultiRegionAccessPointPolicy for more information on using the PutMultiRegionAccessPointPolicy // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the UpdateJobStatusRequest method. -// req, resp := client.UpdateJobStatusRequest(params) +// // Example sending a request using the PutMultiRegionAccessPointPolicyRequest method. +// req, resp := client.PutMultiRegionAccessPointPolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus -func (c *S3Control) UpdateJobStatusRequest(input *UpdateJobStatusInput) (req *request.Request, output *UpdateJobStatusOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutMultiRegionAccessPointPolicy +func (c *S3Control) PutMultiRegionAccessPointPolicyRequest(input *PutMultiRegionAccessPointPolicyInput) (req *request.Request, output *PutMultiRegionAccessPointPolicyOutput) { op := &request.Operation{ - Name: opUpdateJobStatus, + Name: opPutMultiRegionAccessPointPolicy, HTTPMethod: "POST", - HTTPPath: "/v20180820/jobs/{id}/status", + HTTPPath: "/v20180820/async-requests/mrap/put-policy", } if input == nil { - input = &UpdateJobStatusInput{} + input = &PutMultiRegionAccessPointPolicyInput{} } - output = &UpdateJobStatusOutput{} + output = &PutMultiRegionAccessPointPolicyOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) return } -// UpdateJobStatus API operation for AWS S3 Control. -// -// Updates the status for the specified job. Use this action to confirm that -// you want to run a job or to cancel an existing job. For more information, -// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) -// in the Amazon S3 User Guide. +// PutMultiRegionAccessPointPolicy API operation for AWS S3 Control. // -// Related actions include: +// Associates an access control policy with the specified Multi-Region Access +// Point. Each Multi-Region Access Point can have only one policy, so a request +// made to this action replaces any existing policy that is associated with +// the specified Multi-Region Access Point. // -// - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// This action will always be routed to the US West (Oregon) Region. For more +// information about the restrictions around managing Multi-Region Access Points, +// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html) +// in the Amazon S3 User Guide. // -// - ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html) +// The following actions are related to PutMultiRegionAccessPointPolicy: // -// - DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html) +// - GetMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html) // -// - UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html) +// - GetMultiRegionAccessPointPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.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 S3 Control's -// API operation UpdateJobStatus for usage and error information. -// -// Returned Error Codes: -// -// - ErrCodeBadRequestException "BadRequestException" -// -// - ErrCodeTooManyRequestsException "TooManyRequestsException" -// -// - ErrCodeNotFoundException "NotFoundException" -// -// - ErrCodeJobStatusException "JobStatusException" -// -// - ErrCodeInternalServiceException "InternalServiceException" -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus -func (c *S3Control) UpdateJobStatus(input *UpdateJobStatusInput) (*UpdateJobStatusOutput, error) { - req, out := c.UpdateJobStatusRequest(input) +// API operation PutMultiRegionAccessPointPolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutMultiRegionAccessPointPolicy +func (c *S3Control) PutMultiRegionAccessPointPolicy(input *PutMultiRegionAccessPointPolicyInput) (*PutMultiRegionAccessPointPolicyOutput, error) { + req, out := c.PutMultiRegionAccessPointPolicyRequest(input) return out, req.Send() } -// UpdateJobStatusWithContext is the same as UpdateJobStatus with the addition of +// PutMultiRegionAccessPointPolicyWithContext is the same as PutMultiRegionAccessPointPolicy with the addition of // the ability to pass a context and additional request options. // -// See UpdateJobStatus for details on how to use this API operation. +// See PutMultiRegionAccessPointPolicy for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) UpdateJobStatusWithContext(ctx aws.Context, input *UpdateJobStatusInput, opts ...request.Option) (*UpdateJobStatusOutput, error) { - req, out := c.UpdateJobStatusRequest(input) +func (c *S3Control) PutMultiRegionAccessPointPolicyWithContext(ctx aws.Context, input *PutMultiRegionAccessPointPolicyInput, opts ...request.Option) (*PutMultiRegionAccessPointPolicyOutput, error) { + req, out := c.PutMultiRegionAccessPointPolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opUpdateStorageLensGroup = "UpdateStorageLensGroup" +const opPutPublicAccessBlock = "PutPublicAccessBlock" -// UpdateStorageLensGroupRequest generates a "aws/request.Request" representing the -// client's request for the UpdateStorageLensGroup operation. The "output" return +// PutPublicAccessBlockRequest generates a "aws/request.Request" representing the +// client's request for the PutPublicAccessBlock 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 UpdateStorageLensGroup for more information on using the UpdateStorageLensGroup +// See PutPublicAccessBlock for more information on using the PutPublicAccessBlock // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the UpdateStorageLensGroupRequest method. -// req, resp := client.UpdateStorageLensGroupRequest(params) +// // Example sending a request using the PutPublicAccessBlockRequest method. +// req, resp := client.PutPublicAccessBlockRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateStorageLensGroup -func (c *S3Control) UpdateStorageLensGroupRequest(input *UpdateStorageLensGroupInput) (req *request.Request, output *UpdateStorageLensGroupOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock +func (c *S3Control) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) { op := &request.Operation{ - Name: opUpdateStorageLensGroup, + Name: opPutPublicAccessBlock, HTTPMethod: "PUT", - HTTPPath: "/v20180820/storagelensgroup/{name}", + HTTPPath: "/v20180820/configuration/publicAccessBlock", } if input == nil { - input = &UpdateStorageLensGroupInput{} + input = &PutPublicAccessBlockInput{} } - output = &UpdateStorageLensGroupOutput{} + output = &PutPublicAccessBlockOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) @@ -7330,113 +8453,4020 @@ func (c *S3Control) UpdateStorageLensGroupRequest(input *UpdateStorageLensGroupI return } -// UpdateStorageLensGroup API operation for AWS S3 Control. +// PutPublicAccessBlock API operation for AWS S3 Control. // -// Updates the existing Storage Lens group. +// Creates or modifies the PublicAccessBlock configuration for an Amazon Web +// Services account. For this operation, users must have the s3:PutAccountPublicAccessBlock +// permission. For more information, see Using Amazon S3 block public access +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). // -// To use this operation, you must have the permission to perform the s3:UpdateStorageLensGroup -// action. For more information about the required Storage Lens Groups permissions, -// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). +// Related actions include: // -// For information about Storage Lens groups errors, see List of Amazon S3 Storage -// Lens error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3LensErrorCodeList). +// - GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html) +// +// - DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.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 S3 Control's -// API operation UpdateStorageLensGroup for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateStorageLensGroup -func (c *S3Control) UpdateStorageLensGroup(input *UpdateStorageLensGroupInput) (*UpdateStorageLensGroupOutput, error) { - req, out := c.UpdateStorageLensGroupRequest(input) +// API operation PutPublicAccessBlock for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock +func (c *S3Control) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) { + req, out := c.PutPublicAccessBlockRequest(input) return out, req.Send() } -// UpdateStorageLensGroupWithContext is the same as UpdateStorageLensGroup with the addition of +// PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of // the ability to pass a context and additional request options. // -// See UpdateStorageLensGroup for details on how to use this API operation. +// See PutPublicAccessBlock for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) UpdateStorageLensGroupWithContext(ctx aws.Context, input *UpdateStorageLensGroupInput, opts ...request.Option) (*UpdateStorageLensGroupOutput, error) { - req, out := c.UpdateStorageLensGroupRequest(input) +func (c *S3Control) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) { + req, out := c.PutPublicAccessBlockRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// The container for abort incomplete multipart upload -type AbortIncompleteMultipartUpload struct { - _ struct{} `type:"structure"` - - // Specifies the number of days after which Amazon S3 aborts an incomplete multipart - // upload to the Outposts bucket. - DaysAfterInitiation *int64 `type:"integer"` -} +const opPutStorageLensConfiguration = "PutStorageLensConfiguration" -// String returns the string representation. +// PutStorageLensConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the PutStorageLensConfiguration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. // -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s AbortIncompleteMultipartUpload) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. // -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s AbortIncompleteMultipartUpload) GoString() string { - return s.String() -} - -// SetDaysAfterInitiation sets the DaysAfterInitiation field's value. -func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortIncompleteMultipartUpload { - s.DaysAfterInitiation = &v - return s -} - -// A container for information about access control for replicas. +// See PutStorageLensConfiguration for more information on using the PutStorageLensConfiguration +// API call, and error handling. // -// This is not supported by Amazon S3 on Outposts buckets. -type AccessControlTranslation struct { - _ struct{} `type:"structure"` - - // Specifies the replica ownership. - // - // Owner is a required field - Owner *string `type:"string" required:"true" enum:"OwnerOverride"` -} - -// String returns the string representation. +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s AccessControlTranslation) String() string { - return awsutil.Prettify(s) -} +// // Example sending a request using the PutStorageLensConfigurationRequest method. +// req, resp := client.PutStorageLensConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration +func (c *S3Control) PutStorageLensConfigurationRequest(input *PutStorageLensConfigurationInput) (req *request.Request, output *PutStorageLensConfigurationOutput) { + op := &request.Operation{ + Name: opPutStorageLensConfiguration, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/storagelens/{storagelensid}", + } + + if input == nil { + input = &PutStorageLensConfigurationInput{} + } + + output = &PutStorageLensConfigurationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// PutStorageLensConfiguration API operation for AWS S3 Control. +// +// Puts an Amazon S3 Storage Lens configuration. For more information about +// S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) +// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, +// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) +// in the Amazon S3 User Guide. +// +// To use this action, you must have permission to perform the s3:PutStorageLensConfiguration +// action. For more information, see Setting permissions to use Amazon S3 Storage +// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html) +// in the Amazon S3 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation PutStorageLensConfiguration for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration +func (c *S3Control) PutStorageLensConfiguration(input *PutStorageLensConfigurationInput) (*PutStorageLensConfigurationOutput, error) { + req, out := c.PutStorageLensConfigurationRequest(input) + return out, req.Send() +} + +// PutStorageLensConfigurationWithContext is the same as PutStorageLensConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See PutStorageLensConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) PutStorageLensConfigurationWithContext(ctx aws.Context, input *PutStorageLensConfigurationInput, opts ...request.Option) (*PutStorageLensConfigurationOutput, error) { + req, out := c.PutStorageLensConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutStorageLensConfigurationTagging = "PutStorageLensConfigurationTagging" + +// PutStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the +// client's request for the PutStorageLensConfigurationTagging 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 PutStorageLensConfigurationTagging for more information on using the PutStorageLensConfigurationTagging +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the PutStorageLensConfigurationTaggingRequest method. +// req, resp := client.PutStorageLensConfigurationTaggingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging +func (c *S3Control) PutStorageLensConfigurationTaggingRequest(input *PutStorageLensConfigurationTaggingInput) (req *request.Request, output *PutStorageLensConfigurationTaggingOutput) { + op := &request.Operation{ + Name: opPutStorageLensConfigurationTagging, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/storagelens/{storagelensid}/tagging", + } + + if input == nil { + input = &PutStorageLensConfigurationTaggingInput{} + } + + output = &PutStorageLensConfigurationTaggingOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// PutStorageLensConfigurationTagging API operation for AWS S3 Control. +// +// Put or replace tags on an existing Amazon S3 Storage Lens configuration. +// For more information about S3 Storage Lens, see Assessing your storage activity +// and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) +// in the Amazon S3 User Guide. +// +// To use this action, you must have permission to perform the s3:PutStorageLensConfigurationTagging +// action. For more information, see Setting permissions to use Amazon S3 Storage +// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html) +// in the Amazon S3 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation PutStorageLensConfigurationTagging for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging +func (c *S3Control) PutStorageLensConfigurationTagging(input *PutStorageLensConfigurationTaggingInput) (*PutStorageLensConfigurationTaggingOutput, error) { + req, out := c.PutStorageLensConfigurationTaggingRequest(input) + return out, req.Send() +} + +// PutStorageLensConfigurationTaggingWithContext is the same as PutStorageLensConfigurationTagging with the addition of +// the ability to pass a context and additional request options. +// +// See PutStorageLensConfigurationTagging for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) PutStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *PutStorageLensConfigurationTaggingInput, opts ...request.Option) (*PutStorageLensConfigurationTaggingOutput, error) { + req, out := c.PutStorageLensConfigurationTaggingRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opSubmitMultiRegionAccessPointRoutes = "SubmitMultiRegionAccessPointRoutes" + +// SubmitMultiRegionAccessPointRoutesRequest generates a "aws/request.Request" representing the +// client's request for the SubmitMultiRegionAccessPointRoutes 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 SubmitMultiRegionAccessPointRoutes for more information on using the SubmitMultiRegionAccessPointRoutes +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the SubmitMultiRegionAccessPointRoutesRequest method. +// req, resp := client.SubmitMultiRegionAccessPointRoutesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SubmitMultiRegionAccessPointRoutes +func (c *S3Control) SubmitMultiRegionAccessPointRoutesRequest(input *SubmitMultiRegionAccessPointRoutesInput) (req *request.Request, output *SubmitMultiRegionAccessPointRoutesOutput) { + op := &request.Operation{ + Name: opSubmitMultiRegionAccessPointRoutes, + HTTPMethod: "PATCH", + HTTPPath: "/v20180820/mrap/instances/{mrap+}/routes", + } + + if input == nil { + input = &SubmitMultiRegionAccessPointRoutesInput{} + } + + output = &SubmitMultiRegionAccessPointRoutesOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// SubmitMultiRegionAccessPointRoutes API operation for AWS S3 Control. +// +// Submits an updated route configuration for a Multi-Region Access Point. This +// API operation updates the routing status for the specified Regions from active +// to passive, or from passive to active. A value of 0 indicates a passive status, +// which means that traffic won't be routed to the specified Region. A value +// of 100 indicates an active status, which means that traffic will be routed +// to the specified Region. At least one Region must be active at all times. +// +// When the routing configuration is changed, any in-progress operations (uploads, +// copies, deletes, and so on) to formerly active Regions will continue to run +// to their final completion state (success or failure). The routing configurations +// of any Regions that aren’t specified remain unchanged. +// +// Updated routing configurations might not be immediately applied. It can take +// up to 2 minutes for your changes to take effect. +// +// To submit routing control changes and failover requests, use the Amazon S3 +// failover control infrastructure endpoints in these five Amazon Web Services +// Regions: +// +// - us-east-1 +// +// - us-west-2 +// +// - ap-southeast-2 +// +// - ap-northeast-1 +// +// - eu-west-1 +// +// Your Amazon S3 bucket does not need to be in these five Regions. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's +// API operation SubmitMultiRegionAccessPointRoutes for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/SubmitMultiRegionAccessPointRoutes +func (c *S3Control) SubmitMultiRegionAccessPointRoutes(input *SubmitMultiRegionAccessPointRoutesInput) (*SubmitMultiRegionAccessPointRoutesOutput, error) { + req, out := c.SubmitMultiRegionAccessPointRoutesRequest(input) + return out, req.Send() +} + +// SubmitMultiRegionAccessPointRoutesWithContext is the same as SubmitMultiRegionAccessPointRoutes with the addition of +// the ability to pass a context and additional request options. +// +// See SubmitMultiRegionAccessPointRoutes for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) SubmitMultiRegionAccessPointRoutesWithContext(ctx aws.Context, input *SubmitMultiRegionAccessPointRoutesInput, opts ...request.Option) (*SubmitMultiRegionAccessPointRoutesOutput, error) { + req, out := c.SubmitMultiRegionAccessPointRoutesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/TagResource +func (c *S3Control) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/v20180820/tags/{resourceArn+}", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// TagResource API operation for AWS S3 Control. +// +// Creates a new Amazon Web Services resource tag or updates an existing resource +// tag. Each tag is a label consisting of a user-defined key and value. Tags +// can help you manage, identify, organize, search for, and filter resources. +// You can add up to 50 Amazon Web Services resource tags for each S3 resource. +// +// This operation is only supported for S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups.html) +// and for S3 Access Grants (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-tagging.html). +// The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, +// registered location, or grant. +// +// # Permissions +// +// You must have the s3:TagResource permission to use this operation. +// +// For more information about the required Storage Lens Groups permissions, +// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). +// +// For information about S3 Tagging errors, see List of Amazon S3 Tagging error +// codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3TaggingErrorCodeList). +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's +// API operation TagResource for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/TagResource +func (c *S3Control) 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 *S3Control) 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/s3control-2018-08-20/UntagResource +func (c *S3Control) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/tags/{resourceArn+}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// UntagResource API operation for AWS S3 Control. +// +// This operation removes the specified Amazon Web Services resource tags from +// an S3 resource. Each tag is a label consisting of a user-defined key and +// value. Tags can help you manage, identify, organize, search for, and filter +// resources. +// +// This operation is only supported for S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups.html) +// and for S3 Access Grants (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-tagging.html). +// The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, +// registered location, or grant. +// +// # Permissions +// +// You must have the s3:UntagResource permission to use this operation. +// +// For more information about the required Storage Lens Groups permissions, +// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). +// +// For information about S3 Tagging errors, see List of Amazon S3 Tagging error +// codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3TaggingErrorCodeList). +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's +// API operation UntagResource for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UntagResource +func (c *S3Control) 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 *S3Control) 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 opUpdateAccessGrantsLocation = "UpdateAccessGrantsLocation" + +// UpdateAccessGrantsLocationRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAccessGrantsLocation 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 UpdateAccessGrantsLocation for more information on using the UpdateAccessGrantsLocation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateAccessGrantsLocationRequest method. +// req, resp := client.UpdateAccessGrantsLocationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateAccessGrantsLocation +func (c *S3Control) UpdateAccessGrantsLocationRequest(input *UpdateAccessGrantsLocationInput) (req *request.Request, output *UpdateAccessGrantsLocationOutput) { + op := &request.Operation{ + Name: opUpdateAccessGrantsLocation, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/accessgrantsinstance/location/{id}", + } + + if input == nil { + input = &UpdateAccessGrantsLocationInput{} + } + + output = &UpdateAccessGrantsLocationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// UpdateAccessGrantsLocation API operation for AWS S3 Control. +// +// Updates the IAM role of a registered location in your S3 Access Grants instance. +// +// # Permissions +// +// You must have the s3:UpdateAccessGrantsLocation permission to use this operation. +// +// # Additional Permissions +// +// You must also have the following permission: iam:PassRole +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's +// API operation UpdateAccessGrantsLocation for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateAccessGrantsLocation +func (c *S3Control) UpdateAccessGrantsLocation(input *UpdateAccessGrantsLocationInput) (*UpdateAccessGrantsLocationOutput, error) { + req, out := c.UpdateAccessGrantsLocationRequest(input) + return out, req.Send() +} + +// UpdateAccessGrantsLocationWithContext is the same as UpdateAccessGrantsLocation with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateAccessGrantsLocation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) UpdateAccessGrantsLocationWithContext(ctx aws.Context, input *UpdateAccessGrantsLocationInput, opts ...request.Option) (*UpdateAccessGrantsLocationOutput, error) { + req, out := c.UpdateAccessGrantsLocationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateJobPriority = "UpdateJobPriority" + +// UpdateJobPriorityRequest generates a "aws/request.Request" representing the +// client's request for the UpdateJobPriority 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 UpdateJobPriority for more information on using the UpdateJobPriority +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateJobPriorityRequest method. +// req, resp := client.UpdateJobPriorityRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority +func (c *S3Control) UpdateJobPriorityRequest(input *UpdateJobPriorityInput) (req *request.Request, output *UpdateJobPriorityOutput) { + op := &request.Operation{ + Name: opUpdateJobPriority, + HTTPMethod: "POST", + HTTPPath: "/v20180820/jobs/{id}/priority", + } + + if input == nil { + input = &UpdateJobPriorityInput{} + } + + output = &UpdateJobPriorityOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// UpdateJobPriority API operation for AWS S3 Control. +// +// Updates an existing S3 Batch Operations job's priority. For more information, +// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) +// in the Amazon S3 User Guide. +// +// Related actions include: +// +// - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// +// - ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html) +// +// - DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html) +// +// - UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.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 S3 Control's +// API operation UpdateJobPriority for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeBadRequestException "BadRequestException" +// +// - ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// - ErrCodeNotFoundException "NotFoundException" +// +// - ErrCodeInternalServiceException "InternalServiceException" +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority +func (c *S3Control) UpdateJobPriority(input *UpdateJobPriorityInput) (*UpdateJobPriorityOutput, error) { + req, out := c.UpdateJobPriorityRequest(input) + return out, req.Send() +} + +// UpdateJobPriorityWithContext is the same as UpdateJobPriority with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateJobPriority for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) UpdateJobPriorityWithContext(ctx aws.Context, input *UpdateJobPriorityInput, opts ...request.Option) (*UpdateJobPriorityOutput, error) { + req, out := c.UpdateJobPriorityRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateJobStatus = "UpdateJobStatus" + +// UpdateJobStatusRequest generates a "aws/request.Request" representing the +// client's request for the UpdateJobStatus 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 UpdateJobStatus for more information on using the UpdateJobStatus +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateJobStatusRequest method. +// req, resp := client.UpdateJobStatusRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus +func (c *S3Control) UpdateJobStatusRequest(input *UpdateJobStatusInput) (req *request.Request, output *UpdateJobStatusOutput) { + op := &request.Operation{ + Name: opUpdateJobStatus, + HTTPMethod: "POST", + HTTPPath: "/v20180820/jobs/{id}/status", + } + + if input == nil { + input = &UpdateJobStatusInput{} + } + + output = &UpdateJobStatusOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// UpdateJobStatus API operation for AWS S3 Control. +// +// Updates the status for the specified job. Use this action to confirm that +// you want to run a job or to cancel an existing job. For more information, +// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) +// in the Amazon S3 User Guide. +// +// Related actions include: +// +// - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// +// - ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html) +// +// - DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html) +// +// - UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.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 S3 Control's +// API operation UpdateJobStatus for usage and error information. +// +// Returned Error Codes: +// +// - ErrCodeBadRequestException "BadRequestException" +// +// - ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// - ErrCodeNotFoundException "NotFoundException" +// +// - ErrCodeJobStatusException "JobStatusException" +// +// - ErrCodeInternalServiceException "InternalServiceException" +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus +func (c *S3Control) UpdateJobStatus(input *UpdateJobStatusInput) (*UpdateJobStatusOutput, error) { + req, out := c.UpdateJobStatusRequest(input) + return out, req.Send() +} + +// UpdateJobStatusWithContext is the same as UpdateJobStatus with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateJobStatus for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) UpdateJobStatusWithContext(ctx aws.Context, input *UpdateJobStatusInput, opts ...request.Option) (*UpdateJobStatusOutput, error) { + req, out := c.UpdateJobStatusRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateStorageLensGroup = "UpdateStorageLensGroup" + +// UpdateStorageLensGroupRequest generates a "aws/request.Request" representing the +// client's request for the UpdateStorageLensGroup 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 UpdateStorageLensGroup for more information on using the UpdateStorageLensGroup +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateStorageLensGroupRequest method. +// req, resp := client.UpdateStorageLensGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateStorageLensGroup +func (c *S3Control) UpdateStorageLensGroupRequest(input *UpdateStorageLensGroupInput) (req *request.Request, output *UpdateStorageLensGroupOutput) { + op := &request.Operation{ + Name: opUpdateStorageLensGroup, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/storagelensgroup/{name}", + } + + if input == nil { + input = &UpdateStorageLensGroupInput{} + } + + output = &UpdateStorageLensGroupOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// UpdateStorageLensGroup API operation for AWS S3 Control. +// +// Updates the existing Storage Lens group. +// +// To use this operation, you must have the permission to perform the s3:UpdateStorageLensGroup +// action. For more information about the required Storage Lens Groups permissions, +// see Setting account permissions to use S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html#storage_lens_groups_permissions). +// +// For information about Storage Lens groups errors, see List of Amazon S3 Storage +// Lens error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3LensErrorCodeList). +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 S3 Control's +// API operation UpdateStorageLensGroup for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateStorageLensGroup +func (c *S3Control) UpdateStorageLensGroup(input *UpdateStorageLensGroupInput) (*UpdateStorageLensGroupOutput, error) { + req, out := c.UpdateStorageLensGroupRequest(input) + return out, req.Send() +} + +// UpdateStorageLensGroupWithContext is the same as UpdateStorageLensGroup with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateStorageLensGroup for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) UpdateStorageLensGroupWithContext(ctx aws.Context, input *UpdateStorageLensGroupInput, opts ...request.Option) (*UpdateStorageLensGroupOutput, error) { + req, out := c.UpdateStorageLensGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// The container for abort incomplete multipart upload +type AbortIncompleteMultipartUpload struct { + _ struct{} `type:"structure"` + + // Specifies the number of days after which Amazon S3 aborts an incomplete multipart + // upload to the Outposts bucket. + DaysAfterInitiation *int64 `type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AbortIncompleteMultipartUpload) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AbortIncompleteMultipartUpload) GoString() string { + return s.String() +} + +// SetDaysAfterInitiation sets the DaysAfterInitiation field's value. +func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortIncompleteMultipartUpload { + s.DaysAfterInitiation = &v + return s +} + +// A container for information about access control for replicas. +// +// This is not supported by Amazon S3 on Outposts buckets. +type AccessControlTranslation struct { + _ struct{} `type:"structure"` + + // Specifies the replica ownership. + // + // Owner is a required field + Owner *string `type:"string" required:"true" enum:"OwnerOverride"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessControlTranslation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessControlTranslation) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AccessControlTranslation) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AccessControlTranslation"} + if s.Owner == nil { + invalidParams.Add(request.NewErrParamRequired("Owner")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetOwner sets the Owner field's value. +func (s *AccessControlTranslation) SetOwner(v string) *AccessControlTranslation { + s.Owner = &v + return s +} + +// The configuration options of the S3 Access Grants location. It contains the +// S3SubPrefix field. The grant scope, the data to which you are granting access, +// is the result of appending the Subprefix field to the scope of the registered +// location. +type AccessGrantsLocationConfiguration struct { + _ struct{} `type:"structure"` + + // The S3SubPrefix is appended to the location scope creating the grant scope. + // Use this field to narrow the scope of the grant to a subset of the location + // scope. This field is required if the location scope is the default location + // s3:// because you cannot create a grant for all of your S3 data in the Region + // and must narrow the scope. For example, if the location scope is the default + // location s3://, the S3SubPrefx can be a /*, so the full grant + // scope path would be s3:///*. Or the S3SubPrefx can be /*, + // so the full grant scope path would be or s3:///*. + // + // If the S3SubPrefix includes a prefix, append the wildcard character * after + // the prefix to indicate that you want to include all object key names in the + // bucket that start with that prefix. + S3SubPrefix *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessGrantsLocationConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessGrantsLocationConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AccessGrantsLocationConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AccessGrantsLocationConfiguration"} + if s.S3SubPrefix != nil && len(*s.S3SubPrefix) < 1 { + invalidParams.Add(request.NewErrParamMinLen("S3SubPrefix", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetS3SubPrefix sets the S3SubPrefix field's value. +func (s *AccessGrantsLocationConfiguration) SetS3SubPrefix(v string) *AccessGrantsLocationConfiguration { + s.S3SubPrefix = &v + return s +} + +// An access point used to access a bucket. +type AccessPoint struct { + _ struct{} `type:"structure"` + + // The ARN for the access point. + AccessPointArn *string `min:"4" type:"string"` + + // The name or alias of the access point. + Alias *string `type:"string"` + + // The name of the bucket associated with this access point. + // + // Bucket is a required field + Bucket *string `min:"3" type:"string" required:"true"` + + // The Amazon Web Services account ID associated with the S3 bucket associated + // with this access point. + BucketAccountId *string `type:"string"` + + // The name of this access point. + // + // Name is a required field + Name *string `min:"3" type:"string" required:"true"` + + // Indicates whether this access point allows access from the public internet. + // If VpcConfiguration is specified for this access point, then NetworkOrigin + // is VPC, and the access point doesn't allow access from the public internet. + // Otherwise, NetworkOrigin is Internet, and the access point allows access + // from the public internet, subject to the access point and bucket access policies. + // + // NetworkOrigin is a required field + NetworkOrigin *string `type:"string" required:"true" enum:"NetworkOrigin"` + + // The virtual private cloud (VPC) configuration for this access point, if one + // exists. + // + // This element is empty if this access point is an Amazon S3 on Outposts access + // point that is used by other Amazon Web Services. + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessPoint) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessPoint) GoString() string { + return s.String() +} + +// SetAccessPointArn sets the AccessPointArn field's value. +func (s *AccessPoint) SetAccessPointArn(v string) *AccessPoint { + s.AccessPointArn = &v + return s +} + +// SetAlias sets the Alias field's value. +func (s *AccessPoint) SetAlias(v string) *AccessPoint { + s.Alias = &v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *AccessPoint) SetBucket(v string) *AccessPoint { + s.Bucket = &v + return s +} + +// SetBucketAccountId sets the BucketAccountId field's value. +func (s *AccessPoint) SetBucketAccountId(v string) *AccessPoint { + s.BucketAccountId = &v + return s +} + +// SetName sets the Name field's value. +func (s *AccessPoint) SetName(v string) *AccessPoint { + s.Name = &v + return s +} + +// SetNetworkOrigin sets the NetworkOrigin field's value. +func (s *AccessPoint) SetNetworkOrigin(v string) *AccessPoint { + s.NetworkOrigin = &v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *AccessPoint) SetVpcConfiguration(v *VpcConfiguration) *AccessPoint { + s.VpcConfiguration = v + return s +} + +// A container element for the account-level Amazon S3 Storage Lens configuration. +// +// For more information about S3 Storage Lens, see Assessing your storage activity +// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) +// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, +// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) +// in the Amazon S3 User Guide. +type AccountLevel struct { + _ struct{} `type:"structure"` + + // A container element for S3 Storage Lens activity metrics. + ActivityMetrics *ActivityMetrics `type:"structure"` + + // A container element for S3 Storage Lens advanced cost-optimization metrics. + AdvancedCostOptimizationMetrics *AdvancedCostOptimizationMetrics `type:"structure"` + + // A container element for S3 Storage Lens advanced data-protection metrics. + AdvancedDataProtectionMetrics *AdvancedDataProtectionMetrics `type:"structure"` + + // A container element for the S3 Storage Lens bucket-level configuration. + // + // BucketLevel is a required field + BucketLevel *BucketLevel `type:"structure" required:"true"` + + // A container element for detailed status code metrics. + DetailedStatusCodesMetrics *DetailedStatusCodesMetrics `type:"structure"` + + // A container element for S3 Storage Lens groups metrics. + StorageLensGroupLevel *StorageLensGroupLevel `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccountLevel) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccountLevel) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AccountLevel) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AccountLevel"} + if s.BucketLevel == nil { + invalidParams.Add(request.NewErrParamRequired("BucketLevel")) + } + if s.BucketLevel != nil { + if err := s.BucketLevel.Validate(); err != nil { + invalidParams.AddNested("BucketLevel", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActivityMetrics sets the ActivityMetrics field's value. +func (s *AccountLevel) SetActivityMetrics(v *ActivityMetrics) *AccountLevel { + s.ActivityMetrics = v + return s +} + +// SetAdvancedCostOptimizationMetrics sets the AdvancedCostOptimizationMetrics field's value. +func (s *AccountLevel) SetAdvancedCostOptimizationMetrics(v *AdvancedCostOptimizationMetrics) *AccountLevel { + s.AdvancedCostOptimizationMetrics = v + return s +} + +// SetAdvancedDataProtectionMetrics sets the AdvancedDataProtectionMetrics field's value. +func (s *AccountLevel) SetAdvancedDataProtectionMetrics(v *AdvancedDataProtectionMetrics) *AccountLevel { + s.AdvancedDataProtectionMetrics = v + return s +} + +// SetBucketLevel sets the BucketLevel field's value. +func (s *AccountLevel) SetBucketLevel(v *BucketLevel) *AccountLevel { + s.BucketLevel = v + return s +} + +// SetDetailedStatusCodesMetrics sets the DetailedStatusCodesMetrics field's value. +func (s *AccountLevel) SetDetailedStatusCodesMetrics(v *DetailedStatusCodesMetrics) *AccountLevel { + s.DetailedStatusCodesMetrics = v + return s +} + +// SetStorageLensGroupLevel sets the StorageLensGroupLevel field's value. +func (s *AccountLevel) SetStorageLensGroupLevel(v *StorageLensGroupLevel) *AccountLevel { + s.StorageLensGroupLevel = v + return s +} + +// The container element for Amazon S3 Storage Lens activity metrics. Activity +// metrics show details about how your storage is requested, such as requests +// (for example, All requests, Get requests, Put requests), bytes uploaded or +// downloaded, and errors. +// +// For more information about S3 Storage Lens, see Assessing your storage activity +// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) +// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, +// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) +// in the Amazon S3 User Guide. +type ActivityMetrics struct { + _ struct{} `type:"structure"` + + // A container that indicates whether activity metrics are enabled. + IsEnabled *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ActivityMetrics) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ActivityMetrics) GoString() string { + return s.String() +} + +// SetIsEnabled sets the IsEnabled field's value. +func (s *ActivityMetrics) SetIsEnabled(v bool) *ActivityMetrics { + s.IsEnabled = &v + return s +} + +// The container element for Amazon S3 Storage Lens advanced cost-optimization +// metrics. Advanced cost-optimization metrics provide insights that you can +// use to manage and optimize your storage costs, for example, lifecycle rule +// counts for transitions, expirations, and incomplete multipart uploads. +// +// For more information about S3 Storage Lens, see Assessing your storage activity +// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) +// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, +// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) +// in the Amazon S3 User Guide. +type AdvancedCostOptimizationMetrics struct { + _ struct{} `type:"structure"` + + // A container that indicates whether advanced cost-optimization metrics are + // enabled. + IsEnabled *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AdvancedCostOptimizationMetrics) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AdvancedCostOptimizationMetrics) GoString() string { + return s.String() +} + +// SetIsEnabled sets the IsEnabled field's value. +func (s *AdvancedCostOptimizationMetrics) SetIsEnabled(v bool) *AdvancedCostOptimizationMetrics { + s.IsEnabled = &v + return s +} + +// The container element for Amazon S3 Storage Lens advanced data-protection +// metrics. Advanced data-protection metrics provide insights that you can use +// to perform audits and protect your data, for example replication rule counts +// within and across Regions. +// +// For more information about S3 Storage Lens, see Assessing your storage activity +// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) +// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, +// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) +// in the Amazon S3 User Guide. +type AdvancedDataProtectionMetrics struct { + _ struct{} `type:"structure"` + + // A container that indicates whether advanced data-protection metrics are enabled. + IsEnabled *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AdvancedDataProtectionMetrics) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AdvancedDataProtectionMetrics) GoString() string { + return s.String() +} + +// SetIsEnabled sets the IsEnabled field's value. +func (s *AdvancedDataProtectionMetrics) SetIsEnabled(v bool) *AdvancedDataProtectionMetrics { + s.IsEnabled = &v + return s +} + +type AssociateAccessGrantsIdentityCenterInput struct { + _ struct{} `locationName:"AssociateAccessGrantsIdentityCenterRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the Amazon Web Services IAM Identity Center + // instance that you are associating with your S3 Access Grants instance. An + // IAM Identity Center instance is your corporate identity directory that you + // added to the IAM Identity Center. You can use the ListInstances (https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ListInstances.html) + // API operation to retrieve a list of your Identity Center instances and their + // ARNs. + // + // IdentityCenterArn is a required field + IdentityCenterArn *string `min:"10" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssociateAccessGrantsIdentityCenterInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssociateAccessGrantsIdentityCenterInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateAccessGrantsIdentityCenterInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssociateAccessGrantsIdentityCenterInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.IdentityCenterArn == nil { + invalidParams.Add(request.NewErrParamRequired("IdentityCenterArn")) + } + if s.IdentityCenterArn != nil && len(*s.IdentityCenterArn) < 10 { + invalidParams.Add(request.NewErrParamMinLen("IdentityCenterArn", 10)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *AssociateAccessGrantsIdentityCenterInput) SetAccountId(v string) *AssociateAccessGrantsIdentityCenterInput { + s.AccountId = &v + return s +} + +// SetIdentityCenterArn sets the IdentityCenterArn field's value. +func (s *AssociateAccessGrantsIdentityCenterInput) SetIdentityCenterArn(v string) *AssociateAccessGrantsIdentityCenterInput { + s.IdentityCenterArn = &v + return s +} + +func (s *AssociateAccessGrantsIdentityCenterInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type AssociateAccessGrantsIdentityCenterOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssociateAccessGrantsIdentityCenterOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssociateAccessGrantsIdentityCenterOutput) GoString() string { + return s.String() +} + +// Error details for the failed asynchronous operation. +type AsyncErrorDetails struct { + _ struct{} `type:"structure"` + + // A string that uniquely identifies the error condition. + Code *string `type:"string"` + + // A generic description of the error condition in English. + Message *string `type:"string"` + + // The ID of the request associated with the error. + RequestId *string `type:"string"` + + // The identifier of the resource associated with the error. + Resource *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AsyncErrorDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AsyncErrorDetails) GoString() string { + return s.String() +} + +// SetCode sets the Code field's value. +func (s *AsyncErrorDetails) SetCode(v string) *AsyncErrorDetails { + s.Code = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *AsyncErrorDetails) SetMessage(v string) *AsyncErrorDetails { + s.Message = &v + return s +} + +// SetRequestId sets the RequestId field's value. +func (s *AsyncErrorDetails) SetRequestId(v string) *AsyncErrorDetails { + s.RequestId = &v + return s +} + +// SetResource sets the Resource field's value. +func (s *AsyncErrorDetails) SetResource(v string) *AsyncErrorDetails { + s.Resource = &v + return s +} + +// A container for the information about an asynchronous operation. +type AsyncOperation struct { + _ struct{} `type:"structure"` + + // The time that the request was sent to the service. + CreationTime *time.Time `type:"timestamp"` + + // The specific operation for the asynchronous request. + Operation *string `type:"string" enum:"AsyncOperationName"` + + // The parameters associated with the request. + RequestParameters *AsyncRequestParameters `type:"structure"` + + // The current status of the request. + RequestStatus *string `type:"string"` + + // The request token associated with the request. + RequestTokenARN *string `min:"1" type:"string"` + + // The details of the response. + ResponseDetails *AsyncResponseDetails `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AsyncOperation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AsyncOperation) GoString() string { + return s.String() +} + +// SetCreationTime sets the CreationTime field's value. +func (s *AsyncOperation) SetCreationTime(v time.Time) *AsyncOperation { + s.CreationTime = &v + return s +} + +// SetOperation sets the Operation field's value. +func (s *AsyncOperation) SetOperation(v string) *AsyncOperation { + s.Operation = &v + return s +} + +// SetRequestParameters sets the RequestParameters field's value. +func (s *AsyncOperation) SetRequestParameters(v *AsyncRequestParameters) *AsyncOperation { + s.RequestParameters = v + return s +} + +// SetRequestStatus sets the RequestStatus field's value. +func (s *AsyncOperation) SetRequestStatus(v string) *AsyncOperation { + s.RequestStatus = &v + return s +} + +// SetRequestTokenARN sets the RequestTokenARN field's value. +func (s *AsyncOperation) SetRequestTokenARN(v string) *AsyncOperation { + s.RequestTokenARN = &v + return s +} + +// SetResponseDetails sets the ResponseDetails field's value. +func (s *AsyncOperation) SetResponseDetails(v *AsyncResponseDetails) *AsyncOperation { + s.ResponseDetails = v + return s +} + +// A container for the request parameters associated with an asynchronous request. +type AsyncRequestParameters struct { + _ struct{} `type:"structure"` + + // A container of the parameters for a CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) + // request. + CreateMultiRegionAccessPointRequest *CreateMultiRegionAccessPointInput_ `type:"structure"` + + // A container of the parameters for a DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) + // request. + DeleteMultiRegionAccessPointRequest *DeleteMultiRegionAccessPointInput_ `type:"structure"` + + // A container of the parameters for a PutMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPoint.html) + // request. + PutMultiRegionAccessPointPolicyRequest *PutMultiRegionAccessPointPolicyInput_ `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AsyncRequestParameters) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AsyncRequestParameters) GoString() string { + return s.String() +} + +// SetCreateMultiRegionAccessPointRequest sets the CreateMultiRegionAccessPointRequest field's value. +func (s *AsyncRequestParameters) SetCreateMultiRegionAccessPointRequest(v *CreateMultiRegionAccessPointInput_) *AsyncRequestParameters { + s.CreateMultiRegionAccessPointRequest = v + return s +} + +// SetDeleteMultiRegionAccessPointRequest sets the DeleteMultiRegionAccessPointRequest field's value. +func (s *AsyncRequestParameters) SetDeleteMultiRegionAccessPointRequest(v *DeleteMultiRegionAccessPointInput_) *AsyncRequestParameters { + s.DeleteMultiRegionAccessPointRequest = v + return s +} + +// SetPutMultiRegionAccessPointPolicyRequest sets the PutMultiRegionAccessPointPolicyRequest field's value. +func (s *AsyncRequestParameters) SetPutMultiRegionAccessPointPolicyRequest(v *PutMultiRegionAccessPointPolicyInput_) *AsyncRequestParameters { + s.PutMultiRegionAccessPointPolicyRequest = v + return s +} + +// A container for the response details that are returned when querying about +// an asynchronous request. +type AsyncResponseDetails struct { + _ struct{} `type:"structure"` + + // Error details for an asynchronous request. + ErrorDetails *AsyncErrorDetails `type:"structure"` + + // The details for the Multi-Region Access Point. + MultiRegionAccessPointDetails *MultiRegionAccessPointsAsyncResponse `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AsyncResponseDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AsyncResponseDetails) GoString() string { + return s.String() +} + +// SetErrorDetails sets the ErrorDetails field's value. +func (s *AsyncResponseDetails) SetErrorDetails(v *AsyncErrorDetails) *AsyncResponseDetails { + s.ErrorDetails = v + return s +} + +// SetMultiRegionAccessPointDetails sets the MultiRegionAccessPointDetails field's value. +func (s *AsyncResponseDetails) SetMultiRegionAccessPointDetails(v *MultiRegionAccessPointsAsyncResponse) *AsyncResponseDetails { + s.MultiRegionAccessPointDetails = v + return s +} + +// Lambda function used to transform objects through an Object Lambda Access +// Point. +type AwsLambdaTransformation struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the Lambda function. + // + // FunctionArn is a required field + FunctionArn *string `min:"1" type:"string" required:"true"` + + // Additional JSON that provides supplemental data to the Lambda function used + // to transform objects. + FunctionPayload *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AwsLambdaTransformation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AwsLambdaTransformation) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AwsLambdaTransformation) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AwsLambdaTransformation"} + if s.FunctionArn == nil { + invalidParams.Add(request.NewErrParamRequired("FunctionArn")) + } + if s.FunctionArn != nil && len(*s.FunctionArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFunctionArn sets the FunctionArn field's value. +func (s *AwsLambdaTransformation) SetFunctionArn(v string) *AwsLambdaTransformation { + s.FunctionArn = &v + return s +} + +// SetFunctionPayload sets the FunctionPayload field's value. +func (s *AwsLambdaTransformation) SetFunctionPayload(v string) *AwsLambdaTransformation { + s.FunctionPayload = &v + return s +} + +// A container for the bucket-level configuration for Amazon S3 Storage Lens. +// +// For more information about S3 Storage Lens, see Assessing your storage activity +// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) +// in the Amazon S3 User Guide. +type BucketLevel struct { + _ struct{} `type:"structure"` + + // A container for the bucket-level activity metrics for S3 Storage Lens. + ActivityMetrics *ActivityMetrics `type:"structure"` + + // A container for bucket-level advanced cost-optimization metrics for S3 Storage + // Lens. + AdvancedCostOptimizationMetrics *AdvancedCostOptimizationMetrics `type:"structure"` + + // A container for bucket-level advanced data-protection metrics for S3 Storage + // Lens. + AdvancedDataProtectionMetrics *AdvancedDataProtectionMetrics `type:"structure"` + + // A container for bucket-level detailed status code metrics for S3 Storage + // Lens. + DetailedStatusCodesMetrics *DetailedStatusCodesMetrics `type:"structure"` + + // A container for the prefix-level metrics for S3 Storage Lens. + PrefixLevel *PrefixLevel `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BucketLevel) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BucketLevel) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BucketLevel) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BucketLevel"} + if s.PrefixLevel != nil { + if err := s.PrefixLevel.Validate(); err != nil { + invalidParams.AddNested("PrefixLevel", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActivityMetrics sets the ActivityMetrics field's value. +func (s *BucketLevel) SetActivityMetrics(v *ActivityMetrics) *BucketLevel { + s.ActivityMetrics = v + return s +} + +// SetAdvancedCostOptimizationMetrics sets the AdvancedCostOptimizationMetrics field's value. +func (s *BucketLevel) SetAdvancedCostOptimizationMetrics(v *AdvancedCostOptimizationMetrics) *BucketLevel { + s.AdvancedCostOptimizationMetrics = v + return s +} + +// SetAdvancedDataProtectionMetrics sets the AdvancedDataProtectionMetrics field's value. +func (s *BucketLevel) SetAdvancedDataProtectionMetrics(v *AdvancedDataProtectionMetrics) *BucketLevel { + s.AdvancedDataProtectionMetrics = v + return s +} + +// SetDetailedStatusCodesMetrics sets the DetailedStatusCodesMetrics field's value. +func (s *BucketLevel) SetDetailedStatusCodesMetrics(v *DetailedStatusCodesMetrics) *BucketLevel { + s.DetailedStatusCodesMetrics = v + return s +} + +// SetPrefixLevel sets the PrefixLevel field's value. +func (s *BucketLevel) SetPrefixLevel(v *PrefixLevel) *BucketLevel { + s.PrefixLevel = v + return s +} + +// A container for enabling Amazon CloudWatch publishing for S3 Storage Lens +// metrics. +// +// For more information about publishing S3 Storage Lens metrics to CloudWatch, +// see Monitor S3 Storage Lens metrics in CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_view_metrics_cloudwatch.html) +// in the Amazon S3 User Guide. +type CloudWatchMetrics struct { + _ struct{} `type:"structure"` + + // A container that indicates whether CloudWatch publishing for S3 Storage Lens + // metrics is enabled. A value of true indicates that CloudWatch publishing + // for S3 Storage Lens metrics is enabled. + // + // IsEnabled is a required field + IsEnabled *bool `type:"boolean" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CloudWatchMetrics) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CloudWatchMetrics) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CloudWatchMetrics) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CloudWatchMetrics"} + if s.IsEnabled == nil { + invalidParams.Add(request.NewErrParamRequired("IsEnabled")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetIsEnabled sets the IsEnabled field's value. +func (s *CloudWatchMetrics) SetIsEnabled(v bool) *CloudWatchMetrics { + s.IsEnabled = &v + return s +} + +type CreateAccessGrantInput struct { + _ struct{} `locationName:"CreateAccessGrantRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The configuration options of the grant location. The grant location is the + // S3 path to the data to which you are granting access. It contains the S3SubPrefix + // field. The grant scope is the result of appending the subprefix to the location + // scope of the registered location. + AccessGrantsLocationConfiguration *AccessGrantsLocationConfiguration `type:"structure"` + + // The ID of the registered location to which you are granting access. S3 Access + // Grants assigns this ID when you register the location. S3 Access Grants assigns + // the ID default to the default location s3:// and assigns an auto-generated + // ID to other locations that you register. + // + // If you are passing the default location, you cannot create an access grant + // for the entire default location. You must also specify a bucket or a bucket + // and prefix in the Subprefix field. + // + // AccessGrantsLocationId is a required field + AccessGrantsLocationId *string `min:"1" type:"string" required:"true"` + + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center + // application associated with your Identity Center instance. If an application + // ARN is included in the request to create an access grant, the grantee can + // only access the S3 data through this application. + ApplicationArn *string `min:"10" type:"string"` + + // The user, group, or role to which you are granting access. You can grant + // access to an IAM user or role. If you have added your corporate directory + // to Amazon Web Services IAM Identity Center and associated your Identity Center + // instance with your S3 Access Grants instance, the grantee can also be a corporate + // directory user or group. + // + // Grantee is a required field + Grantee *Grantee `type:"structure" required:"true"` + + // The type of access that you are granting to your S3 data, which can be set + // to one of the following values: + // + // * READ – Grant read-only access to the S3 data. + // + // * WRITE – Grant write-only access to the S3 data. + // + // * READWRITE – Grant both read and write access to the S3 data. + // + // Permission is a required field + Permission *string `type:"string" required:"true" enum:"Permission"` + + // The type of S3SubPrefix. The only possible value is Object. Pass this value + // if the access grant scope is an object. Do not pass this value if the access + // grant scope is a bucket or a bucket and a prefix. + S3PrefixType *string `type:"string" enum:"S3PrefixType"` + + // The Amazon Web Services resource tags that you are adding to the access grant. + // Each tag is a label consisting of a user-defined key and value. Tags can + // help you manage, identify, organize, search for, and filter resources. + Tags []*Tag `locationNameList:"Tag" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAccessGrantInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAccessGrantInput"} + if s.AccessGrantsLocationId == nil { + invalidParams.Add(request.NewErrParamRequired("AccessGrantsLocationId")) + } + if s.AccessGrantsLocationId != nil && len(*s.AccessGrantsLocationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccessGrantsLocationId", 1)) + } + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.ApplicationArn != nil && len(*s.ApplicationArn) < 10 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationArn", 10)) + } + if s.Grantee == nil { + invalidParams.Add(request.NewErrParamRequired("Grantee")) + } + if s.Permission == nil { + invalidParams.Add(request.NewErrParamRequired("Permission")) + } + if s.AccessGrantsLocationConfiguration != nil { + if err := s.AccessGrantsLocationConfiguration.Validate(); err != nil { + invalidParams.AddNested("AccessGrantsLocationConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessGrantsLocationConfiguration sets the AccessGrantsLocationConfiguration field's value. +func (s *CreateAccessGrantInput) SetAccessGrantsLocationConfiguration(v *AccessGrantsLocationConfiguration) *CreateAccessGrantInput { + s.AccessGrantsLocationConfiguration = v + return s +} + +// SetAccessGrantsLocationId sets the AccessGrantsLocationId field's value. +func (s *CreateAccessGrantInput) SetAccessGrantsLocationId(v string) *CreateAccessGrantInput { + s.AccessGrantsLocationId = &v + return s +} + +// SetAccountId sets the AccountId field's value. +func (s *CreateAccessGrantInput) SetAccountId(v string) *CreateAccessGrantInput { + s.AccountId = &v + return s +} + +// SetApplicationArn sets the ApplicationArn field's value. +func (s *CreateAccessGrantInput) SetApplicationArn(v string) *CreateAccessGrantInput { + s.ApplicationArn = &v + return s +} + +// SetGrantee sets the Grantee field's value. +func (s *CreateAccessGrantInput) SetGrantee(v *Grantee) *CreateAccessGrantInput { + s.Grantee = v + return s +} + +// SetPermission sets the Permission field's value. +func (s *CreateAccessGrantInput) SetPermission(v string) *CreateAccessGrantInput { + s.Permission = &v + return s +} + +// SetS3PrefixType sets the S3PrefixType field's value. +func (s *CreateAccessGrantInput) SetS3PrefixType(v string) *CreateAccessGrantInput { + s.S3PrefixType = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateAccessGrantInput) SetTags(v []*Tag) *CreateAccessGrantInput { + s.Tags = v + return s +} + +func (s *CreateAccessGrantInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type CreateAccessGrantOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the access grant. + AccessGrantArn *string `min:"1" type:"string"` + + // The ID of the access grant. S3 Access Grants auto-generates this ID when + // you create the access grant. + AccessGrantId *string `min:"1" type:"string"` + + // The configuration options of the grant location. The grant location is the + // S3 path to the data to which you are granting access. + AccessGrantsLocationConfiguration *AccessGrantsLocationConfiguration `type:"structure"` + + // The ID of the registered location to which you are granting access. S3 Access + // Grants assigns this ID when you register the location. S3 Access Grants assigns + // the ID default to the default location s3:// and assigns an auto-generated + // ID to other locations that you register. + AccessGrantsLocationId *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center + // application associated with your Identity Center instance. If the grant includes + // an application ARN, the grantee can only access the S3 data through this + // application. + ApplicationArn *string `min:"10" type:"string"` + + // The date and time when you created the access grant. + CreatedAt *time.Time `type:"timestamp"` + + // The S3 path of the data to which you are granting access. It is the result + // of appending the Subprefix to the location scope. + GrantScope *string `min:"1" type:"string"` + + // The user, group, or role to which you are granting access. You can grant + // access to an IAM user or role. If you have added your corporate directory + // to Amazon Web Services IAM Identity Center and associated your Identity Center + // instance with your S3 Access Grants instance, the grantee can also be a corporate + // directory user or group. + Grantee *Grantee `type:"structure"` + + // The type of access that you are granting to your S3 data, which can be set + // to one of the following values: + // + // * READ – Grant read-only access to the S3 data. + // + // * WRITE – Grant write-only access to the S3 data. + // + // * READWRITE – Grant both read and write access to the S3 data. + Permission *string `type:"string" enum:"Permission"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantOutput) GoString() string { + return s.String() +} + +// SetAccessGrantArn sets the AccessGrantArn field's value. +func (s *CreateAccessGrantOutput) SetAccessGrantArn(v string) *CreateAccessGrantOutput { + s.AccessGrantArn = &v + return s +} + +// SetAccessGrantId sets the AccessGrantId field's value. +func (s *CreateAccessGrantOutput) SetAccessGrantId(v string) *CreateAccessGrantOutput { + s.AccessGrantId = &v + return s +} + +// SetAccessGrantsLocationConfiguration sets the AccessGrantsLocationConfiguration field's value. +func (s *CreateAccessGrantOutput) SetAccessGrantsLocationConfiguration(v *AccessGrantsLocationConfiguration) *CreateAccessGrantOutput { + s.AccessGrantsLocationConfiguration = v + return s +} + +// SetAccessGrantsLocationId sets the AccessGrantsLocationId field's value. +func (s *CreateAccessGrantOutput) SetAccessGrantsLocationId(v string) *CreateAccessGrantOutput { + s.AccessGrantsLocationId = &v + return s +} + +// SetApplicationArn sets the ApplicationArn field's value. +func (s *CreateAccessGrantOutput) SetApplicationArn(v string) *CreateAccessGrantOutput { + s.ApplicationArn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *CreateAccessGrantOutput) SetCreatedAt(v time.Time) *CreateAccessGrantOutput { + s.CreatedAt = &v + return s +} + +// SetGrantScope sets the GrantScope field's value. +func (s *CreateAccessGrantOutput) SetGrantScope(v string) *CreateAccessGrantOutput { + s.GrantScope = &v + return s +} + +// SetGrantee sets the Grantee field's value. +func (s *CreateAccessGrantOutput) SetGrantee(v *Grantee) *CreateAccessGrantOutput { + s.Grantee = v + return s +} + +// SetPermission sets the Permission field's value. +func (s *CreateAccessGrantOutput) SetPermission(v string) *CreateAccessGrantOutput { + s.Permission = &v + return s +} + +type CreateAccessGrantsInstanceInput struct { + _ struct{} `locationName:"CreateAccessGrantsInstanceRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // If you would like to associate your S3 Access Grants instance with an Amazon + // Web Services IAM Identity Center instance, use this field to pass the Amazon + // Resource Name (ARN) of the Amazon Web Services IAM Identity Center instance + // that you are associating with your S3 Access Grants instance. An IAM Identity + // Center instance is your corporate identity directory that you added to the + // IAM Identity Center. You can use the ListInstances (https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ListInstances.html) + // API operation to retrieve a list of your Identity Center instances and their + // ARNs. + IdentityCenterArn *string `min:"10" type:"string"` + + // The Amazon Web Services resource tags that you are adding to the S3 Access + // Grants instance. Each tag is a label consisting of a user-defined key and + // value. Tags can help you manage, identify, organize, search for, and filter + // resources. + Tags []*Tag `locationNameList:"Tag" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantsInstanceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantsInstanceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAccessGrantsInstanceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAccessGrantsInstanceInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.IdentityCenterArn != nil && len(*s.IdentityCenterArn) < 10 { + invalidParams.Add(request.NewErrParamMinLen("IdentityCenterArn", 10)) + } + 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 +} + +// SetAccountId sets the AccountId field's value. +func (s *CreateAccessGrantsInstanceInput) SetAccountId(v string) *CreateAccessGrantsInstanceInput { + s.AccountId = &v + return s +} + +// SetIdentityCenterArn sets the IdentityCenterArn field's value. +func (s *CreateAccessGrantsInstanceInput) SetIdentityCenterArn(v string) *CreateAccessGrantsInstanceInput { + s.IdentityCenterArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateAccessGrantsInstanceInput) SetTags(v []*Tag) *CreateAccessGrantsInstanceInput { + s.Tags = v + return s +} + +func (s *CreateAccessGrantsInstanceInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type CreateAccessGrantsInstanceOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the S3 Access Grants instance. + AccessGrantsInstanceArn *string `min:"1" type:"string"` + + // The ID of the S3 Access Grants instance. The ID is default. You can have + // one S3 Access Grants instance per Region per account. + AccessGrantsInstanceId *string `min:"1" type:"string"` + + // The date and time when you created the S3 Access Grants instance. + CreatedAt *time.Time `type:"timestamp"` + + // If you associated your S3 Access Grants instance with an Amazon Web Services + // IAM Identity Center instance, this field returns the Amazon Resource Name + // (ARN) of the IAM Identity Center instance application; a subresource of the + // original Identity Center instance passed in the request. S3 Access Grants + // creates this Identity Center application for this specific S3 Access Grants + // instance. + IdentityCenterArn *string `min:"10" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantsInstanceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantsInstanceOutput) GoString() string { + return s.String() +} + +// SetAccessGrantsInstanceArn sets the AccessGrantsInstanceArn field's value. +func (s *CreateAccessGrantsInstanceOutput) SetAccessGrantsInstanceArn(v string) *CreateAccessGrantsInstanceOutput { + s.AccessGrantsInstanceArn = &v + return s +} + +// SetAccessGrantsInstanceId sets the AccessGrantsInstanceId field's value. +func (s *CreateAccessGrantsInstanceOutput) SetAccessGrantsInstanceId(v string) *CreateAccessGrantsInstanceOutput { + s.AccessGrantsInstanceId = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *CreateAccessGrantsInstanceOutput) SetCreatedAt(v time.Time) *CreateAccessGrantsInstanceOutput { + s.CreatedAt = &v + return s +} + +// SetIdentityCenterArn sets the IdentityCenterArn field's value. +func (s *CreateAccessGrantsInstanceOutput) SetIdentityCenterArn(v string) *CreateAccessGrantsInstanceOutput { + s.IdentityCenterArn = &v + return s +} + +type CreateAccessGrantsLocationInput struct { + _ struct{} `locationName:"CreateAccessGrantsLocationRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the IAM role for the registered location. + // S3 Access Grants assumes this role to manage access to the registered location. + // + // IAMRoleArn is a required field + IAMRoleArn *string `min:"1" type:"string" required:"true"` + + // The S3 path to the location that you are registering. The location scope + // can be the default S3 location s3://, the S3 path to a bucket s3://, + // or the S3 path to a bucket and prefix s3:///. A prefix in + // S3 is a string of characters at the beginning of an object key name used + // to organize the objects that you store in your S3 buckets. For example, object + // key names that start with the engineering/ prefix or object key names that + // start with the marketing/campaigns/ prefix. + // + // LocationScope is a required field + LocationScope *string `min:"1" type:"string" required:"true"` + + // The Amazon Web Services resource tags that you are adding to the S3 Access + // Grants location. Each tag is a label consisting of a user-defined key and + // value. Tags can help you manage, identify, organize, search for, and filter + // resources. + Tags []*Tag `locationNameList:"Tag" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantsLocationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantsLocationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAccessGrantsLocationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAccessGrantsLocationInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.IAMRoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("IAMRoleArn")) + } + if s.IAMRoleArn != nil && len(*s.IAMRoleArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("IAMRoleArn", 1)) + } + if s.LocationScope == nil { + invalidParams.Add(request.NewErrParamRequired("LocationScope")) + } + if s.LocationScope != nil && len(*s.LocationScope) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LocationScope", 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 + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *CreateAccessGrantsLocationInput) SetAccountId(v string) *CreateAccessGrantsLocationInput { + s.AccountId = &v + return s +} + +// SetIAMRoleArn sets the IAMRoleArn field's value. +func (s *CreateAccessGrantsLocationInput) SetIAMRoleArn(v string) *CreateAccessGrantsLocationInput { + s.IAMRoleArn = &v + return s +} + +// SetLocationScope sets the LocationScope field's value. +func (s *CreateAccessGrantsLocationInput) SetLocationScope(v string) *CreateAccessGrantsLocationInput { + s.LocationScope = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateAccessGrantsLocationInput) SetTags(v []*Tag) *CreateAccessGrantsLocationInput { + s.Tags = v + return s +} + +func (s *CreateAccessGrantsLocationInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type CreateAccessGrantsLocationOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the location you are registering. + AccessGrantsLocationArn *string `min:"1" type:"string"` + + // The ID of the registered location to which you are granting access. S3 Access + // Grants assigns this ID when you register the location. S3 Access Grants assigns + // the ID default to the default location s3:// and assigns an auto-generated + // ID to other locations that you register. + AccessGrantsLocationId *string `min:"1" type:"string"` + + // The date and time when you registered the location. + CreatedAt *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the IAM role for the registered location. + // S3 Access Grants assumes this role to manage access to the registered location. + IAMRoleArn *string `min:"1" type:"string"` + + // The S3 URI path to the location that you are registering. The location scope + // can be the default S3 location s3://, the S3 path to a bucket, or the S3 + // path to a bucket and prefix. A prefix in S3 is a string of characters at + // the beginning of an object key name used to organize the objects that you + // store in your S3 buckets. For example, object key names that start with the + // engineering/ prefix or object key names that start with the marketing/campaigns/ + // prefix. + LocationScope *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantsLocationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessGrantsLocationOutput) GoString() string { + return s.String() +} + +// SetAccessGrantsLocationArn sets the AccessGrantsLocationArn field's value. +func (s *CreateAccessGrantsLocationOutput) SetAccessGrantsLocationArn(v string) *CreateAccessGrantsLocationOutput { + s.AccessGrantsLocationArn = &v + return s +} + +// SetAccessGrantsLocationId sets the AccessGrantsLocationId field's value. +func (s *CreateAccessGrantsLocationOutput) SetAccessGrantsLocationId(v string) *CreateAccessGrantsLocationOutput { + s.AccessGrantsLocationId = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *CreateAccessGrantsLocationOutput) SetCreatedAt(v time.Time) *CreateAccessGrantsLocationOutput { + s.CreatedAt = &v + return s +} + +// SetIAMRoleArn sets the IAMRoleArn field's value. +func (s *CreateAccessGrantsLocationOutput) SetIAMRoleArn(v string) *CreateAccessGrantsLocationOutput { + s.IAMRoleArn = &v + return s +} + +// SetLocationScope sets the LocationScope field's value. +func (s *CreateAccessGrantsLocationOutput) SetLocationScope(v string) *CreateAccessGrantsLocationOutput { + s.LocationScope = &v + return s +} + +type CreateAccessPointForObjectLambdaInput struct { + _ struct{} `locationName:"CreateAccessPointForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The Amazon Web Services account ID for owner of the specified Object Lambda + // Access Point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // Object Lambda Access Point configuration as a JSON document. + // + // Configuration is a required field + Configuration *ObjectLambdaConfiguration `type:"structure" required:"true"` + + // The name you want to assign to this Object Lambda Access Point. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessPointForObjectLambdaInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessPointForObjectLambdaInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAccessPointForObjectLambdaInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointForObjectLambdaInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Configuration == nil { + invalidParams.Add(request.NewErrParamRequired("Configuration")) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } + if s.Configuration != nil { + if err := s.Configuration.Validate(); err != nil { + invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *CreateAccessPointForObjectLambdaInput) SetAccountId(v string) *CreateAccessPointForObjectLambdaInput { + s.AccountId = &v + return s +} + +// SetConfiguration sets the Configuration field's value. +func (s *CreateAccessPointForObjectLambdaInput) SetConfiguration(v *ObjectLambdaConfiguration) *CreateAccessPointForObjectLambdaInput { + s.Configuration = v + return s +} + +// SetName sets the Name field's value. +func (s *CreateAccessPointForObjectLambdaInput) SetName(v string) *CreateAccessPointForObjectLambdaInput { + s.Name = &v + return s +} + +func (s *CreateAccessPointForObjectLambdaInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type CreateAccessPointForObjectLambdaOutput struct { + _ struct{} `type:"structure"` + + // The alias of the Object Lambda Access Point. + Alias *ObjectLambdaAccessPointAlias `type:"structure"` + + // Specifies the ARN for the Object Lambda Access Point. + ObjectLambdaAccessPointArn *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessPointForObjectLambdaOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessPointForObjectLambdaOutput) GoString() string { + return s.String() +} + +// SetAlias sets the Alias field's value. +func (s *CreateAccessPointForObjectLambdaOutput) SetAlias(v *ObjectLambdaAccessPointAlias) *CreateAccessPointForObjectLambdaOutput { + s.Alias = v + return s +} + +// SetObjectLambdaAccessPointArn sets the ObjectLambdaAccessPointArn field's value. +func (s *CreateAccessPointForObjectLambdaOutput) SetObjectLambdaAccessPointArn(v string) *CreateAccessPointForObjectLambdaOutput { + s.ObjectLambdaAccessPointArn = &v + return s +} + +type CreateAccessPointInput struct { + _ struct{} `locationName:"CreateAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The Amazon Web Services account ID for the account that owns the specified + // access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the bucket that you want to associate this access point with. + // + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. + // + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through Outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `min:"3" type:"string" required:"true"` + + // The Amazon Web Services account ID associated with the S3 bucket associated + // with this access point. + BucketAccountId *string `type:"string"` + + // The name you want to assign to this access point. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + + // The PublicAccessBlock configuration that you want to apply to the access + // point. + PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` + + // If you include this field, Amazon S3 restricts access to this access point + // to requests from the specified virtual private cloud (VPC). + // + // This is required for creating an access point for Amazon S3 on Outposts buckets. + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessPointInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessPointInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAccessPointInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } + if s.VpcConfiguration != nil { + if err := s.VpcConfiguration.Validate(); err != nil { + invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *CreateAccessPointInput) SetAccountId(v string) *CreateAccessPointInput { + s.AccountId = &v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *CreateAccessPointInput) SetBucket(v string) *CreateAccessPointInput { + s.Bucket = &v + return s +} + +// SetBucketAccountId sets the BucketAccountId field's value. +func (s *CreateAccessPointInput) SetBucketAccountId(v string) *CreateAccessPointInput { + s.BucketAccountId = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateAccessPointInput) SetName(v string) *CreateAccessPointInput { + s.Name = &v + return s +} + +// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. +func (s *CreateAccessPointInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *CreateAccessPointInput { + s.PublicAccessBlockConfiguration = v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *CreateAccessPointInput) SetVpcConfiguration(v *VpcConfiguration) *CreateAccessPointInput { + s.VpcConfiguration = v + return s +} + +func (s *CreateAccessPointInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +func (s *CreateAccessPointInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *CreateAccessPointInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s CreateAccessPointInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s CreateAccessPointInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil +} + +// updateBucketAccountId returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s CreateAccessPointInput) updateBucketAccountId(accountId string) (interface{}, error) { + if s.BucketAccountId == nil { + s.BucketAccountId = aws.String(accountId) + return &s, nil + } else if *s.BucketAccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil +} + +type CreateAccessPointOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the access point. + // + // This is only supported by Amazon S3 on Outposts. + AccessPointArn *string `min:"4" type:"string"` + + // The name or alias of the access point. + Alias *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessPointOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessPointOutput) GoString() string { + return s.String() +} + +// SetAccessPointArn sets the AccessPointArn field's value. +func (s *CreateAccessPointOutput) SetAccessPointArn(v string) *CreateAccessPointOutput { + s.AccessPointArn = &v + return s +} + +// SetAlias sets the Alias field's value. +func (s *CreateAccessPointOutput) SetAlias(v string) *CreateAccessPointOutput { + s.Alias = &v + return s +} + +// The container for the bucket configuration. +// +// This is not supported by Amazon S3 on Outposts buckets. +type CreateBucketConfiguration struct { + _ struct{} `type:"structure"` + + // Specifies the Region where the bucket will be created. If you are creating + // a bucket on the US East (N. Virginia) Region (us-east-1), you do not need + // to specify the location. + // + // This is not supported by Amazon S3 on Outposts buckets. + LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateBucketConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateBucketConfiguration) GoString() string { + return s.String() +} + +// SetLocationConstraint sets the LocationConstraint field's value. +func (s *CreateBucketConfiguration) SetLocationConstraint(v string) *CreateBucketConfiguration { + s.LocationConstraint = &v + return s +} + +type CreateBucketInput struct { + _ struct{} `locationName:"CreateBucketRequest" type:"structure" payload:"CreateBucketConfiguration"` + + // The canned ACL to apply to the bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"` + + // The name of the bucket. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + + // The configuration information for the bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + CreateBucketConfiguration *CreateBucketConfiguration `locationName:"CreateBucketConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // Allows grantee the read, write, read ACP, and write ACP permissions on the + // bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` + + // Allows grantee to list the objects in the bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` + + // Allows grantee to read the bucket ACL. + // + // This is not supported by Amazon S3 on Outposts buckets. + GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` + + // Allows grantee to create, overwrite, and delete any object in the bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"` + + // Allows grantee to write the ACL for the applicable bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` + + // Specifies whether you want S3 Object Lock to be enabled for the new bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"` + + // The ID of the Outposts where the bucket is being created. + // + // This ID is required by Amazon S3 on Outposts buckets. + OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateBucketInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateBucketInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateBucketInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateBucketInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + if s.OutpostId != nil && len(*s.OutpostId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetACL sets the ACL field's value. +func (s *CreateBucketInput) SetACL(v string) *CreateBucketInput { + s.ACL = &v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *CreateBucketInput) SetBucket(v string) *CreateBucketInput { + s.Bucket = &v + return s +} + +// SetCreateBucketConfiguration sets the CreateBucketConfiguration field's value. +func (s *CreateBucketInput) SetCreateBucketConfiguration(v *CreateBucketConfiguration) *CreateBucketInput { + s.CreateBucketConfiguration = v + return s +} + +// SetGrantFullControl sets the GrantFullControl field's value. +func (s *CreateBucketInput) SetGrantFullControl(v string) *CreateBucketInput { + s.GrantFullControl = &v + return s +} + +// SetGrantRead sets the GrantRead field's value. +func (s *CreateBucketInput) SetGrantRead(v string) *CreateBucketInput { + s.GrantRead = &v + return s +} + +// SetGrantReadACP sets the GrantReadACP field's value. +func (s *CreateBucketInput) SetGrantReadACP(v string) *CreateBucketInput { + s.GrantReadACP = &v + return s +} + +// SetGrantWrite sets the GrantWrite field's value. +func (s *CreateBucketInput) SetGrantWrite(v string) *CreateBucketInput { + s.GrantWrite = &v + return s +} + +// SetGrantWriteACP sets the GrantWriteACP field's value. +func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput { + s.GrantWriteACP = &v + return s +} + +// SetObjectLockEnabledForBucket sets the ObjectLockEnabledForBucket field's value. +func (s *CreateBucketInput) SetObjectLockEnabledForBucket(v bool) *CreateBucketInput { + s.ObjectLockEnabledForBucket = &v + return s +} + +// SetOutpostId sets the OutpostId field's value. +func (s *CreateBucketInput) SetOutpostId(v string) *CreateBucketInput { + s.OutpostId = &v + return s +} + +func (s *CreateBucketInput) getOutpostID() (string, error) { + if s.OutpostId == nil { + return "", fmt.Errorf("member OutpostId is nil") + } + return *s.OutpostId, nil +} + +func (s *CreateBucketInput) hasOutpostID() bool { + if s.OutpostId == nil { + return false + } + return true +} + +type CreateBucketOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the bucket. + // + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. + // + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through Outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + BucketArn *string `min:"4" type:"string"` + + // The location of the bucket. + Location *string `location:"header" locationName:"Location" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateBucketOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateBucketOutput) GoString() string { + return s.String() +} + +// SetBucketArn sets the BucketArn field's value. +func (s *CreateBucketOutput) SetBucketArn(v string) *CreateBucketOutput { + s.BucketArn = &v + return s +} + +// SetLocation sets the Location field's value. +func (s *CreateBucketOutput) SetLocation(v string) *CreateBucketOutput { + s.Location = &v + return s +} + +type CreateJobInput struct { + _ struct{} `locationName:"CreateJobRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The Amazon Web Services account ID that creates the job. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // An idempotency token to ensure that you don't accidentally submit the same + // request twice. You can use any string up to the maximum length. + ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` + + // Indicates whether confirmation is required before Amazon S3 runs the job. + // Confirmation is only required for jobs created through the Amazon S3 console. + ConfirmationRequired *bool `type:"boolean"` + + // A description for this job. You can use any string within the permitted length. + // Descriptions don't need to be unique and can be used for multiple jobs. + Description *string `min:"1" type:"string"` + + // Configuration parameters for the manifest. + Manifest *JobManifest `type:"structure"` + + // The attribute container for the ManifestGenerator details. Jobs must be created + // with either a manifest file or a ManifestGenerator, but not both. + ManifestGenerator *JobManifestGenerator `type:"structure"` + + // The action that you want this job to perform on every object listed in the + // manifest. For more information about the available actions, see Operations + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-actions.html) + // in the Amazon S3 User Guide. + // + // Operation is a required field + Operation *JobOperation `type:"structure" required:"true"` + + // The numerical priority for this job. Higher numbers indicate higher priority. + // + // Priority is a required field + Priority *int64 `type:"integer" required:"true"` + + // Configuration parameters for the optional job-completion report. + // + // Report is a required field + Report *JobReport `type:"structure" required:"true"` + + // The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) + // role that Batch Operations will use to run this job's action on every object + // in the manifest. + // + // RoleArn is a required field + RoleArn *string `min:"1" type:"string" required:"true"` + + // A set of tags to associate with the S3 Batch Operations job. This is an optional + // parameter. + Tags []*S3Tag `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateJobInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateJobInput) 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.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.Operation == nil { + invalidParams.Add(request.NewErrParamRequired("Operation")) + } + if s.Priority == nil { + invalidParams.Add(request.NewErrParamRequired("Priority")) + } + if s.Report == nil { + invalidParams.Add(request.NewErrParamRequired("Report")) + } + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) + } + if s.Manifest != nil { + if err := s.Manifest.Validate(); err != nil { + invalidParams.AddNested("Manifest", err.(request.ErrInvalidParams)) + } + } + if s.ManifestGenerator != nil { + if err := s.ManifestGenerator.Validate(); err != nil { + invalidParams.AddNested("ManifestGenerator", err.(request.ErrInvalidParams)) + } + } + if s.Operation != nil { + if err := s.Operation.Validate(); err != nil { + invalidParams.AddNested("Operation", err.(request.ErrInvalidParams)) + } + } + if s.Report != nil { + if err := s.Report.Validate(); err != nil { + invalidParams.AddNested("Report", err.(request.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *CreateJobInput) SetAccountId(v string) *CreateJobInput { + s.AccountId = &v + return s +} + +// SetClientRequestToken sets the ClientRequestToken field's value. +func (s *CreateJobInput) SetClientRequestToken(v string) *CreateJobInput { + s.ClientRequestToken = &v + return s +} + +// SetConfirmationRequired sets the ConfirmationRequired field's value. +func (s *CreateJobInput) SetConfirmationRequired(v bool) *CreateJobInput { + s.ConfirmationRequired = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateJobInput) SetDescription(v string) *CreateJobInput { + s.Description = &v + return s +} + +// SetManifest sets the Manifest field's value. +func (s *CreateJobInput) SetManifest(v *JobManifest) *CreateJobInput { + s.Manifest = v + return s +} + +// SetManifestGenerator sets the ManifestGenerator field's value. +func (s *CreateJobInput) SetManifestGenerator(v *JobManifestGenerator) *CreateJobInput { + s.ManifestGenerator = v + return s +} + +// SetOperation sets the Operation field's value. +func (s *CreateJobInput) SetOperation(v *JobOperation) *CreateJobInput { + s.Operation = v + return s +} + +// SetPriority sets the Priority field's value. +func (s *CreateJobInput) SetPriority(v int64) *CreateJobInput { + s.Priority = &v + return s +} + +// SetReport sets the Report field's value. +func (s *CreateJobInput) SetReport(v *JobReport) *CreateJobInput { + s.Report = v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *CreateJobInput) SetRoleArn(v string) *CreateJobInput { + s.RoleArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateJobInput) SetTags(v []*S3Tag) *CreateJobInput { + s.Tags = v + return s +} + +func (s *CreateJobInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type CreateJobOutput struct { + _ struct{} `type:"structure"` + + // The ID for this job. Amazon S3 generates this ID automatically and returns + // it after a successful Create Job request. + JobId *string `min:"5" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateJobOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateJobOutput) GoString() string { + return s.String() +} + +// SetJobId sets the JobId field's value. +func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput { + s.JobId = &v + return s +} + +type CreateMultiRegionAccessPointInput struct { + _ struct{} `locationName:"CreateMultiRegionAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. The owner of the Multi-Region Access Point also must own the underlying + // buckets. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // An idempotency token used to identify the request and guarantee that requests + // are unique. + ClientToken *string `type:"string" idempotencyToken:"true"` + + // A container element containing details about the Multi-Region Access Point. + // + // Details is a required field + Details *CreateMultiRegionAccessPointInput_ `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMultiRegionAccessPointInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMultiRegionAccessPointInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateMultiRegionAccessPointInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateMultiRegionAccessPointInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Details == nil { + invalidParams.Add(request.NewErrParamRequired("Details")) + } + if s.Details != nil { + if err := s.Details.Validate(); err != nil { + invalidParams.AddNested("Details", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *CreateMultiRegionAccessPointInput) SetAccountId(v string) *CreateMultiRegionAccessPointInput { + s.AccountId = &v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateMultiRegionAccessPointInput) SetClientToken(v string) *CreateMultiRegionAccessPointInput { + s.ClientToken = &v + return s +} + +// SetDetails sets the Details field's value. +func (s *CreateMultiRegionAccessPointInput) SetDetails(v *CreateMultiRegionAccessPointInput_) *CreateMultiRegionAccessPointInput { + s.Details = v + return s +} + +func (s *CreateMultiRegionAccessPointInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +// A container for the information associated with a CreateMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) +// request. +type CreateMultiRegionAccessPointInput_ struct { + _ struct{} `type:"structure"` + + // The name of the Multi-Region Access Point associated with this request. + // + // Name is a required field + Name *string `type:"string" required:"true"` + + // The PublicAccessBlock configuration that you want to apply to this Amazon + // S3 account. You can enable the configuration options in any combination. + // For more information about when Amazon S3 considers a bucket or object public, + // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + // in the Amazon S3 User Guide. + // + // This data type is not supported for Amazon S3 on Outposts. + PublicAccessBlock *PublicAccessBlockConfiguration `type:"structure"` + + // The buckets in different Regions that are associated with the Multi-Region + // Access Point. + // + // Regions is a required field + Regions []*Region `locationNameList:"Region" type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMultiRegionAccessPointInput_) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMultiRegionAccessPointInput_) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateMultiRegionAccessPointInput_) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateMultiRegionAccessPointInput_"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Regions == nil { + invalidParams.Add(request.NewErrParamRequired("Regions")) + } + if s.Regions != nil { + for i, v := range s.Regions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Regions", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *CreateMultiRegionAccessPointInput_) SetName(v string) *CreateMultiRegionAccessPointInput_ { + s.Name = &v + return s +} + +// SetPublicAccessBlock sets the PublicAccessBlock field's value. +func (s *CreateMultiRegionAccessPointInput_) SetPublicAccessBlock(v *PublicAccessBlockConfiguration) *CreateMultiRegionAccessPointInput_ { + s.PublicAccessBlock = v + return s +} + +// SetRegions sets the Regions field's value. +func (s *CreateMultiRegionAccessPointInput_) SetRegions(v []*Region) *CreateMultiRegionAccessPointInput_ { + s.Regions = v + return s +} + +type CreateMultiRegionAccessPointOutput struct { + _ struct{} `type:"structure"` + + // The request token associated with the request. You can use this token with + // DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) + // to determine the status of asynchronous requests. + RequestTokenARN *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMultiRegionAccessPointOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateMultiRegionAccessPointOutput) GoString() string { + return s.String() +} + +// SetRequestTokenARN sets the RequestTokenARN field's value. +func (s *CreateMultiRegionAccessPointOutput) SetRequestTokenARN(v string) *CreateMultiRegionAccessPointOutput { + s.RequestTokenARN = &v + return s +} + +type CreateStorageLensGroupInput struct { + _ struct{} `locationName:"CreateStorageLensGroupRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The Amazon Web Services account ID that the Storage Lens group is created + // from and associated with. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The Storage Lens group configuration. + // + // StorageLensGroup is a required field + StorageLensGroup *StorageLensGroup `type:"structure" required:"true"` + + // The Amazon Web Services resource tags that you're adding to your Storage + // Lens group. This parameter is optional. + Tags []*Tag `locationNameList:"Tag" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateStorageLensGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateStorageLensGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateStorageLensGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateStorageLensGroupInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.StorageLensGroup == nil { + invalidParams.Add(request.NewErrParamRequired("StorageLensGroup")) + } + if s.StorageLensGroup != nil { + if err := s.StorageLensGroup.Validate(); err != nil { + invalidParams.AddNested("StorageLensGroup", err.(request.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *CreateStorageLensGroupInput) SetAccountId(v string) *CreateStorageLensGroupInput { + s.AccountId = &v + return s +} + +// SetStorageLensGroup sets the StorageLensGroup field's value. +func (s *CreateStorageLensGroupInput) SetStorageLensGroup(v *StorageLensGroup) *CreateStorageLensGroupInput { + s.StorageLensGroup = v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateStorageLensGroupInput) SetTags(v []*Tag) *CreateStorageLensGroupInput { + s.Tags = v + return s +} + +func (s *CreateStorageLensGroupInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type CreateStorageLensGroupOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateStorageLensGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateStorageLensGroupOutput) GoString() string { + return s.String() +} + +// The Amazon Web Services Security Token Service temporary credential that +// S3 Access Grants vends to grantees and client applications. +type Credentials struct { + _ struct{} `type:"structure" sensitive:"true"` + + // The unique access key ID of the Amazon Web Services STS temporary credential + // that S3 Access Grants vends to grantees and client applications. + // + // AccessKeyId is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Credentials's + // String and GoString methods. + AccessKeyId *string `type:"string" sensitive:"true"` + + // The expiration date and time of the temporary credential that S3 Access Grants + // vends to grantees and client applications. + Expiration *time.Time `type:"timestamp"` + + // The secret access key of the Amazon Web Services STS temporary credential + // that S3 Access Grants vends to grantees and client applications. + // + // SecretAccessKey is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Credentials's + // String and GoString methods. + SecretAccessKey *string `type:"string" sensitive:"true"` + + // The Amazon Web Services STS temporary credential that S3 Access Grants vends + // to grantees and client applications. + // + // SessionToken is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Credentials's + // String and GoString methods. + SessionToken *string `type:"string" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Credentials) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Credentials) GoString() string { + return s.String() +} + +// SetAccessKeyId sets the AccessKeyId field's value. +func (s *Credentials) SetAccessKeyId(v string) *Credentials { + s.AccessKeyId = &v + return s +} + +// SetExpiration sets the Expiration field's value. +func (s *Credentials) SetExpiration(v time.Time) *Credentials { + s.Expiration = &v + return s +} + +// SetSecretAccessKey sets the SecretAccessKey field's value. +func (s *Credentials) SetSecretAccessKey(v string) *Credentials { + s.SecretAccessKey = &v + return s +} + +// SetSessionToken sets the SessionToken field's value. +func (s *Credentials) SetSessionToken(v string) *Credentials { + s.SessionToken = &v + return s +} + +type DeleteAccessGrantInput struct { + _ struct{} `locationName:"DeleteAccessGrantRequest" type:"structure"` + + // The ID of the access grant. S3 Access Grants auto-generates this ID when + // you create the access grant. + // + // AccessGrantId is a required field + AccessGrantId *string `location:"uri" locationName:"id" min:"1" type:"string" required:"true"` + + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessGrantInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessGrantInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAccessGrantInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAccessGrantInput"} + if s.AccessGrantId == nil { + invalidParams.Add(request.NewErrParamRequired("AccessGrantId")) + } + if s.AccessGrantId != nil && len(*s.AccessGrantId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccessGrantId", 1)) + } + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessGrantId sets the AccessGrantId field's value. +func (s *DeleteAccessGrantInput) SetAccessGrantId(v string) *DeleteAccessGrantInput { + s.AccessGrantId = &v + return s +} + +// SetAccountId sets the AccountId field's value. +func (s *DeleteAccessGrantInput) SetAccountId(v string) *DeleteAccessGrantInput { + s.AccountId = &v + return s +} + +func (s *DeleteAccessGrantInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type DeleteAccessGrantOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessGrantOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessGrantOutput) GoString() string { + return s.String() +} + +type DeleteAccessGrantsInstanceInput struct { + _ struct{} `locationName:"DeleteAccessGrantsInstanceRequest" type:"structure"` + + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessGrantsInstanceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessGrantsInstanceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAccessGrantsInstanceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAccessGrantsInstanceInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DeleteAccessGrantsInstanceInput) SetAccountId(v string) *DeleteAccessGrantsInstanceInput { + s.AccountId = &v + return s +} + +func (s *DeleteAccessGrantsInstanceInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type DeleteAccessGrantsInstanceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessGrantsInstanceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessGrantsInstanceOutput) GoString() string { + return s.String() +} + +type DeleteAccessGrantsInstanceResourcePolicyInput struct { + _ struct{} `locationName:"DeleteAccessGrantsInstanceResourcePolicyRequest" type:"structure"` + + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessGrantsInstanceResourcePolicyInput) String() string { + return awsutil.Prettify(s) +} // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AccessControlTranslation) GoString() string { +func (s DeleteAccessGrantsInstanceResourcePolicyInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *AccessControlTranslation) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AccessControlTranslation"} - if s.Owner == nil { - invalidParams.Add(request.NewErrParamRequired("Owner")) +func (s *DeleteAccessGrantsInstanceResourcePolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAccessGrantsInstanceResourcePolicyInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } if invalidParams.Len() > 0 { @@ -7445,51 +12475,20 @@ func (s *AccessControlTranslation) Validate() error { return nil } -// SetOwner sets the Owner field's value. -func (s *AccessControlTranslation) SetOwner(v string) *AccessControlTranslation { - s.Owner = &v +// SetAccountId sets the AccountId field's value. +func (s *DeleteAccessGrantsInstanceResourcePolicyInput) SetAccountId(v string) *DeleteAccessGrantsInstanceResourcePolicyInput { + s.AccountId = &v return s } -// An access point used to access a bucket. -type AccessPoint struct { - _ struct{} `type:"structure"` - - // The ARN for the access point. - AccessPointArn *string `min:"4" type:"string"` - - // The name or alias of the access point. - Alias *string `type:"string"` - - // The name of the bucket associated with this access point. - // - // Bucket is a required field - Bucket *string `min:"3" type:"string" required:"true"` - - // The Amazon Web Services account ID associated with the S3 bucket associated - // with this access point. - BucketAccountId *string `type:"string"` - - // The name of this access point. - // - // Name is a required field - Name *string `min:"3" type:"string" required:"true"` - - // Indicates whether this access point allows access from the public internet. - // If VpcConfiguration is specified for this access point, then NetworkOrigin - // is VPC, and the access point doesn't allow access from the public internet. - // Otherwise, NetworkOrigin is Internet, and the access point allows access - // from the public internet, subject to the access point and bucket access policies. - // - // NetworkOrigin is a required field - NetworkOrigin *string `type:"string" required:"true" enum:"NetworkOrigin"` +func (s *DeleteAccessGrantsInstanceResourcePolicyInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} - // The virtual private cloud (VPC) configuration for this access point, if one - // exists. - // - // This element is empty if this access point is an Amazon S3 on Outposts access - // point that is used by other Amazon Web Services. - VpcConfiguration *VpcConfiguration `type:"structure"` +type DeleteAccessGrantsInstanceResourcePolicyOutput struct { + _ struct{} `type:"structure"` } // String returns the string representation. @@ -7497,7 +12496,7 @@ type AccessPoint struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AccessPoint) String() string { +func (s DeleteAccessGrantsInstanceResourcePolicyOutput) String() string { return awsutil.Prettify(s) } @@ -7506,81 +12505,25 @@ func (s AccessPoint) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AccessPoint) GoString() string { +func (s DeleteAccessGrantsInstanceResourcePolicyOutput) GoString() string { return s.String() } -// SetAccessPointArn sets the AccessPointArn field's value. -func (s *AccessPoint) SetAccessPointArn(v string) *AccessPoint { - s.AccessPointArn = &v - return s -} - -// SetAlias sets the Alias field's value. -func (s *AccessPoint) SetAlias(v string) *AccessPoint { - s.Alias = &v - return s -} - -// SetBucket sets the Bucket field's value. -func (s *AccessPoint) SetBucket(v string) *AccessPoint { - s.Bucket = &v - return s -} - -// SetBucketAccountId sets the BucketAccountId field's value. -func (s *AccessPoint) SetBucketAccountId(v string) *AccessPoint { - s.BucketAccountId = &v - return s -} - -// SetName sets the Name field's value. -func (s *AccessPoint) SetName(v string) *AccessPoint { - s.Name = &v - return s -} - -// SetNetworkOrigin sets the NetworkOrigin field's value. -func (s *AccessPoint) SetNetworkOrigin(v string) *AccessPoint { - s.NetworkOrigin = &v - return s -} - -// SetVpcConfiguration sets the VpcConfiguration field's value. -func (s *AccessPoint) SetVpcConfiguration(v *VpcConfiguration) *AccessPoint { - s.VpcConfiguration = v - return s -} - -// A container element for the account-level Amazon S3 Storage Lens configuration. -// -// For more information about S3 Storage Lens, see Assessing your storage activity -// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) -// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, -// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) -// in the Amazon S3 User Guide. -type AccountLevel struct { - _ struct{} `type:"structure"` - - // A container element for S3 Storage Lens activity metrics. - ActivityMetrics *ActivityMetrics `type:"structure"` - - // A container element for S3 Storage Lens advanced cost-optimization metrics. - AdvancedCostOptimizationMetrics *AdvancedCostOptimizationMetrics `type:"structure"` - - // A container element for S3 Storage Lens advanced data-protection metrics. - AdvancedDataProtectionMetrics *AdvancedDataProtectionMetrics `type:"structure"` +type DeleteAccessGrantsLocationInput struct { + _ struct{} `locationName:"DeleteAccessGrantsLocationRequest" type:"structure"` - // A container element for the S3 Storage Lens bucket-level configuration. + // The ID of the registered location that you are deregistering from your S3 + // Access Grants instance. S3 Access Grants assigned this ID when you registered + // the location. S3 Access Grants assigns the ID default to the default location + // s3:// and assigns an auto-generated ID to other locations that you register. // - // BucketLevel is a required field - BucketLevel *BucketLevel `type:"structure" required:"true"` - - // A container element for detailed status code metrics. - DetailedStatusCodesMetrics *DetailedStatusCodesMetrics `type:"structure"` + // AccessGrantsLocationId is a required field + AccessGrantsLocationId *string `location:"uri" locationName:"id" min:"1" type:"string" required:"true"` - // A container element for S3 Storage Lens groups metrics. - StorageLensGroupLevel *StorageLensGroupLevel `type:"structure"` + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` } // String returns the string representation. @@ -7588,7 +12531,7 @@ type AccountLevel struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AccountLevel) String() string { +func (s DeleteAccessGrantsLocationInput) String() string { return awsutil.Prettify(s) } @@ -7597,20 +12540,24 @@ func (s AccountLevel) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AccountLevel) GoString() string { +func (s DeleteAccessGrantsLocationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *AccountLevel) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AccountLevel"} - if s.BucketLevel == nil { - invalidParams.Add(request.NewErrParamRequired("BucketLevel")) +func (s *DeleteAccessGrantsLocationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAccessGrantsLocationInput"} + if s.AccessGrantsLocationId == nil { + invalidParams.Add(request.NewErrParamRequired("AccessGrantsLocationId")) } - if s.BucketLevel != nil { - if err := s.BucketLevel.Validate(); err != nil { - invalidParams.AddNested("BucketLevel", err.(request.ErrInvalidParams)) - } + if s.AccessGrantsLocationId != nil && len(*s.AccessGrantsLocationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccessGrantsLocationId", 1)) + } + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } if invalidParams.Len() > 0 { @@ -7619,57 +12566,59 @@ func (s *AccountLevel) Validate() error { return nil } -// SetActivityMetrics sets the ActivityMetrics field's value. -func (s *AccountLevel) SetActivityMetrics(v *ActivityMetrics) *AccountLevel { - s.ActivityMetrics = v +// SetAccessGrantsLocationId sets the AccessGrantsLocationId field's value. +func (s *DeleteAccessGrantsLocationInput) SetAccessGrantsLocationId(v string) *DeleteAccessGrantsLocationInput { + s.AccessGrantsLocationId = &v return s } -// SetAdvancedCostOptimizationMetrics sets the AdvancedCostOptimizationMetrics field's value. -func (s *AccountLevel) SetAdvancedCostOptimizationMetrics(v *AdvancedCostOptimizationMetrics) *AccountLevel { - s.AdvancedCostOptimizationMetrics = v +// SetAccountId sets the AccountId field's value. +func (s *DeleteAccessGrantsLocationInput) SetAccountId(v string) *DeleteAccessGrantsLocationInput { + s.AccountId = &v return s } -// SetAdvancedDataProtectionMetrics sets the AdvancedDataProtectionMetrics field's value. -func (s *AccountLevel) SetAdvancedDataProtectionMetrics(v *AdvancedDataProtectionMetrics) *AccountLevel { - s.AdvancedDataProtectionMetrics = v - return s +func (s *DeleteAccessGrantsLocationInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } } -// SetBucketLevel sets the BucketLevel field's value. -func (s *AccountLevel) SetBucketLevel(v *BucketLevel) *AccountLevel { - s.BucketLevel = v - return s +type DeleteAccessGrantsLocationOutput struct { + _ struct{} `type:"structure"` } -// SetDetailedStatusCodesMetrics sets the DetailedStatusCodesMetrics field's value. -func (s *AccountLevel) SetDetailedStatusCodesMetrics(v *DetailedStatusCodesMetrics) *AccountLevel { - s.DetailedStatusCodesMetrics = v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessGrantsLocationOutput) String() string { + return awsutil.Prettify(s) } -// SetStorageLensGroupLevel sets the StorageLensGroupLevel field's value. -func (s *AccountLevel) SetStorageLensGroupLevel(v *StorageLensGroupLevel) *AccountLevel { - s.StorageLensGroupLevel = v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessGrantsLocationOutput) GoString() string { + return s.String() } -// The container element for Amazon S3 Storage Lens activity metrics. Activity -// metrics show details about how your storage is requested, such as requests -// (for example, All requests, Get requests, Put requests), bytes uploaded or -// downloaded, and errors. -// -// For more information about S3 Storage Lens, see Assessing your storage activity -// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) -// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, -// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) -// in the Amazon S3 User Guide. -type ActivityMetrics struct { - _ struct{} `type:"structure"` +type DeleteAccessPointForObjectLambdaInput struct { + _ struct{} `locationName:"DeleteAccessPointForObjectLambdaRequest" type:"structure"` - // A container that indicates whether activity metrics are enabled. - IsEnabled *bool `type:"boolean"` + // The account ID for the account that owns the specified Object Lambda Access + // Point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point you want to delete. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -7677,7 +12626,7 @@ type ActivityMetrics struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ActivityMetrics) String() string { +func (s DeleteAccessPointForObjectLambdaInput) String() string { return awsutil.Prettify(s) } @@ -7686,73 +12635,52 @@ func (s ActivityMetrics) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ActivityMetrics) GoString() string { +func (s DeleteAccessPointForObjectLambdaInput) GoString() string { return s.String() } -// SetIsEnabled sets the IsEnabled field's value. -func (s *ActivityMetrics) SetIsEnabled(v bool) *ActivityMetrics { - s.IsEnabled = &v - return s -} - -// The container element for Amazon S3 Storage Lens advanced cost-optimization -// metrics. Advanced cost-optimization metrics provide insights that you can -// use to manage and optimize your storage costs, for example, lifecycle rule -// counts for transitions, expirations, and incomplete multipart uploads. -// -// For more information about S3 Storage Lens, see Assessing your storage activity -// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) -// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, -// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) -// in the Amazon S3 User Guide. -type AdvancedCostOptimizationMetrics struct { - _ struct{} `type:"structure"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAccessPointForObjectLambdaInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointForObjectLambdaInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } - // A container that indicates whether advanced cost-optimization metrics are - // enabled. - IsEnabled *bool `type:"boolean"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s AdvancedCostOptimizationMetrics) String() string { - return awsutil.Prettify(s) +// SetAccountId sets the AccountId field's value. +func (s *DeleteAccessPointForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointForObjectLambdaInput { + s.AccountId = &v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s AdvancedCostOptimizationMetrics) GoString() string { - return s.String() +// SetName sets the Name field's value. +func (s *DeleteAccessPointForObjectLambdaInput) SetName(v string) *DeleteAccessPointForObjectLambdaInput { + s.Name = &v + return s } -// SetIsEnabled sets the IsEnabled field's value. -func (s *AdvancedCostOptimizationMetrics) SetIsEnabled(v bool) *AdvancedCostOptimizationMetrics { - s.IsEnabled = &v - return s +func (s *DeleteAccessPointForObjectLambdaInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } } -// The container element for Amazon S3 Storage Lens advanced data-protection -// metrics. Advanced data-protection metrics provide insights that you can use -// to perform audits and protect your data, for example replication rule counts -// within and across Regions. -// -// For more information about S3 Storage Lens, see Assessing your storage activity -// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) -// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, -// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) -// in the Amazon S3 User Guide. -type AdvancedDataProtectionMetrics struct { +type DeleteAccessPointForObjectLambdaOutput struct { _ struct{} `type:"structure"` - - // A container that indicates whether advanced data-protection metrics are enabled. - IsEnabled *bool `type:"boolean"` } // String returns the string representation. @@ -7760,7 +12688,7 @@ type AdvancedDataProtectionMetrics struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AdvancedDataProtectionMetrics) String() string { +func (s DeleteAccessPointForObjectLambdaOutput) String() string { return awsutil.Prettify(s) } @@ -7769,31 +12697,34 @@ func (s AdvancedDataProtectionMetrics) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AdvancedDataProtectionMetrics) GoString() string { +func (s DeleteAccessPointForObjectLambdaOutput) GoString() string { return s.String() } -// SetIsEnabled sets the IsEnabled field's value. -func (s *AdvancedDataProtectionMetrics) SetIsEnabled(v bool) *AdvancedDataProtectionMetrics { - s.IsEnabled = &v - return s -} - -// Error details for the failed asynchronous operation. -type AsyncErrorDetails struct { - _ struct{} `type:"structure"` - - // A string that uniquely identifies the error condition. - Code *string `type:"string"` - - // A generic description of the error condition in English. - Message *string `type:"string"` +type DeleteAccessPointInput struct { + _ struct{} `locationName:"DeleteAccessPointRequest" type:"structure"` - // The ID of the request associated with the error. - RequestId *string `type:"string"` + // The Amazon Web Services account ID for the account that owns the specified + // access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The identifier of the resource associated with the error. - Resource *string `type:"string"` + // The name of the access point you want to delete. + // + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. + // + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the access point accessed in the + // format arn:aws:s3-outposts:::outpost//accesspoint/. + // For example, to access the access point reports-ap through Outpost my-outpost + // owned by account 123456789012 in Region us-west-2, use the URL encoding of + // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. + // The value must be URL encoded. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -7801,7 +12732,7 @@ type AsyncErrorDetails struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AsyncErrorDetails) String() string { +func (s DeleteAccessPointInput) String() string { return awsutil.Prettify(s) } @@ -7810,55 +12741,93 @@ func (s AsyncErrorDetails) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AsyncErrorDetails) GoString() string { +func (s DeleteAccessPointInput) GoString() string { return s.String() } -// SetCode sets the Code field's value. -func (s *AsyncErrorDetails) SetCode(v string) *AsyncErrorDetails { - s.Code = &v - return s -} +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAccessPointInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } -// SetMessage sets the Message field's value. -func (s *AsyncErrorDetails) SetMessage(v string) *AsyncErrorDetails { - s.Message = &v - return s + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetRequestId sets the RequestId field's value. -func (s *AsyncErrorDetails) SetRequestId(v string) *AsyncErrorDetails { - s.RequestId = &v +// SetAccountId sets the AccountId field's value. +func (s *DeleteAccessPointInput) SetAccountId(v string) *DeleteAccessPointInput { + s.AccountId = &v return s } -// SetResource sets the Resource field's value. -func (s *AsyncErrorDetails) SetResource(v string) *AsyncErrorDetails { - s.Resource = &v +// SetName sets the Name field's value. +func (s *DeleteAccessPointInput) SetName(v string) *DeleteAccessPointInput { + s.Name = &v return s } -// A container for the information about an asynchronous operation. -type AsyncOperation struct { - _ struct{} `type:"structure"` - - // The time that the request was sent to the service. - CreationTime *time.Time `type:"timestamp"` +func (s *DeleteAccessPointInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} - // The specific operation for the asynchronous request. - Operation *string `type:"string" enum:"AsyncOperationName"` +func (s *DeleteAccessPointInput) getEndpointARN() (arn.Resource, error) { + if s.Name == nil { + return nil, fmt.Errorf("member Name is nil") + } + return parseEndpointARN(*s.Name) +} - // The parameters associated with the request. - RequestParameters *AsyncRequestParameters `type:"structure"` +func (s *DeleteAccessPointInput) hasEndpointARN() bool { + if s.Name == nil { + return false + } + return arn.IsARN(*s.Name) +} - // The current status of the request. - RequestStatus *string `type:"string"` +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s DeleteAccessPointInput) updateArnableField(v string) (interface{}, error) { + if s.Name == nil { + return nil, fmt.Errorf("member Name is nil") + } + s.Name = aws.String(v) + return &s, nil +} - // The request token associated with the request. - RequestTokenARN *string `min:"1" type:"string"` +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s DeleteAccessPointInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil +} - // The details of the response. - ResponseDetails *AsyncResponseDetails `type:"structure"` +type DeleteAccessPointOutput struct { + _ struct{} `type:"structure"` } // String returns the string representation. @@ -7866,7 +12835,7 @@ type AsyncOperation struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AsyncOperation) String() string { +func (s DeleteAccessPointOutput) String() string { return awsutil.Prettify(s) } @@ -7875,61 +12844,24 @@ func (s AsyncOperation) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AsyncOperation) GoString() string { +func (s DeleteAccessPointOutput) GoString() string { return s.String() } -// SetCreationTime sets the CreationTime field's value. -func (s *AsyncOperation) SetCreationTime(v time.Time) *AsyncOperation { - s.CreationTime = &v - return s -} - -// SetOperation sets the Operation field's value. -func (s *AsyncOperation) SetOperation(v string) *AsyncOperation { - s.Operation = &v - return s -} - -// SetRequestParameters sets the RequestParameters field's value. -func (s *AsyncOperation) SetRequestParameters(v *AsyncRequestParameters) *AsyncOperation { - s.RequestParameters = v - return s -} - -// SetRequestStatus sets the RequestStatus field's value. -func (s *AsyncOperation) SetRequestStatus(v string) *AsyncOperation { - s.RequestStatus = &v - return s -} - -// SetRequestTokenARN sets the RequestTokenARN field's value. -func (s *AsyncOperation) SetRequestTokenARN(v string) *AsyncOperation { - s.RequestTokenARN = &v - return s -} - -// SetResponseDetails sets the ResponseDetails field's value. -func (s *AsyncOperation) SetResponseDetails(v *AsyncResponseDetails) *AsyncOperation { - s.ResponseDetails = v - return s -} - -// A container for the request parameters associated with an asynchronous request. -type AsyncRequestParameters struct { - _ struct{} `type:"structure"` - - // A container of the parameters for a CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) - // request. - CreateMultiRegionAccessPointRequest *CreateMultiRegionAccessPointInput_ `type:"structure"` - - // A container of the parameters for a DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) - // request. - DeleteMultiRegionAccessPointRequest *DeleteMultiRegionAccessPointInput_ `type:"structure"` +type DeleteAccessPointPolicyForObjectLambdaInput struct { + _ struct{} `locationName:"DeleteAccessPointPolicyForObjectLambdaRequest" type:"structure"` - // A container of the parameters for a PutMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPoint.html) - // request. - PutMultiRegionAccessPointPolicyRequest *PutMultiRegionAccessPointPolicyInput_ `type:"structure"` + // The account ID for the account that owns the specified Object Lambda Access + // Point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the Object Lambda Access Point you want to delete the policy + // for. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -7937,7 +12869,7 @@ type AsyncRequestParameters struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AsyncRequestParameters) String() string { +func (s DeleteAccessPointPolicyForObjectLambdaInput) String() string { return awsutil.Prettify(s) } @@ -7946,38 +12878,52 @@ func (s AsyncRequestParameters) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AsyncRequestParameters) GoString() string { +func (s DeleteAccessPointPolicyForObjectLambdaInput) GoString() string { return s.String() } -// SetCreateMultiRegionAccessPointRequest sets the CreateMultiRegionAccessPointRequest field's value. -func (s *AsyncRequestParameters) SetCreateMultiRegionAccessPointRequest(v *CreateMultiRegionAccessPointInput_) *AsyncRequestParameters { - s.CreateMultiRegionAccessPointRequest = v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAccessPointPolicyForObjectLambdaInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyForObjectLambdaInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetDeleteMultiRegionAccessPointRequest sets the DeleteMultiRegionAccessPointRequest field's value. -func (s *AsyncRequestParameters) SetDeleteMultiRegionAccessPointRequest(v *DeleteMultiRegionAccessPointInput_) *AsyncRequestParameters { - s.DeleteMultiRegionAccessPointRequest = v +// SetAccountId sets the AccountId field's value. +func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointPolicyForObjectLambdaInput { + s.AccountId = &v return s } -// SetPutMultiRegionAccessPointPolicyRequest sets the PutMultiRegionAccessPointPolicyRequest field's value. -func (s *AsyncRequestParameters) SetPutMultiRegionAccessPointPolicyRequest(v *PutMultiRegionAccessPointPolicyInput_) *AsyncRequestParameters { - s.PutMultiRegionAccessPointPolicyRequest = v +// SetName sets the Name field's value. +func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetName(v string) *DeleteAccessPointPolicyForObjectLambdaInput { + s.Name = &v return s } -// A container for the response details that are returned when querying about -// an asynchronous request. -type AsyncResponseDetails struct { - _ struct{} `type:"structure"` - - // Error details for an asynchronous request. - ErrorDetails *AsyncErrorDetails `type:"structure"` +func (s *DeleteAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} - // The details for the Multi-Region Access Point. - MultiRegionAccessPointDetails *MultiRegionAccessPointsAsyncResponse `type:"structure"` +type DeleteAccessPointPolicyForObjectLambdaOutput struct { + _ struct{} `type:"structure"` } // String returns the string representation. @@ -7985,7 +12931,7 @@ type AsyncResponseDetails struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AsyncResponseDetails) String() string { +func (s DeleteAccessPointPolicyForObjectLambdaOutput) String() string { return awsutil.Prettify(s) } @@ -7994,35 +12940,33 @@ func (s AsyncResponseDetails) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AsyncResponseDetails) GoString() string { +func (s DeleteAccessPointPolicyForObjectLambdaOutput) GoString() string { return s.String() } -// SetErrorDetails sets the ErrorDetails field's value. -func (s *AsyncResponseDetails) SetErrorDetails(v *AsyncErrorDetails) *AsyncResponseDetails { - s.ErrorDetails = v - return s -} - -// SetMultiRegionAccessPointDetails sets the MultiRegionAccessPointDetails field's value. -func (s *AsyncResponseDetails) SetMultiRegionAccessPointDetails(v *MultiRegionAccessPointsAsyncResponse) *AsyncResponseDetails { - s.MultiRegionAccessPointDetails = v - return s -} - -// Lambda function used to transform objects through an Object Lambda Access -// Point. -type AwsLambdaTransformation struct { - _ struct{} `type:"structure"` +type DeleteAccessPointPolicyInput struct { + _ struct{} `locationName:"DeleteAccessPointPolicyRequest" type:"structure"` - // The Amazon Resource Name (ARN) of the Lambda function. + // The account ID for the account that owns the specified access point. // - // FunctionArn is a required field - FunctionArn *string `min:"1" type:"string" required:"true"` + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Additional JSON that provides supplemental data to the Lambda function used - // to transform objects. - FunctionPayload *string `type:"string"` + // The name of the access point whose policy you want to delete. + // + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. + // + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the access point accessed in the + // format arn:aws:s3-outposts:::outpost//accesspoint/. + // For example, to access the access point reports-ap through Outpost my-outpost + // owned by account 123456789012 in Region us-west-2, use the URL encoding of + // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. + // The value must be URL encoded. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -8030,7 +12974,7 @@ type AwsLambdaTransformation struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AwsLambdaTransformation) String() string { +func (s DeleteAccessPointPolicyInput) String() string { return awsutil.Prettify(s) } @@ -8039,18 +12983,24 @@ func (s AwsLambdaTransformation) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s AwsLambdaTransformation) GoString() string { +func (s DeleteAccessPointPolicyInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *AwsLambdaTransformation) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AwsLambdaTransformation"} - if s.FunctionArn == nil { - invalidParams.Add(request.NewErrParamRequired("FunctionArn")) +func (s *DeleteAccessPointPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) } - if s.FunctionArn != nil && len(*s.FunctionArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1)) + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) } if invalidParams.Len() > 0 { @@ -8059,43 +13009,67 @@ func (s *AwsLambdaTransformation) Validate() error { return nil } -// SetFunctionArn sets the FunctionArn field's value. -func (s *AwsLambdaTransformation) SetFunctionArn(v string) *AwsLambdaTransformation { - s.FunctionArn = &v +// SetAccountId sets the AccountId field's value. +func (s *DeleteAccessPointPolicyInput) SetAccountId(v string) *DeleteAccessPointPolicyInput { + s.AccountId = &v return s } -// SetFunctionPayload sets the FunctionPayload field's value. -func (s *AwsLambdaTransformation) SetFunctionPayload(v string) *AwsLambdaTransformation { - s.FunctionPayload = &v +// SetName sets the Name field's value. +func (s *DeleteAccessPointPolicyInput) SetName(v string) *DeleteAccessPointPolicyInput { + s.Name = &v return s } -// A container for the bucket-level configuration for Amazon S3 Storage Lens. -// -// For more information about S3 Storage Lens, see Assessing your storage activity -// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) -// in the Amazon S3 User Guide. -type BucketLevel struct { - _ struct{} `type:"structure"` +func (s *DeleteAccessPointPolicyInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} - // A container for the bucket-level activity metrics for S3 Storage Lens. - ActivityMetrics *ActivityMetrics `type:"structure"` +func (s *DeleteAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) { + if s.Name == nil { + return nil, fmt.Errorf("member Name is nil") + } + return parseEndpointARN(*s.Name) +} - // A container for bucket-level advanced cost-optimization metrics for S3 Storage - // Lens. - AdvancedCostOptimizationMetrics *AdvancedCostOptimizationMetrics `type:"structure"` +func (s *DeleteAccessPointPolicyInput) hasEndpointARN() bool { + if s.Name == nil { + return false + } + return arn.IsARN(*s.Name) +} - // A container for bucket-level advanced data-protection metrics for S3 Storage - // Lens. - AdvancedDataProtectionMetrics *AdvancedDataProtectionMetrics `type:"structure"` +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s DeleteAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) { + if s.Name == nil { + return nil, fmt.Errorf("member Name is nil") + } + s.Name = aws.String(v) + return &s, nil +} - // A container for bucket-level detailed status code metrics for S3 Storage - // Lens. - DetailedStatusCodesMetrics *DetailedStatusCodesMetrics `type:"structure"` +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s DeleteAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil +} - // A container for the prefix-level metrics for S3 Storage Lens. - PrefixLevel *PrefixLevel `type:"structure"` +type DeleteAccessPointPolicyOutput struct { + _ struct{} `type:"structure"` } // String returns the string representation. @@ -8103,7 +13077,7 @@ type BucketLevel struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s BucketLevel) String() string { +func (s DeleteAccessPointPolicyOutput) String() string { return awsutil.Prettify(s) } @@ -8112,70 +13086,32 @@ func (s BucketLevel) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s BucketLevel) GoString() string { +func (s DeleteAccessPointPolicyOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *BucketLevel) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "BucketLevel"} - if s.PrefixLevel != nil { - if err := s.PrefixLevel.Validate(); err != nil { - invalidParams.AddNested("PrefixLevel", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetActivityMetrics sets the ActivityMetrics field's value. -func (s *BucketLevel) SetActivityMetrics(v *ActivityMetrics) *BucketLevel { - s.ActivityMetrics = v - return s -} - -// SetAdvancedCostOptimizationMetrics sets the AdvancedCostOptimizationMetrics field's value. -func (s *BucketLevel) SetAdvancedCostOptimizationMetrics(v *AdvancedCostOptimizationMetrics) *BucketLevel { - s.AdvancedCostOptimizationMetrics = v - return s -} - -// SetAdvancedDataProtectionMetrics sets the AdvancedDataProtectionMetrics field's value. -func (s *BucketLevel) SetAdvancedDataProtectionMetrics(v *AdvancedDataProtectionMetrics) *BucketLevel { - s.AdvancedDataProtectionMetrics = v - return s -} - -// SetDetailedStatusCodesMetrics sets the DetailedStatusCodesMetrics field's value. -func (s *BucketLevel) SetDetailedStatusCodesMetrics(v *DetailedStatusCodesMetrics) *BucketLevel { - s.DetailedStatusCodesMetrics = v - return s -} - -// SetPrefixLevel sets the PrefixLevel field's value. -func (s *BucketLevel) SetPrefixLevel(v *PrefixLevel) *BucketLevel { - s.PrefixLevel = v - return s -} +type DeleteBucketInput struct { + _ struct{} `locationName:"DeleteBucketRequest" type:"structure"` -// A container for enabling Amazon CloudWatch publishing for S3 Storage Lens -// metrics. -// -// For more information about publishing S3 Storage Lens metrics to CloudWatch, -// see Monitor S3 Storage Lens metrics in CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_view_metrics_cloudwatch.html) -// in the Amazon S3 User Guide. -type CloudWatchMetrics struct { - _ struct{} `type:"structure"` + // The account ID that owns the Outposts bucket. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // A container that indicates whether CloudWatch publishing for S3 Storage Lens - // metrics is enabled. A value of true indicates that CloudWatch publishing - // for S3 Storage Lens metrics is enabled. + // Specifies the bucket being deleted. // - // IsEnabled is a required field - IsEnabled *bool `type:"boolean" required:"true"` + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. + // + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through Outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -8183,7 +13119,7 @@ type CloudWatchMetrics struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CloudWatchMetrics) String() string { +func (s DeleteBucketInput) String() string { return awsutil.Prettify(s) } @@ -8192,15 +13128,24 @@ func (s CloudWatchMetrics) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CloudWatchMetrics) GoString() string { +func (s DeleteBucketInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CloudWatchMetrics) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CloudWatchMetrics"} - if s.IsEnabled == nil { - invalidParams.Add(request.NewErrParamRequired("IsEnabled")) +func (s *DeleteBucketInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } if invalidParams.Len() > 0 { @@ -8209,30 +13154,87 @@ func (s *CloudWatchMetrics) Validate() error { return nil } -// SetIsEnabled sets the IsEnabled field's value. -func (s *CloudWatchMetrics) SetIsEnabled(v bool) *CloudWatchMetrics { - s.IsEnabled = &v +// SetAccountId sets the AccountId field's value. +func (s *DeleteBucketInput) SetAccountId(v string) *DeleteBucketInput { + s.AccountId = &v return s } -type CreateAccessPointForObjectLambdaInput struct { - _ struct{} `locationName:"CreateAccessPointForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketInput) SetBucket(v string) *DeleteBucketInput { + s.Bucket = &v + return s +} - // The Amazon Web Services account ID for owner of the specified Object Lambda - // Access Point. +func (s *DeleteBucketInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +func (s *DeleteBucketInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *DeleteBucketInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s DeleteBucketInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s DeleteBucketInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil +} + +type DeleteBucketLifecycleConfigurationInput struct { + _ struct{} `locationName:"DeleteBucketLifecycleConfigurationRequest" type:"structure"` + + // The account ID of the lifecycle configuration to delete. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Object Lambda Access Point configuration as a JSON document. + // Specifies the bucket. // - // Configuration is a required field - Configuration *ObjectLambdaConfiguration `type:"structure" required:"true"` - - // The name you want to assign to this Object Lambda Access Point. + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through Outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -8240,7 +13242,7 @@ type CreateAccessPointForObjectLambdaInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateAccessPointForObjectLambdaInput) String() string { +func (s DeleteBucketLifecycleConfigurationInput) String() string { return awsutil.Prettify(s) } @@ -8249,32 +13251,24 @@ func (s CreateAccessPointForObjectLambdaInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateAccessPointForObjectLambdaInput) GoString() string { +func (s DeleteBucketLifecycleConfigurationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateAccessPointForObjectLambdaInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointForObjectLambdaInput"} +func (s *DeleteBucketLifecycleConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketLifecycleConfigurationInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Configuration == nil { - invalidParams.Add(request.NewErrParamRequired("Configuration")) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) } - if s.Configuration != nil { - if err := s.Configuration.Validate(); err != nil { - invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams)) - } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } if invalidParams.Len() > 0 { @@ -8284,37 +13278,66 @@ func (s *CreateAccessPointForObjectLambdaInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *CreateAccessPointForObjectLambdaInput) SetAccountId(v string) *CreateAccessPointForObjectLambdaInput { +func (s *DeleteBucketLifecycleConfigurationInput) SetAccountId(v string) *DeleteBucketLifecycleConfigurationInput { s.AccountId = &v return s } -// SetConfiguration sets the Configuration field's value. -func (s *CreateAccessPointForObjectLambdaInput) SetConfiguration(v *ObjectLambdaConfiguration) *CreateAccessPointForObjectLambdaInput { - s.Configuration = v - return s -} - -// SetName sets the Name field's value. -func (s *CreateAccessPointForObjectLambdaInput) SetName(v string) *CreateAccessPointForObjectLambdaInput { - s.Name = &v +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketLifecycleConfigurationInput) SetBucket(v string) *DeleteBucketLifecycleConfigurationInput { + s.Bucket = &v return s } -func (s *CreateAccessPointForObjectLambdaInput) hostLabels() map[string]string { +func (s *DeleteBucketLifecycleConfigurationInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type CreateAccessPointForObjectLambdaOutput struct { - _ struct{} `type:"structure"` +func (s *DeleteBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} - // The alias of the Object Lambda Access Point. - Alias *ObjectLambdaAccessPointAlias `type:"structure"` +func (s *DeleteBucketLifecycleConfigurationInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} - // Specifies the ARN for the Object Lambda Access Point. - ObjectLambdaAccessPointArn *string `min:"1" type:"string"` +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s DeleteBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s DeleteBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil +} + +type DeleteBucketLifecycleConfigurationOutput struct { + _ struct{} `type:"structure"` } // String returns the string representation. @@ -8322,7 +13345,7 @@ type CreateAccessPointForObjectLambdaOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateAccessPointForObjectLambdaOutput) String() string { +func (s DeleteBucketLifecycleConfigurationOutput) String() string { return awsutil.Prettify(s) } @@ -8331,32 +13354,41 @@ func (s CreateAccessPointForObjectLambdaOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateAccessPointForObjectLambdaOutput) GoString() string { +func (s DeleteBucketLifecycleConfigurationOutput) GoString() string { return s.String() } -// SetAlias sets the Alias field's value. -func (s *CreateAccessPointForObjectLambdaOutput) SetAlias(v *ObjectLambdaAccessPointAlias) *CreateAccessPointForObjectLambdaOutput { - s.Alias = v - return s +type DeleteBucketOutput struct { + _ struct{} `type:"structure"` } -// SetObjectLambdaAccessPointArn sets the ObjectLambdaAccessPointArn field's value. -func (s *CreateAccessPointForObjectLambdaOutput) SetObjectLambdaAccessPointArn(v string) *CreateAccessPointForObjectLambdaOutput { - s.ObjectLambdaAccessPointArn = &v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteBucketOutput) String() string { + return awsutil.Prettify(s) } -type CreateAccessPointInput struct { - _ struct{} `locationName:"CreateAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteBucketOutput) GoString() string { + return s.String() +} + +type DeleteBucketPolicyInput struct { + _ struct{} `locationName:"DeleteBucketPolicyRequest" type:"structure"` - // The Amazon Web Services account ID for the account that owns the specified - // access point. + // The account ID of the Outposts bucket. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the bucket that you want to associate this access point with. + // Specifies the bucket. // // For using this parameter with Amazon S3 on Outposts with the REST API, you // must specify the name and the x-amz-outpost-id as well. @@ -8369,26 +13401,7 @@ type CreateAccessPointInput struct { // The value must be URL encoded. // // Bucket is a required field - Bucket *string `min:"3" type:"string" required:"true"` - - // The Amazon Web Services account ID associated with the S3 bucket associated - // with this access point. - BucketAccountId *string `type:"string"` - - // The name you want to assign to this access point. - // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` - - // The PublicAccessBlock configuration that you want to apply to the access - // point. - PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` - - // If you include this field, Amazon S3 restricts access to this access point - // to requests from the specified virtual private cloud (VPC). - // - // This is required for creating an access point for Amazon S3 on Outposts buckets. - VpcConfiguration *VpcConfiguration `type:"structure"` + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -8396,7 +13409,7 @@ type CreateAccessPointInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateAccessPointInput) String() string { +func (s DeleteBucketPolicyInput) String() string { return awsutil.Prettify(s) } @@ -8405,13 +13418,13 @@ func (s CreateAccessPointInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateAccessPointInput) GoString() string { +func (s DeleteBucketPolicyInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateAccessPointInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointInput"} +func (s *DeleteBucketPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketPolicyInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } @@ -8424,17 +13437,6 @@ func (s *CreateAccessPointInput) Validate() error { if s.Bucket != nil && len(*s.Bucket) < 3 { invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) - } - if s.VpcConfiguration != nil { - if err := s.VpcConfiguration.Validate(); err != nil { - invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams)) - } - } if invalidParams.Len() > 0 { return invalidParams @@ -8443,55 +13445,31 @@ func (s *CreateAccessPointInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *CreateAccessPointInput) SetAccountId(v string) *CreateAccessPointInput { +func (s *DeleteBucketPolicyInput) SetAccountId(v string) *DeleteBucketPolicyInput { s.AccountId = &v return s } // SetBucket sets the Bucket field's value. -func (s *CreateAccessPointInput) SetBucket(v string) *CreateAccessPointInput { +func (s *DeleteBucketPolicyInput) SetBucket(v string) *DeleteBucketPolicyInput { s.Bucket = &v return s } -// SetBucketAccountId sets the BucketAccountId field's value. -func (s *CreateAccessPointInput) SetBucketAccountId(v string) *CreateAccessPointInput { - s.BucketAccountId = &v - return s -} - -// SetName sets the Name field's value. -func (s *CreateAccessPointInput) SetName(v string) *CreateAccessPointInput { - s.Name = &v - return s -} - -// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. -func (s *CreateAccessPointInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *CreateAccessPointInput { - s.PublicAccessBlockConfiguration = v - return s -} - -// SetVpcConfiguration sets the VpcConfiguration field's value. -func (s *CreateAccessPointInput) SetVpcConfiguration(v *VpcConfiguration) *CreateAccessPointInput { - s.VpcConfiguration = v - return s -} - -func (s *CreateAccessPointInput) hostLabels() map[string]string { +func (s *DeleteBucketPolicyInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *CreateAccessPointInput) getEndpointARN() (arn.Resource, error) { +func (s *DeleteBucketPolicyInput) getEndpointARN() (arn.Resource, error) { if s.Bucket == nil { return nil, fmt.Errorf("member Bucket is nil") } return parseEndpointARN(*s.Bucket) } -func (s *CreateAccessPointInput) hasEndpointARN() bool { +func (s *DeleteBucketPolicyInput) hasEndpointARN() bool { if s.Bucket == nil { return false } @@ -8503,7 +13481,7 @@ func (s *CreateAccessPointInput) hasEndpointARN() bool { // the parsed resource name from ARN into the input member. // It returns a pointer to a modified copy of input and an error. // Note that original input is not modified. -func (s CreateAccessPointInput) updateArnableField(v string) (interface{}, error) { +func (s DeleteBucketPolicyInput) updateArnableField(v string) (interface{}, error) { if s.Bucket == nil { return nil, fmt.Errorf("member Bucket is nil") } @@ -8515,7 +13493,7 @@ func (s CreateAccessPointInput) updateArnableField(v string) (interface{}, error // if account id is not provided, we update the account id in modified input // if account id is provided, but doesn't match with the one in ARN, we throw an error // if account id is not updated, we return nil. Note that original input is not modified. -func (s CreateAccessPointInput) updateAccountID(accountId string) (interface{}, error) { +func (s DeleteBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) { if s.AccountId == nil { s.AccountId = aws.String(accountId) return &s, nil @@ -8525,30 +13503,8 @@ func (s CreateAccessPointInput) updateAccountID(accountId string) (interface{}, return nil, nil } -// updateBucketAccountId returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s CreateAccessPointInput) updateBucketAccountId(accountId string) (interface{}, error) { - if s.BucketAccountId == nil { - s.BucketAccountId = aws.String(accountId) - return &s, nil - } else if *s.BucketAccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil -} - -type CreateAccessPointOutput struct { +type DeleteBucketPolicyOutput struct { _ struct{} `type:"structure"` - - // The ARN of the access point. - // - // This is only supported by Amazon S3 on Outposts. - AccessPointArn *string `min:"4" type:"string"` - - // The name or alias of the access point. - Alias *string `type:"string"` } // String returns the string representation. @@ -8556,7 +13512,7 @@ type CreateAccessPointOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateAccessPointOutput) String() string { +func (s DeleteBucketPolicyOutput) String() string { return awsutil.Prettify(s) } @@ -8565,34 +13521,34 @@ func (s CreateAccessPointOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateAccessPointOutput) GoString() string { +func (s DeleteBucketPolicyOutput) GoString() string { return s.String() } -// SetAccessPointArn sets the AccessPointArn field's value. -func (s *CreateAccessPointOutput) SetAccessPointArn(v string) *CreateAccessPointOutput { - s.AccessPointArn = &v - return s -} - -// SetAlias sets the Alias field's value. -func (s *CreateAccessPointOutput) SetAlias(v string) *CreateAccessPointOutput { - s.Alias = &v - return s -} +type DeleteBucketReplicationInput struct { + _ struct{} `locationName:"DeleteBucketReplicationRequest" type:"structure"` -// The container for the bucket configuration. -// -// This is not supported by Amazon S3 on Outposts buckets. -type CreateBucketConfiguration struct { - _ struct{} `type:"structure"` + // The Amazon Web Services account ID of the Outposts bucket to delete the replication + // configuration for. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Specifies the Region where the bucket will be created. If you are creating - // a bucket on the US East (N. Virginia) Region (us-east-1), you do not need - // to specify the location. + // Specifies the S3 on Outposts bucket to delete the replication configuration + // for. // - // This is not supported by Amazon S3 on Outposts buckets. - LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"` + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. + // + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through Outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -8600,7 +13556,7 @@ type CreateBucketConfiguration struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateBucketConfiguration) String() string { +func (s DeleteBucketReplicationInput) String() string { return awsutil.Prettify(s) } @@ -8609,69 +13565,135 @@ func (s CreateBucketConfiguration) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateBucketConfiguration) GoString() string { +func (s DeleteBucketReplicationInput) GoString() string { return s.String() } -// SetLocationConstraint sets the LocationConstraint field's value. -func (s *CreateBucketConfiguration) SetLocationConstraint(v string) *CreateBucketConfiguration { - s.LocationConstraint = &v +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBucketReplicationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketReplicationInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DeleteBucketReplicationInput) SetAccountId(v string) *DeleteBucketReplicationInput { + s.AccountId = &v return s } -type CreateBucketInput struct { - _ struct{} `locationName:"CreateBucketRequest" type:"structure" payload:"CreateBucketConfiguration"` +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketReplicationInput) SetBucket(v string) *DeleteBucketReplicationInput { + s.Bucket = &v + return s +} - // The canned ACL to apply to the bucket. - // - // This is not supported by Amazon S3 on Outposts buckets. - ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"` +func (s *DeleteBucketReplicationInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} - // The name of the bucket. - // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +func (s *DeleteBucketReplicationInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} - // The configuration information for the bucket. - // - // This is not supported by Amazon S3 on Outposts buckets. - CreateBucketConfiguration *CreateBucketConfiguration `locationName:"CreateBucketConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` +func (s *DeleteBucketReplicationInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} - // Allows grantee the read, write, read ACP, and write ACP permissions on the - // bucket. - // - // This is not supported by Amazon S3 on Outposts buckets. - GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s DeleteBucketReplicationInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s DeleteBucketReplicationInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil +} + +type DeleteBucketReplicationOutput struct { + _ struct{} `type:"structure"` +} - // Allows grantee to list the objects in the bucket. - // - // This is not supported by Amazon S3 on Outposts buckets. - GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteBucketReplicationOutput) String() string { + return awsutil.Prettify(s) +} - // Allows grantee to read the bucket ACL. - // - // This is not supported by Amazon S3 on Outposts buckets. - GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteBucketReplicationOutput) GoString() string { + return s.String() +} - // Allows grantee to create, overwrite, and delete any object in the bucket. - // - // This is not supported by Amazon S3 on Outposts buckets. - GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"` +type DeleteBucketTaggingInput struct { + _ struct{} `locationName:"DeleteBucketTaggingRequest" type:"structure"` - // Allows grantee to write the ACL for the applicable bucket. + // The Amazon Web Services account ID of the Outposts bucket tag set to be removed. // - // This is not supported by Amazon S3 on Outposts buckets. - GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Specifies whether you want S3 Object Lock to be enabled for the new bucket. + // The bucket ARN that has the tag set to be removed. // - // This is not supported by Amazon S3 on Outposts buckets. - ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"` - - // The ID of the Outposts where the bucket is being created. + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. // - // This ID is required by Amazon S3 on Outposts buckets. - OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"` + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through Outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -8679,7 +13701,7 @@ type CreateBucketInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateBucketInput) String() string { +func (s DeleteBucketTaggingInput) String() string { return awsutil.Prettify(s) } @@ -8688,22 +13710,25 @@ func (s CreateBucketInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateBucketInput) GoString() string { +func (s DeleteBucketTaggingInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateBucketInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateBucketInput"} +func (s *DeleteBucketTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketTaggingInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } if s.Bucket == nil { invalidParams.Add(request.NewErrParamRequired("Bucket")) } if s.Bucket != nil && len(*s.Bucket) < 3 { invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } - if s.OutpostId != nil && len(*s.OutpostId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1)) - } if invalidParams.Len() > 0 { return invalidParams @@ -8711,98 +13736,67 @@ func (s *CreateBucketInput) Validate() error { return nil } -// SetACL sets the ACL field's value. -func (s *CreateBucketInput) SetACL(v string) *CreateBucketInput { - s.ACL = &v +// SetAccountId sets the AccountId field's value. +func (s *DeleteBucketTaggingInput) SetAccountId(v string) *DeleteBucketTaggingInput { + s.AccountId = &v return s } // SetBucket sets the Bucket field's value. -func (s *CreateBucketInput) SetBucket(v string) *CreateBucketInput { +func (s *DeleteBucketTaggingInput) SetBucket(v string) *DeleteBucketTaggingInput { s.Bucket = &v return s } -// SetCreateBucketConfiguration sets the CreateBucketConfiguration field's value. -func (s *CreateBucketInput) SetCreateBucketConfiguration(v *CreateBucketConfiguration) *CreateBucketInput { - s.CreateBucketConfiguration = v - return s -} - -// SetGrantFullControl sets the GrantFullControl field's value. -func (s *CreateBucketInput) SetGrantFullControl(v string) *CreateBucketInput { - s.GrantFullControl = &v - return s -} - -// SetGrantRead sets the GrantRead field's value. -func (s *CreateBucketInput) SetGrantRead(v string) *CreateBucketInput { - s.GrantRead = &v - return s -} - -// SetGrantReadACP sets the GrantReadACP field's value. -func (s *CreateBucketInput) SetGrantReadACP(v string) *CreateBucketInput { - s.GrantReadACP = &v - return s -} - -// SetGrantWrite sets the GrantWrite field's value. -func (s *CreateBucketInput) SetGrantWrite(v string) *CreateBucketInput { - s.GrantWrite = &v - return s -} - -// SetGrantWriteACP sets the GrantWriteACP field's value. -func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput { - s.GrantWriteACP = &v - return s +func (s *DeleteBucketTaggingInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } } -// SetObjectLockEnabledForBucket sets the ObjectLockEnabledForBucket field's value. -func (s *CreateBucketInput) SetObjectLockEnabledForBucket(v bool) *CreateBucketInput { - s.ObjectLockEnabledForBucket = &v - return s +func (s *DeleteBucketTaggingInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) } -// SetOutpostId sets the OutpostId field's value. -func (s *CreateBucketInput) SetOutpostId(v string) *CreateBucketInput { - s.OutpostId = &v - return s +func (s *DeleteBucketTaggingInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) } -func (s *CreateBucketInput) getOutpostID() (string, error) { - if s.OutpostId == nil { - return "", fmt.Errorf("member OutpostId is nil") +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s DeleteBucketTaggingInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") } - return *s.OutpostId, nil + s.Bucket = aws.String(v) + return &s, nil } -func (s *CreateBucketInput) hasOutpostID() bool { - if s.OutpostId == nil { - return false +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s DeleteBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") } - return true + return nil, nil } -type CreateBucketOutput struct { +type DeleteBucketTaggingOutput struct { _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of the bucket. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the bucket accessed in the format - // arn:aws:s3-outposts:::outpost//bucket/. - // For example, to access the bucket reports through Outpost my-outpost owned - // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. - // The value must be URL encoded. - BucketArn *string `min:"4" type:"string"` - - // The location of the bucket. - Location *string `location:"header" locationName:"Location" type:"string"` } // String returns the string representation. @@ -8810,7 +13804,7 @@ type CreateBucketOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateBucketOutput) String() string { +func (s DeleteBucketTaggingOutput) String() string { return awsutil.Prettify(s) } @@ -8819,77 +13813,23 @@ func (s CreateBucketOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateBucketOutput) GoString() string { +func (s DeleteBucketTaggingOutput) GoString() string { return s.String() } -// SetBucketArn sets the BucketArn field's value. -func (s *CreateBucketOutput) SetBucketArn(v string) *CreateBucketOutput { - s.BucketArn = &v - return s -} - -// SetLocation sets the Location field's value. -func (s *CreateBucketOutput) SetLocation(v string) *CreateBucketOutput { - s.Location = &v - return s -} - -type CreateJobInput struct { - _ struct{} `locationName:"CreateJobRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` +type DeleteJobTaggingInput struct { + _ struct{} `locationName:"DeleteJobTaggingRequest" type:"structure"` - // The Amazon Web Services account ID that creates the job. + // The Amazon Web Services account ID associated with the S3 Batch Operations + // job. // // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - - // An idempotency token to ensure that you don't accidentally submit the same - // request twice. You can use any string up to the maximum length. - ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` - - // Indicates whether confirmation is required before Amazon S3 runs the job. - // Confirmation is only required for jobs created through the Amazon S3 console. - ConfirmationRequired *bool `type:"boolean"` - - // A description for this job. You can use any string within the permitted length. - // Descriptions don't need to be unique and can be used for multiple jobs. - Description *string `min:"1" type:"string"` - - // Configuration parameters for the manifest. - Manifest *JobManifest `type:"structure"` - - // The attribute container for the ManifestGenerator details. Jobs must be created - // with either a manifest file or a ManifestGenerator, but not both. - ManifestGenerator *JobManifestGenerator `type:"structure"` - - // The action that you want this job to perform on every object listed in the - // manifest. For more information about the available actions, see Operations - // (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-actions.html) - // in the Amazon S3 User Guide. - // - // Operation is a required field - Operation *JobOperation `type:"structure" required:"true"` - - // The numerical priority for this job. Higher numbers indicate higher priority. - // - // Priority is a required field - Priority *int64 `type:"integer" required:"true"` - - // Configuration parameters for the optional job-completion report. - // - // Report is a required field - Report *JobReport `type:"structure" required:"true"` - - // The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) - // role that Batch Operations will use to run this job's action on every object - // in the manifest. - // - // RoleArn is a required field - RoleArn *string `min:"1" type:"string" required:"true"` - - // A set of tags to associate with the S3 Batch Operations job. This is an optional - // parameter. - Tags []*S3Tag `type:"list"` + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The ID for the S3 Batch Operations job whose tags you want to delete. + // + // JobId is a required field + JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` } // String returns the string representation. @@ -8897,7 +13837,7 @@ type CreateJobInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateJobInput) String() string { +func (s DeleteJobTaggingInput) String() string { return awsutil.Prettify(s) } @@ -8906,69 +13846,24 @@ func (s CreateJobInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateJobInput) GoString() string { +func (s DeleteJobTaggingInput) 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"} +func (s *DeleteJobTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteJobTaggingInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1)) - } - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.Operation == nil { - invalidParams.Add(request.NewErrParamRequired("Operation")) - } - if s.Priority == nil { - invalidParams.Add(request.NewErrParamRequired("Priority")) - } - if s.Report == nil { - invalidParams.Add(request.NewErrParamRequired("Report")) - } - if s.RoleArn == nil { - invalidParams.Add(request.NewErrParamRequired("RoleArn")) - } - if s.RoleArn != nil && len(*s.RoleArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) - } - if s.Manifest != nil { - if err := s.Manifest.Validate(); err != nil { - invalidParams.AddNested("Manifest", err.(request.ErrInvalidParams)) - } - } - if s.ManifestGenerator != nil { - if err := s.ManifestGenerator.Validate(); err != nil { - invalidParams.AddNested("ManifestGenerator", err.(request.ErrInvalidParams)) - } - } - if s.Operation != nil { - if err := s.Operation.Validate(); err != nil { - invalidParams.AddNested("Operation", err.(request.ErrInvalidParams)) - } - } - if s.Report != nil { - if err := s.Report.Validate(); err != nil { - invalidParams.AddNested("Report", err.(request.ErrInvalidParams)) - } + if s.JobId == nil { + invalidParams.Add(request.NewErrParamRequired("JobId")) } - 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.JobId != nil && len(*s.JobId) < 5 { + invalidParams.Add(request.NewErrParamMinLen("JobId", 5)) } if invalidParams.Len() > 0 { @@ -8978,83 +13873,62 @@ func (s *CreateJobInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *CreateJobInput) SetAccountId(v string) *CreateJobInput { +func (s *DeleteJobTaggingInput) SetAccountId(v string) *DeleteJobTaggingInput { s.AccountId = &v return s } -// SetClientRequestToken sets the ClientRequestToken field's value. -func (s *CreateJobInput) SetClientRequestToken(v string) *CreateJobInput { - s.ClientRequestToken = &v - return s -} - -// SetConfirmationRequired sets the ConfirmationRequired field's value. -func (s *CreateJobInput) SetConfirmationRequired(v bool) *CreateJobInput { - s.ConfirmationRequired = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *CreateJobInput) SetDescription(v string) *CreateJobInput { - s.Description = &v - return s -} - -// SetManifest sets the Manifest field's value. -func (s *CreateJobInput) SetManifest(v *JobManifest) *CreateJobInput { - s.Manifest = v - return s -} - -// SetManifestGenerator sets the ManifestGenerator field's value. -func (s *CreateJobInput) SetManifestGenerator(v *JobManifestGenerator) *CreateJobInput { - s.ManifestGenerator = v - return s -} - -// SetOperation sets the Operation field's value. -func (s *CreateJobInput) SetOperation(v *JobOperation) *CreateJobInput { - s.Operation = v - return s -} - -// SetPriority sets the Priority field's value. -func (s *CreateJobInput) SetPriority(v int64) *CreateJobInput { - s.Priority = &v +// SetJobId sets the JobId field's value. +func (s *DeleteJobTaggingInput) SetJobId(v string) *DeleteJobTaggingInput { + s.JobId = &v return s } -// SetReport sets the Report field's value. -func (s *CreateJobInput) SetReport(v *JobReport) *CreateJobInput { - s.Report = v - return s +func (s *DeleteJobTaggingInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } } -// SetRoleArn sets the RoleArn field's value. -func (s *CreateJobInput) SetRoleArn(v string) *CreateJobInput { - s.RoleArn = &v - return s +type DeleteJobTaggingOutput struct { + _ struct{} `type:"structure"` } -// SetTags sets the Tags field's value. -func (s *CreateJobInput) SetTags(v []*S3Tag) *CreateJobInput { - s.Tags = v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteJobTaggingOutput) String() string { + return awsutil.Prettify(s) } -func (s *CreateJobInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteJobTaggingOutput) GoString() string { + return s.String() } -type CreateJobOutput struct { +// Specifies whether S3 on Outposts replicates delete markers. If you specify +// a Filter element in your replication configuration, you must also include +// a DeleteMarkerReplication element. If your Filter includes a Tag element, +// the DeleteMarkerReplication element's Status child element must be set to +// Disabled, because S3 on Outposts does not support replicating delete markers +// for tag-based rules. +// +// For more information about delete marker replication, see How delete operations +// affect replication (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsReplication.html#outposts-replication-what-is-replicated) +// in the Amazon S3 User Guide. +type DeleteMarkerReplication struct { _ struct{} `type:"structure"` - // The ID for this job. Amazon S3 generates this ID automatically and returns - // it after a successful Create Job request. - JobId *string `min:"5" type:"string"` + // Indicates whether to replicate delete markers. + // + // Status is a required field + Status *string `type:"string" required:"true" enum:"DeleteMarkerReplicationStatus"` } // String returns the string representation. @@ -9062,7 +13936,7 @@ type CreateJobOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateJobOutput) String() string { +func (s DeleteMarkerReplication) String() string { return awsutil.Prettify(s) } @@ -9071,22 +13945,34 @@ func (s CreateJobOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateJobOutput) GoString() string { +func (s DeleteMarkerReplication) GoString() string { return s.String() } -// SetJobId sets the JobId field's value. -func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput { - s.JobId = &v +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteMarkerReplication) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteMarkerReplication"} + if s.Status == nil { + invalidParams.Add(request.NewErrParamRequired("Status")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetStatus sets the Status field's value. +func (s *DeleteMarkerReplication) SetStatus(v string) *DeleteMarkerReplication { + s.Status = &v return s } -type CreateMultiRegionAccessPointInput struct { - _ struct{} `locationName:"CreateMultiRegionAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` +type DeleteMultiRegionAccessPointInput struct { + _ struct{} `locationName:"DeleteMultiRegionAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` // The Amazon Web Services account ID for the owner of the Multi-Region Access - // Point. The owner of the Multi-Region Access Point also must own the underlying - // buckets. + // Point. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` @@ -9098,7 +13984,7 @@ type CreateMultiRegionAccessPointInput struct { // A container element containing details about the Multi-Region Access Point. // // Details is a required field - Details *CreateMultiRegionAccessPointInput_ `type:"structure" required:"true"` + Details *DeleteMultiRegionAccessPointInput_ `type:"structure" required:"true"` } // String returns the string representation. @@ -9106,7 +13992,7 @@ type CreateMultiRegionAccessPointInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateMultiRegionAccessPointInput) String() string { +func (s DeleteMultiRegionAccessPointInput) String() string { return awsutil.Prettify(s) } @@ -9115,13 +14001,13 @@ func (s CreateMultiRegionAccessPointInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateMultiRegionAccessPointInput) GoString() string { +func (s DeleteMultiRegionAccessPointInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateMultiRegionAccessPointInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateMultiRegionAccessPointInput"} +func (s *DeleteMultiRegionAccessPointInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteMultiRegionAccessPointInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } @@ -9144,54 +14030,39 @@ func (s *CreateMultiRegionAccessPointInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *CreateMultiRegionAccessPointInput) SetAccountId(v string) *CreateMultiRegionAccessPointInput { +func (s *DeleteMultiRegionAccessPointInput) SetAccountId(v string) *DeleteMultiRegionAccessPointInput { s.AccountId = &v return s } // SetClientToken sets the ClientToken field's value. -func (s *CreateMultiRegionAccessPointInput) SetClientToken(v string) *CreateMultiRegionAccessPointInput { +func (s *DeleteMultiRegionAccessPointInput) SetClientToken(v string) *DeleteMultiRegionAccessPointInput { s.ClientToken = &v return s } // SetDetails sets the Details field's value. -func (s *CreateMultiRegionAccessPointInput) SetDetails(v *CreateMultiRegionAccessPointInput_) *CreateMultiRegionAccessPointInput { +func (s *DeleteMultiRegionAccessPointInput) SetDetails(v *DeleteMultiRegionAccessPointInput_) *DeleteMultiRegionAccessPointInput { s.Details = v return s } -func (s *CreateMultiRegionAccessPointInput) hostLabels() map[string]string { +func (s *DeleteMultiRegionAccessPointInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -// A container for the information associated with a CreateMultiRegionAccessPoint -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html) +// A container for the information associated with a DeleteMultiRegionAccessPoint +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) // request. -type CreateMultiRegionAccessPointInput_ struct { +type DeleteMultiRegionAccessPointInput_ struct { _ struct{} `type:"structure"` // The name of the Multi-Region Access Point associated with this request. // // Name is a required field Name *string `type:"string" required:"true"` - - // The PublicAccessBlock configuration that you want to apply to this Amazon - // S3 account. You can enable the configuration options in any combination. - // For more information about when Amazon S3 considers a bucket or object public, - // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) - // in the Amazon S3 User Guide. - // - // This data type is not supported for Amazon S3 on Outposts. - PublicAccessBlock *PublicAccessBlockConfiguration `type:"structure"` - - // The buckets in different Regions that are associated with the Multi-Region - // Access Point. - // - // Regions is a required field - Regions []*Region `locationNameList:"Region" type:"list" required:"true"` } // String returns the string representation. @@ -9199,7 +14070,7 @@ type CreateMultiRegionAccessPointInput_ struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateMultiRegionAccessPointInput_) String() string { +func (s DeleteMultiRegionAccessPointInput_) String() string { return awsutil.Prettify(s) } @@ -9208,28 +14079,15 @@ func (s CreateMultiRegionAccessPointInput_) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateMultiRegionAccessPointInput_) GoString() string { +func (s DeleteMultiRegionAccessPointInput_) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateMultiRegionAccessPointInput_) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateMultiRegionAccessPointInput_"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Regions == nil { - invalidParams.Add(request.NewErrParamRequired("Regions")) - } - if s.Regions != nil { - for i, v := range s.Regions { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Regions", i), err.(request.ErrInvalidParams)) - } - } +func (s *DeleteMultiRegionAccessPointInput_) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteMultiRegionAccessPointInput_"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } if invalidParams.Len() > 0 { @@ -9239,24 +14097,12 @@ func (s *CreateMultiRegionAccessPointInput_) Validate() error { } // SetName sets the Name field's value. -func (s *CreateMultiRegionAccessPointInput_) SetName(v string) *CreateMultiRegionAccessPointInput_ { +func (s *DeleteMultiRegionAccessPointInput_) SetName(v string) *DeleteMultiRegionAccessPointInput_ { s.Name = &v return s } -// SetPublicAccessBlock sets the PublicAccessBlock field's value. -func (s *CreateMultiRegionAccessPointInput_) SetPublicAccessBlock(v *PublicAccessBlockConfiguration) *CreateMultiRegionAccessPointInput_ { - s.PublicAccessBlock = v - return s -} - -// SetRegions sets the Regions field's value. -func (s *CreateMultiRegionAccessPointInput_) SetRegions(v []*Region) *CreateMultiRegionAccessPointInput_ { - s.Regions = v - return s -} - -type CreateMultiRegionAccessPointOutput struct { +type DeleteMultiRegionAccessPointOutput struct { _ struct{} `type:"structure"` // The request token associated with the request. You can use this token with @@ -9270,7 +14116,7 @@ type CreateMultiRegionAccessPointOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateMultiRegionAccessPointOutput) String() string { +func (s DeleteMultiRegionAccessPointOutput) String() string { return awsutil.Prettify(s) } @@ -9279,33 +14125,24 @@ func (s CreateMultiRegionAccessPointOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateMultiRegionAccessPointOutput) GoString() string { +func (s DeleteMultiRegionAccessPointOutput) GoString() string { return s.String() } // SetRequestTokenARN sets the RequestTokenARN field's value. -func (s *CreateMultiRegionAccessPointOutput) SetRequestTokenARN(v string) *CreateMultiRegionAccessPointOutput { +func (s *DeleteMultiRegionAccessPointOutput) SetRequestTokenARN(v string) *DeleteMultiRegionAccessPointOutput { s.RequestTokenARN = &v return s } -type CreateStorageLensGroupInput struct { - _ struct{} `locationName:"CreateStorageLensGroupRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` +type DeletePublicAccessBlockInput struct { + _ struct{} `locationName:"DeletePublicAccessBlockRequest" type:"structure"` - // The Amazon Web Services account ID that the Storage Lens group is created - // from and associated with. + // The account ID for the Amazon Web Services account whose PublicAccessBlock + // configuration you want to remove. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - - // The Storage Lens group configuration. - // - // StorageLensGroup is a required field - StorageLensGroup *StorageLensGroup `type:"structure" required:"true"` - - // The Amazon Web Services resource tags that you're adding to your Storage - // Lens group. This parameter is optional. - Tags []*Tag `locationNameList:"Tag" type:"list"` } // String returns the string representation. @@ -9313,7 +14150,7 @@ type CreateStorageLensGroupInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateStorageLensGroupInput) String() string { +func (s DeletePublicAccessBlockInput) String() string { return awsutil.Prettify(s) } @@ -9322,37 +14159,19 @@ func (s CreateStorageLensGroupInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateStorageLensGroupInput) GoString() string { +func (s DeletePublicAccessBlockInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateStorageLensGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateStorageLensGroupInput"} +func (s *DeletePublicAccessBlockInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.StorageLensGroup == nil { - invalidParams.Add(request.NewErrParamRequired("StorageLensGroup")) - } - if s.StorageLensGroup != nil { - if err := s.StorageLensGroup.Validate(); err != nil { - invalidParams.AddNested("StorageLensGroup", 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 @@ -9361,30 +14180,18 @@ func (s *CreateStorageLensGroupInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *CreateStorageLensGroupInput) SetAccountId(v string) *CreateStorageLensGroupInput { +func (s *DeletePublicAccessBlockInput) SetAccountId(v string) *DeletePublicAccessBlockInput { s.AccountId = &v return s } -// SetStorageLensGroup sets the StorageLensGroup field's value. -func (s *CreateStorageLensGroupInput) SetStorageLensGroup(v *StorageLensGroup) *CreateStorageLensGroupInput { - s.StorageLensGroup = v - return s -} - -// SetTags sets the Tags field's value. -func (s *CreateStorageLensGroupInput) SetTags(v []*Tag) *CreateStorageLensGroupInput { - s.Tags = v - return s -} - -func (s *CreateStorageLensGroupInput) hostLabels() map[string]string { +func (s *DeletePublicAccessBlockInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type CreateStorageLensGroupOutput struct { +type DeletePublicAccessBlockOutput struct { _ struct{} `type:"structure"` } @@ -9393,7 +14200,7 @@ type CreateStorageLensGroupOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateStorageLensGroupOutput) String() string { +func (s DeletePublicAccessBlockOutput) String() string { return awsutil.Prettify(s) } @@ -9402,23 +14209,22 @@ func (s CreateStorageLensGroupOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateStorageLensGroupOutput) GoString() string { +func (s DeletePublicAccessBlockOutput) GoString() string { return s.String() } -type DeleteAccessPointForObjectLambdaInput struct { - _ struct{} `locationName:"DeleteAccessPointForObjectLambdaRequest" type:"structure"` +type DeleteStorageLensConfigurationInput struct { + _ struct{} `locationName:"DeleteStorageLensConfigurationRequest" type:"structure"` - // The account ID for the account that owns the specified Object Lambda Access - // Point. + // The account ID of the requester. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the access point you want to delete. + // The ID of the S3 Storage Lens configuration. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // ConfigId is a required field + ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -9426,7 +14232,7 @@ type DeleteAccessPointForObjectLambdaInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointForObjectLambdaInput) String() string { +func (s DeleteStorageLensConfigurationInput) String() string { return awsutil.Prettify(s) } @@ -9435,24 +14241,24 @@ func (s DeleteAccessPointForObjectLambdaInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointForObjectLambdaInput) GoString() string { +func (s DeleteStorageLensConfigurationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteAccessPointForObjectLambdaInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointForObjectLambdaInput"} +func (s *DeleteStorageLensConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.ConfigId == nil { + invalidParams.Add(request.NewErrParamRequired("ConfigId")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.ConfigId != nil && len(*s.ConfigId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1)) } if invalidParams.Len() > 0 { @@ -9462,24 +14268,24 @@ func (s *DeleteAccessPointForObjectLambdaInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteAccessPointForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointForObjectLambdaInput { +func (s *DeleteStorageLensConfigurationInput) SetAccountId(v string) *DeleteStorageLensConfigurationInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *DeleteAccessPointForObjectLambdaInput) SetName(v string) *DeleteAccessPointForObjectLambdaInput { - s.Name = &v +// SetConfigId sets the ConfigId field's value. +func (s *DeleteStorageLensConfigurationInput) SetConfigId(v string) *DeleteStorageLensConfigurationInput { + s.ConfigId = &v return s } -func (s *DeleteAccessPointForObjectLambdaInput) hostLabels() map[string]string { +func (s *DeleteStorageLensConfigurationInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DeleteAccessPointForObjectLambdaOutput struct { +type DeleteStorageLensConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -9488,7 +14294,7 @@ type DeleteAccessPointForObjectLambdaOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointForObjectLambdaOutput) String() string { +func (s DeleteStorageLensConfigurationOutput) String() string { return awsutil.Prettify(s) } @@ -9497,34 +14303,22 @@ func (s DeleteAccessPointForObjectLambdaOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointForObjectLambdaOutput) GoString() string { +func (s DeleteStorageLensConfigurationOutput) GoString() string { return s.String() } -type DeleteAccessPointInput struct { - _ struct{} `locationName:"DeleteAccessPointRequest" type:"structure"` +type DeleteStorageLensConfigurationTaggingInput struct { + _ struct{} `locationName:"DeleteStorageLensConfigurationTaggingRequest" type:"structure"` - // The Amazon Web Services account ID for the account that owns the specified - // access point. + // The account ID of the requester. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the access point you want to delete. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the access point accessed in the - // format arn:aws:s3-outposts:::outpost//accesspoint/. - // For example, to access the access point reports-ap through Outpost my-outpost - // owned by account 123456789012 in Region us-west-2, use the URL encoding of - // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. - // The value must be URL encoded. + // The ID of the S3 Storage Lens configuration. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // ConfigId is a required field + ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -9532,7 +14326,7 @@ type DeleteAccessPointInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointInput) String() string { +func (s DeleteStorageLensConfigurationTaggingInput) String() string { return awsutil.Prettify(s) } @@ -9541,24 +14335,24 @@ func (s DeleteAccessPointInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointInput) GoString() string { +func (s DeleteStorageLensConfigurationTaggingInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteAccessPointInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointInput"} +func (s *DeleteStorageLensConfigurationTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationTaggingInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.ConfigId == nil { + invalidParams.Add(request.NewErrParamRequired("ConfigId")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.ConfigId != nil && len(*s.ConfigId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1)) } if invalidParams.Len() > 0 { @@ -9568,65 +14362,24 @@ func (s *DeleteAccessPointInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteAccessPointInput) SetAccountId(v string) *DeleteAccessPointInput { +func (s *DeleteStorageLensConfigurationTaggingInput) SetAccountId(v string) *DeleteStorageLensConfigurationTaggingInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *DeleteAccessPointInput) SetName(v string) *DeleteAccessPointInput { - s.Name = &v +// SetConfigId sets the ConfigId field's value. +func (s *DeleteStorageLensConfigurationTaggingInput) SetConfigId(v string) *DeleteStorageLensConfigurationTaggingInput { + s.ConfigId = &v return s } -func (s *DeleteAccessPointInput) hostLabels() map[string]string { +func (s *DeleteStorageLensConfigurationTaggingInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *DeleteAccessPointInput) getEndpointARN() (arn.Resource, error) { - if s.Name == nil { - return nil, fmt.Errorf("member Name is nil") - } - return parseEndpointARN(*s.Name) -} - -func (s *DeleteAccessPointInput) hasEndpointARN() bool { - if s.Name == nil { - return false - } - return arn.IsARN(*s.Name) -} - -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s DeleteAccessPointInput) updateArnableField(v string) (interface{}, error) { - if s.Name == nil { - return nil, fmt.Errorf("member Name is nil") - } - s.Name = aws.String(v) - return &s, nil -} - -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s DeleteAccessPointInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil -} - -type DeleteAccessPointOutput struct { +type DeleteStorageLensConfigurationTaggingOutput struct { _ struct{} `type:"structure"` } @@ -9635,7 +14388,7 @@ type DeleteAccessPointOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointOutput) String() string { +func (s DeleteStorageLensConfigurationTaggingOutput) String() string { return awsutil.Prettify(s) } @@ -9644,24 +14397,23 @@ func (s DeleteAccessPointOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointOutput) GoString() string { +func (s DeleteStorageLensConfigurationTaggingOutput) GoString() string { return s.String() } -type DeleteAccessPointPolicyForObjectLambdaInput struct { - _ struct{} `locationName:"DeleteAccessPointPolicyForObjectLambdaRequest" type:"structure"` +type DeleteStorageLensGroupInput struct { + _ struct{} `locationName:"DeleteStorageLensGroupRequest" type:"structure"` - // The account ID for the account that owns the specified Object Lambda Access - // Point. + // The Amazon Web Services account ID used to create the Storage Lens group + // that you're trying to delete. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the Object Lambda Access Point you want to delete the policy - // for. + // The name of the Storage Lens group that you're trying to delete. // // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -9669,7 +14421,7 @@ type DeleteAccessPointPolicyForObjectLambdaInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointPolicyForObjectLambdaInput) String() string { +func (s DeleteStorageLensGroupInput) String() string { return awsutil.Prettify(s) } @@ -9678,13 +14430,13 @@ func (s DeleteAccessPointPolicyForObjectLambdaInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointPolicyForObjectLambdaInput) GoString() string { +func (s DeleteStorageLensGroupInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteAccessPointPolicyForObjectLambdaInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyForObjectLambdaInput"} +func (s *DeleteStorageLensGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensGroupInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } @@ -9694,8 +14446,8 @@ func (s *DeleteAccessPointPolicyForObjectLambdaInput) Validate() error { if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } if invalidParams.Len() > 0 { @@ -9705,24 +14457,24 @@ func (s *DeleteAccessPointPolicyForObjectLambdaInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointPolicyForObjectLambdaInput { +func (s *DeleteStorageLensGroupInput) SetAccountId(v string) *DeleteStorageLensGroupInput { s.AccountId = &v return s } // SetName sets the Name field's value. -func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetName(v string) *DeleteAccessPointPolicyForObjectLambdaInput { +func (s *DeleteStorageLensGroupInput) SetName(v string) *DeleteStorageLensGroupInput { s.Name = &v return s } -func (s *DeleteAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string { +func (s *DeleteStorageLensGroupInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DeleteAccessPointPolicyForObjectLambdaOutput struct { +type DeleteStorageLensGroupOutput struct { _ struct{} `type:"structure"` } @@ -9731,7 +14483,7 @@ type DeleteAccessPointPolicyForObjectLambdaOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointPolicyForObjectLambdaOutput) String() string { +func (s DeleteStorageLensGroupOutput) String() string { return awsutil.Prettify(s) } @@ -9740,33 +14492,23 @@ func (s DeleteAccessPointPolicyForObjectLambdaOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointPolicyForObjectLambdaOutput) GoString() string { +func (s DeleteStorageLensGroupOutput) GoString() string { return s.String() } -type DeleteAccessPointPolicyInput struct { - _ struct{} `locationName:"DeleteAccessPointPolicyRequest" type:"structure"` +type DescribeJobInput struct { + _ struct{} `locationName:"DescribeJobRequest" type:"structure"` - // The account ID for the account that owns the specified access point. + // The Amazon Web Services account ID associated with the S3 Batch Operations + // job. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the access point whose policy you want to delete. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the access point accessed in the - // format arn:aws:s3-outposts:::outpost//accesspoint/. - // For example, to access the access point reports-ap through Outpost my-outpost - // owned by account 123456789012 in Region us-west-2, use the URL encoding of - // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. - // The value must be URL encoded. + // The ID for the job whose information you want to retrieve. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // JobId is a required field + JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` } // String returns the string representation. @@ -9774,7 +14516,7 @@ type DeleteAccessPointPolicyInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointPolicyInput) String() string { +func (s DescribeJobInput) String() string { return awsutil.Prettify(s) } @@ -9783,24 +14525,24 @@ func (s DeleteAccessPointPolicyInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointPolicyInput) GoString() string { +func (s DescribeJobInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteAccessPointPolicyInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyInput"} +func (s *DescribeJobInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.JobId == nil { + invalidParams.Add(request.NewErrParamRequired("JobId")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.JobId != nil && len(*s.JobId) < 5 { + invalidParams.Add(request.NewErrParamMinLen("JobId", 5)) } if invalidParams.Len() > 0 { @@ -9810,66 +14552,29 @@ func (s *DeleteAccessPointPolicyInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteAccessPointPolicyInput) SetAccountId(v string) *DeleteAccessPointPolicyInput { +func (s *DescribeJobInput) SetAccountId(v string) *DescribeJobInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *DeleteAccessPointPolicyInput) SetName(v string) *DeleteAccessPointPolicyInput { - s.Name = &v +// SetJobId sets the JobId field's value. +func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput { + s.JobId = &v return s } -func (s *DeleteAccessPointPolicyInput) hostLabels() map[string]string { +func (s *DescribeJobInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *DeleteAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) { - if s.Name == nil { - return nil, fmt.Errorf("member Name is nil") - } - return parseEndpointARN(*s.Name) -} - -func (s *DeleteAccessPointPolicyInput) hasEndpointARN() bool { - if s.Name == nil { - return false - } - return arn.IsARN(*s.Name) -} - -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s DeleteAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) { - if s.Name == nil { - return nil, fmt.Errorf("member Name is nil") - } - s.Name = aws.String(v) - return &s, nil -} - -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s DeleteAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil -} - -type DeleteAccessPointPolicyOutput struct { +type DescribeJobOutput struct { _ struct{} `type:"structure"` + + // Contains the configuration parameters and status for the job specified in + // the Describe Job request. + Job *JobDescriptor `type:"structure"` } // String returns the string representation. @@ -9877,7 +14582,7 @@ type DeleteAccessPointPolicyOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointPolicyOutput) String() string { +func (s DescribeJobOutput) String() string { return awsutil.Prettify(s) } @@ -9886,32 +14591,32 @@ func (s DeleteAccessPointPolicyOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteAccessPointPolicyOutput) GoString() string { +func (s DescribeJobOutput) GoString() string { return s.String() } -type DeleteBucketInput struct { - _ struct{} `locationName:"DeleteBucketRequest" type:"structure"` +// SetJob sets the Job field's value. +func (s *DescribeJobOutput) SetJob(v *JobDescriptor) *DescribeJobOutput { + s.Job = v + return s +} - // The account ID that owns the Outposts bucket. +type DescribeMultiRegionAccessPointOperationInput struct { + _ struct{} `locationName:"DescribeMultiRegionAccessPointOperationRequest" type:"structure"` + + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Specifies the bucket being deleted. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the bucket accessed in the format - // arn:aws:s3-outposts:::outpost//bucket/. - // For example, to access the bucket reports through Outpost my-outpost owned - // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. - // The value must be URL encoded. + // The request token associated with the request you want to know about. This + // request token is returned as part of the response when you make an asynchronous + // request. You provide this token to query about the status of the asynchronous + // action. // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // RequestTokenARN is a required field + RequestTokenARN *string `location:"uri" locationName:"request_token" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -9919,7 +14624,7 @@ type DeleteBucketInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketInput) String() string { +func (s DescribeMultiRegionAccessPointOperationInput) String() string { return awsutil.Prettify(s) } @@ -9928,24 +14633,24 @@ func (s DeleteBucketInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketInput) GoString() string { +func (s DescribeMultiRegionAccessPointOperationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteBucketInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInput"} +func (s *DescribeMultiRegionAccessPointOperationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeMultiRegionAccessPointOperationInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) + if s.RequestTokenARN == nil { + invalidParams.Add(request.NewErrParamRequired("RequestTokenARN")) } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + if s.RequestTokenARN != nil && len(*s.RequestTokenARN) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RequestTokenARN", 1)) } if invalidParams.Len() > 0 { @@ -9955,86 +14660,100 @@ func (s *DeleteBucketInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteBucketInput) SetAccountId(v string) *DeleteBucketInput { +func (s *DescribeMultiRegionAccessPointOperationInput) SetAccountId(v string) *DescribeMultiRegionAccessPointOperationInput { s.AccountId = &v return s } -// SetBucket sets the Bucket field's value. -func (s *DeleteBucketInput) SetBucket(v string) *DeleteBucketInput { - s.Bucket = &v +// SetRequestTokenARN sets the RequestTokenARN field's value. +func (s *DescribeMultiRegionAccessPointOperationInput) SetRequestTokenARN(v string) *DescribeMultiRegionAccessPointOperationInput { + s.RequestTokenARN = &v return s } -func (s *DeleteBucketInput) hostLabels() map[string]string { +func (s *DescribeMultiRegionAccessPointOperationInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *DeleteBucketInput) getEndpointARN() (arn.Resource, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - return parseEndpointARN(*s.Bucket) +type DescribeMultiRegionAccessPointOperationOutput struct { + _ struct{} `type:"structure"` + + // A container element containing the details of the asynchronous operation. + AsyncOperation *AsyncOperation `type:"structure"` } -func (s *DeleteBucketInput) hasEndpointARN() bool { - if s.Bucket == nil { - return false - } - return arn.IsARN(*s.Bucket) +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeMultiRegionAccessPointOperationOutput) String() string { + return awsutil.Prettify(s) } -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s DeleteBucketInput) updateArnableField(v string) (interface{}, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - s.Bucket = aws.String(v) - return &s, nil +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeMultiRegionAccessPointOperationOutput) GoString() string { + return s.String() } -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s DeleteBucketInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil +// SetAsyncOperation sets the AsyncOperation field's value. +func (s *DescribeMultiRegionAccessPointOperationOutput) SetAsyncOperation(v *AsyncOperation) *DescribeMultiRegionAccessPointOperationOutput { + s.AsyncOperation = v + return s } -type DeleteBucketLifecycleConfigurationInput struct { - _ struct{} `locationName:"DeleteBucketLifecycleConfigurationRequest" type:"structure"` +// Specifies information about the replication destination bucket and its settings +// for an S3 on Outposts replication configuration. +type Destination struct { + _ struct{} `type:"structure"` + + // Specify this property only in a cross-account scenario (where the source + // and destination bucket owners are not the same), and you want to change replica + // ownership to the Amazon Web Services account that owns the destination bucket. + // If this property is not specified in the replication configuration, the replicas + // are owned by same Amazon Web Services account that owns the source object. + // + // This is not supported by Amazon S3 on Outposts buckets. + AccessControlTranslation *AccessControlTranslation `type:"structure"` + + // The destination bucket owner's account ID. + Account *string `type:"string"` + + // The Amazon Resource Name (ARN) of the access point for the destination bucket + // where you want S3 on Outposts to store the replication results. + // + // Bucket is a required field + Bucket *string `type:"string" required:"true"` + + // A container that provides information about encryption. If SourceSelectionCriteria + // is specified, you must specify this element. + // + // This is not supported by Amazon S3 on Outposts buckets. + EncryptionConfiguration *EncryptionConfiguration `type:"structure"` + + // A container that specifies replication metrics-related settings. + Metrics *Metrics `type:"structure"` - // The account ID of the lifecycle configuration to delete. + // A container that specifies S3 Replication Time Control (S3 RTC) settings, + // including whether S3 RTC is enabled and the time when all objects and operations + // on objects must be replicated. Must be specified together with a Metrics + // block. // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + // This is not supported by Amazon S3 on Outposts buckets. + ReplicationTime *ReplicationTime `type:"structure"` - // Specifies the bucket. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the bucket accessed in the format - // arn:aws:s3-outposts:::outpost//bucket/. - // For example, to access the bucket reports through Outpost my-outpost owned - // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. - // The value must be URL encoded. + // The storage class to use when replicating objects. All objects stored on + // S3 on Outposts are stored in the OUTPOSTS storage class. S3 on Outposts uses + // the OUTPOSTS storage class to create the object replicas. // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // Values other than OUTPOSTS are not supported by Amazon S3 on Outposts. + StorageClass *string `type:"string" enum:"ReplicationStorageClass"` } // String returns the string representation. @@ -10042,7 +14761,7 @@ type DeleteBucketLifecycleConfigurationInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketLifecycleConfigurationInput) String() string { +func (s Destination) String() string { return awsutil.Prettify(s) } @@ -10051,24 +14770,30 @@ func (s DeleteBucketLifecycleConfigurationInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketLifecycleConfigurationInput) GoString() string { +func (s Destination) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteBucketLifecycleConfigurationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteBucketLifecycleConfigurationInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } +func (s *Destination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Destination"} if s.Bucket == nil { invalidParams.Add(request.NewErrParamRequired("Bucket")) } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + if s.AccessControlTranslation != nil { + if err := s.AccessControlTranslation.Validate(); err != nil { + invalidParams.AddNested("AccessControlTranslation", err.(request.ErrInvalidParams)) + } + } + if s.Metrics != nil { + if err := s.Metrics.Validate(); err != nil { + invalidParams.AddNested("Metrics", err.(request.ErrInvalidParams)) + } + } + if s.ReplicationTime != nil { + if err := s.ReplicationTime.Validate(); err != nil { + invalidParams.AddNested("ReplicationTime", err.(request.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -10077,67 +14802,62 @@ func (s *DeleteBucketLifecycleConfigurationInput) Validate() error { return nil } -// SetAccountId sets the AccountId field's value. -func (s *DeleteBucketLifecycleConfigurationInput) SetAccountId(v string) *DeleteBucketLifecycleConfigurationInput { - s.AccountId = &v +// SetAccessControlTranslation sets the AccessControlTranslation field's value. +func (s *Destination) SetAccessControlTranslation(v *AccessControlTranslation) *Destination { + s.AccessControlTranslation = v return s } -// SetBucket sets the Bucket field's value. -func (s *DeleteBucketLifecycleConfigurationInput) SetBucket(v string) *DeleteBucketLifecycleConfigurationInput { - s.Bucket = &v +// SetAccount sets the Account field's value. +func (s *Destination) SetAccount(v string) *Destination { + s.Account = &v return s } -func (s *DeleteBucketLifecycleConfigurationInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetBucket sets the Bucket field's value. +func (s *Destination) SetBucket(v string) *Destination { + s.Bucket = &v + return s } -func (s *DeleteBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - return parseEndpointARN(*s.Bucket) +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *Destination) SetEncryptionConfiguration(v *EncryptionConfiguration) *Destination { + s.EncryptionConfiguration = v + return s } -func (s *DeleteBucketLifecycleConfigurationInput) hasEndpointARN() bool { - if s.Bucket == nil { - return false - } - return arn.IsARN(*s.Bucket) +// SetMetrics sets the Metrics field's value. +func (s *Destination) SetMetrics(v *Metrics) *Destination { + s.Metrics = v + return s } -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s DeleteBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - s.Bucket = aws.String(v) - return &s, nil +// SetReplicationTime sets the ReplicationTime field's value. +func (s *Destination) SetReplicationTime(v *ReplicationTime) *Destination { + s.ReplicationTime = v + return s } -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s DeleteBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil +// SetStorageClass sets the StorageClass field's value. +func (s *Destination) SetStorageClass(v string) *Destination { + s.StorageClass = &v + return s } -type DeleteBucketLifecycleConfigurationOutput struct { +// The container element for Amazon S3 Storage Lens detailed status code metrics. +// Detailed status code metrics generate metrics for HTTP status codes, such +// as 200 OK, 403 Forbidden, 503 Service Unavailable and others. +// +// For more information about S3 Storage Lens, see Assessing your storage activity +// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) +// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, +// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) +// in the Amazon S3 User Guide. +type DetailedStatusCodesMetrics struct { _ struct{} `type:"structure"` + + // A container that indicates whether detailed status code metrics are enabled. + IsEnabled *bool `type:"boolean"` } // String returns the string representation. @@ -10145,7 +14865,7 @@ type DeleteBucketLifecycleConfigurationOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketLifecycleConfigurationOutput) String() string { +func (s DetailedStatusCodesMetrics) String() string { return awsutil.Prettify(s) } @@ -10154,54 +14874,23 @@ func (s DeleteBucketLifecycleConfigurationOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketLifecycleConfigurationOutput) GoString() string { +func (s DetailedStatusCodesMetrics) GoString() string { return s.String() } -type DeleteBucketOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s DeleteBucketOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s DeleteBucketOutput) GoString() string { - return s.String() +// SetIsEnabled sets the IsEnabled field's value. +func (s *DetailedStatusCodesMetrics) SetIsEnabled(v bool) *DetailedStatusCodesMetrics { + s.IsEnabled = &v + return s } -type DeleteBucketPolicyInput struct { - _ struct{} `locationName:"DeleteBucketPolicyRequest" type:"structure"` +type DissociateAccessGrantsIdentityCenterInput struct { + _ struct{} `locationName:"DissociateAccessGrantsIdentityCenterRequest" type:"structure"` - // The account ID of the Outposts bucket. + // The ID of the Amazon Web Services account that is making this request. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - - // Specifies the bucket. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the bucket accessed in the format - // arn:aws:s3-outposts:::outpost//bucket/. - // For example, to access the bucket reports through Outpost my-outpost owned - // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. - // The value must be URL encoded. - // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -10209,7 +14898,7 @@ type DeleteBucketPolicyInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketPolicyInput) String() string { +func (s DissociateAccessGrantsIdentityCenterInput) String() string { return awsutil.Prettify(s) } @@ -10218,25 +14907,19 @@ func (s DeleteBucketPolicyInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketPolicyInput) GoString() string { +func (s DissociateAccessGrantsIdentityCenterInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteBucketPolicyInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteBucketPolicyInput"} +func (s *DissociateAccessGrantsIdentityCenterInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DissociateAccessGrantsIdentityCenterInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) - } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) - } if invalidParams.Len() > 0 { return invalidParams @@ -10245,66 +14928,126 @@ func (s *DeleteBucketPolicyInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteBucketPolicyInput) SetAccountId(v string) *DeleteBucketPolicyInput { +func (s *DissociateAccessGrantsIdentityCenterInput) SetAccountId(v string) *DissociateAccessGrantsIdentityCenterInput { s.AccountId = &v return s } -// SetBucket sets the Bucket field's value. -func (s *DeleteBucketPolicyInput) SetBucket(v string) *DeleteBucketPolicyInput { - s.Bucket = &v +func (s *DissociateAccessGrantsIdentityCenterInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type DissociateAccessGrantsIdentityCenterOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DissociateAccessGrantsIdentityCenterOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DissociateAccessGrantsIdentityCenterOutput) GoString() string { + return s.String() +} + +// Specifies encryption-related information for an Amazon S3 bucket that is +// a destination for replicated objects. +// +// This is not supported by Amazon S3 on Outposts buckets. +type EncryptionConfiguration struct { + _ struct{} `type:"structure"` + + // Specifies the ID of the customer managed KMS key that's stored in Key Management + // Service (KMS) for the destination bucket. This ID is either the Amazon Resource + // Name (ARN) for the KMS key or the alias ARN for the KMS key. Amazon S3 uses + // this KMS key to encrypt replica objects. Amazon S3 supports only symmetric + // encryption KMS keys. For more information, see Symmetric encryption KMS keys + // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) + // in the Amazon Web Services Key Management Service Developer Guide. + ReplicaKmsKeyID *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EncryptionConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EncryptionConfiguration) GoString() string { + return s.String() +} + +// SetReplicaKmsKeyID sets the ReplicaKmsKeyID field's value. +func (s *EncryptionConfiguration) SetReplicaKmsKeyID(v string) *EncryptionConfiguration { + s.ReplicaKmsKeyID = &v return s } -func (s *DeleteBucketPolicyInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } -} +// The last established access control policy for a Multi-Region Access Point. +// +// When you update the policy, the update is first listed as the proposed policy. +// After the update is finished and all Regions have been updated, the proposed +// policy is listed as the established policy. If both policies have the same +// version number, the proposed policy is the established policy. +type EstablishedMultiRegionAccessPointPolicy struct { + _ struct{} `type:"structure"` -func (s *DeleteBucketPolicyInput) getEndpointARN() (arn.Resource, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - return parseEndpointARN(*s.Bucket) + // The details of the last established policy. + Policy *string `type:"string"` } -func (s *DeleteBucketPolicyInput) hasEndpointARN() bool { - if s.Bucket == nil { - return false - } - return arn.IsARN(*s.Bucket) +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EstablishedMultiRegionAccessPointPolicy) String() string { + return awsutil.Prettify(s) } -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s DeleteBucketPolicyInput) updateArnableField(v string) (interface{}, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - s.Bucket = aws.String(v) - return &s, nil +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EstablishedMultiRegionAccessPointPolicy) GoString() string { + return s.String() } -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s DeleteBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil +// SetPolicy sets the Policy field's value. +func (s *EstablishedMultiRegionAccessPointPolicy) SetPolicy(v string) *EstablishedMultiRegionAccessPointPolicy { + s.Policy = &v + return s } -type DeleteBucketPolicyOutput struct { +// A container for what Amazon S3 Storage Lens will exclude. +type Exclude struct { _ struct{} `type:"structure"` + + // A container for the S3 Storage Lens bucket excludes. + Buckets []*string `locationNameList:"Arn" type:"list"` + + // A container for the S3 Storage Lens Region excludes. + Regions []*string `locationNameList:"Region" type:"list"` } // String returns the string representation. @@ -10312,7 +15055,7 @@ type DeleteBucketPolicyOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketPolicyOutput) String() string { +func (s Exclude) String() string { return awsutil.Prettify(s) } @@ -10321,34 +15064,32 @@ func (s DeleteBucketPolicyOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketPolicyOutput) GoString() string { +func (s Exclude) GoString() string { return s.String() } -type DeleteBucketReplicationInput struct { - _ struct{} `locationName:"DeleteBucketReplicationRequest" type:"structure"` +// SetBuckets sets the Buckets field's value. +func (s *Exclude) SetBuckets(v []*string) *Exclude { + s.Buckets = v + return s +} - // The Amazon Web Services account ID of the Outposts bucket to delete the replication - // configuration for. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +// SetRegions sets the Regions field's value. +func (s *Exclude) SetRegions(v []*string) *Exclude { + s.Regions = v + return s +} - // Specifies the S3 on Outposts bucket to delete the replication configuration - // for. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the bucket accessed in the format - // arn:aws:s3-outposts:::outpost//bucket/. - // For example, to access the bucket reports through Outpost my-outpost owned - // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. - // The value must be URL encoded. +// An optional configuration to replicate existing source bucket objects. +// +// This is not supported by Amazon S3 on Outposts buckets. +type ExistingObjectReplication struct { + _ struct{} `type:"structure"` + + // Specifies whether Amazon S3 replicates existing source bucket objects. // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // Status is a required field + Status *string `type:"string" required:"true" enum:"ExistingObjectReplicationStatus"` } // String returns the string representation. @@ -10356,7 +15097,7 @@ type DeleteBucketReplicationInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketReplicationInput) String() string { +func (s ExistingObjectReplication) String() string { return awsutil.Prettify(s) } @@ -10365,24 +15106,15 @@ func (s DeleteBucketReplicationInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketReplicationInput) GoString() string { +func (s ExistingObjectReplication) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteBucketReplicationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteBucketReplicationInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) - } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) +func (s *ExistingObjectReplication) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ExistingObjectReplication"} + if s.Status == nil { + invalidParams.Add(request.NewErrParamRequired("Status")) } if invalidParams.Len() > 0 { @@ -10391,67 +15123,22 @@ func (s *DeleteBucketReplicationInput) Validate() error { return nil } -// SetAccountId sets the AccountId field's value. -func (s *DeleteBucketReplicationInput) SetAccountId(v string) *DeleteBucketReplicationInput { - s.AccountId = &v - return s -} - -// SetBucket sets the Bucket field's value. -func (s *DeleteBucketReplicationInput) SetBucket(v string) *DeleteBucketReplicationInput { - s.Bucket = &v +// SetStatus sets the Status field's value. +func (s *ExistingObjectReplication) SetStatus(v string) *ExistingObjectReplication { + s.Status = &v return s } -func (s *DeleteBucketReplicationInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } -} - -func (s *DeleteBucketReplicationInput) getEndpointARN() (arn.Resource, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - return parseEndpointARN(*s.Bucket) -} - -func (s *DeleteBucketReplicationInput) hasEndpointARN() bool { - if s.Bucket == nil { - return false - } - return arn.IsARN(*s.Bucket) -} - -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s DeleteBucketReplicationInput) updateArnableField(v string) (interface{}, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - s.Bucket = aws.String(v) - return &s, nil -} +// The encryption configuration to use when storing the generated manifest. +type GeneratedManifestEncryption struct { + _ struct{} `type:"structure"` -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s DeleteBucketReplicationInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil -} + // Configuration details on how SSE-KMS is used to encrypt generated manifest + // objects. + SSEKMS *SSEKMSEncryption `locationName:"SSE-KMS" type:"structure"` -type DeleteBucketReplicationOutput struct { - _ struct{} `type:"structure"` + // Specifies the use of SSE-S3 to encrypt generated manifest objects. + SSES3 *SSES3Encryption `locationName:"SSE-S3" type:"structure"` } // String returns the string representation. @@ -10459,7 +15146,7 @@ type DeleteBucketReplicationOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketReplicationOutput) String() string { +func (s GeneratedManifestEncryption) String() string { return awsutil.Prettify(s) } @@ -10468,32 +15155,50 @@ func (s DeleteBucketReplicationOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketReplicationOutput) GoString() string { +func (s GeneratedManifestEncryption) GoString() string { return s.String() } -type DeleteBucketTaggingInput struct { - _ struct{} `locationName:"DeleteBucketTaggingRequest" type:"structure"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *GeneratedManifestEncryption) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GeneratedManifestEncryption"} + if s.SSEKMS != nil { + if err := s.SSEKMS.Validate(); err != nil { + invalidParams.AddNested("SSEKMS", err.(request.ErrInvalidParams)) + } + } - // The Amazon Web Services account ID of the Outposts bucket tag set to be removed. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} - // The bucket ARN that has the tag set to be removed. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. +// SetSSEKMS sets the SSEKMS field's value. +func (s *GeneratedManifestEncryption) SetSSEKMS(v *SSEKMSEncryption) *GeneratedManifestEncryption { + s.SSEKMS = v + return s +} + +// SetSSES3 sets the SSES3 field's value. +func (s *GeneratedManifestEncryption) SetSSES3(v *SSES3Encryption) *GeneratedManifestEncryption { + s.SSES3 = v + return s +} + +type GetAccessGrantInput struct { + _ struct{} `locationName:"GetAccessGrantRequest" type:"structure"` + + // The ID of the access grant. S3 Access Grants auto-generates this ID when + // you create the access grant. // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the bucket accessed in the format - // arn:aws:s3-outposts:::outpost//bucket/. - // For example, to access the bucket reports through Outpost my-outpost owned - // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. - // The value must be URL encoded. + // AccessGrantId is a required field + AccessGrantId *string `location:"uri" locationName:"id" min:"1" type:"string" required:"true"` + + // The ID of the Amazon Web Services account that is making this request. // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` } // String returns the string representation. @@ -10501,7 +15206,7 @@ type DeleteBucketTaggingInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketTaggingInput) String() string { +func (s GetAccessGrantInput) String() string { return awsutil.Prettify(s) } @@ -10510,25 +15215,25 @@ func (s DeleteBucketTaggingInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketTaggingInput) GoString() string { +func (s GetAccessGrantInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteBucketTaggingInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteBucketTaggingInput"} +func (s *GetAccessGrantInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessGrantInput"} + if s.AccessGrantId == nil { + invalidParams.Add(request.NewErrParamRequired("AccessGrantId")) + } + if s.AccessGrantId != nil && len(*s.AccessGrantId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccessGrantId", 1)) + } if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) - } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) - } if invalidParams.Len() > 0 { return invalidParams @@ -10536,67 +15241,73 @@ func (s *DeleteBucketTaggingInput) Validate() error { return nil } -// SetAccountId sets the AccountId field's value. -func (s *DeleteBucketTaggingInput) SetAccountId(v string) *DeleteBucketTaggingInput { - s.AccountId = &v +// SetAccessGrantId sets the AccessGrantId field's value. +func (s *GetAccessGrantInput) SetAccessGrantId(v string) *GetAccessGrantInput { + s.AccessGrantId = &v return s } -// SetBucket sets the Bucket field's value. -func (s *DeleteBucketTaggingInput) SetBucket(v string) *DeleteBucketTaggingInput { - s.Bucket = &v +// SetAccountId sets the AccountId field's value. +func (s *GetAccessGrantInput) SetAccountId(v string) *GetAccessGrantInput { + s.AccountId = &v return s } -func (s *DeleteBucketTaggingInput) hostLabels() map[string]string { +func (s *GetAccessGrantInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *DeleteBucketTaggingInput) getEndpointARN() (arn.Resource, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - return parseEndpointARN(*s.Bucket) -} +type GetAccessGrantOutput struct { + _ struct{} `type:"structure"` -func (s *DeleteBucketTaggingInput) hasEndpointARN() bool { - if s.Bucket == nil { - return false - } - return arn.IsARN(*s.Bucket) -} + // The Amazon Resource Name (ARN) of the access grant. + AccessGrantArn *string `min:"1" type:"string"` -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s DeleteBucketTaggingInput) updateArnableField(v string) (interface{}, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - s.Bucket = aws.String(v) - return &s, nil -} + // The ID of the access grant. S3 Access Grants auto-generates this ID when + // you create the access grant. + AccessGrantId *string `min:"1" type:"string"` -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s DeleteBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil -} + // The configuration options of the grant location. The grant location is the + // S3 path to the data to which you are granting access. + AccessGrantsLocationConfiguration *AccessGrantsLocationConfiguration `type:"structure"` -type DeleteBucketTaggingOutput struct { - _ struct{} `type:"structure"` + // The ID of the registered location to which you are granting access. S3 Access + // Grants assigns this ID when you register the location. S3 Access Grants assigns + // the ID default to the default location s3:// and assigns an auto-generated + // ID to other locations that you register. + AccessGrantsLocationId *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center + // application associated with your Identity Center instance. If the grant includes + // an application ARN, the grantee can only access the S3 data through this + // application. + ApplicationArn *string `min:"10" type:"string"` + + // The date and time when you created the access grant. + CreatedAt *time.Time `type:"timestamp"` + + // The S3 path of the data to which you are granting access. It is the result + // of appending the Subprefix to the location scope. + GrantScope *string `min:"1" type:"string"` + + // The user, group, or role to which you are granting access. You can grant + // access to an IAM user or role. If you have added a corporate directory to + // Amazon Web Services IAM Identity Center and associated this Identity Center + // instance with the S3 Access Grants instance, the grantee can also be a corporate + // directory user or group. + Grantee *Grantee `type:"structure"` + + // The type of permission that was granted in the access grant. Can be one of + // the following values: + // + // * READ – Grant read-only access to the S3 data. + // + // * WRITE – Grant write-only access to the S3 data. + // + // * READWRITE – Grant both read and write access to the S3 data. + Permission *string `type:"string" enum:"Permission"` } // String returns the string representation. @@ -10604,7 +15315,7 @@ type DeleteBucketTaggingOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketTaggingOutput) String() string { +func (s GetAccessGrantOutput) String() string { return awsutil.Prettify(s) } @@ -10613,23 +15324,76 @@ func (s DeleteBucketTaggingOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteBucketTaggingOutput) GoString() string { +func (s GetAccessGrantOutput) GoString() string { return s.String() } -type DeleteJobTaggingInput struct { - _ struct{} `locationName:"DeleteJobTaggingRequest" type:"structure"` +// SetAccessGrantArn sets the AccessGrantArn field's value. +func (s *GetAccessGrantOutput) SetAccessGrantArn(v string) *GetAccessGrantOutput { + s.AccessGrantArn = &v + return s +} - // The Amazon Web Services account ID associated with the S3 Batch Operations - // job. +// SetAccessGrantId sets the AccessGrantId field's value. +func (s *GetAccessGrantOutput) SetAccessGrantId(v string) *GetAccessGrantOutput { + s.AccessGrantId = &v + return s +} + +// SetAccessGrantsLocationConfiguration sets the AccessGrantsLocationConfiguration field's value. +func (s *GetAccessGrantOutput) SetAccessGrantsLocationConfiguration(v *AccessGrantsLocationConfiguration) *GetAccessGrantOutput { + s.AccessGrantsLocationConfiguration = v + return s +} + +// SetAccessGrantsLocationId sets the AccessGrantsLocationId field's value. +func (s *GetAccessGrantOutput) SetAccessGrantsLocationId(v string) *GetAccessGrantOutput { + s.AccessGrantsLocationId = &v + return s +} + +// SetApplicationArn sets the ApplicationArn field's value. +func (s *GetAccessGrantOutput) SetApplicationArn(v string) *GetAccessGrantOutput { + s.ApplicationArn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetAccessGrantOutput) SetCreatedAt(v time.Time) *GetAccessGrantOutput { + s.CreatedAt = &v + return s +} + +// SetGrantScope sets the GrantScope field's value. +func (s *GetAccessGrantOutput) SetGrantScope(v string) *GetAccessGrantOutput { + s.GrantScope = &v + return s +} + +// SetGrantee sets the Grantee field's value. +func (s *GetAccessGrantOutput) SetGrantee(v *Grantee) *GetAccessGrantOutput { + s.Grantee = v + return s +} + +// SetPermission sets the Permission field's value. +func (s *GetAccessGrantOutput) SetPermission(v string) *GetAccessGrantOutput { + s.Permission = &v + return s +} + +type GetAccessGrantsInstanceForPrefixInput struct { + _ struct{} `locationName:"GetAccessGrantsInstanceForPrefixRequest" type:"structure"` + + // The ID of the Amazon Web Services account that is making this request. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The ID for the S3 Batch Operations job whose tags you want to delete. + // The S3 prefix of the access grants that you would like to retrieve. // - // JobId is a required field - JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` + // S3Prefix is a required field + S3Prefix *string `location:"querystring" locationName:"s3prefix" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -10637,7 +15401,7 @@ type DeleteJobTaggingInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteJobTaggingInput) String() string { +func (s GetAccessGrantsInstanceForPrefixInput) String() string { return awsutil.Prettify(s) } @@ -10646,24 +15410,24 @@ func (s DeleteJobTaggingInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteJobTaggingInput) GoString() string { +func (s GetAccessGrantsInstanceForPrefixInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteJobTaggingInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteJobTaggingInput"} +func (s *GetAccessGrantsInstanceForPrefixInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessGrantsInstanceForPrefixInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.JobId == nil { - invalidParams.Add(request.NewErrParamRequired("JobId")) + if s.S3Prefix == nil { + invalidParams.Add(request.NewErrParamRequired("S3Prefix")) } - if s.JobId != nil && len(*s.JobId) < 5 { - invalidParams.Add(request.NewErrParamMinLen("JobId", 5)) + if s.S3Prefix != nil && len(*s.S3Prefix) < 1 { + invalidParams.Add(request.NewErrParamMinLen("S3Prefix", 1)) } if invalidParams.Len() > 0 { @@ -10673,25 +15437,32 @@ func (s *DeleteJobTaggingInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteJobTaggingInput) SetAccountId(v string) *DeleteJobTaggingInput { +func (s *GetAccessGrantsInstanceForPrefixInput) SetAccountId(v string) *GetAccessGrantsInstanceForPrefixInput { s.AccountId = &v return s } -// SetJobId sets the JobId field's value. -func (s *DeleteJobTaggingInput) SetJobId(v string) *DeleteJobTaggingInput { - s.JobId = &v +// SetS3Prefix sets the S3Prefix field's value. +func (s *GetAccessGrantsInstanceForPrefixInput) SetS3Prefix(v string) *GetAccessGrantsInstanceForPrefixInput { + s.S3Prefix = &v return s } -func (s *DeleteJobTaggingInput) hostLabels() map[string]string { +func (s *GetAccessGrantsInstanceForPrefixInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DeleteJobTaggingOutput struct { +type GetAccessGrantsInstanceForPrefixOutput struct { _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the S3 Access Grants instance. + AccessGrantsInstanceArn *string `min:"1" type:"string"` + + // The ID of the S3 Access Grants instance. The ID is default. You can have + // one S3 Access Grants instance per Region per account. + AccessGrantsInstanceId *string `min:"1" type:"string"` } // String returns the string representation. @@ -10699,7 +15470,7 @@ type DeleteJobTaggingOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteJobTaggingOutput) String() string { +func (s GetAccessGrantsInstanceForPrefixOutput) String() string { return awsutil.Prettify(s) } @@ -10708,27 +15479,29 @@ func (s DeleteJobTaggingOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteJobTaggingOutput) GoString() string { +func (s GetAccessGrantsInstanceForPrefixOutput) GoString() string { return s.String() } -// Specifies whether S3 on Outposts replicates delete markers. If you specify -// a Filter element in your replication configuration, you must also include -// a DeleteMarkerReplication element. If your Filter includes a Tag element, -// the DeleteMarkerReplication element's Status child element must be set to -// Disabled, because S3 on Outposts does not support replicating delete markers -// for tag-based rules. -// -// For more information about delete marker replication, see How delete operations -// affect replication (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsReplication.html#outposts-replication-what-is-replicated) -// in the Amazon S3 User Guide. -type DeleteMarkerReplication struct { - _ struct{} `type:"structure"` +// SetAccessGrantsInstanceArn sets the AccessGrantsInstanceArn field's value. +func (s *GetAccessGrantsInstanceForPrefixOutput) SetAccessGrantsInstanceArn(v string) *GetAccessGrantsInstanceForPrefixOutput { + s.AccessGrantsInstanceArn = &v + return s +} - // Indicates whether to replicate delete markers. +// SetAccessGrantsInstanceId sets the AccessGrantsInstanceId field's value. +func (s *GetAccessGrantsInstanceForPrefixOutput) SetAccessGrantsInstanceId(v string) *GetAccessGrantsInstanceForPrefixOutput { + s.AccessGrantsInstanceId = &v + return s +} + +type GetAccessGrantsInstanceInput struct { + _ struct{} `locationName:"GetAccessGrantsInstanceRequest" type:"structure"` + + // The ID of the Amazon Web Services account that is making this request. // - // Status is a required field - Status *string `type:"string" required:"true" enum:"DeleteMarkerReplicationStatus"` + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` } // String returns the string representation. @@ -10736,7 +15509,7 @@ type DeleteMarkerReplication struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMarkerReplication) String() string { +func (s GetAccessGrantsInstanceInput) String() string { return awsutil.Prettify(s) } @@ -10745,15 +15518,18 @@ func (s DeleteMarkerReplication) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMarkerReplication) GoString() string { +func (s GetAccessGrantsInstanceInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteMarkerReplication) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteMarkerReplication"} - if s.Status == nil { - invalidParams.Add(request.NewErrParamRequired("Status")) +func (s *GetAccessGrantsInstanceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessGrantsInstanceInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } if invalidParams.Len() > 0 { @@ -10762,29 +15538,38 @@ func (s *DeleteMarkerReplication) Validate() error { return nil } -// SetStatus sets the Status field's value. -func (s *DeleteMarkerReplication) SetStatus(v string) *DeleteMarkerReplication { - s.Status = &v +// SetAccountId sets the AccountId field's value. +func (s *GetAccessGrantsInstanceInput) SetAccountId(v string) *GetAccessGrantsInstanceInput { + s.AccountId = &v return s } -type DeleteMultiRegionAccessPointInput struct { - _ struct{} `locationName:"DeleteMultiRegionAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` +func (s *GetAccessGrantsInstanceInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} - // The Amazon Web Services account ID for the owner of the Multi-Region Access - // Point. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +type GetAccessGrantsInstanceOutput struct { + _ struct{} `type:"structure"` - // An idempotency token used to identify the request and guarantee that requests - // are unique. - ClientToken *string `type:"string" idempotencyToken:"true"` + // The Amazon Resource Name (ARN) of the S3 Access Grants instance. + AccessGrantsInstanceArn *string `min:"1" type:"string"` - // A container element containing details about the Multi-Region Access Point. - // - // Details is a required field - Details *DeleteMultiRegionAccessPointInput_ `type:"structure" required:"true"` + // The ID of the S3 Access Grants instance. The ID is default. You can have + // one S3 Access Grants instance per Region per account. + AccessGrantsInstanceId *string `min:"1" type:"string"` + + // The date and time when you created the S3 Access Grants instance. + CreatedAt *time.Time `type:"timestamp"` + + // If you associated your S3 Access Grants instance with an Amazon Web Services + // IAM Identity Center instance, this field returns the Amazon Resource Name + // (ARN) of the Amazon Web Services IAM Identity Center instance application; + // a subresource of the original Identity Center instance. S3 Access Grants + // creates this Identity Center application for the specific S3 Access Grants + // instance. + IdentityCenterArn *string `min:"10" type:"string"` } // String returns the string representation. @@ -10792,7 +15577,7 @@ type DeleteMultiRegionAccessPointInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMultiRegionAccessPointInput) String() string { +func (s GetAccessGrantsInstanceOutput) String() string { return awsutil.Prettify(s) } @@ -10801,68 +15586,41 @@ func (s DeleteMultiRegionAccessPointInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMultiRegionAccessPointInput) GoString() string { +func (s GetAccessGrantsInstanceOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteMultiRegionAccessPointInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteMultiRegionAccessPointInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } - if s.Details == nil { - invalidParams.Add(request.NewErrParamRequired("Details")) - } - if s.Details != nil { - if err := s.Details.Validate(); err != nil { - invalidParams.AddNested("Details", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAccountId sets the AccountId field's value. -func (s *DeleteMultiRegionAccessPointInput) SetAccountId(v string) *DeleteMultiRegionAccessPointInput { - s.AccountId = &v +// SetAccessGrantsInstanceArn sets the AccessGrantsInstanceArn field's value. +func (s *GetAccessGrantsInstanceOutput) SetAccessGrantsInstanceArn(v string) *GetAccessGrantsInstanceOutput { + s.AccessGrantsInstanceArn = &v return s } -// SetClientToken sets the ClientToken field's value. -func (s *DeleteMultiRegionAccessPointInput) SetClientToken(v string) *DeleteMultiRegionAccessPointInput { - s.ClientToken = &v +// SetAccessGrantsInstanceId sets the AccessGrantsInstanceId field's value. +func (s *GetAccessGrantsInstanceOutput) SetAccessGrantsInstanceId(v string) *GetAccessGrantsInstanceOutput { + s.AccessGrantsInstanceId = &v return s } -// SetDetails sets the Details field's value. -func (s *DeleteMultiRegionAccessPointInput) SetDetails(v *DeleteMultiRegionAccessPointInput_) *DeleteMultiRegionAccessPointInput { - s.Details = v +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetAccessGrantsInstanceOutput) SetCreatedAt(v time.Time) *GetAccessGrantsInstanceOutput { + s.CreatedAt = &v return s } -func (s *DeleteMultiRegionAccessPointInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetIdentityCenterArn sets the IdentityCenterArn field's value. +func (s *GetAccessGrantsInstanceOutput) SetIdentityCenterArn(v string) *GetAccessGrantsInstanceOutput { + s.IdentityCenterArn = &v + return s } -// A container for the information associated with a DeleteMultiRegionAccessPoint -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html) -// request. -type DeleteMultiRegionAccessPointInput_ struct { - _ struct{} `type:"structure"` +type GetAccessGrantsInstanceResourcePolicyInput struct { + _ struct{} `locationName:"GetAccessGrantsInstanceResourcePolicyRequest" type:"structure"` - // The name of the Multi-Region Access Point associated with this request. + // The ID of the Amazon Web Services account that is making this request. // - // Name is a required field - Name *string `type:"string" required:"true"` + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` } // String returns the string representation. @@ -10870,7 +15628,7 @@ type DeleteMultiRegionAccessPointInput_ struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMultiRegionAccessPointInput_) String() string { +func (s GetAccessGrantsInstanceResourcePolicyInput) String() string { return awsutil.Prettify(s) } @@ -10879,15 +15637,18 @@ func (s DeleteMultiRegionAccessPointInput_) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMultiRegionAccessPointInput_) GoString() string { +func (s GetAccessGrantsInstanceResourcePolicyInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteMultiRegionAccessPointInput_) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteMultiRegionAccessPointInput_"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) +func (s *GetAccessGrantsInstanceResourcePolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessGrantsInstanceResourcePolicyInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } if invalidParams.Len() > 0 { @@ -10896,19 +15657,30 @@ func (s *DeleteMultiRegionAccessPointInput_) Validate() error { return nil } -// SetName sets the Name field's value. -func (s *DeleteMultiRegionAccessPointInput_) SetName(v string) *DeleteMultiRegionAccessPointInput_ { - s.Name = &v +// SetAccountId sets the AccountId field's value. +func (s *GetAccessGrantsInstanceResourcePolicyInput) SetAccountId(v string) *GetAccessGrantsInstanceResourcePolicyInput { + s.AccountId = &v return s } -type DeleteMultiRegionAccessPointOutput struct { +func (s *GetAccessGrantsInstanceResourcePolicyInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type GetAccessGrantsInstanceResourcePolicyOutput struct { _ struct{} `type:"structure"` - // The request token associated with the request. You can use this token with - // DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html) - // to determine the status of asynchronous requests. - RequestTokenARN *string `min:"1" type:"string"` + // The date and time when you created the S3 Access Grants instance resource + // policy. + CreatedAt *time.Time `type:"timestamp"` + + // The Organization of the resource policy of the S3 Access Grants instance. + Organization *string `min:"12" type:"string"` + + // The resource policy of the S3 Access Grants instance. + Policy *string `min:"1" type:"string"` } // String returns the string representation. @@ -10916,7 +15688,7 @@ type DeleteMultiRegionAccessPointOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMultiRegionAccessPointOutput) String() string { +func (s GetAccessGrantsInstanceResourcePolicyOutput) String() string { return awsutil.Prettify(s) } @@ -10925,21 +15697,40 @@ func (s DeleteMultiRegionAccessPointOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteMultiRegionAccessPointOutput) GoString() string { +func (s GetAccessGrantsInstanceResourcePolicyOutput) GoString() string { return s.String() } -// SetRequestTokenARN sets the RequestTokenARN field's value. -func (s *DeleteMultiRegionAccessPointOutput) SetRequestTokenARN(v string) *DeleteMultiRegionAccessPointOutput { - s.RequestTokenARN = &v +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetAccessGrantsInstanceResourcePolicyOutput) SetCreatedAt(v time.Time) *GetAccessGrantsInstanceResourcePolicyOutput { + s.CreatedAt = &v return s } -type DeletePublicAccessBlockInput struct { - _ struct{} `locationName:"DeletePublicAccessBlockRequest" type:"structure"` +// SetOrganization sets the Organization field's value. +func (s *GetAccessGrantsInstanceResourcePolicyOutput) SetOrganization(v string) *GetAccessGrantsInstanceResourcePolicyOutput { + s.Organization = &v + return s +} - // The account ID for the Amazon Web Services account whose PublicAccessBlock - // configuration you want to remove. +// SetPolicy sets the Policy field's value. +func (s *GetAccessGrantsInstanceResourcePolicyOutput) SetPolicy(v string) *GetAccessGrantsInstanceResourcePolicyOutput { + s.Policy = &v + return s +} + +type GetAccessGrantsLocationInput struct { + _ struct{} `locationName:"GetAccessGrantsLocationRequest" type:"structure"` + + // The ID of the registered location that you are retrieving. S3 Access Grants + // assigns this ID when you register the location. S3 Access Grants assigns + // the ID default to the default location s3:// and assigns an auto-generated + // ID to other locations that you register. + // + // AccessGrantsLocationId is a required field + AccessGrantsLocationId *string `location:"uri" locationName:"id" min:"1" type:"string" required:"true"` + + // The ID of the Amazon Web Services account that is making this request. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` @@ -10950,7 +15741,7 @@ type DeletePublicAccessBlockInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeletePublicAccessBlockInput) String() string { +func (s GetAccessGrantsLocationInput) String() string { return awsutil.Prettify(s) } @@ -10959,13 +15750,19 @@ func (s DeletePublicAccessBlockInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeletePublicAccessBlockInput) GoString() string { +func (s GetAccessGrantsLocationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeletePublicAccessBlockInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"} +func (s *GetAccessGrantsLocationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessGrantsLocationInput"} + if s.AccessGrantsLocationId == nil { + invalidParams.Add(request.NewErrParamRequired("AccessGrantsLocationId")) + } + if s.AccessGrantsLocationId != nil && len(*s.AccessGrantsLocationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccessGrantsLocationId", 1)) + } if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } @@ -10979,20 +15776,50 @@ func (s *DeletePublicAccessBlockInput) Validate() error { return nil } +// SetAccessGrantsLocationId sets the AccessGrantsLocationId field's value. +func (s *GetAccessGrantsLocationInput) SetAccessGrantsLocationId(v string) *GetAccessGrantsLocationInput { + s.AccessGrantsLocationId = &v + return s +} + // SetAccountId sets the AccountId field's value. -func (s *DeletePublicAccessBlockInput) SetAccountId(v string) *DeletePublicAccessBlockInput { +func (s *GetAccessGrantsLocationInput) SetAccountId(v string) *GetAccessGrantsLocationInput { s.AccountId = &v return s } -func (s *DeletePublicAccessBlockInput) hostLabels() map[string]string { +func (s *GetAccessGrantsLocationInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DeletePublicAccessBlockOutput struct { +type GetAccessGrantsLocationOutput struct { _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the registered location. + AccessGrantsLocationArn *string `min:"1" type:"string"` + + // The ID of the registered location to which you are granting access. S3 Access + // Grants assigns this ID when you register the location. S3 Access Grants assigns + // the ID default to the default location s3:// and assigns an auto-generated + // ID to other locations that you register. + AccessGrantsLocationId *string `min:"1" type:"string"` + + // The date and time when you registered the location. + CreatedAt *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the IAM role for the registered location. + // S3 Access Grants assumes this role to manage access to the registered location. + IAMRoleArn *string `min:"1" type:"string"` + + // The S3 URI path to the registered location. The location scope can be the + // default S3 location s3://, the S3 path to a bucket, or the S3 path to a bucket + // and prefix. A prefix in S3 is a string of characters at the beginning of + // an object key name used to organize the objects that you store in your S3 + // buckets. For example, object key names that start with the engineering/ prefix + // or object key names that start with the marketing/campaigns/ prefix. + LocationScope *string `min:"1" type:"string"` } // String returns the string representation. @@ -11000,7 +15827,7 @@ type DeletePublicAccessBlockOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeletePublicAccessBlockOutput) String() string { +func (s GetAccessGrantsLocationOutput) String() string { return awsutil.Prettify(s) } @@ -11009,22 +15836,54 @@ func (s DeletePublicAccessBlockOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeletePublicAccessBlockOutput) GoString() string { +func (s GetAccessGrantsLocationOutput) GoString() string { return s.String() } -type DeleteStorageLensConfigurationInput struct { - _ struct{} `locationName:"DeleteStorageLensConfigurationRequest" type:"structure"` +// SetAccessGrantsLocationArn sets the AccessGrantsLocationArn field's value. +func (s *GetAccessGrantsLocationOutput) SetAccessGrantsLocationArn(v string) *GetAccessGrantsLocationOutput { + s.AccessGrantsLocationArn = &v + return s +} - // The account ID of the requester. +// SetAccessGrantsLocationId sets the AccessGrantsLocationId field's value. +func (s *GetAccessGrantsLocationOutput) SetAccessGrantsLocationId(v string) *GetAccessGrantsLocationOutput { + s.AccessGrantsLocationId = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetAccessGrantsLocationOutput) SetCreatedAt(v time.Time) *GetAccessGrantsLocationOutput { + s.CreatedAt = &v + return s +} + +// SetIAMRoleArn sets the IAMRoleArn field's value. +func (s *GetAccessGrantsLocationOutput) SetIAMRoleArn(v string) *GetAccessGrantsLocationOutput { + s.IAMRoleArn = &v + return s +} + +// SetLocationScope sets the LocationScope field's value. +func (s *GetAccessGrantsLocationOutput) SetLocationScope(v string) *GetAccessGrantsLocationOutput { + s.LocationScope = &v + return s +} + +type GetAccessPointConfigurationForObjectLambdaInput struct { + _ struct{} `locationName:"GetAccessPointConfigurationForObjectLambdaRequest" type:"structure"` + + // The account ID for the account that owns the specified Object Lambda Access + // Point. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The ID of the S3 Storage Lens configuration. + // The name of the Object Lambda Access Point you want to return the configuration + // for. // - // ConfigId is a required field - ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"` + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -11032,7 +15891,7 @@ type DeleteStorageLensConfigurationInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteStorageLensConfigurationInput) String() string { +func (s GetAccessPointConfigurationForObjectLambdaInput) String() string { return awsutil.Prettify(s) } @@ -11041,24 +15900,24 @@ func (s DeleteStorageLensConfigurationInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteStorageLensConfigurationInput) GoString() string { +func (s GetAccessPointConfigurationForObjectLambdaInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteStorageLensConfigurationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationInput"} +func (s *GetAccessPointConfigurationForObjectLambdaInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessPointConfigurationForObjectLambdaInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.ConfigId == nil { - invalidParams.Add(request.NewErrParamRequired("ConfigId")) + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } - if s.ConfigId != nil && len(*s.ConfigId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1)) + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) } if invalidParams.Len() > 0 { @@ -11068,25 +15927,28 @@ func (s *DeleteStorageLensConfigurationInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteStorageLensConfigurationInput) SetAccountId(v string) *DeleteStorageLensConfigurationInput { +func (s *GetAccessPointConfigurationForObjectLambdaInput) SetAccountId(v string) *GetAccessPointConfigurationForObjectLambdaInput { s.AccountId = &v return s } -// SetConfigId sets the ConfigId field's value. -func (s *DeleteStorageLensConfigurationInput) SetConfigId(v string) *DeleteStorageLensConfigurationInput { - s.ConfigId = &v +// SetName sets the Name field's value. +func (s *GetAccessPointConfigurationForObjectLambdaInput) SetName(v string) *GetAccessPointConfigurationForObjectLambdaInput { + s.Name = &v return s } -func (s *DeleteStorageLensConfigurationInput) hostLabels() map[string]string { +func (s *GetAccessPointConfigurationForObjectLambdaInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DeleteStorageLensConfigurationOutput struct { +type GetAccessPointConfigurationForObjectLambdaOutput struct { _ struct{} `type:"structure"` + + // Object Lambda Access Point configuration document. + Configuration *ObjectLambdaConfiguration `type:"structure"` } // String returns the string representation. @@ -11094,7 +15956,7 @@ type DeleteStorageLensConfigurationOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteStorageLensConfigurationOutput) String() string { +func (s GetAccessPointConfigurationForObjectLambdaOutput) String() string { return awsutil.Prettify(s) } @@ -11103,22 +15965,29 @@ func (s DeleteStorageLensConfigurationOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteStorageLensConfigurationOutput) GoString() string { +func (s GetAccessPointConfigurationForObjectLambdaOutput) GoString() string { return s.String() } -type DeleteStorageLensConfigurationTaggingInput struct { - _ struct{} `locationName:"DeleteStorageLensConfigurationTaggingRequest" type:"structure"` +// SetConfiguration sets the Configuration field's value. +func (s *GetAccessPointConfigurationForObjectLambdaOutput) SetConfiguration(v *ObjectLambdaConfiguration) *GetAccessPointConfigurationForObjectLambdaOutput { + s.Configuration = v + return s +} - // The account ID of the requester. +type GetAccessPointForObjectLambdaInput struct { + _ struct{} `locationName:"GetAccessPointForObjectLambdaRequest" type:"structure"` + + // The account ID for the account that owns the specified Object Lambda Access + // Point. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The ID of the S3 Storage Lens configuration. + // The name of the Object Lambda Access Point. // - // ConfigId is a required field - ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"` + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -11126,7 +15995,7 @@ type DeleteStorageLensConfigurationTaggingInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteStorageLensConfigurationTaggingInput) String() string { +func (s GetAccessPointForObjectLambdaInput) String() string { return awsutil.Prettify(s) } @@ -11135,24 +16004,24 @@ func (s DeleteStorageLensConfigurationTaggingInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteStorageLensConfigurationTaggingInput) GoString() string { +func (s GetAccessPointForObjectLambdaInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteStorageLensConfigurationTaggingInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationTaggingInput"} +func (s *GetAccessPointForObjectLambdaInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessPointForObjectLambdaInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.ConfigId == nil { - invalidParams.Add(request.NewErrParamRequired("ConfigId")) + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } - if s.ConfigId != nil && len(*s.ConfigId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1)) + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) } if invalidParams.Len() > 0 { @@ -11162,25 +16031,38 @@ func (s *DeleteStorageLensConfigurationTaggingInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteStorageLensConfigurationTaggingInput) SetAccountId(v string) *DeleteStorageLensConfigurationTaggingInput { +func (s *GetAccessPointForObjectLambdaInput) SetAccountId(v string) *GetAccessPointForObjectLambdaInput { s.AccountId = &v return s } -// SetConfigId sets the ConfigId field's value. -func (s *DeleteStorageLensConfigurationTaggingInput) SetConfigId(v string) *DeleteStorageLensConfigurationTaggingInput { - s.ConfigId = &v +// SetName sets the Name field's value. +func (s *GetAccessPointForObjectLambdaInput) SetName(v string) *GetAccessPointForObjectLambdaInput { + s.Name = &v return s } -func (s *DeleteStorageLensConfigurationTaggingInput) hostLabels() map[string]string { +func (s *GetAccessPointForObjectLambdaInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DeleteStorageLensConfigurationTaggingOutput struct { +type GetAccessPointForObjectLambdaOutput struct { _ struct{} `type:"structure"` + + // The alias of the Object Lambda Access Point. + Alias *ObjectLambdaAccessPointAlias `type:"structure"` + + // The date and time when the specified Object Lambda Access Point was created. + CreationDate *time.Time `type:"timestamp"` + + // The name of the Object Lambda Access Point. + Name *string `min:"3" type:"string"` + + // Configuration to block all public access. This setting is turned on and can + // not be edited. + PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` } // String returns the string representation. @@ -11188,7 +16070,7 @@ type DeleteStorageLensConfigurationTaggingOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteStorageLensConfigurationTaggingOutput) String() string { +func (s GetAccessPointForObjectLambdaOutput) String() string { return awsutil.Prettify(s) } @@ -11197,23 +16079,59 @@ func (s DeleteStorageLensConfigurationTaggingOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteStorageLensConfigurationTaggingOutput) GoString() string { +func (s GetAccessPointForObjectLambdaOutput) GoString() string { return s.String() } -type DeleteStorageLensGroupInput struct { - _ struct{} `locationName:"DeleteStorageLensGroupRequest" type:"structure"` +// SetAlias sets the Alias field's value. +func (s *GetAccessPointForObjectLambdaOutput) SetAlias(v *ObjectLambdaAccessPointAlias) *GetAccessPointForObjectLambdaOutput { + s.Alias = v + return s +} - // The Amazon Web Services account ID used to create the Storage Lens group - // that you're trying to delete. +// SetCreationDate sets the CreationDate field's value. +func (s *GetAccessPointForObjectLambdaOutput) SetCreationDate(v time.Time) *GetAccessPointForObjectLambdaOutput { + s.CreationDate = &v + return s +} + +// SetName sets the Name field's value. +func (s *GetAccessPointForObjectLambdaOutput) SetName(v string) *GetAccessPointForObjectLambdaOutput { + s.Name = &v + return s +} + +// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. +func (s *GetAccessPointForObjectLambdaOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointForObjectLambdaOutput { + s.PublicAccessBlockConfiguration = v + return s +} + +type GetAccessPointInput struct { + _ struct{} `locationName:"GetAccessPointRequest" type:"structure"` + + // The Amazon Web Services account ID for the account that owns the specified + // access point. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the Storage Lens group that you're trying to delete. + // The name of the access point whose configuration information you want to + // retrieve. + // + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. + // + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the access point accessed in the + // format arn:aws:s3-outposts:::outpost//accesspoint/. + // For example, to access the access point reports-ap through Outpost my-outpost + // owned by account 123456789012 in Region us-west-2, use the URL encoding of + // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. + // The value must be URL encoded. // // Name is a required field - Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"` + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -11221,7 +16139,7 @@ type DeleteStorageLensGroupInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteStorageLensGroupInput) String() string { +func (s GetAccessPointInput) String() string { return awsutil.Prettify(s) } @@ -11230,13 +16148,13 @@ func (s DeleteStorageLensGroupInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DeleteStorageLensGroupInput) GoString() string { +func (s GetAccessPointInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteStorageLensGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensGroupInput"} +func (s *GetAccessPointInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessPointInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } @@ -11246,8 +16164,8 @@ func (s *DeleteStorageLensGroupInput) Validate() error { 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.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) } if invalidParams.Len() > 0 { @@ -11257,58 +16175,113 @@ func (s *DeleteStorageLensGroupInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteStorageLensGroupInput) SetAccountId(v string) *DeleteStorageLensGroupInput { +func (s *GetAccessPointInput) SetAccountId(v string) *GetAccessPointInput { s.AccountId = &v return s } // SetName sets the Name field's value. -func (s *DeleteStorageLensGroupInput) SetName(v string) *DeleteStorageLensGroupInput { +func (s *GetAccessPointInput) SetName(v string) *GetAccessPointInput { s.Name = &v return s } -func (s *DeleteStorageLensGroupInput) hostLabels() map[string]string { +func (s *GetAccessPointInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DeleteStorageLensGroupOutput struct { - _ struct{} `type:"structure"` +func (s *GetAccessPointInput) getEndpointARN() (arn.Resource, error) { + if s.Name == nil { + return nil, fmt.Errorf("member Name is nil") + } + return parseEndpointARN(*s.Name) } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s DeleteStorageLensGroupOutput) String() string { - return awsutil.Prettify(s) +func (s *GetAccessPointInput) hasEndpointARN() bool { + if s.Name == nil { + return false + } + return arn.IsARN(*s.Name) } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s DeleteStorageLensGroupOutput) GoString() string { - return s.String() +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s GetAccessPointInput) updateArnableField(v string) (interface{}, error) { + if s.Name == nil { + return nil, fmt.Errorf("member Name is nil") + } + s.Name = aws.String(v) + return &s, nil } -type DescribeJobInput struct { - _ struct{} `locationName:"DescribeJobRequest" type:"structure"` +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s GetAccessPointInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil +} - // The Amazon Web Services account ID associated with the S3 Batch Operations - // job. +type GetAccessPointOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the access point. + AccessPointArn *string `min:"4" type:"string"` + + // The name or alias of the access point. + Alias *string `type:"string"` + + // The name of the bucket associated with the specified access point. + Bucket *string `min:"3" type:"string"` + + // The Amazon Web Services account ID associated with the S3 bucket associated + // with this access point. + BucketAccountId *string `type:"string"` + + // The date and time when the specified access point was created. + CreationDate *time.Time `type:"timestamp"` + + // The VPC endpoint for the access point. + Endpoints map[string]*string `type:"map"` + + // The name of the specified access point. + Name *string `min:"3" type:"string"` + + // Indicates whether this access point allows access from the public internet. + // If VpcConfiguration is specified for this access point, then NetworkOrigin + // is VPC, and the access point doesn't allow access from the public internet. + // Otherwise, NetworkOrigin is Internet, and the access point allows access + // from the public internet, subject to the access point and bucket access policies. // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + // This will always be true for an Amazon S3 on Outposts access point + NetworkOrigin *string `type:"string" enum:"NetworkOrigin"` - // The ID for the job whose information you want to retrieve. + // The PublicAccessBlock configuration that you want to apply to this Amazon + // S3 account. You can enable the configuration options in any combination. + // For more information about when Amazon S3 considers a bucket or object public, + // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + // in the Amazon S3 User Guide. // - // JobId is a required field - JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` + // This data type is not supported for Amazon S3 on Outposts. + PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` + + // Contains the virtual private cloud (VPC) configuration for the specified + // access point. + // + // This element is empty if this access point is an Amazon S3 on Outposts access + // point that is used by other Amazon Web Services. + VpcConfiguration *VpcConfiguration `type:"structure"` } // String returns the string representation. @@ -11316,7 +16289,7 @@ type DescribeJobInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeJobInput) String() string { +func (s GetAccessPointOutput) String() string { return awsutil.Prettify(s) } @@ -11325,98 +16298,83 @@ func (s DescribeJobInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeJobInput) GoString() string { +func (s GetAccessPointOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeJobInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } - if s.JobId == nil { - invalidParams.Add(request.NewErrParamRequired("JobId")) - } - if s.JobId != nil && len(*s.JobId) < 5 { - invalidParams.Add(request.NewErrParamMinLen("JobId", 5)) - } +// SetAccessPointArn sets the AccessPointArn field's value. +func (s *GetAccessPointOutput) SetAccessPointArn(v string) *GetAccessPointOutput { + s.AccessPointArn = &v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetAlias sets the Alias field's value. +func (s *GetAccessPointOutput) SetAlias(v string) *GetAccessPointOutput { + s.Alias = &v + return s } -// SetAccountId sets the AccountId field's value. -func (s *DescribeJobInput) SetAccountId(v string) *DescribeJobInput { - s.AccountId = &v +// SetBucket sets the Bucket field's value. +func (s *GetAccessPointOutput) SetBucket(v string) *GetAccessPointOutput { + s.Bucket = &v return s } -// SetJobId sets the JobId field's value. -func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput { - s.JobId = &v +// SetBucketAccountId sets the BucketAccountId field's value. +func (s *GetAccessPointOutput) SetBucketAccountId(v string) *GetAccessPointOutput { + s.BucketAccountId = &v return s } -func (s *DescribeJobInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetCreationDate sets the CreationDate field's value. +func (s *GetAccessPointOutput) SetCreationDate(v time.Time) *GetAccessPointOutput { + s.CreationDate = &v + return s } -type DescribeJobOutput struct { - _ struct{} `type:"structure"` +// SetEndpoints sets the Endpoints field's value. +func (s *GetAccessPointOutput) SetEndpoints(v map[string]*string) *GetAccessPointOutput { + s.Endpoints = v + return s +} - // Contains the configuration parameters and status for the job specified in - // the Describe Job request. - Job *JobDescriptor `type:"structure"` +// SetName sets the Name field's value. +func (s *GetAccessPointOutput) SetName(v string) *GetAccessPointOutput { + s.Name = &v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s DescribeJobOutput) String() string { - return awsutil.Prettify(s) +// SetNetworkOrigin sets the NetworkOrigin field's value. +func (s *GetAccessPointOutput) SetNetworkOrigin(v string) *GetAccessPointOutput { + s.NetworkOrigin = &v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s DescribeJobOutput) GoString() string { - return s.String() +// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. +func (s *GetAccessPointOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointOutput { + s.PublicAccessBlockConfiguration = v + return s } -// SetJob sets the Job field's value. -func (s *DescribeJobOutput) SetJob(v *JobDescriptor) *DescribeJobOutput { - s.Job = v +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *GetAccessPointOutput) SetVpcConfiguration(v *VpcConfiguration) *GetAccessPointOutput { + s.VpcConfiguration = v return s } -type DescribeMultiRegionAccessPointOperationInput struct { - _ struct{} `locationName:"DescribeMultiRegionAccessPointOperationRequest" type:"structure"` +type GetAccessPointPolicyForObjectLambdaInput struct { + _ struct{} `locationName:"GetAccessPointPolicyForObjectLambdaRequest" type:"structure"` - // The Amazon Web Services account ID for the owner of the Multi-Region Access + // The account ID for the account that owns the specified Object Lambda Access // Point. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The request token associated with the request you want to know about. This - // request token is returned as part of the response when you make an asynchronous - // request. You provide this token to query about the status of the asynchronous - // action. + // The name of the Object Lambda Access Point. // - // RequestTokenARN is a required field - RequestTokenARN *string `location:"uri" locationName:"request_token" min:"1" type:"string" required:"true"` + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -11424,7 +16382,7 @@ type DescribeMultiRegionAccessPointOperationInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeMultiRegionAccessPointOperationInput) String() string { +func (s GetAccessPointPolicyForObjectLambdaInput) String() string { return awsutil.Prettify(s) } @@ -11433,24 +16391,24 @@ func (s DescribeMultiRegionAccessPointOperationInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeMultiRegionAccessPointOperationInput) GoString() string { +func (s GetAccessPointPolicyForObjectLambdaInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeMultiRegionAccessPointOperationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeMultiRegionAccessPointOperationInput"} +func (s *GetAccessPointPolicyForObjectLambdaInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyForObjectLambdaInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.RequestTokenARN == nil { - invalidParams.Add(request.NewErrParamRequired("RequestTokenARN")) + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } - if s.RequestTokenARN != nil && len(*s.RequestTokenARN) < 1 { - invalidParams.Add(request.NewErrParamMinLen("RequestTokenARN", 1)) + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) } if invalidParams.Len() > 0 { @@ -11460,28 +16418,28 @@ func (s *DescribeMultiRegionAccessPointOperationInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DescribeMultiRegionAccessPointOperationInput) SetAccountId(v string) *DescribeMultiRegionAccessPointOperationInput { +func (s *GetAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyForObjectLambdaInput { s.AccountId = &v return s } -// SetRequestTokenARN sets the RequestTokenARN field's value. -func (s *DescribeMultiRegionAccessPointOperationInput) SetRequestTokenARN(v string) *DescribeMultiRegionAccessPointOperationInput { - s.RequestTokenARN = &v +// SetName sets the Name field's value. +func (s *GetAccessPointPolicyForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyForObjectLambdaInput { + s.Name = &v return s } -func (s *DescribeMultiRegionAccessPointOperationInput) hostLabels() map[string]string { +func (s *GetAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DescribeMultiRegionAccessPointOperationOutput struct { +type GetAccessPointPolicyForObjectLambdaOutput struct { _ struct{} `type:"structure"` - // A container element containing the details of the asynchronous operation. - AsyncOperation *AsyncOperation `type:"structure"` + // Object Lambda Access Point resource policy document. + Policy *string `type:"string"` } // String returns the string representation. @@ -11489,7 +16447,7 @@ type DescribeMultiRegionAccessPointOperationOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeMultiRegionAccessPointOperationOutput) String() string { +func (s GetAccessPointPolicyForObjectLambdaOutput) String() string { return awsutil.Prettify(s) } @@ -11498,62 +16456,39 @@ func (s DescribeMultiRegionAccessPointOperationOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DescribeMultiRegionAccessPointOperationOutput) GoString() string { +func (s GetAccessPointPolicyForObjectLambdaOutput) GoString() string { return s.String() } -// SetAsyncOperation sets the AsyncOperation field's value. -func (s *DescribeMultiRegionAccessPointOperationOutput) SetAsyncOperation(v *AsyncOperation) *DescribeMultiRegionAccessPointOperationOutput { - s.AsyncOperation = v +// SetPolicy sets the Policy field's value. +func (s *GetAccessPointPolicyForObjectLambdaOutput) SetPolicy(v string) *GetAccessPointPolicyForObjectLambdaOutput { + s.Policy = &v return s } -// Specifies information about the replication destination bucket and its settings -// for an S3 on Outposts replication configuration. -type Destination struct { - _ struct{} `type:"structure"` - - // Specify this property only in a cross-account scenario (where the source - // and destination bucket owners are not the same), and you want to change replica - // ownership to the Amazon Web Services account that owns the destination bucket. - // If this property is not specified in the replication configuration, the replicas - // are owned by same Amazon Web Services account that owns the source object. - // - // This is not supported by Amazon S3 on Outposts buckets. - AccessControlTranslation *AccessControlTranslation `type:"structure"` - - // The destination bucket owner's account ID. - Account *string `type:"string"` +type GetAccessPointPolicyInput struct { + _ struct{} `locationName:"GetAccessPointPolicyRequest" type:"structure"` - // The Amazon Resource Name (ARN) of the access point for the destination bucket - // where you want S3 on Outposts to store the replication results. + // The account ID for the account that owns the specified access point. // - // Bucket is a required field - Bucket *string `type:"string" required:"true"` + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // A container that provides information about encryption. If SourceSelectionCriteria - // is specified, you must specify this element. + // The name of the access point whose policy you want to retrieve. // - // This is not supported by Amazon S3 on Outposts buckets. - EncryptionConfiguration *EncryptionConfiguration `type:"structure"` - - // A container that specifies replication metrics-related settings. - Metrics *Metrics `type:"structure"` - - // A container that specifies S3 Replication Time Control (S3 RTC) settings, - // including whether S3 RTC is enabled and the time when all objects and operations - // on objects must be replicated. Must be specified together with a Metrics - // block. + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. // - // This is not supported by Amazon S3 on Outposts buckets. - ReplicationTime *ReplicationTime `type:"structure"` - - // The storage class to use when replicating objects. All objects stored on - // S3 on Outposts are stored in the OUTPOSTS storage class. S3 on Outposts uses - // the OUTPOSTS storage class to create the object replicas. + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the access point accessed in the + // format arn:aws:s3-outposts:::outpost//accesspoint/. + // For example, to access the access point reports-ap through Outpost my-outpost + // owned by account 123456789012 in Region us-west-2, use the URL encoding of + // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. + // The value must be URL encoded. // - // Values other than OUTPOSTS are not supported by Amazon S3 on Outposts. - StorageClass *string `type:"string" enum:"ReplicationStorageClass"` + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -11561,7 +16496,7 @@ type Destination struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Destination) String() string { +func (s GetAccessPointPolicyInput) String() string { return awsutil.Prettify(s) } @@ -11570,30 +16505,24 @@ func (s Destination) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Destination) GoString() string { +func (s GetAccessPointPolicyInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *Destination) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "Destination"} - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) +func (s *GetAccessPointPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) } - if s.AccessControlTranslation != nil { - if err := s.AccessControlTranslation.Validate(); err != nil { - invalidParams.AddNested("AccessControlTranslation", err.(request.ErrInvalidParams)) - } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Metrics != nil { - if err := s.Metrics.Validate(); err != nil { - invalidParams.AddNested("Metrics", err.(request.ErrInvalidParams)) - } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } - if s.ReplicationTime != nil { - if err := s.ReplicationTime.Validate(); err != nil { - invalidParams.AddNested("ReplicationTime", err.(request.ErrInvalidParams)) - } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) } if invalidParams.Len() > 0 { @@ -11602,62 +16531,70 @@ func (s *Destination) Validate() error { return nil } -// SetAccessControlTranslation sets the AccessControlTranslation field's value. -func (s *Destination) SetAccessControlTranslation(v *AccessControlTranslation) *Destination { - s.AccessControlTranslation = v +// SetAccountId sets the AccountId field's value. +func (s *GetAccessPointPolicyInput) SetAccountId(v string) *GetAccessPointPolicyInput { + s.AccountId = &v return s } -// SetAccount sets the Account field's value. -func (s *Destination) SetAccount(v string) *Destination { - s.Account = &v +// SetName sets the Name field's value. +func (s *GetAccessPointPolicyInput) SetName(v string) *GetAccessPointPolicyInput { + s.Name = &v return s } -// SetBucket sets the Bucket field's value. -func (s *Destination) SetBucket(v string) *Destination { - s.Bucket = &v - return s +func (s *GetAccessPointPolicyInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } } -// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. -func (s *Destination) SetEncryptionConfiguration(v *EncryptionConfiguration) *Destination { - s.EncryptionConfiguration = v - return s +func (s *GetAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) { + if s.Name == nil { + return nil, fmt.Errorf("member Name is nil") + } + return parseEndpointARN(*s.Name) } -// SetMetrics sets the Metrics field's value. -func (s *Destination) SetMetrics(v *Metrics) *Destination { - s.Metrics = v - return s +func (s *GetAccessPointPolicyInput) hasEndpointARN() bool { + if s.Name == nil { + return false + } + return arn.IsARN(*s.Name) } -// SetReplicationTime sets the ReplicationTime field's value. -func (s *Destination) SetReplicationTime(v *ReplicationTime) *Destination { - s.ReplicationTime = v - return s +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s GetAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) { + if s.Name == nil { + return nil, fmt.Errorf("member Name is nil") + } + s.Name = aws.String(v) + return &s, nil } -// SetStorageClass sets the StorageClass field's value. -func (s *Destination) SetStorageClass(v string) *Destination { - s.StorageClass = &v - return s +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s GetAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil } -// The container element for Amazon S3 Storage Lens detailed status code metrics. -// Detailed status code metrics generate metrics for HTTP status codes, such -// as 200 OK, 403 Forbidden, 503 Service Unavailable and others. -// -// For more information about S3 Storage Lens, see Assessing your storage activity -// and usage with S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html) -// in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, -// see S3 Storage Lens metrics glossary (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) -// in the Amazon S3 User Guide. -type DetailedStatusCodesMetrics struct { +type GetAccessPointPolicyOutput struct { _ struct{} `type:"structure"` - // A container that indicates whether detailed status code metrics are enabled. - IsEnabled *bool `type:"boolean"` + // The access point policy associated with the specified access point. + Policy *string `type:"string"` } // String returns the string representation. @@ -11665,7 +16602,7 @@ type DetailedStatusCodesMetrics struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DetailedStatusCodesMetrics) String() string { +func (s GetAccessPointPolicyOutput) String() string { return awsutil.Prettify(s) } @@ -11674,31 +16611,29 @@ func (s DetailedStatusCodesMetrics) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s DetailedStatusCodesMetrics) GoString() string { +func (s GetAccessPointPolicyOutput) GoString() string { return s.String() } -// SetIsEnabled sets the IsEnabled field's value. -func (s *DetailedStatusCodesMetrics) SetIsEnabled(v bool) *DetailedStatusCodesMetrics { - s.IsEnabled = &v +// SetPolicy sets the Policy field's value. +func (s *GetAccessPointPolicyOutput) SetPolicy(v string) *GetAccessPointPolicyOutput { + s.Policy = &v return s } -// Specifies encryption-related information for an Amazon S3 bucket that is -// a destination for replicated objects. -// -// This is not supported by Amazon S3 on Outposts buckets. -type EncryptionConfiguration struct { - _ struct{} `type:"structure"` +type GetAccessPointPolicyStatusForObjectLambdaInput struct { + _ struct{} `locationName:"GetAccessPointPolicyStatusForObjectLambdaRequest" type:"structure"` - // Specifies the ID of the customer managed KMS key that's stored in Key Management - // Service (KMS) for the destination bucket. This ID is either the Amazon Resource - // Name (ARN) for the KMS key or the alias ARN for the KMS key. Amazon S3 uses - // this KMS key to encrypt replica objects. Amazon S3 supports only symmetric - // encryption KMS keys. For more information, see Symmetric encryption KMS keys - // (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) - // in the Amazon Web Services Key Management Service Developer Guide. - ReplicaKmsKeyID *string `type:"string"` + // The account ID for the account that owns the specified Object Lambda Access + // Point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the Object Lambda Access Point. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -11706,36 +16641,67 @@ type EncryptionConfiguration struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EncryptionConfiguration) String() string { +func (s GetAccessPointPolicyStatusForObjectLambdaInput) String() string { return awsutil.Prettify(s) } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s EncryptionConfiguration) GoString() string { - return s.String() +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetAccessPointPolicyStatusForObjectLambdaInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAccessPointPolicyStatusForObjectLambdaInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusForObjectLambdaInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyStatusForObjectLambdaInput { + s.AccountId = &v + return s +} + +// SetName sets the Name field's value. +func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyStatusForObjectLambdaInput { + s.Name = &v + return s } -// SetReplicaKmsKeyID sets the ReplicaKmsKeyID field's value. -func (s *EncryptionConfiguration) SetReplicaKmsKeyID(v string) *EncryptionConfiguration { - s.ReplicaKmsKeyID = &v - return s +func (s *GetAccessPointPolicyStatusForObjectLambdaInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } } -// The last established access control policy for a Multi-Region Access Point. -// -// When you update the policy, the update is first listed as the proposed policy. -// After the update is finished and all Regions have been updated, the proposed -// policy is listed as the established policy. If both policies have the same -// version number, the proposed policy is the established policy. -type EstablishedMultiRegionAccessPointPolicy struct { +type GetAccessPointPolicyStatusForObjectLambdaOutput struct { _ struct{} `type:"structure"` - // The details of the last established policy. - Policy *string `type:"string"` + // Indicates whether this access point policy is public. For more information + // about how Amazon S3 evaluates policies to determine whether they are public, + // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + // in the Amazon S3 User Guide. + PolicyStatus *PolicyStatus `type:"structure"` } // String returns the string representation. @@ -11743,7 +16709,7 @@ type EstablishedMultiRegionAccessPointPolicy struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EstablishedMultiRegionAccessPointPolicy) String() string { +func (s GetAccessPointPolicyStatusForObjectLambdaOutput) String() string { return awsutil.Prettify(s) } @@ -11752,25 +16718,28 @@ func (s EstablishedMultiRegionAccessPointPolicy) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EstablishedMultiRegionAccessPointPolicy) GoString() string { +func (s GetAccessPointPolicyStatusForObjectLambdaOutput) GoString() string { return s.String() } -// SetPolicy sets the Policy field's value. -func (s *EstablishedMultiRegionAccessPointPolicy) SetPolicy(v string) *EstablishedMultiRegionAccessPointPolicy { - s.Policy = &v +// SetPolicyStatus sets the PolicyStatus field's value. +func (s *GetAccessPointPolicyStatusForObjectLambdaOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusForObjectLambdaOutput { + s.PolicyStatus = v return s } -// A container for what Amazon S3 Storage Lens will exclude. -type Exclude struct { - _ struct{} `type:"structure"` +type GetAccessPointPolicyStatusInput struct { + _ struct{} `locationName:"GetAccessPointPolicyStatusRequest" type:"structure"` - // A container for the S3 Storage Lens bucket excludes. - Buckets []*string `locationNameList:"Arn" type:"list"` + // The account ID for the account that owns the specified access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // A container for the S3 Storage Lens Region excludes. - Regions []*string `locationNameList:"Region" type:"list"` + // The name of the access point whose policy status you want to retrieve. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -11778,7 +16747,7 @@ type Exclude struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Exclude) String() string { +func (s GetAccessPointPolicyStatusInput) String() string { return awsutil.Prettify(s) } @@ -11787,32 +16756,55 @@ func (s Exclude) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Exclude) GoString() string { +func (s GetAccessPointPolicyStatusInput) GoString() string { return s.String() } -// SetBuckets sets the Buckets field's value. -func (s *Exclude) SetBuckets(v []*string) *Exclude { - s.Buckets = v +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAccessPointPolicyStatusInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *GetAccessPointPolicyStatusInput) SetAccountId(v string) *GetAccessPointPolicyStatusInput { + s.AccountId = &v return s } -// SetRegions sets the Regions field's value. -func (s *Exclude) SetRegions(v []*string) *Exclude { - s.Regions = v +// SetName sets the Name field's value. +func (s *GetAccessPointPolicyStatusInput) SetName(v string) *GetAccessPointPolicyStatusInput { + s.Name = &v return s } -// An optional configuration to replicate existing source bucket objects. -// -// This is not supported by Amazon S3 on Outposts buckets. -type ExistingObjectReplication struct { +func (s *GetAccessPointPolicyStatusInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type GetAccessPointPolicyStatusOutput struct { _ struct{} `type:"structure"` - // Specifies whether Amazon S3 replicates existing source bucket objects. - // - // Status is a required field - Status *string `type:"string" required:"true" enum:"ExistingObjectReplicationStatus"` + // Indicates the current policy status of the specified access point. + PolicyStatus *PolicyStatus `type:"structure"` } // String returns the string representation. @@ -11820,7 +16812,7 @@ type ExistingObjectReplication struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ExistingObjectReplication) String() string { +func (s GetAccessPointPolicyStatusOutput) String() string { return awsutil.Prettify(s) } @@ -11829,39 +16821,38 @@ func (s ExistingObjectReplication) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ExistingObjectReplication) GoString() string { +func (s GetAccessPointPolicyStatusOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *ExistingObjectReplication) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ExistingObjectReplication"} - if s.Status == nil { - invalidParams.Add(request.NewErrParamRequired("Status")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetStatus sets the Status field's value. -func (s *ExistingObjectReplication) SetStatus(v string) *ExistingObjectReplication { - s.Status = &v +// SetPolicyStatus sets the PolicyStatus field's value. +func (s *GetAccessPointPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusOutput { + s.PolicyStatus = v return s } -// The encryption configuration to use when storing the generated manifest. -type GeneratedManifestEncryption struct { - _ struct{} `type:"structure"` +type GetBucketInput struct { + _ struct{} `locationName:"GetBucketRequest" type:"structure"` - // Configuration details on how SSE-KMS is used to encrypt generated manifest - // objects. - SSEKMS *SSEKMSEncryption `locationName:"SSE-KMS" type:"structure"` + // The Amazon Web Services account ID of the Outposts bucket. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Specifies the use of SSE-S3 to encrypt generated manifest objects. - SSES3 *SSES3Encryption `locationName:"SSE-S3" type:"structure"` + // Specifies the bucket. + // + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. + // + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through Outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -11869,7 +16860,7 @@ type GeneratedManifestEncryption struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GeneratedManifestEncryption) String() string { +func (s GetBucketInput) String() string { return awsutil.Prettify(s) } @@ -11878,17 +16869,24 @@ func (s GeneratedManifestEncryption) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GeneratedManifestEncryption) GoString() string { +func (s GetBucketInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GeneratedManifestEncryption) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GeneratedManifestEncryption"} - if s.SSEKMS != nil { - if err := s.SSEKMS.Validate(); err != nil { - invalidParams.AddNested("SSEKMS", err.(request.ErrInvalidParams)) - } +func (s *GetBucketInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } if invalidParams.Len() > 0 { @@ -11897,32 +16895,87 @@ func (s *GeneratedManifestEncryption) Validate() error { return nil } -// SetSSEKMS sets the SSEKMS field's value. -func (s *GeneratedManifestEncryption) SetSSEKMS(v *SSEKMSEncryption) *GeneratedManifestEncryption { - s.SSEKMS = v +// SetAccountId sets the AccountId field's value. +func (s *GetBucketInput) SetAccountId(v string) *GetBucketInput { + s.AccountId = &v return s } -// SetSSES3 sets the SSES3 field's value. -func (s *GeneratedManifestEncryption) SetSSES3(v *SSES3Encryption) *GeneratedManifestEncryption { - s.SSES3 = v +// SetBucket sets the Bucket field's value. +func (s *GetBucketInput) SetBucket(v string) *GetBucketInput { + s.Bucket = &v return s } -type GetAccessPointConfigurationForObjectLambdaInput struct { - _ struct{} `locationName:"GetAccessPointConfigurationForObjectLambdaRequest" type:"structure"` +func (s *GetBucketInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} - // The account ID for the account that owns the specified Object Lambda Access - // Point. +func (s *GetBucketInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *GetBucketInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s GetBucketInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s GetBucketInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil +} + +type GetBucketLifecycleConfigurationInput struct { + _ struct{} `locationName:"GetBucketLifecycleConfigurationRequest" type:"structure"` + + // The Amazon Web Services account ID of the Outposts bucket. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the Object Lambda Access Point you want to return the configuration - // for. + // The Amazon Resource Name (ARN) of the bucket. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. + // + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through Outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -11930,7 +16983,7 @@ type GetAccessPointConfigurationForObjectLambdaInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointConfigurationForObjectLambdaInput) String() string { +func (s GetBucketLifecycleConfigurationInput) String() string { return awsutil.Prettify(s) } @@ -11939,24 +16992,24 @@ func (s GetAccessPointConfigurationForObjectLambdaInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointConfigurationForObjectLambdaInput) GoString() string { +func (s GetBucketLifecycleConfigurationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetAccessPointConfigurationForObjectLambdaInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAccessPointConfigurationForObjectLambdaInput"} +func (s *GetBucketLifecycleConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleConfigurationInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } if invalidParams.Len() > 0 { @@ -11966,67 +17019,69 @@ func (s *GetAccessPointConfigurationForObjectLambdaInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetAccessPointConfigurationForObjectLambdaInput) SetAccountId(v string) *GetAccessPointConfigurationForObjectLambdaInput { +func (s *GetBucketLifecycleConfigurationInput) SetAccountId(v string) *GetBucketLifecycleConfigurationInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *GetAccessPointConfigurationForObjectLambdaInput) SetName(v string) *GetAccessPointConfigurationForObjectLambdaInput { - s.Name = &v +// SetBucket sets the Bucket field's value. +func (s *GetBucketLifecycleConfigurationInput) SetBucket(v string) *GetBucketLifecycleConfigurationInput { + s.Bucket = &v return s } -func (s *GetAccessPointConfigurationForObjectLambdaInput) hostLabels() map[string]string { +func (s *GetBucketLifecycleConfigurationInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type GetAccessPointConfigurationForObjectLambdaOutput struct { - _ struct{} `type:"structure"` - - // Object Lambda Access Point configuration document. - Configuration *ObjectLambdaConfiguration `type:"structure"` +func (s *GetBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetAccessPointConfigurationForObjectLambdaOutput) String() string { - return awsutil.Prettify(s) +func (s *GetBucketLifecycleConfigurationInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetAccessPointConfigurationForObjectLambdaOutput) GoString() string { - return s.String() +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s GetBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil } -// SetConfiguration sets the Configuration field's value. -func (s *GetAccessPointConfigurationForObjectLambdaOutput) SetConfiguration(v *ObjectLambdaConfiguration) *GetAccessPointConfigurationForObjectLambdaOutput { - s.Configuration = v - return s +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s GetBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil } -type GetAccessPointForObjectLambdaInput struct { - _ struct{} `locationName:"GetAccessPointForObjectLambdaRequest" type:"structure"` - - // The account ID for the account that owns the specified Object Lambda Access - // Point. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +type GetBucketLifecycleConfigurationOutput struct { + _ struct{} `type:"structure"` - // The name of the Object Lambda Access Point. - // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // Container for the lifecycle rule of the Outposts bucket. + Rules []*LifecycleRule `locationNameList:"Rule" type:"list"` } // String returns the string representation. @@ -12034,7 +17089,7 @@ type GetAccessPointForObjectLambdaInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointForObjectLambdaInput) String() string { +func (s GetBucketLifecycleConfigurationOutput) String() string { return awsutil.Prettify(s) } @@ -12043,65 +17098,26 @@ func (s GetAccessPointForObjectLambdaInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointForObjectLambdaInput) GoString() string { +func (s GetBucketLifecycleConfigurationOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetAccessPointForObjectLambdaInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAccessPointForObjectLambdaInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAccountId sets the AccountId field's value. -func (s *GetAccessPointForObjectLambdaInput) SetAccountId(v string) *GetAccessPointForObjectLambdaInput { - s.AccountId = &v - return s -} - -// SetName sets the Name field's value. -func (s *GetAccessPointForObjectLambdaInput) SetName(v string) *GetAccessPointForObjectLambdaInput { - s.Name = &v +// SetRules sets the Rules field's value. +func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *GetBucketLifecycleConfigurationOutput { + s.Rules = v return s } -func (s *GetAccessPointForObjectLambdaInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } -} - -type GetAccessPointForObjectLambdaOutput struct { +type GetBucketOutput struct { _ struct{} `type:"structure"` - // The alias of the Object Lambda Access Point. - Alias *ObjectLambdaAccessPointAlias `type:"structure"` + // The Outposts bucket requested. + Bucket *string `min:"3" type:"string"` - // The date and time when the specified Object Lambda Access Point was created. + // The creation date of the Outposts bucket. CreationDate *time.Time `type:"timestamp"` - // The name of the Object Lambda Access Point. - Name *string `min:"3" type:"string"` - - // Configuration to block all public access. This setting is turned on and can - // not be edited. - PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` + PublicAccessBlockEnabled *bool `type:"boolean"` } // String returns the string representation. @@ -12109,7 +17125,7 @@ type GetAccessPointForObjectLambdaOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointForObjectLambdaOutput) String() string { +func (s GetBucketOutput) String() string { return awsutil.Prettify(s) } @@ -12118,59 +17134,50 @@ func (s GetAccessPointForObjectLambdaOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointForObjectLambdaOutput) GoString() string { +func (s GetBucketOutput) GoString() string { return s.String() } -// SetAlias sets the Alias field's value. -func (s *GetAccessPointForObjectLambdaOutput) SetAlias(v *ObjectLambdaAccessPointAlias) *GetAccessPointForObjectLambdaOutput { - s.Alias = v +// SetBucket sets the Bucket field's value. +func (s *GetBucketOutput) SetBucket(v string) *GetBucketOutput { + s.Bucket = &v return s } // SetCreationDate sets the CreationDate field's value. -func (s *GetAccessPointForObjectLambdaOutput) SetCreationDate(v time.Time) *GetAccessPointForObjectLambdaOutput { +func (s *GetBucketOutput) SetCreationDate(v time.Time) *GetBucketOutput { s.CreationDate = &v return s } -// SetName sets the Name field's value. -func (s *GetAccessPointForObjectLambdaOutput) SetName(v string) *GetAccessPointForObjectLambdaOutput { - s.Name = &v - return s -} - -// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. -func (s *GetAccessPointForObjectLambdaOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointForObjectLambdaOutput { - s.PublicAccessBlockConfiguration = v +// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value. +func (s *GetBucketOutput) SetPublicAccessBlockEnabled(v bool) *GetBucketOutput { + s.PublicAccessBlockEnabled = &v return s } -type GetAccessPointInput struct { - _ struct{} `locationName:"GetAccessPointRequest" type:"structure"` +type GetBucketPolicyInput struct { + _ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"` - // The Amazon Web Services account ID for the account that owns the specified - // access point. + // The Amazon Web Services account ID of the Outposts bucket. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the access point whose configuration information you want to - // retrieve. + // Specifies the bucket. // // For using this parameter with Amazon S3 on Outposts with the REST API, you // must specify the name and the x-amz-outpost-id as well. // // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the access point accessed in the - // format arn:aws:s3-outposts:::outpost//accesspoint/. - // For example, to access the access point reports-ap through Outpost my-outpost - // owned by account 123456789012 in Region us-west-2, use the URL encoding of - // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. + // SDK and CLI, you must specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through Outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. // The value must be URL encoded. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -12178,7 +17185,7 @@ type GetAccessPointInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointInput) String() string { +func (s GetBucketPolicyInput) String() string { return awsutil.Prettify(s) } @@ -12187,24 +17194,24 @@ func (s GetAccessPointInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointInput) GoString() string { +func (s GetBucketPolicyInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetAccessPointInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAccessPointInput"} +func (s *GetBucketPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } if invalidParams.Len() > 0 { @@ -12214,35 +17221,35 @@ func (s *GetAccessPointInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetAccessPointInput) SetAccountId(v string) *GetAccessPointInput { +func (s *GetBucketPolicyInput) SetAccountId(v string) *GetBucketPolicyInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *GetAccessPointInput) SetName(v string) *GetAccessPointInput { - s.Name = &v +// SetBucket sets the Bucket field's value. +func (s *GetBucketPolicyInput) SetBucket(v string) *GetBucketPolicyInput { + s.Bucket = &v return s } -func (s *GetAccessPointInput) hostLabels() map[string]string { +func (s *GetBucketPolicyInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *GetAccessPointInput) getEndpointARN() (arn.Resource, error) { - if s.Name == nil { - return nil, fmt.Errorf("member Name is nil") +func (s *GetBucketPolicyInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") } - return parseEndpointARN(*s.Name) + return parseEndpointARN(*s.Bucket) } -func (s *GetAccessPointInput) hasEndpointARN() bool { - if s.Name == nil { +func (s *GetBucketPolicyInput) hasEndpointARN() bool { + if s.Bucket == nil { return false } - return arn.IsARN(*s.Name) + return arn.IsARN(*s.Bucket) } // updateArnableField updates the value of the input field that @@ -12250,11 +17257,11 @@ func (s *GetAccessPointInput) hasEndpointARN() bool { // the parsed resource name from ARN into the input member. // It returns a pointer to a modified copy of input and an error. // Note that original input is not modified. -func (s GetAccessPointInput) updateArnableField(v string) (interface{}, error) { - if s.Name == nil { - return nil, fmt.Errorf("member Name is nil") +func (s GetBucketPolicyInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") } - s.Name = aws.String(v) + s.Bucket = aws.String(v) return &s, nil } @@ -12262,7 +17269,7 @@ func (s GetAccessPointInput) updateArnableField(v string) (interface{}, error) { // if account id is not provided, we update the account id in modified input // if account id is provided, but doesn't match with the one in ARN, we throw an error // if account id is not updated, we return nil. Note that original input is not modified. -func (s GetAccessPointInput) updateAccountID(accountId string) (interface{}, error) { +func (s GetBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) { if s.AccountId == nil { s.AccountId = aws.String(accountId) return &s, nil @@ -12272,55 +17279,11 @@ func (s GetAccessPointInput) updateAccountID(accountId string) (interface{}, err return nil, nil } -type GetAccessPointOutput struct { +type GetBucketPolicyOutput struct { _ struct{} `type:"structure"` - // The ARN of the access point. - AccessPointArn *string `min:"4" type:"string"` - - // The name or alias of the access point. - Alias *string `type:"string"` - - // The name of the bucket associated with the specified access point. - Bucket *string `min:"3" type:"string"` - - // The Amazon Web Services account ID associated with the S3 bucket associated - // with this access point. - BucketAccountId *string `type:"string"` - - // The date and time when the specified access point was created. - CreationDate *time.Time `type:"timestamp"` - - // The VPC endpoint for the access point. - Endpoints map[string]*string `type:"map"` - - // The name of the specified access point. - Name *string `min:"3" type:"string"` - - // Indicates whether this access point allows access from the public internet. - // If VpcConfiguration is specified for this access point, then NetworkOrigin - // is VPC, and the access point doesn't allow access from the public internet. - // Otherwise, NetworkOrigin is Internet, and the access point allows access - // from the public internet, subject to the access point and bucket access policies. - // - // This will always be true for an Amazon S3 on Outposts access point - NetworkOrigin *string `type:"string" enum:"NetworkOrigin"` - - // The PublicAccessBlock configuration that you want to apply to this Amazon - // S3 account. You can enable the configuration options in any combination. - // For more information about when Amazon S3 considers a bucket or object public, - // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) - // in the Amazon S3 User Guide. - // - // This data type is not supported for Amazon S3 on Outposts. - PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` - - // Contains the virtual private cloud (VPC) configuration for the specified - // access point. - // - // This element is empty if this access point is an Amazon S3 on Outposts access - // point that is used by other Amazon Web Services. - VpcConfiguration *VpcConfiguration `type:"structure"` + // The policy of the Outposts bucket. + Policy *string `type:"string"` } // String returns the string representation. @@ -12328,7 +17291,7 @@ type GetAccessPointOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointOutput) String() string { +func (s GetBucketPolicyOutput) String() string { return awsutil.Prettify(s) } @@ -12337,83 +17300,38 @@ func (s GetAccessPointOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointOutput) GoString() string { +func (s GetBucketPolicyOutput) GoString() string { return s.String() } -// SetAccessPointArn sets the AccessPointArn field's value. -func (s *GetAccessPointOutput) SetAccessPointArn(v string) *GetAccessPointOutput { - s.AccessPointArn = &v - return s -} - -// SetAlias sets the Alias field's value. -func (s *GetAccessPointOutput) SetAlias(v string) *GetAccessPointOutput { - s.Alias = &v - return s -} - -// SetBucket sets the Bucket field's value. -func (s *GetAccessPointOutput) SetBucket(v string) *GetAccessPointOutput { - s.Bucket = &v - return s -} - -// SetBucketAccountId sets the BucketAccountId field's value. -func (s *GetAccessPointOutput) SetBucketAccountId(v string) *GetAccessPointOutput { - s.BucketAccountId = &v - return s -} - -// SetCreationDate sets the CreationDate field's value. -func (s *GetAccessPointOutput) SetCreationDate(v time.Time) *GetAccessPointOutput { - s.CreationDate = &v - return s -} - -// SetEndpoints sets the Endpoints field's value. -func (s *GetAccessPointOutput) SetEndpoints(v map[string]*string) *GetAccessPointOutput { - s.Endpoints = v - return s -} - -// SetName sets the Name field's value. -func (s *GetAccessPointOutput) SetName(v string) *GetAccessPointOutput { - s.Name = &v - return s -} - -// SetNetworkOrigin sets the NetworkOrigin field's value. -func (s *GetAccessPointOutput) SetNetworkOrigin(v string) *GetAccessPointOutput { - s.NetworkOrigin = &v - return s -} - -// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. -func (s *GetAccessPointOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointOutput { - s.PublicAccessBlockConfiguration = v - return s -} - -// SetVpcConfiguration sets the VpcConfiguration field's value. -func (s *GetAccessPointOutput) SetVpcConfiguration(v *VpcConfiguration) *GetAccessPointOutput { - s.VpcConfiguration = v +// SetPolicy sets the Policy field's value. +func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput { + s.Policy = &v return s } -type GetAccessPointPolicyForObjectLambdaInput struct { - _ struct{} `locationName:"GetAccessPointPolicyForObjectLambdaRequest" type:"structure"` +type GetBucketReplicationInput struct { + _ struct{} `locationName:"GetBucketReplicationRequest" type:"structure"` - // The account ID for the account that owns the specified Object Lambda Access - // Point. + // The Amazon Web Services account ID of the Outposts bucket. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the Object Lambda Access Point. + // Specifies the bucket to get the replication information for. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. + // + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through Outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -12421,7 +17339,7 @@ type GetAccessPointPolicyForObjectLambdaInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyForObjectLambdaInput) String() string { +func (s GetBucketReplicationInput) String() string { return awsutil.Prettify(s) } @@ -12430,24 +17348,24 @@ func (s GetAccessPointPolicyForObjectLambdaInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyForObjectLambdaInput) GoString() string { +func (s GetBucketReplicationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetAccessPointPolicyForObjectLambdaInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyForObjectLambdaInput"} +func (s *GetBucketReplicationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketReplicationInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } if invalidParams.Len() > 0 { @@ -12457,28 +17375,71 @@ func (s *GetAccessPointPolicyForObjectLambdaInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyForObjectLambdaInput { +func (s *GetBucketReplicationInput) SetAccountId(v string) *GetBucketReplicationInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *GetAccessPointPolicyForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyForObjectLambdaInput { - s.Name = &v +// SetBucket sets the Bucket field's value. +func (s *GetBucketReplicationInput) SetBucket(v string) *GetBucketReplicationInput { + s.Bucket = &v return s } -func (s *GetAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string { +func (s *GetBucketReplicationInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type GetAccessPointPolicyForObjectLambdaOutput struct { +func (s *GetBucketReplicationInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *GetBucketReplicationInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s GetBucketReplicationInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s GetBucketReplicationInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil +} + +type GetBucketReplicationOutput struct { _ struct{} `type:"structure"` - // Object Lambda Access Point resource policy document. - Policy *string `type:"string"` + // A container for one or more replication rules. A replication configuration + // must have at least one rule and you can add up to 100 rules. The maximum + // size of a replication configuration is 128 KB. + ReplicationConfiguration *ReplicationConfiguration `type:"structure"` } // String returns the string representation. @@ -12486,7 +17447,7 @@ type GetAccessPointPolicyForObjectLambdaOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyForObjectLambdaOutput) String() string { +func (s GetBucketReplicationOutput) String() string { return awsutil.Prettify(s) } @@ -12495,39 +17456,38 @@ func (s GetAccessPointPolicyForObjectLambdaOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyForObjectLambdaOutput) GoString() string { +func (s GetBucketReplicationOutput) GoString() string { return s.String() } -// SetPolicy sets the Policy field's value. -func (s *GetAccessPointPolicyForObjectLambdaOutput) SetPolicy(v string) *GetAccessPointPolicyForObjectLambdaOutput { - s.Policy = &v +// SetReplicationConfiguration sets the ReplicationConfiguration field's value. +func (s *GetBucketReplicationOutput) SetReplicationConfiguration(v *ReplicationConfiguration) *GetBucketReplicationOutput { + s.ReplicationConfiguration = v return s } -type GetAccessPointPolicyInput struct { - _ struct{} `locationName:"GetAccessPointPolicyRequest" type:"structure"` +type GetBucketTaggingInput struct { + _ struct{} `locationName:"GetBucketTaggingRequest" type:"structure"` - // The account ID for the account that owns the specified access point. + // The Amazon Web Services account ID of the Outposts bucket. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the access point whose policy you want to retrieve. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. + // Specifies the bucket. // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the access point accessed in the - // format arn:aws:s3-outposts:::outpost//accesspoint/. - // For example, to access the access point reports-ap through Outpost my-outpost - // owned by account 123456789012 in Region us-west-2, use the URL encoding of - // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. + // For using this parameter with Amazon S3 on Outposts with the REST API, you + // must specify the name and the x-amz-outpost-id as well. + // + // For using this parameter with S3 on Outposts with the Amazon Web Services + // SDK and CLI, you must specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through Outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. // The value must be URL encoded. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -12535,7 +17495,7 @@ type GetAccessPointPolicyInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyInput) String() string { +func (s GetBucketTaggingInput) String() string { return awsutil.Prettify(s) } @@ -12544,24 +17504,24 @@ func (s GetAccessPointPolicyInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyInput) GoString() string { +func (s GetBucketTaggingInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetAccessPointPolicyInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyInput"} +func (s *GetBucketTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketTaggingInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } if invalidParams.Len() > 0 { @@ -12571,35 +17531,35 @@ func (s *GetAccessPointPolicyInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetAccessPointPolicyInput) SetAccountId(v string) *GetAccessPointPolicyInput { +func (s *GetBucketTaggingInput) SetAccountId(v string) *GetBucketTaggingInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *GetAccessPointPolicyInput) SetName(v string) *GetAccessPointPolicyInput { - s.Name = &v +// SetBucket sets the Bucket field's value. +func (s *GetBucketTaggingInput) SetBucket(v string) *GetBucketTaggingInput { + s.Bucket = &v return s } -func (s *GetAccessPointPolicyInput) hostLabels() map[string]string { +func (s *GetBucketTaggingInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *GetAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) { - if s.Name == nil { - return nil, fmt.Errorf("member Name is nil") +func (s *GetBucketTaggingInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") } - return parseEndpointARN(*s.Name) + return parseEndpointARN(*s.Bucket) } -func (s *GetAccessPointPolicyInput) hasEndpointARN() bool { - if s.Name == nil { +func (s *GetBucketTaggingInput) hasEndpointARN() bool { + if s.Bucket == nil { return false } - return arn.IsARN(*s.Name) + return arn.IsARN(*s.Bucket) } // updateArnableField updates the value of the input field that @@ -12607,11 +17567,11 @@ func (s *GetAccessPointPolicyInput) hasEndpointARN() bool { // the parsed resource name from ARN into the input member. // It returns a pointer to a modified copy of input and an error. // Note that original input is not modified. -func (s GetAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) { - if s.Name == nil { - return nil, fmt.Errorf("member Name is nil") +func (s GetBucketTaggingInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") } - s.Name = aws.String(v) + s.Bucket = aws.String(v) return &s, nil } @@ -12619,7 +17579,7 @@ func (s GetAccessPointPolicyInput) updateArnableField(v string) (interface{}, er // if account id is not provided, we update the account id in modified input // if account id is provided, but doesn't match with the one in ARN, we throw an error // if account id is not updated, we return nil. Note that original input is not modified. -func (s GetAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) { +func (s GetBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) { if s.AccountId == nil { s.AccountId = aws.String(accountId) return &s, nil @@ -12629,11 +17589,13 @@ func (s GetAccessPointPolicyInput) updateAccountID(accountId string) (interface{ return nil, nil } -type GetAccessPointPolicyOutput struct { +type GetBucketTaggingOutput struct { _ struct{} `type:"structure"` - // The access point policy associated with the specified access point. - Policy *string `type:"string"` + // The tags set of the Outposts bucket. + // + // TagSet is a required field + TagSet []*S3Tag `type:"list" required:"true"` } // String returns the string representation. @@ -12641,7 +17603,7 @@ type GetAccessPointPolicyOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyOutput) String() string { +func (s GetBucketTaggingOutput) String() string { return awsutil.Prettify(s) } @@ -12650,29 +17612,28 @@ func (s GetAccessPointPolicyOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyOutput) GoString() string { +func (s GetBucketTaggingOutput) GoString() string { return s.String() } -// SetPolicy sets the Policy field's value. -func (s *GetAccessPointPolicyOutput) SetPolicy(v string) *GetAccessPointPolicyOutput { - s.Policy = &v +// SetTagSet sets the TagSet field's value. +func (s *GetBucketTaggingOutput) SetTagSet(v []*S3Tag) *GetBucketTaggingOutput { + s.TagSet = v return s } -type GetAccessPointPolicyStatusForObjectLambdaInput struct { - _ struct{} `locationName:"GetAccessPointPolicyStatusForObjectLambdaRequest" type:"structure"` +type GetBucketVersioningInput struct { + _ struct{} `locationName:"GetBucketVersioningRequest" type:"structure"` - // The account ID for the account that owns the specified Object Lambda Access - // Point. + // The Amazon Web Services account ID of the S3 on Outposts bucket. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the Object Lambda Access Point. + // The S3 on Outposts bucket to return the versioning state for. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -12680,7 +17641,7 @@ type GetAccessPointPolicyStatusForObjectLambdaInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyStatusForObjectLambdaInput) String() string { +func (s GetBucketVersioningInput) String() string { return awsutil.Prettify(s) } @@ -12689,24 +17650,24 @@ func (s GetAccessPointPolicyStatusForObjectLambdaInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyStatusForObjectLambdaInput) GoString() string { +func (s GetBucketVersioningInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetAccessPointPolicyStatusForObjectLambdaInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusForObjectLambdaInput"} +func (s *GetBucketVersioningInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketVersioningInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } if invalidParams.Len() > 0 { @@ -12716,31 +17677,75 @@ func (s *GetAccessPointPolicyStatusForObjectLambdaInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyStatusForObjectLambdaInput { +func (s *GetBucketVersioningInput) SetAccountId(v string) *GetBucketVersioningInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyStatusForObjectLambdaInput { - s.Name = &v +// SetBucket sets the Bucket field's value. +func (s *GetBucketVersioningInput) SetBucket(v string) *GetBucketVersioningInput { + s.Bucket = &v return s } -func (s *GetAccessPointPolicyStatusForObjectLambdaInput) hostLabels() map[string]string { +func (s *GetBucketVersioningInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type GetAccessPointPolicyStatusForObjectLambdaOutput struct { +func (s *GetBucketVersioningInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *GetBucketVersioningInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s GetBucketVersioningInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +// updateAccountID returns a pointer to a modified copy of input, +// if account id is not provided, we update the account id in modified input +// if account id is provided, but doesn't match with the one in ARN, we throw an error +// if account id is not updated, we return nil. Note that original input is not modified. +func (s GetBucketVersioningInput) updateAccountID(accountId string) (interface{}, error) { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + return &s, nil + } else if *s.AccountId != accountId { + return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil, nil +} + +type GetBucketVersioningOutput struct { _ struct{} `type:"structure"` - // Indicates whether this access point policy is public. For more information - // about how Amazon S3 evaluates policies to determine whether they are public, - // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) - // in the Amazon S3 User Guide. - PolicyStatus *PolicyStatus `type:"structure"` + // Specifies whether MFA delete is enabled in the bucket versioning configuration. + // This element is returned only if the bucket has been configured with MFA + // delete. If MFA delete has never been configured for the bucket, this element + // is not returned. + MFADelete *string `locationName:"MfaDelete" type:"string" enum:"MFADeleteStatus"` + + // The versioning state of the S3 on Outposts bucket. + Status *string `type:"string" enum:"BucketVersioningStatus"` } // String returns the string representation. @@ -12748,7 +17753,7 @@ type GetAccessPointPolicyStatusForObjectLambdaOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyStatusForObjectLambdaOutput) String() string { +func (s GetBucketVersioningOutput) String() string { return awsutil.Prettify(s) } @@ -12757,28 +17762,71 @@ func (s GetAccessPointPolicyStatusForObjectLambdaOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyStatusForObjectLambdaOutput) GoString() string { +func (s GetBucketVersioningOutput) GoString() string { return s.String() } -// SetPolicyStatus sets the PolicyStatus field's value. -func (s *GetAccessPointPolicyStatusForObjectLambdaOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusForObjectLambdaOutput { - s.PolicyStatus = v +// SetMFADelete sets the MFADelete field's value. +func (s *GetBucketVersioningOutput) SetMFADelete(v string) *GetBucketVersioningOutput { + s.MFADelete = &v return s } -type GetAccessPointPolicyStatusInput struct { - _ struct{} `locationName:"GetAccessPointPolicyStatusRequest" type:"structure"` +// SetStatus sets the Status field's value. +func (s *GetBucketVersioningOutput) SetStatus(v string) *GetBucketVersioningOutput { + s.Status = &v + return s +} - // The account ID for the account that owns the specified access point. +type GetDataAccessInput struct { + _ struct{} `locationName:"GetDataAccessRequest" type:"structure"` + + // The ID of the Amazon Web Services account that is making this request. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the access point whose policy status you want to retrieve. + // The session duration, in seconds, of the temporary access credential that + // S3 Access Grants vends to the grantee or client application. The default + // value is 1 hour, but the grantee can specify a range from 900 seconds (15 + // minutes) up to 43200 seconds (12 hours). If the grantee requests a value + // higher than this maximum, the operation fails. + DurationSeconds *int64 `location:"querystring" locationName:"durationSeconds" min:"900" type:"integer"` + + // The type of permission granted to your S3 data, which can be set to one of + // the following values: // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // * READ – Grant read-only access to the S3 data. + // + // * WRITE – Grant write-only access to the S3 data. + // + // * READWRITE – Grant both read and write access to the S3 data. + // + // Permission is a required field + Permission *string `location:"querystring" locationName:"permission" type:"string" required:"true" enum:"Permission"` + + // The scope of the temporary access credential that S3 Access Grants vends + // to the grantee or client application. + // + // * Default – The scope of the returned temporary access token is the + // scope of the grant that is closest to the target scope. + // + // * Minimal – The scope of the returned temporary access token is the + // same as the requested target scope as long as the requested scope is the + // same as or a subset of the grant scope. + Privilege *string `location:"querystring" locationName:"privilege" type:"string" enum:"Privilege"` + + // The S3 URI path of the data to which you are requesting temporary access + // credentials. If the requesting account has an access grant for this data, + // S3 Access Grants vends temporary access credentials in the response. + // + // Target is a required field + Target *string `location:"querystring" locationName:"target" min:"1" type:"string" required:"true"` + + // The type of Target. The only possible value is Object. Pass this value if + // the target data that you would like to access is a path to an object. Do + // not pass this value if the target data is a bucket or a bucket and a prefix. + TargetType *string `location:"querystring" locationName:"targetType" type:"string" enum:"S3PrefixType"` } // String returns the string representation. @@ -12786,7 +17834,7 @@ type GetAccessPointPolicyStatusInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyStatusInput) String() string { +func (s GetDataAccessInput) String() string { return awsutil.Prettify(s) } @@ -12795,24 +17843,30 @@ func (s GetAccessPointPolicyStatusInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyStatusInput) GoString() string { +func (s GetDataAccessInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetAccessPointPolicyStatusInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusInput"} +func (s *GetDataAccessInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetDataAccessInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.DurationSeconds != nil && *s.DurationSeconds < 900 { + invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900)) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.Permission == nil { + invalidParams.Add(request.NewErrParamRequired("Permission")) + } + 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 { @@ -12822,28 +17876,60 @@ func (s *GetAccessPointPolicyStatusInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetAccessPointPolicyStatusInput) SetAccountId(v string) *GetAccessPointPolicyStatusInput { +func (s *GetDataAccessInput) SetAccountId(v string) *GetDataAccessInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *GetAccessPointPolicyStatusInput) SetName(v string) *GetAccessPointPolicyStatusInput { - s.Name = &v +// SetDurationSeconds sets the DurationSeconds field's value. +func (s *GetDataAccessInput) SetDurationSeconds(v int64) *GetDataAccessInput { + s.DurationSeconds = &v return s } -func (s *GetAccessPointPolicyStatusInput) hostLabels() map[string]string { +// SetPermission sets the Permission field's value. +func (s *GetDataAccessInput) SetPermission(v string) *GetDataAccessInput { + s.Permission = &v + return s +} + +// SetPrivilege sets the Privilege field's value. +func (s *GetDataAccessInput) SetPrivilege(v string) *GetDataAccessInput { + s.Privilege = &v + return s +} + +// SetTarget sets the Target field's value. +func (s *GetDataAccessInput) SetTarget(v string) *GetDataAccessInput { + s.Target = &v + return s +} + +// SetTargetType sets the TargetType field's value. +func (s *GetDataAccessInput) SetTargetType(v string) *GetDataAccessInput { + s.TargetType = &v + return s +} + +func (s *GetDataAccessInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type GetAccessPointPolicyStatusOutput struct { +type GetDataAccessOutput struct { _ struct{} `type:"structure"` - // Indicates the current policy status of the specified access point. - PolicyStatus *PolicyStatus `type:"structure"` + // The temporary credential token that S3 Access Grants vends. + // + // Credentials is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetDataAccessOutput's + // String and GoString methods. + Credentials *Credentials `type:"structure" sensitive:"true"` + + // The S3 URI path of the data to which you are being granted temporary access + // credentials. + MatchedGrantTarget *string `min:"1" type:"string"` } // String returns the string representation. @@ -12851,7 +17937,7 @@ type GetAccessPointPolicyStatusOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyStatusOutput) String() string { +func (s GetDataAccessOutput) String() string { return awsutil.Prettify(s) } @@ -12860,38 +17946,35 @@ func (s GetAccessPointPolicyStatusOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetAccessPointPolicyStatusOutput) GoString() string { +func (s GetDataAccessOutput) GoString() string { return s.String() } -// SetPolicyStatus sets the PolicyStatus field's value. -func (s *GetAccessPointPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusOutput { - s.PolicyStatus = v +// SetCredentials sets the Credentials field's value. +func (s *GetDataAccessOutput) SetCredentials(v *Credentials) *GetDataAccessOutput { + s.Credentials = v return s } -type GetBucketInput struct { - _ struct{} `locationName:"GetBucketRequest" type:"structure"` +// SetMatchedGrantTarget sets the MatchedGrantTarget field's value. +func (s *GetDataAccessOutput) SetMatchedGrantTarget(v string) *GetDataAccessOutput { + s.MatchedGrantTarget = &v + return s +} - // The Amazon Web Services account ID of the Outposts bucket. +type GetJobTaggingInput struct { + _ struct{} `locationName:"GetJobTaggingRequest" type:"structure"` + + // The Amazon Web Services account ID associated with the S3 Batch Operations + // job. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Specifies the bucket. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the bucket accessed in the format - // arn:aws:s3-outposts:::outpost//bucket/. - // For example, to access the bucket reports through Outpost my-outpost owned - // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. - // The value must be URL encoded. + // The ID for the S3 Batch Operations job whose tags you want to retrieve. // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // JobId is a required field + JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` } // String returns the string representation. @@ -12899,7 +17982,7 @@ type GetBucketInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketInput) String() string { +func (s GetJobTaggingInput) String() string { return awsutil.Prettify(s) } @@ -12908,24 +17991,24 @@ func (s GetBucketInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketInput) GoString() string { +func (s GetJobTaggingInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetBucketInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetBucketInput"} +func (s *GetJobTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetJobTaggingInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) + if s.JobId == nil { + invalidParams.Add(request.NewErrParamRequired("JobId")) } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + if s.JobId != nil && len(*s.JobId) < 5 { + invalidParams.Add(request.NewErrParamMinLen("JobId", 5)) } if invalidParams.Len() > 0 { @@ -12935,86 +18018,72 @@ func (s *GetBucketInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetBucketInput) SetAccountId(v string) *GetBucketInput { +func (s *GetJobTaggingInput) SetAccountId(v string) *GetJobTaggingInput { s.AccountId = &v return s } -// SetBucket sets the Bucket field's value. -func (s *GetBucketInput) SetBucket(v string) *GetBucketInput { - s.Bucket = &v +// SetJobId sets the JobId field's value. +func (s *GetJobTaggingInput) SetJobId(v string) *GetJobTaggingInput { + s.JobId = &v return s } -func (s *GetBucketInput) hostLabels() map[string]string { +func (s *GetJobTaggingInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *GetBucketInput) getEndpointARN() (arn.Resource, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - return parseEndpointARN(*s.Bucket) +type GetJobTaggingOutput struct { + _ struct{} `type:"structure"` + + // The set of tags associated with the S3 Batch Operations job. + Tags []*S3Tag `type:"list"` } -func (s *GetBucketInput) hasEndpointARN() bool { - if s.Bucket == nil { - return false - } - return arn.IsARN(*s.Bucket) +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetJobTaggingOutput) String() string { + return awsutil.Prettify(s) } -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s GetBucketInput) updateArnableField(v string) (interface{}, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - s.Bucket = aws.String(v) - return &s, nil +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetJobTaggingOutput) GoString() string { + return s.String() } -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s GetBucketInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil +// SetTags sets the Tags field's value. +func (s *GetJobTaggingOutput) SetTags(v []*S3Tag) *GetJobTaggingOutput { + s.Tags = v + return s } -type GetBucketLifecycleConfigurationInput struct { - _ struct{} `locationName:"GetBucketLifecycleConfigurationRequest" type:"structure"` +type GetMultiRegionAccessPointInput struct { + _ struct{} `locationName:"GetMultiRegionAccessPointRequest" type:"structure"` - // The Amazon Web Services account ID of the Outposts bucket. + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The Amazon Resource Name (ARN) of the bucket. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the bucket accessed in the format - // arn:aws:s3-outposts:::outpost//bucket/. - // For example, to access the bucket reports through Outpost my-outpost owned - // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. - // The value must be URL encoded. + // The name of the Multi-Region Access Point whose configuration information + // you want to receive. The name of the Multi-Region Access Point is different + // from the alias. For more information about the distinction between the name + // and the alias of an Multi-Region Access Point, see Managing Multi-Region + // Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming) + // in the Amazon S3 User Guide. // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // Name is a required field + Name *string `location:"uri" locationName:"name" type:"string" required:"true"` } // String returns the string representation. @@ -13022,7 +18091,7 @@ type GetBucketLifecycleConfigurationInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketLifecycleConfigurationInput) String() string { +func (s GetMultiRegionAccessPointInput) String() string { return awsutil.Prettify(s) } @@ -13031,24 +18100,24 @@ func (s GetBucketLifecycleConfigurationInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketLifecycleConfigurationInput) GoString() string { +func (s GetMultiRegionAccessPointInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetBucketLifecycleConfigurationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleConfigurationInput"} +func (s *GetMultiRegionAccessPointInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } if invalidParams.Len() > 0 { @@ -13058,69 +18127,72 @@ func (s *GetBucketLifecycleConfigurationInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetBucketLifecycleConfigurationInput) SetAccountId(v string) *GetBucketLifecycleConfigurationInput { +func (s *GetMultiRegionAccessPointInput) SetAccountId(v string) *GetMultiRegionAccessPointInput { s.AccountId = &v return s } -// SetBucket sets the Bucket field's value. -func (s *GetBucketLifecycleConfigurationInput) SetBucket(v string) *GetBucketLifecycleConfigurationInput { - s.Bucket = &v +// SetName sets the Name field's value. +func (s *GetMultiRegionAccessPointInput) SetName(v string) *GetMultiRegionAccessPointInput { + s.Name = &v return s } -func (s *GetBucketLifecycleConfigurationInput) hostLabels() map[string]string { +func (s *GetMultiRegionAccessPointInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *GetBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - return parseEndpointARN(*s.Bucket) +type GetMultiRegionAccessPointOutput struct { + _ struct{} `type:"structure"` + + // A container element containing the details of the requested Multi-Region + // Access Point. + AccessPoint *MultiRegionAccessPointReport `type:"structure"` } -func (s *GetBucketLifecycleConfigurationInput) hasEndpointARN() bool { - if s.Bucket == nil { - return false - } - return arn.IsARN(*s.Bucket) +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMultiRegionAccessPointOutput) String() string { + return awsutil.Prettify(s) } -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s GetBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - s.Bucket = aws.String(v) - return &s, nil +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMultiRegionAccessPointOutput) GoString() string { + return s.String() } -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s GetBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil +// SetAccessPoint sets the AccessPoint field's value. +func (s *GetMultiRegionAccessPointOutput) SetAccessPoint(v *MultiRegionAccessPointReport) *GetMultiRegionAccessPointOutput { + s.AccessPoint = v + return s } -type GetBucketLifecycleConfigurationOutput struct { - _ struct{} `type:"structure"` +type GetMultiRegionAccessPointPolicyInput struct { + _ struct{} `locationName:"GetMultiRegionAccessPointPolicyRequest" type:"structure"` - // Container for the lifecycle rule of the Outposts bucket. - Rules []*LifecycleRule `locationNameList:"Rule" type:"list"` + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // Specifies the Multi-Region Access Point. The name of the Multi-Region Access + // Point is different from the alias. For more information about the distinction + // between the name and the alias of an Multi-Region Access Point, see Managing + // Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming) + // in the Amazon S3 User Guide. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" type:"string" required:"true"` } // String returns the string representation. @@ -13128,35 +18200,64 @@ type GetBucketLifecycleConfigurationOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketLifecycleConfigurationOutput) String() string { +func (s GetMultiRegionAccessPointPolicyInput) String() string { return awsutil.Prettify(s) } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetBucketLifecycleConfigurationOutput) GoString() string { - return s.String() +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMultiRegionAccessPointPolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetMultiRegionAccessPointPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointPolicyInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 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 } -// SetRules sets the Rules field's value. -func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *GetBucketLifecycleConfigurationOutput { - s.Rules = v +// SetAccountId sets the AccountId field's value. +func (s *GetMultiRegionAccessPointPolicyInput) SetAccountId(v string) *GetMultiRegionAccessPointPolicyInput { + s.AccountId = &v return s } -type GetBucketOutput struct { - _ struct{} `type:"structure"` +// SetName sets the Name field's value. +func (s *GetMultiRegionAccessPointPolicyInput) SetName(v string) *GetMultiRegionAccessPointPolicyInput { + s.Name = &v + return s +} - // The Outposts bucket requested. - Bucket *string `min:"3" type:"string"` +func (s *GetMultiRegionAccessPointPolicyInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} - // The creation date of the Outposts bucket. - CreationDate *time.Time `type:"timestamp"` +type GetMultiRegionAccessPointPolicyOutput struct { + _ struct{} `type:"structure"` - PublicAccessBlockEnabled *bool `type:"boolean"` + // The policy associated with the specified Multi-Region Access Point. + Policy *MultiRegionAccessPointPolicyDocument `type:"structure"` } // String returns the string representation. @@ -13164,7 +18265,7 @@ type GetBucketOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketOutput) String() string { +func (s GetMultiRegionAccessPointPolicyOutput) String() string { return awsutil.Prettify(s) } @@ -13173,50 +18274,33 @@ func (s GetBucketOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketOutput) GoString() string { +func (s GetMultiRegionAccessPointPolicyOutput) GoString() string { return s.String() } -// SetBucket sets the Bucket field's value. -func (s *GetBucketOutput) SetBucket(v string) *GetBucketOutput { - s.Bucket = &v - return s -} - -// SetCreationDate sets the CreationDate field's value. -func (s *GetBucketOutput) SetCreationDate(v time.Time) *GetBucketOutput { - s.CreationDate = &v - return s -} - -// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value. -func (s *GetBucketOutput) SetPublicAccessBlockEnabled(v bool) *GetBucketOutput { - s.PublicAccessBlockEnabled = &v +// SetPolicy sets the Policy field's value. +func (s *GetMultiRegionAccessPointPolicyOutput) SetPolicy(v *MultiRegionAccessPointPolicyDocument) *GetMultiRegionAccessPointPolicyOutput { + s.Policy = v return s } -type GetBucketPolicyInput struct { - _ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"` +type GetMultiRegionAccessPointPolicyStatusInput struct { + _ struct{} `locationName:"GetMultiRegionAccessPointPolicyStatusRequest" type:"structure"` - // The Amazon Web Services account ID of the Outposts bucket. + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Specifies the bucket. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the bucket accessed in the format - // arn:aws:s3-outposts:::outpost//bucket/. - // For example, to access the bucket reports through Outpost my-outpost owned - // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. - // The value must be URL encoded. + // Specifies the Multi-Region Access Point. The name of the Multi-Region Access + // Point is different from the alias. For more information about the distinction + // between the name and the alias of an Multi-Region Access Point, see Managing + // Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming) + // in the Amazon S3 User Guide. // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // Name is a required field + Name *string `location:"uri" locationName:"name" type:"string" required:"true"` } // String returns the string representation. @@ -13224,7 +18308,7 @@ type GetBucketPolicyInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketPolicyInput) String() string { +func (s GetMultiRegionAccessPointPolicyStatusInput) String() string { return awsutil.Prettify(s) } @@ -13233,24 +18317,24 @@ func (s GetBucketPolicyInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketPolicyInput) GoString() string { +func (s GetMultiRegionAccessPointPolicyStatusInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetBucketPolicyInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyInput"} +func (s *GetMultiRegionAccessPointPolicyStatusInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointPolicyStatusInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } if invalidParams.Len() > 0 { @@ -13260,69 +18344,31 @@ func (s *GetBucketPolicyInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetBucketPolicyInput) SetAccountId(v string) *GetBucketPolicyInput { +func (s *GetMultiRegionAccessPointPolicyStatusInput) SetAccountId(v string) *GetMultiRegionAccessPointPolicyStatusInput { s.AccountId = &v return s } -// SetBucket sets the Bucket field's value. -func (s *GetBucketPolicyInput) SetBucket(v string) *GetBucketPolicyInput { - s.Bucket = &v +// SetName sets the Name field's value. +func (s *GetMultiRegionAccessPointPolicyStatusInput) SetName(v string) *GetMultiRegionAccessPointPolicyStatusInput { + s.Name = &v return s } -func (s *GetBucketPolicyInput) hostLabels() map[string]string { +func (s *GetMultiRegionAccessPointPolicyStatusInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *GetBucketPolicyInput) getEndpointARN() (arn.Resource, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - return parseEndpointARN(*s.Bucket) -} - -func (s *GetBucketPolicyInput) hasEndpointARN() bool { - if s.Bucket == nil { - return false - } - return arn.IsARN(*s.Bucket) -} - -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s GetBucketPolicyInput) updateArnableField(v string) (interface{}, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - s.Bucket = aws.String(v) - return &s, nil -} - -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s GetBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil -} - -type GetBucketPolicyOutput struct { +type GetMultiRegionAccessPointPolicyStatusOutput struct { _ struct{} `type:"structure"` - // The policy of the Outposts bucket. - Policy *string `type:"string"` + // Indicates whether this access point policy is public. For more information + // about how Amazon S3 evaluates policies to determine whether they are public, + // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + // in the Amazon S3 User Guide. + Established *PolicyStatus `type:"structure"` } // String returns the string representation. @@ -13330,7 +18376,7 @@ type GetBucketPolicyOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketPolicyOutput) String() string { +func (s GetMultiRegionAccessPointPolicyStatusOutput) String() string { return awsutil.Prettify(s) } @@ -13339,38 +18385,29 @@ func (s GetBucketPolicyOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketPolicyOutput) GoString() string { +func (s GetMultiRegionAccessPointPolicyStatusOutput) GoString() string { return s.String() } -// SetPolicy sets the Policy field's value. -func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput { - s.Policy = &v +// SetEstablished sets the Established field's value. +func (s *GetMultiRegionAccessPointPolicyStatusOutput) SetEstablished(v *PolicyStatus) *GetMultiRegionAccessPointPolicyStatusOutput { + s.Established = v return s } -type GetBucketReplicationInput struct { - _ struct{} `locationName:"GetBucketReplicationRequest" type:"structure"` +type GetMultiRegionAccessPointRoutesInput struct { + _ struct{} `locationName:"GetMultiRegionAccessPointRoutesRequest" type:"structure"` - // The Amazon Web Services account ID of the Outposts bucket. + // The Amazon Web Services account ID for the owner of the Multi-Region Access + // Point. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Specifies the bucket to get the replication information for. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the bucket accessed in the format - // arn:aws:s3-outposts:::outpost//bucket/. - // For example, to access the bucket reports through Outpost my-outpost owned - // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. - // The value must be URL encoded. + // The Multi-Region Access Point ARN. // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // Mrap is a required field + Mrap *string `location:"uri" locationName:"mrap" type:"string" required:"true"` } // String returns the string representation. @@ -13378,7 +18415,7 @@ type GetBucketReplicationInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketReplicationInput) String() string { +func (s GetMultiRegionAccessPointRoutesInput) String() string { return awsutil.Prettify(s) } @@ -13387,24 +18424,24 @@ func (s GetBucketReplicationInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketReplicationInput) GoString() string { +func (s GetMultiRegionAccessPointRoutesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetBucketReplicationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetBucketReplicationInput"} +func (s *GetMultiRegionAccessPointRoutesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointRoutesInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) + if s.Mrap == nil { + invalidParams.Add(request.NewErrParamRequired("Mrap")) } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + if s.Mrap != nil && len(*s.Mrap) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Mrap", 1)) } if invalidParams.Len() > 0 { @@ -13412,73 +18449,34 @@ func (s *GetBucketReplicationInput) Validate() error { } return nil } - -// SetAccountId sets the AccountId field's value. -func (s *GetBucketReplicationInput) SetAccountId(v string) *GetBucketReplicationInput { - s.AccountId = &v - return s -} - -// SetBucket sets the Bucket field's value. -func (s *GetBucketReplicationInput) SetBucket(v string) *GetBucketReplicationInput { - s.Bucket = &v - return s -} - -func (s *GetBucketReplicationInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } -} - -func (s *GetBucketReplicationInput) getEndpointARN() (arn.Resource, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - return parseEndpointARN(*s.Bucket) -} - -func (s *GetBucketReplicationInput) hasEndpointARN() bool { - if s.Bucket == nil { - return false - } - return arn.IsARN(*s.Bucket) -} - -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s GetBucketReplicationInput) updateArnableField(v string) (interface{}, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - s.Bucket = aws.String(v) - return &s, nil + +// SetAccountId sets the AccountId field's value. +func (s *GetMultiRegionAccessPointRoutesInput) SetAccountId(v string) *GetMultiRegionAccessPointRoutesInput { + s.AccountId = &v + return s } -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s GetBucketReplicationInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") +// SetMrap sets the Mrap field's value. +func (s *GetMultiRegionAccessPointRoutesInput) SetMrap(v string) *GetMultiRegionAccessPointRoutesInput { + s.Mrap = &v + return s +} + +func (s *GetMultiRegionAccessPointRoutesInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), } - return nil, nil } -type GetBucketReplicationOutput struct { +type GetMultiRegionAccessPointRoutesOutput struct { _ struct{} `type:"structure"` - // A container for one or more replication rules. A replication configuration - // must have at least one rule and you can add up to 100 rules. The maximum - // size of a replication configuration is 128 KB. - ReplicationConfiguration *ReplicationConfiguration `type:"structure"` + // The Multi-Region Access Point ARN. + Mrap *string `type:"string"` + + // The different routes that make up the route configuration. Active routes + // return a value of 100, and passive routes return a value of 0. + Routes []*MultiRegionAccessPointRoute `locationNameList:"Route" type:"list"` } // String returns the string representation. @@ -13486,7 +18484,7 @@ type GetBucketReplicationOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketReplicationOutput) String() string { +func (s GetMultiRegionAccessPointRoutesOutput) String() string { return awsutil.Prettify(s) } @@ -13495,38 +18493,30 @@ func (s GetBucketReplicationOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketReplicationOutput) GoString() string { +func (s GetMultiRegionAccessPointRoutesOutput) GoString() string { return s.String() } -// SetReplicationConfiguration sets the ReplicationConfiguration field's value. -func (s *GetBucketReplicationOutput) SetReplicationConfiguration(v *ReplicationConfiguration) *GetBucketReplicationOutput { - s.ReplicationConfiguration = v +// SetMrap sets the Mrap field's value. +func (s *GetMultiRegionAccessPointRoutesOutput) SetMrap(v string) *GetMultiRegionAccessPointRoutesOutput { + s.Mrap = &v return s } -type GetBucketTaggingInput struct { - _ struct{} `locationName:"GetBucketTaggingRequest" type:"structure"` +// SetRoutes sets the Routes field's value. +func (s *GetMultiRegionAccessPointRoutesOutput) SetRoutes(v []*MultiRegionAccessPointRoute) *GetMultiRegionAccessPointRoutesOutput { + s.Routes = v + return s +} - // The Amazon Web Services account ID of the Outposts bucket. +type GetPublicAccessBlockInput struct { + _ struct{} `locationName:"GetPublicAccessBlockRequest" type:"structure"` + + // The account ID for the Amazon Web Services account whose PublicAccessBlock + // configuration you want to retrieve. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - - // Specifies the bucket. - // - // For using this parameter with Amazon S3 on Outposts with the REST API, you - // must specify the name and the x-amz-outpost-id as well. - // - // For using this parameter with S3 on Outposts with the Amazon Web Services - // SDK and CLI, you must specify the ARN of the bucket accessed in the format - // arn:aws:s3-outposts:::outpost//bucket/. - // For example, to access the bucket reports through Outpost my-outpost owned - // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. - // The value must be URL encoded. - // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation. @@ -13534,7 +18524,7 @@ type GetBucketTaggingInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketTaggingInput) String() string { +func (s GetPublicAccessBlockInput) String() string { return awsutil.Prettify(s) } @@ -13543,25 +18533,19 @@ func (s GetBucketTaggingInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketTaggingInput) GoString() string { +func (s GetPublicAccessBlockInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetBucketTaggingInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetBucketTaggingInput"} +func (s *GetPublicAccessBlockInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) - } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) - } if invalidParams.Len() > 0 { return invalidParams @@ -13570,71 +18554,23 @@ func (s *GetBucketTaggingInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetBucketTaggingInput) SetAccountId(v string) *GetBucketTaggingInput { +func (s *GetPublicAccessBlockInput) SetAccountId(v string) *GetPublicAccessBlockInput { s.AccountId = &v return s } -// SetBucket sets the Bucket field's value. -func (s *GetBucketTaggingInput) SetBucket(v string) *GetBucketTaggingInput { - s.Bucket = &v - return s -} - -func (s *GetBucketTaggingInput) hostLabels() map[string]string { +func (s *GetPublicAccessBlockInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *GetBucketTaggingInput) getEndpointARN() (arn.Resource, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - return parseEndpointARN(*s.Bucket) -} - -func (s *GetBucketTaggingInput) hasEndpointARN() bool { - if s.Bucket == nil { - return false - } - return arn.IsARN(*s.Bucket) -} - -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s GetBucketTaggingInput) updateArnableField(v string) (interface{}, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - s.Bucket = aws.String(v) - return &s, nil -} - -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s GetBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil -} - -type GetBucketTaggingOutput struct { - _ struct{} `type:"structure"` +type GetPublicAccessBlockOutput struct { + _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"` - // The tags set of the Outposts bucket. - // - // TagSet is a required field - TagSet []*S3Tag `type:"list" required:"true"` + // The PublicAccessBlock configuration currently in effect for this Amazon Web + // Services account. + PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` } // String returns the string representation. @@ -13642,7 +18578,7 @@ type GetBucketTaggingOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketTaggingOutput) String() string { +func (s GetPublicAccessBlockOutput) String() string { return awsutil.Prettify(s) } @@ -13651,28 +18587,28 @@ func (s GetBucketTaggingOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketTaggingOutput) GoString() string { +func (s GetPublicAccessBlockOutput) GoString() string { return s.String() } -// SetTagSet sets the TagSet field's value. -func (s *GetBucketTaggingOutput) SetTagSet(v []*S3Tag) *GetBucketTaggingOutput { - s.TagSet = v +// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. +func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput { + s.PublicAccessBlockConfiguration = v return s } -type GetBucketVersioningInput struct { - _ struct{} `locationName:"GetBucketVersioningRequest" type:"structure"` +type GetStorageLensConfigurationInput struct { + _ struct{} `locationName:"GetStorageLensConfigurationRequest" type:"structure"` - // The Amazon Web Services account ID of the S3 on Outposts bucket. + // The account ID of the requester. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The S3 on Outposts bucket to return the versioning state for. + // The ID of the Amazon S3 Storage Lens configuration. // - // Bucket is a required field - Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // ConfigId is a required field + ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -13680,7 +18616,7 @@ type GetBucketVersioningInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketVersioningInput) String() string { +func (s GetStorageLensConfigurationInput) String() string { return awsutil.Prettify(s) } @@ -13689,24 +18625,24 @@ func (s GetBucketVersioningInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketVersioningInput) GoString() string { +func (s GetStorageLensConfigurationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetBucketVersioningInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetBucketVersioningInput"} +func (s *GetStorageLensConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) + if s.ConfigId == nil { + invalidParams.Add(request.NewErrParamRequired("ConfigId")) } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + if s.ConfigId != nil && len(*s.ConfigId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1)) } if invalidParams.Len() > 0 { @@ -13716,75 +18652,28 @@ func (s *GetBucketVersioningInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetBucketVersioningInput) SetAccountId(v string) *GetBucketVersioningInput { +func (s *GetStorageLensConfigurationInput) SetAccountId(v string) *GetStorageLensConfigurationInput { s.AccountId = &v return s } -// SetBucket sets the Bucket field's value. -func (s *GetBucketVersioningInput) SetBucket(v string) *GetBucketVersioningInput { - s.Bucket = &v +// SetConfigId sets the ConfigId field's value. +func (s *GetStorageLensConfigurationInput) SetConfigId(v string) *GetStorageLensConfigurationInput { + s.ConfigId = &v return s } -func (s *GetBucketVersioningInput) hostLabels() map[string]string { +func (s *GetStorageLensConfigurationInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -func (s *GetBucketVersioningInput) getEndpointARN() (arn.Resource, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - return parseEndpointARN(*s.Bucket) -} - -func (s *GetBucketVersioningInput) hasEndpointARN() bool { - if s.Bucket == nil { - return false - } - return arn.IsARN(*s.Bucket) -} - -// updateArnableField updates the value of the input field that -// takes an ARN as an input. This method is useful to backfill -// the parsed resource name from ARN into the input member. -// It returns a pointer to a modified copy of input and an error. -// Note that original input is not modified. -func (s GetBucketVersioningInput) updateArnableField(v string) (interface{}, error) { - if s.Bucket == nil { - return nil, fmt.Errorf("member Bucket is nil") - } - s.Bucket = aws.String(v) - return &s, nil -} - -// updateAccountID returns a pointer to a modified copy of input, -// if account id is not provided, we update the account id in modified input -// if account id is provided, but doesn't match with the one in ARN, we throw an error -// if account id is not updated, we return nil. Note that original input is not modified. -func (s GetBucketVersioningInput) updateAccountID(accountId string) (interface{}, error) { - if s.AccountId == nil { - s.AccountId = aws.String(accountId) - return &s, nil - } else if *s.AccountId != accountId { - return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") - } - return nil, nil -} - -type GetBucketVersioningOutput struct { - _ struct{} `type:"structure"` - - // Specifies whether MFA delete is enabled in the bucket versioning configuration. - // This element is returned only if the bucket has been configured with MFA - // delete. If MFA delete has never been configured for the bucket, this element - // is not returned. - MFADelete *string `locationName:"MfaDelete" type:"string" enum:"MFADeleteStatus"` +type GetStorageLensConfigurationOutput struct { + _ struct{} `type:"structure" payload:"StorageLensConfiguration"` - // The versioning state of the S3 on Outposts bucket. - Status *string `type:"string" enum:"BucketVersioningStatus"` + // The S3 Storage Lens configuration requested. + StorageLensConfiguration *StorageLensConfiguration `type:"structure"` } // String returns the string representation. @@ -13792,7 +18681,7 @@ type GetBucketVersioningOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketVersioningOutput) String() string { +func (s GetStorageLensConfigurationOutput) String() string { return awsutil.Prettify(s) } @@ -13801,35 +18690,28 @@ func (s GetBucketVersioningOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetBucketVersioningOutput) GoString() string { +func (s GetStorageLensConfigurationOutput) GoString() string { return s.String() } -// SetMFADelete sets the MFADelete field's value. -func (s *GetBucketVersioningOutput) SetMFADelete(v string) *GetBucketVersioningOutput { - s.MFADelete = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *GetBucketVersioningOutput) SetStatus(v string) *GetBucketVersioningOutput { - s.Status = &v +// SetStorageLensConfiguration sets the StorageLensConfiguration field's value. +func (s *GetStorageLensConfigurationOutput) SetStorageLensConfiguration(v *StorageLensConfiguration) *GetStorageLensConfigurationOutput { + s.StorageLensConfiguration = v return s } -type GetJobTaggingInput struct { - _ struct{} `locationName:"GetJobTaggingRequest" type:"structure"` +type GetStorageLensConfigurationTaggingInput struct { + _ struct{} `locationName:"GetStorageLensConfigurationTaggingRequest" type:"structure"` - // The Amazon Web Services account ID associated with the S3 Batch Operations - // job. + // The account ID of the requester. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The ID for the S3 Batch Operations job whose tags you want to retrieve. + // The ID of the Amazon S3 Storage Lens configuration. // - // JobId is a required field - JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` + // ConfigId is a required field + ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -13837,7 +18719,7 @@ type GetJobTaggingInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetJobTaggingInput) String() string { +func (s GetStorageLensConfigurationTaggingInput) String() string { return awsutil.Prettify(s) } @@ -13846,24 +18728,24 @@ func (s GetJobTaggingInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetJobTaggingInput) GoString() string { +func (s GetStorageLensConfigurationTaggingInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetJobTaggingInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetJobTaggingInput"} +func (s *GetStorageLensConfigurationTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationTaggingInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.JobId == nil { - invalidParams.Add(request.NewErrParamRequired("JobId")) + if s.ConfigId == nil { + invalidParams.Add(request.NewErrParamRequired("ConfigId")) } - if s.JobId != nil && len(*s.JobId) < 5 { - invalidParams.Add(request.NewErrParamMinLen("JobId", 5)) + if s.ConfigId != nil && len(*s.ConfigId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1)) } if invalidParams.Len() > 0 { @@ -13873,28 +18755,28 @@ func (s *GetJobTaggingInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetJobTaggingInput) SetAccountId(v string) *GetJobTaggingInput { +func (s *GetStorageLensConfigurationTaggingInput) SetAccountId(v string) *GetStorageLensConfigurationTaggingInput { s.AccountId = &v return s } -// SetJobId sets the JobId field's value. -func (s *GetJobTaggingInput) SetJobId(v string) *GetJobTaggingInput { - s.JobId = &v +// SetConfigId sets the ConfigId field's value. +func (s *GetStorageLensConfigurationTaggingInput) SetConfigId(v string) *GetStorageLensConfigurationTaggingInput { + s.ConfigId = &v return s } -func (s *GetJobTaggingInput) hostLabels() map[string]string { +func (s *GetStorageLensConfigurationTaggingInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type GetJobTaggingOutput struct { +type GetStorageLensConfigurationTaggingOutput struct { _ struct{} `type:"structure"` - // The set of tags associated with the S3 Batch Operations job. - Tags []*S3Tag `type:"list"` + // The tags of S3 Storage Lens configuration requested. + Tags []*StorageLensTag `locationNameList:"Tag" type:"list"` } // String returns the string representation. @@ -13902,7 +18784,7 @@ type GetJobTaggingOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetJobTaggingOutput) String() string { +func (s GetStorageLensConfigurationTaggingOutput) String() string { return awsutil.Prettify(s) } @@ -13911,34 +18793,30 @@ func (s GetJobTaggingOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetJobTaggingOutput) GoString() string { +func (s GetStorageLensConfigurationTaggingOutput) GoString() string { return s.String() } // SetTags sets the Tags field's value. -func (s *GetJobTaggingOutput) SetTags(v []*S3Tag) *GetJobTaggingOutput { +func (s *GetStorageLensConfigurationTaggingOutput) SetTags(v []*StorageLensTag) *GetStorageLensConfigurationTaggingOutput { s.Tags = v return s } -type GetMultiRegionAccessPointInput struct { - _ struct{} `locationName:"GetMultiRegionAccessPointRequest" type:"structure"` +type GetStorageLensGroupInput struct { + _ struct{} `locationName:"GetStorageLensGroupRequest" type:"structure"` - // The Amazon Web Services account ID for the owner of the Multi-Region Access - // Point. + // The Amazon Web Services account ID associated with the Storage Lens group + // that you're trying to retrieve the details for. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the Multi-Region Access Point whose configuration information - // you want to receive. The name of the Multi-Region Access Point is different - // from the alias. For more information about the distinction between the name - // and the alias of an Multi-Region Access Point, see Managing Multi-Region - // Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming) - // in the Amazon S3 User Guide. + // The name of the Storage Lens group that you're trying to retrieve the configuration + // details for. // // Name is a required field - Name *string `location:"uri" locationName:"name" type:"string" required:"true"` + Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -13946,7 +18824,7 @@ type GetMultiRegionAccessPointInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointInput) String() string { +func (s GetStorageLensGroupInput) String() string { return awsutil.Prettify(s) } @@ -13955,13 +18833,13 @@ func (s GetMultiRegionAccessPointInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointInput) GoString() string { +func (s GetStorageLensGroupInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetMultiRegionAccessPointInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointInput"} +func (s *GetStorageLensGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetStorageLensGroupInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } @@ -13982,29 +18860,29 @@ func (s *GetMultiRegionAccessPointInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *GetMultiRegionAccessPointInput) SetAccountId(v string) *GetMultiRegionAccessPointInput { +func (s *GetStorageLensGroupInput) SetAccountId(v string) *GetStorageLensGroupInput { s.AccountId = &v return s } // SetName sets the Name field's value. -func (s *GetMultiRegionAccessPointInput) SetName(v string) *GetMultiRegionAccessPointInput { +func (s *GetStorageLensGroupInput) SetName(v string) *GetStorageLensGroupInput { s.Name = &v return s } -func (s *GetMultiRegionAccessPointInput) hostLabels() map[string]string { +func (s *GetStorageLensGroupInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type GetMultiRegionAccessPointOutput struct { - _ struct{} `type:"structure"` +type GetStorageLensGroupOutput struct { + _ struct{} `type:"structure" payload:"StorageLensGroup"` - // A container element containing the details of the requested Multi-Region - // Access Point. - AccessPoint *MultiRegionAccessPointReport `type:"structure"` + // The name of the Storage Lens group that you're trying to retrieve the configuration + // details for. + StorageLensGroup *StorageLensGroup `type:"structure"` } // String returns the string representation. @@ -14012,7 +18890,7 @@ type GetMultiRegionAccessPointOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointOutput) String() string { +func (s GetStorageLensGroupOutput) String() string { return awsutil.Prettify(s) } @@ -14021,33 +18899,47 @@ func (s GetMultiRegionAccessPointOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointOutput) GoString() string { +func (s GetStorageLensGroupOutput) GoString() string { return s.String() } -// SetAccessPoint sets the AccessPoint field's value. -func (s *GetMultiRegionAccessPointOutput) SetAccessPoint(v *MultiRegionAccessPointReport) *GetMultiRegionAccessPointOutput { - s.AccessPoint = v +// SetStorageLensGroup sets the StorageLensGroup field's value. +func (s *GetStorageLensGroupOutput) SetStorageLensGroup(v *StorageLensGroup) *GetStorageLensGroupOutput { + s.StorageLensGroup = v return s } -type GetMultiRegionAccessPointPolicyInput struct { - _ struct{} `locationName:"GetMultiRegionAccessPointPolicyRequest" type:"structure"` +// The user, group, or role to which you are granting access. You can grant +// access to an IAM user or role. If you have added your corporate directory +// to Amazon Web Services IAM Identity Center and associated your Identity Center +// instance with your S3 Access Grants instance, the grantee can also be a corporate +// directory user or group. +type Grantee struct { + _ struct{} `type:"structure"` - // The Amazon Web Services account ID for the owner of the Multi-Region Access - // Point. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + // The unique identifier of the Grantee. If the grantee type is IAM, the identifier + // is the IAM Amazon Resource Name (ARN) of the user or role. If the grantee + // type is a directory user or group, the identifier is 128-bit universally + // unique identifier (UUID) in the format a1b2c3d4-5678-90ab-cdef-EXAMPLE11111. + // You can obtain this UUID from your Amazon Web Services IAM Identity Center + // instance. + GranteeIdentifier *string `type:"string"` - // Specifies the Multi-Region Access Point. The name of the Multi-Region Access - // Point is different from the alias. For more information about the distinction - // between the name and the alias of an Multi-Region Access Point, see Managing - // Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming) - // in the Amazon S3 User Guide. + // The type of the grantee to which access has been granted. It can be one of + // the following values: // - // Name is a required field - Name *string `location:"uri" locationName:"name" type:"string" required:"true"` + // * IAM - An IAM user or role. + // + // * DIRECTORY_USER - Your corporate directory user. You can use this option + // if you have added your corporate identity directory to IAM Identity Center + // and associated the IAM Identity Center instance with your S3 Access Grants + // instance. + // + // * DIRECTORY_GROUP - Your corporate directory group. You can use this option + // if you have added your corporate identity directory to IAM Identity Center + // and associated the IAM Identity Center instance with your S3 Access Grants + // instance. + GranteeType *string `type:"string" enum:"GranteeType"` } // String returns the string representation. @@ -14055,7 +18947,7 @@ type GetMultiRegionAccessPointPolicyInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointPolicyInput) String() string { +func (s Grantee) String() string { return awsutil.Prettify(s) } @@ -14064,55 +18956,138 @@ func (s GetMultiRegionAccessPointPolicyInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointPolicyInput) GoString() string { +func (s Grantee) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetMultiRegionAccessPointPolicyInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointPolicyInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) - } +// SetGranteeIdentifier sets the GranteeIdentifier field's value. +func (s *Grantee) SetGranteeIdentifier(v string) *Grantee { + s.GranteeIdentifier = &v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetGranteeType sets the GranteeType field's value. +func (s *Grantee) SetGranteeType(v string) *Grantee { + s.GranteeType = &v + return s } -// SetAccountId sets the AccountId field's value. -func (s *GetMultiRegionAccessPointPolicyInput) SetAccountId(v string) *GetMultiRegionAccessPointPolicyInput { - s.AccountId = &v +// A container for what Amazon S3 Storage Lens configuration includes. +type Include struct { + _ struct{} `type:"structure"` + + // A container for the S3 Storage Lens bucket includes. + Buckets []*string `locationNameList:"Arn" type:"list"` + + // A container for the S3 Storage Lens Region includes. + Regions []*string `locationNameList:"Region" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Include) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Include) GoString() string { + return s.String() +} + +// SetBuckets sets the Buckets field's value. +func (s *Include) SetBuckets(v []*string) *Include { + s.Buckets = v return s } -// SetName sets the Name field's value. -func (s *GetMultiRegionAccessPointPolicyInput) SetName(v string) *GetMultiRegionAccessPointPolicyInput { - s.Name = &v +// SetRegions sets the Regions field's value. +func (s *Include) SetRegions(v []*string) *Include { + s.Regions = v return s } -func (s *GetMultiRegionAccessPointPolicyInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } -} +// A container element for the job configuration and status information returned +// by a Describe Job request. +type JobDescriptor struct { + _ struct{} `type:"structure"` + + // Indicates whether confirmation is required before Amazon S3 begins running + // the specified job. Confirmation is required only for jobs created through + // the Amazon S3 console. + ConfirmationRequired *bool `type:"boolean"` + + // A timestamp indicating when this job was created. + CreationTime *time.Time `type:"timestamp"` + + // The description for this job, if one was provided in this job's Create Job + // request. + Description *string `min:"1" type:"string"` + + // If the specified job failed, this field contains information describing the + // failure. + FailureReasons []*JobFailure `type:"list"` + + // The attribute of the JobDescriptor containing details about the job's generated + // manifest. + GeneratedManifestDescriptor *S3GeneratedManifestDescriptor `type:"structure"` + + // The Amazon Resource Name (ARN) for this job. + JobArn *string `min:"1" type:"string"` + + // The ID for the specified job. + JobId *string `min:"5" type:"string"` + + // The configuration information for the specified job's manifest object. + Manifest *JobManifest `type:"structure"` + + // The manifest generator that was used to generate a job manifest for this + // job. + ManifestGenerator *JobManifestGenerator `type:"structure"` + + // The operation that the specified job is configured to run on the objects + // listed in the manifest. + Operation *JobOperation `type:"structure"` + + // The priority of the specified job. + Priority *int64 `type:"integer"` + + // Describes the total number of tasks that the specified job has run, the number + // of tasks that succeeded, and the number of tasks that failed. + ProgressSummary *JobProgressSummary `type:"structure"` + + // Contains the configuration information for the job-completion report if you + // requested one in the Create Job request. + Report *JobReport `type:"structure"` + + // The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) + // role assigned to run the tasks for this job. + RoleArn *string `min:"1" type:"string"` + + // The current status of the specified job. + Status *string `type:"string" enum:"JobStatus"` -type GetMultiRegionAccessPointPolicyOutput struct { - _ struct{} `type:"structure"` + // The reason for updating the job. + StatusUpdateReason *string `min:"1" type:"string"` - // The policy associated with the specified Multi-Region Access Point. - Policy *MultiRegionAccessPointPolicyDocument `type:"structure"` + // The reason why the specified job was suspended. A job is only suspended if + // you create it through the Amazon S3 console. When you create the job, it + // enters the Suspended state to await confirmation before running. After you + // confirm the job, it automatically exits the Suspended state. + SuspendedCause *string `min:"1" type:"string"` + + // The timestamp when this job was suspended, if it has been suspended. + SuspendedDate *time.Time `type:"timestamp"` + + // A timestamp indicating when this job terminated. A job's termination date + // is the date and time when it succeeded, failed, or was canceled. + TerminationDate *time.Time `type:"timestamp"` } // String returns the string representation. @@ -14120,7 +19095,7 @@ type GetMultiRegionAccessPointPolicyOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointPolicyOutput) String() string { +func (s JobDescriptor) String() string { return awsutil.Prettify(s) } @@ -14129,209 +19104,133 @@ func (s GetMultiRegionAccessPointPolicyOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointPolicyOutput) GoString() string { +func (s JobDescriptor) GoString() string { return s.String() } -// SetPolicy sets the Policy field's value. -func (s *GetMultiRegionAccessPointPolicyOutput) SetPolicy(v *MultiRegionAccessPointPolicyDocument) *GetMultiRegionAccessPointPolicyOutput { - s.Policy = v +// SetConfirmationRequired sets the ConfirmationRequired field's value. +func (s *JobDescriptor) SetConfirmationRequired(v bool) *JobDescriptor { + s.ConfirmationRequired = &v return s } -type GetMultiRegionAccessPointPolicyStatusInput struct { - _ struct{} `locationName:"GetMultiRegionAccessPointPolicyStatusRequest" type:"structure"` - - // The Amazon Web Services account ID for the owner of the Multi-Region Access - // Point. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - - // Specifies the Multi-Region Access Point. The name of the Multi-Region Access - // Point is different from the alias. For more information about the distinction - // between the name and the alias of an Multi-Region Access Point, see Managing - // Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming) - // in the Amazon S3 User Guide. - // - // Name is a required field - Name *string `location:"uri" locationName:"name" type:"string" required:"true"` +// SetCreationTime sets the CreationTime field's value. +func (s *JobDescriptor) SetCreationTime(v time.Time) *JobDescriptor { + s.CreationTime = &v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointPolicyStatusInput) String() string { - return awsutil.Prettify(s) +// SetDescription sets the Description field's value. +func (s *JobDescriptor) SetDescription(v string) *JobDescriptor { + s.Description = &v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointPolicyStatusInput) GoString() string { - return s.String() +// SetFailureReasons sets the FailureReasons field's value. +func (s *JobDescriptor) SetFailureReasons(v []*JobFailure) *JobDescriptor { + s.FailureReasons = v + return s } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetMultiRegionAccessPointPolicyStatusInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointPolicyStatusInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 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 +// SetGeneratedManifestDescriptor sets the GeneratedManifestDescriptor field's value. +func (s *JobDescriptor) SetGeneratedManifestDescriptor(v *S3GeneratedManifestDescriptor) *JobDescriptor { + s.GeneratedManifestDescriptor = v + return s } -// SetAccountId sets the AccountId field's value. -func (s *GetMultiRegionAccessPointPolicyStatusInput) SetAccountId(v string) *GetMultiRegionAccessPointPolicyStatusInput { - s.AccountId = &v +// SetJobArn sets the JobArn field's value. +func (s *JobDescriptor) SetJobArn(v string) *JobDescriptor { + s.JobArn = &v return s } -// SetName sets the Name field's value. -func (s *GetMultiRegionAccessPointPolicyStatusInput) SetName(v string) *GetMultiRegionAccessPointPolicyStatusInput { - s.Name = &v +// SetJobId sets the JobId field's value. +func (s *JobDescriptor) SetJobId(v string) *JobDescriptor { + s.JobId = &v return s } -func (s *GetMultiRegionAccessPointPolicyStatusInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetManifest sets the Manifest field's value. +func (s *JobDescriptor) SetManifest(v *JobManifest) *JobDescriptor { + s.Manifest = v + return s } -type GetMultiRegionAccessPointPolicyStatusOutput struct { - _ struct{} `type:"structure"` - - // Indicates whether this access point policy is public. For more information - // about how Amazon S3 evaluates policies to determine whether they are public, - // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) - // in the Amazon S3 User Guide. - Established *PolicyStatus `type:"structure"` +// SetManifestGenerator sets the ManifestGenerator field's value. +func (s *JobDescriptor) SetManifestGenerator(v *JobManifestGenerator) *JobDescriptor { + s.ManifestGenerator = v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointPolicyStatusOutput) String() string { - return awsutil.Prettify(s) +// SetOperation sets the Operation field's value. +func (s *JobDescriptor) SetOperation(v *JobOperation) *JobDescriptor { + s.Operation = v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointPolicyStatusOutput) GoString() string { - return s.String() +// SetPriority sets the Priority field's value. +func (s *JobDescriptor) SetPriority(v int64) *JobDescriptor { + s.Priority = &v + return s } -// SetEstablished sets the Established field's value. -func (s *GetMultiRegionAccessPointPolicyStatusOutput) SetEstablished(v *PolicyStatus) *GetMultiRegionAccessPointPolicyStatusOutput { - s.Established = v +// SetProgressSummary sets the ProgressSummary field's value. +func (s *JobDescriptor) SetProgressSummary(v *JobProgressSummary) *JobDescriptor { + s.ProgressSummary = v return s } -type GetMultiRegionAccessPointRoutesInput struct { - _ struct{} `locationName:"GetMultiRegionAccessPointRoutesRequest" type:"structure"` - - // The Amazon Web Services account ID for the owner of the Multi-Region Access - // Point. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - - // The Multi-Region Access Point ARN. - // - // Mrap is a required field - Mrap *string `location:"uri" locationName:"mrap" type:"string" required:"true"` +// SetReport sets the Report field's value. +func (s *JobDescriptor) SetReport(v *JobReport) *JobDescriptor { + s.Report = v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointRoutesInput) String() string { - return awsutil.Prettify(s) +// SetRoleArn sets the RoleArn field's value. +func (s *JobDescriptor) SetRoleArn(v string) *JobDescriptor { + s.RoleArn = &v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointRoutesInput) GoString() string { - return s.String() +// SetStatus sets the Status field's value. +func (s *JobDescriptor) SetStatus(v string) *JobDescriptor { + s.Status = &v + return s } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetMultiRegionAccessPointRoutesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointRoutesInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } - if s.Mrap == nil { - invalidParams.Add(request.NewErrParamRequired("Mrap")) - } - if s.Mrap != nil && len(*s.Mrap) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Mrap", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetStatusUpdateReason sets the StatusUpdateReason field's value. +func (s *JobDescriptor) SetStatusUpdateReason(v string) *JobDescriptor { + s.StatusUpdateReason = &v + return s } -// SetAccountId sets the AccountId field's value. -func (s *GetMultiRegionAccessPointRoutesInput) SetAccountId(v string) *GetMultiRegionAccessPointRoutesInput { - s.AccountId = &v +// SetSuspendedCause sets the SuspendedCause field's value. +func (s *JobDescriptor) SetSuspendedCause(v string) *JobDescriptor { + s.SuspendedCause = &v return s } -// SetMrap sets the Mrap field's value. -func (s *GetMultiRegionAccessPointRoutesInput) SetMrap(v string) *GetMultiRegionAccessPointRoutesInput { - s.Mrap = &v +// SetSuspendedDate sets the SuspendedDate field's value. +func (s *JobDescriptor) SetSuspendedDate(v time.Time) *JobDescriptor { + s.SuspendedDate = &v return s } -func (s *GetMultiRegionAccessPointRoutesInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetTerminationDate sets the TerminationDate field's value. +func (s *JobDescriptor) SetTerminationDate(v time.Time) *JobDescriptor { + s.TerminationDate = &v + return s } -type GetMultiRegionAccessPointRoutesOutput struct { +// If this job failed, this element indicates why the job failed. +type JobFailure struct { _ struct{} `type:"structure"` - // The Multi-Region Access Point ARN. - Mrap *string `type:"string"` - - // The different routes that make up the route configuration. Active routes - // return a value of 100, and passive routes return a value of 0. - Routes []*MultiRegionAccessPointRoute `locationNameList:"Route" type:"list"` + // The failure code, if any, for the specified job. + FailureCode *string `min:"1" type:"string"` + + // The failure reason, if any, for the specified job. + FailureReason *string `min:"1" type:"string"` } // String returns the string representation. @@ -14339,7 +19238,7 @@ type GetMultiRegionAccessPointRoutesOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointRoutesOutput) String() string { +func (s JobFailure) String() string { return awsutil.Prettify(s) } @@ -14348,30 +19247,54 @@ func (s GetMultiRegionAccessPointRoutesOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetMultiRegionAccessPointRoutesOutput) GoString() string { +func (s JobFailure) GoString() string { return s.String() } -// SetMrap sets the Mrap field's value. -func (s *GetMultiRegionAccessPointRoutesOutput) SetMrap(v string) *GetMultiRegionAccessPointRoutesOutput { - s.Mrap = &v +// SetFailureCode sets the FailureCode field's value. +func (s *JobFailure) SetFailureCode(v string) *JobFailure { + s.FailureCode = &v return s } -// SetRoutes sets the Routes field's value. -func (s *GetMultiRegionAccessPointRoutesOutput) SetRoutes(v []*MultiRegionAccessPointRoute) *GetMultiRegionAccessPointRoutesOutput { - s.Routes = v +// SetFailureReason sets the FailureReason field's value. +func (s *JobFailure) SetFailureReason(v string) *JobFailure { + s.FailureReason = &v return s } -type GetPublicAccessBlockInput struct { - _ struct{} `locationName:"GetPublicAccessBlockRequest" type:"structure"` +// Contains the configuration and status information for a single job retrieved +// as part of a job list. +type JobListDescriptor struct { + _ struct{} `type:"structure"` - // The account ID for the Amazon Web Services account whose PublicAccessBlock - // configuration you want to retrieve. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + // A timestamp indicating when the specified job was created. + CreationTime *time.Time `type:"timestamp"` + + // The user-specified description that was included in the specified job's Create + // Job request. + Description *string `min:"1" type:"string"` + + // The ID for the specified job. + JobId *string `min:"5" type:"string"` + + // The operation that the specified job is configured to run on every object + // listed in the manifest. + Operation *string `type:"string" enum:"OperationName"` + + // The current priority for the specified job. + Priority *int64 `type:"integer"` + + // Describes the total number of tasks that the specified job has run, the number + // of tasks that succeeded, and the number of tasks that failed. + ProgressSummary *JobProgressSummary `type:"structure"` + + // The specified job's current status. + Status *string `type:"string" enum:"JobStatus"` + + // A timestamp indicating when the specified job terminated. A job's termination + // date is the date and time when it succeeded, failed, or was canceled. + TerminationDate *time.Time `type:"timestamp"` } // String returns the string representation. @@ -14379,7 +19302,7 @@ type GetPublicAccessBlockInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetPublicAccessBlockInput) String() string { +func (s JobListDescriptor) String() string { return awsutil.Prettify(s) } @@ -14388,44 +19311,72 @@ func (s GetPublicAccessBlockInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetPublicAccessBlockInput) GoString() string { +func (s JobListDescriptor) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetPublicAccessBlockInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } +// SetCreationTime sets the CreationTime field's value. +func (s *JobListDescriptor) SetCreationTime(v time.Time) *JobListDescriptor { + s.CreationTime = &v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetDescription sets the Description field's value. +func (s *JobListDescriptor) SetDescription(v string) *JobListDescriptor { + s.Description = &v + return s } -// SetAccountId sets the AccountId field's value. -func (s *GetPublicAccessBlockInput) SetAccountId(v string) *GetPublicAccessBlockInput { - s.AccountId = &v +// SetJobId sets the JobId field's value. +func (s *JobListDescriptor) SetJobId(v string) *JobListDescriptor { + s.JobId = &v return s } -func (s *GetPublicAccessBlockInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetOperation sets the Operation field's value. +func (s *JobListDescriptor) SetOperation(v string) *JobListDescriptor { + s.Operation = &v + return s } -type GetPublicAccessBlockOutput struct { - _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"` +// SetPriority sets the Priority field's value. +func (s *JobListDescriptor) SetPriority(v int64) *JobListDescriptor { + s.Priority = &v + return s +} - // The PublicAccessBlock configuration currently in effect for this Amazon Web - // Services account. - PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` +// SetProgressSummary sets the ProgressSummary field's value. +func (s *JobListDescriptor) SetProgressSummary(v *JobProgressSummary) *JobListDescriptor { + s.ProgressSummary = v + return s +} + +// SetStatus sets the Status field's value. +func (s *JobListDescriptor) SetStatus(v string) *JobListDescriptor { + s.Status = &v + return s +} + +// SetTerminationDate sets the TerminationDate field's value. +func (s *JobListDescriptor) SetTerminationDate(v time.Time) *JobListDescriptor { + s.TerminationDate = &v + return s +} + +// Contains the configuration information for a job's manifest. +type JobManifest struct { + _ struct{} `type:"structure"` + + // Contains the information required to locate the specified job's manifest. + // + // Location is a required field + Location *JobManifestLocation `type:"structure" required:"true"` + + // Describes the format of the specified job's manifest. If the manifest is + // in CSV format, also describes the columns contained within the manifest. + // + // Spec is a required field + Spec *JobManifestSpec `type:"structure" required:"true"` } // String returns the string representation. @@ -14433,7 +19384,7 @@ type GetPublicAccessBlockOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetPublicAccessBlockOutput) String() string { +func (s JobManifest) String() string { return awsutil.Prettify(s) } @@ -14442,28 +19393,54 @@ func (s GetPublicAccessBlockOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetPublicAccessBlockOutput) GoString() string { +func (s JobManifest) GoString() string { return s.String() } -// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. -func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput { - s.PublicAccessBlockConfiguration = v +// Validate inspects the fields of the type to determine if they are valid. +func (s *JobManifest) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobManifest"} + if s.Location == nil { + invalidParams.Add(request.NewErrParamRequired("Location")) + } + if s.Spec == nil { + invalidParams.Add(request.NewErrParamRequired("Spec")) + } + if s.Location != nil { + if err := s.Location.Validate(); err != nil { + invalidParams.AddNested("Location", err.(request.ErrInvalidParams)) + } + } + if s.Spec != nil { + if err := s.Spec.Validate(); err != nil { + invalidParams.AddNested("Spec", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLocation sets the Location field's value. +func (s *JobManifest) SetLocation(v *JobManifestLocation) *JobManifest { + s.Location = v return s } -type GetStorageLensConfigurationInput struct { - _ struct{} `locationName:"GetStorageLensConfigurationRequest" type:"structure"` +// SetSpec sets the Spec field's value. +func (s *JobManifest) SetSpec(v *JobManifestSpec) *JobManifest { + s.Spec = v + return s +} - // The account ID of the requester. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +// Configures the type of the job's ManifestGenerator. +type JobManifestGenerator struct { + _ struct{} `type:"structure"` - // The ID of the Amazon S3 Storage Lens configuration. - // - // ConfigId is a required field - ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"` + // The S3 job ManifestGenerator's configuration details. + S3JobManifestGenerator *S3JobManifestGenerator `type:"structure"` } // String returns the string representation. @@ -14471,7 +19448,7 @@ type GetStorageLensConfigurationInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetStorageLensConfigurationInput) String() string { +func (s JobManifestGenerator) String() string { return awsutil.Prettify(s) } @@ -14480,24 +19457,17 @@ func (s GetStorageLensConfigurationInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetStorageLensConfigurationInput) GoString() string { +func (s JobManifestGenerator) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetStorageLensConfigurationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } - if s.ConfigId == nil { - invalidParams.Add(request.NewErrParamRequired("ConfigId")) - } - if s.ConfigId != nil && len(*s.ConfigId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1)) +func (s *JobManifestGenerator) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobManifestGenerator"} + if s.S3JobManifestGenerator != nil { + if err := s.S3JobManifestGenerator.Validate(); err != nil { + invalidParams.AddNested("S3JobManifestGenerator", err.(request.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -14506,29 +19476,48 @@ func (s *GetStorageLensConfigurationInput) Validate() error { return nil } -// SetAccountId sets the AccountId field's value. -func (s *GetStorageLensConfigurationInput) SetAccountId(v string) *GetStorageLensConfigurationInput { - s.AccountId = &v +// SetS3JobManifestGenerator sets the S3JobManifestGenerator field's value. +func (s *JobManifestGenerator) SetS3JobManifestGenerator(v *S3JobManifestGenerator) *JobManifestGenerator { + s.S3JobManifestGenerator = v return s } -// SetConfigId sets the ConfigId field's value. -func (s *GetStorageLensConfigurationInput) SetConfigId(v string) *GetStorageLensConfigurationInput { - s.ConfigId = &v - return s -} +// The filter used to describe a set of objects for the job's manifest. +type JobManifestGeneratorFilter struct { + _ struct{} `type:"structure"` -func (s *GetStorageLensConfigurationInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } -} + // If provided, the generated manifest includes only source bucket objects that + // were created after this time. + CreatedAfter *time.Time `type:"timestamp"` + + // If provided, the generated manifest includes only source bucket objects that + // were created before this time. + CreatedBefore *time.Time `type:"timestamp"` + + // Include objects in the generated manifest only if they are eligible for replication + // according to the Replication configuration on the source bucket. + EligibleForReplication *bool `type:"boolean"` + + // If provided, the generated manifest includes only source bucket objects whose + // object keys match the string constraints specified for MatchAnyPrefix, MatchAnySuffix, + // and MatchAnySubstring. + KeyNameConstraint *KeyNameConstraint `type:"structure"` + + // If provided, the generated manifest includes only source bucket objects that + // are stored with the specified storage class. + MatchAnyStorageClass []*string `type:"list" enum:"S3StorageClass"` -type GetStorageLensConfigurationOutput struct { - _ struct{} `type:"structure" payload:"StorageLensConfiguration"` + // If provided, the generated manifest includes only source bucket objects that + // have one of the specified Replication statuses. + ObjectReplicationStatuses []*string `type:"list" enum:"ReplicationStatus"` - // The S3 Storage Lens configuration requested. - StorageLensConfiguration *StorageLensConfiguration `type:"structure"` + // If provided, the generated manifest includes only source bucket objects whose + // file size is greater than the specified number of bytes. + ObjectSizeGreaterThanBytes *int64 `type:"long"` + + // If provided, the generated manifest includes only source bucket objects whose + // file size is less than the specified number of bytes. + ObjectSizeLessThanBytes *int64 `type:"long"` } // String returns the string representation. @@ -14536,7 +19525,7 @@ type GetStorageLensConfigurationOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetStorageLensConfigurationOutput) String() string { +func (s JobManifestGeneratorFilter) String() string { return awsutil.Prettify(s) } @@ -14545,28 +19534,79 @@ func (s GetStorageLensConfigurationOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetStorageLensConfigurationOutput) GoString() string { +func (s JobManifestGeneratorFilter) GoString() string { return s.String() } -// SetStorageLensConfiguration sets the StorageLensConfiguration field's value. -func (s *GetStorageLensConfigurationOutput) SetStorageLensConfiguration(v *StorageLensConfiguration) *GetStorageLensConfigurationOutput { - s.StorageLensConfiguration = v +// SetCreatedAfter sets the CreatedAfter field's value. +func (s *JobManifestGeneratorFilter) SetCreatedAfter(v time.Time) *JobManifestGeneratorFilter { + s.CreatedAfter = &v return s } -type GetStorageLensConfigurationTaggingInput struct { - _ struct{} `locationName:"GetStorageLensConfigurationTaggingRequest" type:"structure"` +// SetCreatedBefore sets the CreatedBefore field's value. +func (s *JobManifestGeneratorFilter) SetCreatedBefore(v time.Time) *JobManifestGeneratorFilter { + s.CreatedBefore = &v + return s +} - // The account ID of the requester. +// SetEligibleForReplication sets the EligibleForReplication field's value. +func (s *JobManifestGeneratorFilter) SetEligibleForReplication(v bool) *JobManifestGeneratorFilter { + s.EligibleForReplication = &v + return s +} + +// SetKeyNameConstraint sets the KeyNameConstraint field's value. +func (s *JobManifestGeneratorFilter) SetKeyNameConstraint(v *KeyNameConstraint) *JobManifestGeneratorFilter { + s.KeyNameConstraint = v + return s +} + +// SetMatchAnyStorageClass sets the MatchAnyStorageClass field's value. +func (s *JobManifestGeneratorFilter) SetMatchAnyStorageClass(v []*string) *JobManifestGeneratorFilter { + s.MatchAnyStorageClass = v + return s +} + +// SetObjectReplicationStatuses sets the ObjectReplicationStatuses field's value. +func (s *JobManifestGeneratorFilter) SetObjectReplicationStatuses(v []*string) *JobManifestGeneratorFilter { + s.ObjectReplicationStatuses = v + return s +} + +// SetObjectSizeGreaterThanBytes sets the ObjectSizeGreaterThanBytes field's value. +func (s *JobManifestGeneratorFilter) SetObjectSizeGreaterThanBytes(v int64) *JobManifestGeneratorFilter { + s.ObjectSizeGreaterThanBytes = &v + return s +} + +// SetObjectSizeLessThanBytes sets the ObjectSizeLessThanBytes field's value. +func (s *JobManifestGeneratorFilter) SetObjectSizeLessThanBytes(v int64) *JobManifestGeneratorFilter { + s.ObjectSizeLessThanBytes = &v + return s +} + +// Contains the information required to locate a manifest object. +type JobManifestLocation struct { + _ struct{} `type:"structure"` + + // The ETag for the specified manifest object. // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + // ETag is a required field + ETag *string `min:"1" type:"string" required:"true"` - // The ID of the Amazon S3 Storage Lens configuration. + // The Amazon Resource Name (ARN) for a manifest object. // - // ConfigId is a required field - ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"` + // When you're using XML requests, you must replace special characters (such + // as carriage returns) in object keys with their equivalent XML entity codes. + // For more information, see XML-related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) + // in the Amazon S3 User Guide. + // + // ObjectArn is a required field + ObjectArn *string `min:"1" type:"string" required:"true"` + + // The optional version ID to identify a specific version of the manifest object. + ObjectVersionId *string `min:"1" type:"string"` } // String returns the string representation. @@ -14574,7 +19614,7 @@ type GetStorageLensConfigurationTaggingInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetStorageLensConfigurationTaggingInput) String() string { +func (s JobManifestLocation) String() string { return awsutil.Prettify(s) } @@ -14583,24 +19623,27 @@ func (s GetStorageLensConfigurationTaggingInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetStorageLensConfigurationTaggingInput) GoString() string { +func (s JobManifestLocation) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetStorageLensConfigurationTaggingInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationTaggingInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) +func (s *JobManifestLocation) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobManifestLocation"} + if s.ETag == nil { + invalidParams.Add(request.NewErrParamRequired("ETag")) } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + if s.ETag != nil && len(*s.ETag) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ETag", 1)) } - if s.ConfigId == nil { - invalidParams.Add(request.NewErrParamRequired("ConfigId")) + if s.ObjectArn == nil { + invalidParams.Add(request.NewErrParamRequired("ObjectArn")) } - if s.ConfigId != nil && len(*s.ConfigId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1)) + if s.ObjectArn != nil && len(*s.ObjectArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ObjectArn", 1)) + } + if s.ObjectVersionId != nil && len(*s.ObjectVersionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ObjectVersionId", 1)) } if invalidParams.Len() > 0 { @@ -14609,69 +19652,37 @@ func (s *GetStorageLensConfigurationTaggingInput) Validate() error { return nil } -// SetAccountId sets the AccountId field's value. -func (s *GetStorageLensConfigurationTaggingInput) SetAccountId(v string) *GetStorageLensConfigurationTaggingInput { - s.AccountId = &v +// SetETag sets the ETag field's value. +func (s *JobManifestLocation) SetETag(v string) *JobManifestLocation { + s.ETag = &v return s } -// SetConfigId sets the ConfigId field's value. -func (s *GetStorageLensConfigurationTaggingInput) SetConfigId(v string) *GetStorageLensConfigurationTaggingInput { - s.ConfigId = &v +// SetObjectArn sets the ObjectArn field's value. +func (s *JobManifestLocation) SetObjectArn(v string) *JobManifestLocation { + s.ObjectArn = &v return s } -func (s *GetStorageLensConfigurationTaggingInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } -} - -type GetStorageLensConfigurationTaggingOutput struct { - _ struct{} `type:"structure"` - - // The tags of S3 Storage Lens configuration requested. - Tags []*StorageLensTag `locationNameList:"Tag" type:"list"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetStorageLensConfigurationTaggingOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s GetStorageLensConfigurationTaggingOutput) GoString() string { - return s.String() -} - -// SetTags sets the Tags field's value. -func (s *GetStorageLensConfigurationTaggingOutput) SetTags(v []*StorageLensTag) *GetStorageLensConfigurationTaggingOutput { - s.Tags = v +// SetObjectVersionId sets the ObjectVersionId field's value. +func (s *JobManifestLocation) SetObjectVersionId(v string) *JobManifestLocation { + s.ObjectVersionId = &v return s } -type GetStorageLensGroupInput struct { - _ struct{} `locationName:"GetStorageLensGroupRequest" type:"structure"` +// Describes the format of a manifest. If the manifest is in CSV format, also +// describes the columns contained within the manifest. +type JobManifestSpec struct { + _ struct{} `type:"structure"` - // The Amazon Web Services account ID associated with the Storage Lens group - // that you're trying to retrieve the details for. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + // If the specified manifest object is in the S3BatchOperations_CSV_20180820 + // format, this element describes which columns contain the required data. + Fields []*string `type:"list" enum:"JobManifestFieldName"` - // The name of the Storage Lens group that you're trying to retrieve the configuration - // details for. + // Indicates which of the available formats the specified manifest uses. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"` + // Format is a required field + Format *string `type:"string" required:"true" enum:"JobManifestFormat"` } // String returns the string representation. @@ -14679,7 +19690,7 @@ type GetStorageLensGroupInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetStorageLensGroupInput) String() string { +func (s JobManifestSpec) String() string { return awsutil.Prettify(s) } @@ -14688,24 +19699,15 @@ func (s GetStorageLensGroupInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetStorageLensGroupInput) GoString() string { +func (s JobManifestSpec) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetStorageLensGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetStorageLensGroupInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } - 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 *JobManifestSpec) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobManifestSpec"} + if s.Format == nil { + invalidParams.Add(request.NewErrParamRequired("Format")) } if invalidParams.Len() > 0 { @@ -14714,30 +19716,66 @@ func (s *GetStorageLensGroupInput) Validate() error { return nil } -// SetAccountId sets the AccountId field's value. -func (s *GetStorageLensGroupInput) SetAccountId(v string) *GetStorageLensGroupInput { - s.AccountId = &v +// SetFields sets the Fields field's value. +func (s *JobManifestSpec) SetFields(v []*string) *JobManifestSpec { + s.Fields = v return s } -// SetName sets the Name field's value. -func (s *GetStorageLensGroupInput) SetName(v string) *GetStorageLensGroupInput { - s.Name = &v +// SetFormat sets the Format field's value. +func (s *JobManifestSpec) SetFormat(v string) *JobManifestSpec { + s.Format = &v return s } -func (s *GetStorageLensGroupInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } -} +// The operation that you want this job to perform on every object listed in +// the manifest. For more information about the available operations, see Operations +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html) +// in the Amazon S3 User Guide. +type JobOperation struct { + _ struct{} `type:"structure"` + + // Directs the specified job to invoke an Lambda function on every object in + // the manifest. + LambdaInvoke *LambdaInvokeOperation `type:"structure"` + + // Directs the specified job to execute a DELETE Object tagging call on every + // object in the manifest. + S3DeleteObjectTagging *S3DeleteObjectTaggingOperation `type:"structure"` + + // Directs the specified job to initiate restore requests for every archived + // object in the manifest. + S3InitiateRestoreObject *S3InitiateRestoreObjectOperation `type:"structure"` + + // Directs the specified job to run a PutObjectAcl call on every object in the + // manifest. + S3PutObjectAcl *S3SetObjectAclOperation `type:"structure"` + + // Directs the specified job to run a PUT Copy object call on every object in + // the manifest. + S3PutObjectCopy *S3CopyObjectOperation `type:"structure"` + + // Contains the configuration for an S3 Object Lock legal hold operation that + // an S3 Batch Operations job passes to every object to the underlying PutObjectLegalHold + // API operation. For more information, see Using S3 Object Lock legal hold + // with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html) + // in the Amazon S3 User Guide. + S3PutObjectLegalHold *S3SetObjectLegalHoldOperation `type:"structure"` + + // Contains the configuration parameters for the Object Lock retention action + // for an S3 Batch Operations job. Batch Operations passes every object to the + // underlying PutObjectRetention API operation. For more information, see Using + // S3 Object Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html) + // in the Amazon S3 User Guide. + S3PutObjectRetention *S3SetObjectRetentionOperation `type:"structure"` -type GetStorageLensGroupOutput struct { - _ struct{} `type:"structure" payload:"StorageLensGroup"` + // Directs the specified job to run a PUT Object tagging call on every object + // in the manifest. + S3PutObjectTagging *S3SetObjectTaggingOperation `type:"structure"` - // The name of the Storage Lens group that you're trying to retrieve the configuration - // details for. - StorageLensGroup *StorageLensGroup `type:"structure"` + // Directs the specified job to invoke ReplicateObject on every object in the + // job's manifest. + S3ReplicateObject *S3ReplicateObjectOperation `type:"structure"` } // String returns the string representation. @@ -14745,7 +19783,7 @@ type GetStorageLensGroupOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetStorageLensGroupOutput) String() string { +func (s JobOperation) String() string { return awsutil.Prettify(s) } @@ -14754,132 +19792,117 @@ func (s GetStorageLensGroupOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetStorageLensGroupOutput) GoString() string { +func (s JobOperation) GoString() string { return s.String() } -// SetStorageLensGroup sets the StorageLensGroup field's value. -func (s *GetStorageLensGroupOutput) SetStorageLensGroup(v *StorageLensGroup) *GetStorageLensGroupOutput { - s.StorageLensGroup = v - return s -} - -// A container for what Amazon S3 Storage Lens configuration includes. -type Include struct { - _ struct{} `type:"structure"` - - // A container for the S3 Storage Lens bucket includes. - Buckets []*string `locationNameList:"Arn" type:"list"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *JobOperation) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobOperation"} + if s.LambdaInvoke != nil { + if err := s.LambdaInvoke.Validate(); err != nil { + invalidParams.AddNested("LambdaInvoke", err.(request.ErrInvalidParams)) + } + } + if s.S3PutObjectAcl != nil { + if err := s.S3PutObjectAcl.Validate(); err != nil { + invalidParams.AddNested("S3PutObjectAcl", err.(request.ErrInvalidParams)) + } + } + if s.S3PutObjectCopy != nil { + if err := s.S3PutObjectCopy.Validate(); err != nil { + invalidParams.AddNested("S3PutObjectCopy", err.(request.ErrInvalidParams)) + } + } + if s.S3PutObjectLegalHold != nil { + if err := s.S3PutObjectLegalHold.Validate(); err != nil { + invalidParams.AddNested("S3PutObjectLegalHold", err.(request.ErrInvalidParams)) + } + } + if s.S3PutObjectRetention != nil { + if err := s.S3PutObjectRetention.Validate(); err != nil { + invalidParams.AddNested("S3PutObjectRetention", err.(request.ErrInvalidParams)) + } + } + if s.S3PutObjectTagging != nil { + if err := s.S3PutObjectTagging.Validate(); err != nil { + invalidParams.AddNested("S3PutObjectTagging", err.(request.ErrInvalidParams)) + } + } - // A container for the S3 Storage Lens Region includes. - Regions []*string `locationNameList:"Region" type:"list"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s Include) String() string { - return awsutil.Prettify(s) +// SetLambdaInvoke sets the LambdaInvoke field's value. +func (s *JobOperation) SetLambdaInvoke(v *LambdaInvokeOperation) *JobOperation { + s.LambdaInvoke = v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s Include) GoString() string { - return s.String() +// SetS3DeleteObjectTagging sets the S3DeleteObjectTagging field's value. +func (s *JobOperation) SetS3DeleteObjectTagging(v *S3DeleteObjectTaggingOperation) *JobOperation { + s.S3DeleteObjectTagging = v + return s } -// SetBuckets sets the Buckets field's value. -func (s *Include) SetBuckets(v []*string) *Include { - s.Buckets = v +// SetS3InitiateRestoreObject sets the S3InitiateRestoreObject field's value. +func (s *JobOperation) SetS3InitiateRestoreObject(v *S3InitiateRestoreObjectOperation) *JobOperation { + s.S3InitiateRestoreObject = v return s } -// SetRegions sets the Regions field's value. -func (s *Include) SetRegions(v []*string) *Include { - s.Regions = v +// SetS3PutObjectAcl sets the S3PutObjectAcl field's value. +func (s *JobOperation) SetS3PutObjectAcl(v *S3SetObjectAclOperation) *JobOperation { + s.S3PutObjectAcl = v return s } -// A container element for the job configuration and status information returned -// by a Describe Job request. -type JobDescriptor struct { - _ struct{} `type:"structure"` - - // Indicates whether confirmation is required before Amazon S3 begins running - // the specified job. Confirmation is required only for jobs created through - // the Amazon S3 console. - ConfirmationRequired *bool `type:"boolean"` - - // A timestamp indicating when this job was created. - CreationTime *time.Time `type:"timestamp"` - - // The description for this job, if one was provided in this job's Create Job - // request. - Description *string `min:"1" type:"string"` - - // If the specified job failed, this field contains information describing the - // failure. - FailureReasons []*JobFailure `type:"list"` - - // The attribute of the JobDescriptor containing details about the job's generated - // manifest. - GeneratedManifestDescriptor *S3GeneratedManifestDescriptor `type:"structure"` - - // The Amazon Resource Name (ARN) for this job. - JobArn *string `min:"1" type:"string"` - - // The ID for the specified job. - JobId *string `min:"5" type:"string"` - - // The configuration information for the specified job's manifest object. - Manifest *JobManifest `type:"structure"` - - // The manifest generator that was used to generate a job manifest for this - // job. - ManifestGenerator *JobManifestGenerator `type:"structure"` - - // The operation that the specified job is configured to run on the objects - // listed in the manifest. - Operation *JobOperation `type:"structure"` +// SetS3PutObjectCopy sets the S3PutObjectCopy field's value. +func (s *JobOperation) SetS3PutObjectCopy(v *S3CopyObjectOperation) *JobOperation { + s.S3PutObjectCopy = v + return s +} - // The priority of the specified job. - Priority *int64 `type:"integer"` +// SetS3PutObjectLegalHold sets the S3PutObjectLegalHold field's value. +func (s *JobOperation) SetS3PutObjectLegalHold(v *S3SetObjectLegalHoldOperation) *JobOperation { + s.S3PutObjectLegalHold = v + return s +} - // Describes the total number of tasks that the specified job has run, the number - // of tasks that succeeded, and the number of tasks that failed. - ProgressSummary *JobProgressSummary `type:"structure"` +// SetS3PutObjectRetention sets the S3PutObjectRetention field's value. +func (s *JobOperation) SetS3PutObjectRetention(v *S3SetObjectRetentionOperation) *JobOperation { + s.S3PutObjectRetention = v + return s +} - // Contains the configuration information for the job-completion report if you - // requested one in the Create Job request. - Report *JobReport `type:"structure"` +// SetS3PutObjectTagging sets the S3PutObjectTagging field's value. +func (s *JobOperation) SetS3PutObjectTagging(v *S3SetObjectTaggingOperation) *JobOperation { + s.S3PutObjectTagging = v + return s +} - // The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) - // role assigned to run the tasks for this job. - RoleArn *string `min:"1" type:"string"` +// SetS3ReplicateObject sets the S3ReplicateObject field's value. +func (s *JobOperation) SetS3ReplicateObject(v *S3ReplicateObjectOperation) *JobOperation { + s.S3ReplicateObject = v + return s +} - // The current status of the specified job. - Status *string `type:"string" enum:"JobStatus"` +// Describes the total number of tasks that the specified job has started, the +// number of tasks that succeeded, and the number of tasks that failed. +type JobProgressSummary struct { + _ struct{} `type:"structure"` - // The reason for updating the job. - StatusUpdateReason *string `min:"1" type:"string"` + NumberOfTasksFailed *int64 `type:"long"` - // The reason why the specified job was suspended. A job is only suspended if - // you create it through the Amazon S3 console. When you create the job, it - // enters the Suspended state to await confirmation before running. After you - // confirm the job, it automatically exits the Suspended state. - SuspendedCause *string `min:"1" type:"string"` + NumberOfTasksSucceeded *int64 `type:"long"` - // The timestamp when this job was suspended, if it has been suspended. - SuspendedDate *time.Time `type:"timestamp"` + // The JobTimers attribute of a job's progress summary. + Timers *JobTimers `type:"structure"` - // A timestamp indicating when this job terminated. A job's termination date - // is the date and time when it succeeded, failed, or was canceled. - TerminationDate *time.Time `type:"timestamp"` + TotalNumberOfTasks *int64 `type:"long"` } // String returns the string representation. @@ -14887,7 +19910,7 @@ type JobDescriptor struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobDescriptor) String() string { +func (s JobProgressSummary) String() string { return awsutil.Prettify(s) } @@ -14896,133 +19919,133 @@ func (s JobDescriptor) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobDescriptor) GoString() string { +func (s JobProgressSummary) GoString() string { return s.String() } -// SetConfirmationRequired sets the ConfirmationRequired field's value. -func (s *JobDescriptor) SetConfirmationRequired(v bool) *JobDescriptor { - s.ConfirmationRequired = &v - return s -} - -// SetCreationTime sets the CreationTime field's value. -func (s *JobDescriptor) SetCreationTime(v time.Time) *JobDescriptor { - s.CreationTime = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *JobDescriptor) SetDescription(v string) *JobDescriptor { - s.Description = &v - return s -} - -// SetFailureReasons sets the FailureReasons field's value. -func (s *JobDescriptor) SetFailureReasons(v []*JobFailure) *JobDescriptor { - s.FailureReasons = v - return s -} - -// SetGeneratedManifestDescriptor sets the GeneratedManifestDescriptor field's value. -func (s *JobDescriptor) SetGeneratedManifestDescriptor(v *S3GeneratedManifestDescriptor) *JobDescriptor { - s.GeneratedManifestDescriptor = v - return s -} - -// SetJobArn sets the JobArn field's value. -func (s *JobDescriptor) SetJobArn(v string) *JobDescriptor { - s.JobArn = &v - return s -} - -// SetJobId sets the JobId field's value. -func (s *JobDescriptor) SetJobId(v string) *JobDescriptor { - s.JobId = &v +// SetNumberOfTasksFailed sets the NumberOfTasksFailed field's value. +func (s *JobProgressSummary) SetNumberOfTasksFailed(v int64) *JobProgressSummary { + s.NumberOfTasksFailed = &v return s } -// SetManifest sets the Manifest field's value. -func (s *JobDescriptor) SetManifest(v *JobManifest) *JobDescriptor { - s.Manifest = v +// SetNumberOfTasksSucceeded sets the NumberOfTasksSucceeded field's value. +func (s *JobProgressSummary) SetNumberOfTasksSucceeded(v int64) *JobProgressSummary { + s.NumberOfTasksSucceeded = &v return s } -// SetManifestGenerator sets the ManifestGenerator field's value. -func (s *JobDescriptor) SetManifestGenerator(v *JobManifestGenerator) *JobDescriptor { - s.ManifestGenerator = v +// SetTimers sets the Timers field's value. +func (s *JobProgressSummary) SetTimers(v *JobTimers) *JobProgressSummary { + s.Timers = v return s } -// SetOperation sets the Operation field's value. -func (s *JobDescriptor) SetOperation(v *JobOperation) *JobDescriptor { - s.Operation = v +// SetTotalNumberOfTasks sets the TotalNumberOfTasks field's value. +func (s *JobProgressSummary) SetTotalNumberOfTasks(v int64) *JobProgressSummary { + s.TotalNumberOfTasks = &v return s } -// SetPriority sets the Priority field's value. -func (s *JobDescriptor) SetPriority(v int64) *JobDescriptor { - s.Priority = &v - return s +// Contains the configuration parameters for a job-completion report. +type JobReport struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) for the bucket where specified job-completion + // report will be stored. + Bucket *string `min:"1" type:"string"` + + // Indicates whether the specified job will generate a job-completion report. + // + // Enabled is a required field + Enabled *bool `type:"boolean" required:"true"` + + // The format of the specified job-completion report. + Format *string `type:"string" enum:"JobReportFormat"` + + // An optional prefix to describe where in the specified bucket the job-completion + // report will be stored. Amazon S3 stores the job-completion report at /job-/report.json. + Prefix *string `min:"1" type:"string"` + + // Indicates whether the job-completion report will include details of all tasks + // or only failed tasks. + ReportScope *string `type:"string" enum:"JobReportScope"` } -// SetProgressSummary sets the ProgressSummary field's value. -func (s *JobDescriptor) SetProgressSummary(v *JobProgressSummary) *JobDescriptor { - s.ProgressSummary = v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s JobReport) String() string { + return awsutil.Prettify(s) } -// SetReport sets the Report field's value. -func (s *JobDescriptor) SetReport(v *JobReport) *JobDescriptor { - s.Report = v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s JobReport) GoString() string { + return s.String() } -// SetRoleArn sets the RoleArn field's value. -func (s *JobDescriptor) SetRoleArn(v string) *JobDescriptor { - s.RoleArn = &v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *JobReport) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobReport"} + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + if s.Enabled == nil { + invalidParams.Add(request.NewErrParamRequired("Enabled")) + } + if s.Prefix != nil && len(*s.Prefix) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Prefix", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetStatus sets the Status field's value. -func (s *JobDescriptor) SetStatus(v string) *JobDescriptor { - s.Status = &v +// SetBucket sets the Bucket field's value. +func (s *JobReport) SetBucket(v string) *JobReport { + s.Bucket = &v return s } -// SetStatusUpdateReason sets the StatusUpdateReason field's value. -func (s *JobDescriptor) SetStatusUpdateReason(v string) *JobDescriptor { - s.StatusUpdateReason = &v +// SetEnabled sets the Enabled field's value. +func (s *JobReport) SetEnabled(v bool) *JobReport { + s.Enabled = &v return s } -// SetSuspendedCause sets the SuspendedCause field's value. -func (s *JobDescriptor) SetSuspendedCause(v string) *JobDescriptor { - s.SuspendedCause = &v +// SetFormat sets the Format field's value. +func (s *JobReport) SetFormat(v string) *JobReport { + s.Format = &v return s } -// SetSuspendedDate sets the SuspendedDate field's value. -func (s *JobDescriptor) SetSuspendedDate(v time.Time) *JobDescriptor { - s.SuspendedDate = &v +// SetPrefix sets the Prefix field's value. +func (s *JobReport) SetPrefix(v string) *JobReport { + s.Prefix = &v return s } -// SetTerminationDate sets the TerminationDate field's value. -func (s *JobDescriptor) SetTerminationDate(v time.Time) *JobDescriptor { - s.TerminationDate = &v +// SetReportScope sets the ReportScope field's value. +func (s *JobReport) SetReportScope(v string) *JobReport { + s.ReportScope = &v return s } -// If this job failed, this element indicates why the job failed. -type JobFailure struct { +// Provides timing details for the job. +type JobTimers struct { _ struct{} `type:"structure"` - // The failure code, if any, for the specified job. - FailureCode *string `min:"1" type:"string"` - - // The failure reason, if any, for the specified job. - FailureReason *string `min:"1" type:"string"` + // Indicates the elapsed time in seconds the job has been in the Active job + // state. + ElapsedTimeInActiveSeconds *int64 `type:"long"` } // String returns the string representation. @@ -15030,7 +20053,7 @@ type JobFailure struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobFailure) String() string { +func (s JobTimers) String() string { return awsutil.Prettify(s) } @@ -15039,54 +20062,33 @@ func (s JobFailure) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobFailure) GoString() string { +func (s JobTimers) GoString() string { return s.String() } -// SetFailureCode sets the FailureCode field's value. -func (s *JobFailure) SetFailureCode(v string) *JobFailure { - s.FailureCode = &v - return s -} - -// SetFailureReason sets the FailureReason field's value. -func (s *JobFailure) SetFailureReason(v string) *JobFailure { - s.FailureReason = &v +// SetElapsedTimeInActiveSeconds sets the ElapsedTimeInActiveSeconds field's value. +func (s *JobTimers) SetElapsedTimeInActiveSeconds(v int64) *JobTimers { + s.ElapsedTimeInActiveSeconds = &v return s } -// Contains the configuration and status information for a single job retrieved -// as part of a job list. -type JobListDescriptor struct { +// If provided, the generated manifest includes only source bucket objects whose +// object keys match the string constraints specified for MatchAnyPrefix, MatchAnySuffix, +// and MatchAnySubstring. +type KeyNameConstraint struct { _ struct{} `type:"structure"` - // A timestamp indicating when the specified job was created. - CreationTime *time.Time `type:"timestamp"` - - // The user-specified description that was included in the specified job's Create - // Job request. - Description *string `min:"1" type:"string"` - - // The ID for the specified job. - JobId *string `min:"5" type:"string"` - - // The operation that the specified job is configured to run on every object - // listed in the manifest. - Operation *string `type:"string" enum:"OperationName"` - - // The current priority for the specified job. - Priority *int64 `type:"integer"` - - // Describes the total number of tasks that the specified job has run, the number - // of tasks that succeeded, and the number of tasks that failed. - ProgressSummary *JobProgressSummary `type:"structure"` + // If provided, the generated manifest includes objects where the specified + // string appears at the start of the object key string. + MatchAnyPrefix []*string `type:"list"` - // The specified job's current status. - Status *string `type:"string" enum:"JobStatus"` + // If provided, the generated manifest includes objects where the specified + // string appears anywhere within the object key string. + MatchAnySubstring []*string `type:"list"` - // A timestamp indicating when the specified job terminated. A job's termination - // date is the date and time when it succeeded, failed, or was canceled. - TerminationDate *time.Time `type:"timestamp"` + // If provided, the generated manifest includes objects where the specified + // string appears at the end of the object key string. + MatchAnySuffix []*string `type:"list"` } // String returns the string representation. @@ -15094,7 +20096,7 @@ type JobListDescriptor struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobListDescriptor) String() string { +func (s KeyNameConstraint) String() string { return awsutil.Prettify(s) } @@ -15103,72 +20105,35 @@ func (s JobListDescriptor) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobListDescriptor) GoString() string { +func (s KeyNameConstraint) GoString() string { return s.String() } -// SetCreationTime sets the CreationTime field's value. -func (s *JobListDescriptor) SetCreationTime(v time.Time) *JobListDescriptor { - s.CreationTime = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *JobListDescriptor) SetDescription(v string) *JobListDescriptor { - s.Description = &v - return s -} - -// SetJobId sets the JobId field's value. -func (s *JobListDescriptor) SetJobId(v string) *JobListDescriptor { - s.JobId = &v - return s -} - -// SetOperation sets the Operation field's value. -func (s *JobListDescriptor) SetOperation(v string) *JobListDescriptor { - s.Operation = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *JobListDescriptor) SetPriority(v int64) *JobListDescriptor { - s.Priority = &v - return s -} - -// SetProgressSummary sets the ProgressSummary field's value. -func (s *JobListDescriptor) SetProgressSummary(v *JobProgressSummary) *JobListDescriptor { - s.ProgressSummary = v +// SetMatchAnyPrefix sets the MatchAnyPrefix field's value. +func (s *KeyNameConstraint) SetMatchAnyPrefix(v []*string) *KeyNameConstraint { + s.MatchAnyPrefix = v return s } -// SetStatus sets the Status field's value. -func (s *JobListDescriptor) SetStatus(v string) *JobListDescriptor { - s.Status = &v +// SetMatchAnySubstring sets the MatchAnySubstring field's value. +func (s *KeyNameConstraint) SetMatchAnySubstring(v []*string) *KeyNameConstraint { + s.MatchAnySubstring = v return s } -// SetTerminationDate sets the TerminationDate field's value. -func (s *JobListDescriptor) SetTerminationDate(v time.Time) *JobListDescriptor { - s.TerminationDate = &v +// SetMatchAnySuffix sets the MatchAnySuffix field's value. +func (s *KeyNameConstraint) SetMatchAnySuffix(v []*string) *KeyNameConstraint { + s.MatchAnySuffix = v return s } -// Contains the configuration information for a job's manifest. -type JobManifest struct { - _ struct{} `type:"structure"` - - // Contains the information required to locate the specified job's manifest. - // - // Location is a required field - Location *JobManifestLocation `type:"structure" required:"true"` - - // Describes the format of the specified job's manifest. If the manifest is - // in CSV format, also describes the columns contained within the manifest. - // - // Spec is a required field - Spec *JobManifestSpec `type:"structure" required:"true"` +// Contains the configuration parameters for a Lambda Invoke operation. +type LambdaInvokeOperation struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) for the Lambda function that the specified + // job will invoke on every object in the manifest. + FunctionArn *string `min:"1" type:"string"` } // String returns the string representation. @@ -15176,7 +20141,7 @@ type JobManifest struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobManifest) String() string { +func (s LambdaInvokeOperation) String() string { return awsutil.Prettify(s) } @@ -15185,28 +20150,15 @@ func (s JobManifest) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobManifest) GoString() string { +func (s LambdaInvokeOperation) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *JobManifest) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "JobManifest"} - if s.Location == nil { - invalidParams.Add(request.NewErrParamRequired("Location")) - } - if s.Spec == nil { - invalidParams.Add(request.NewErrParamRequired("Spec")) - } - if s.Location != nil { - if err := s.Location.Validate(); err != nil { - invalidParams.AddNested("Location", err.(request.ErrInvalidParams)) - } - } - if s.Spec != nil { - if err := s.Spec.Validate(); err != nil { - invalidParams.AddNested("Spec", err.(request.ErrInvalidParams)) - } +func (s *LambdaInvokeOperation) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LambdaInvokeOperation"} + if s.FunctionArn != nil && len(*s.FunctionArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1)) } if invalidParams.Len() > 0 { @@ -15215,24 +20167,18 @@ func (s *JobManifest) Validate() error { return nil } -// SetLocation sets the Location field's value. -func (s *JobManifest) SetLocation(v *JobManifestLocation) *JobManifest { - s.Location = v - return s -} - -// SetSpec sets the Spec field's value. -func (s *JobManifest) SetSpec(v *JobManifestSpec) *JobManifest { - s.Spec = v +// SetFunctionArn sets the FunctionArn field's value. +func (s *LambdaInvokeOperation) SetFunctionArn(v string) *LambdaInvokeOperation { + s.FunctionArn = &v return s } -// Configures the type of the job's ManifestGenerator. -type JobManifestGenerator struct { +// The container for the Outposts bucket lifecycle configuration. +type LifecycleConfiguration struct { _ struct{} `type:"structure"` - // The S3 job ManifestGenerator's configuration details. - S3JobManifestGenerator *S3JobManifestGenerator `type:"structure"` + // A lifecycle rule for individual objects in an Outposts bucket. + Rules []*LifecycleRule `locationNameList:"Rule" type:"list"` } // String returns the string representation. @@ -15240,7 +20186,7 @@ type JobManifestGenerator struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobManifestGenerator) String() string { +func (s LifecycleConfiguration) String() string { return awsutil.Prettify(s) } @@ -15249,16 +20195,21 @@ func (s JobManifestGenerator) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobManifestGenerator) GoString() string { +func (s LifecycleConfiguration) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *JobManifestGenerator) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "JobManifestGenerator"} - if s.S3JobManifestGenerator != nil { - if err := s.S3JobManifestGenerator.Validate(); err != nil { - invalidParams.AddNested("S3JobManifestGenerator", err.(request.ErrInvalidParams)) +func (s *LifecycleConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LifecycleConfiguration"} + if s.Rules != nil { + for i, v := range s.Rules { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) + } } } @@ -15268,48 +20219,29 @@ func (s *JobManifestGenerator) Validate() error { return nil } -// SetS3JobManifestGenerator sets the S3JobManifestGenerator field's value. -func (s *JobManifestGenerator) SetS3JobManifestGenerator(v *S3JobManifestGenerator) *JobManifestGenerator { - s.S3JobManifestGenerator = v +// SetRules sets the Rules field's value. +func (s *LifecycleConfiguration) SetRules(v []*LifecycleRule) *LifecycleConfiguration { + s.Rules = v return s } -// The filter used to describe a set of objects for the job's manifest. -type JobManifestGeneratorFilter struct { +// The container of the Outposts bucket lifecycle expiration. +type LifecycleExpiration struct { _ struct{} `type:"structure"` - // If provided, the generated manifest includes only source bucket objects that - // were created after this time. - CreatedAfter *time.Time `type:"timestamp"` - - // If provided, the generated manifest includes only source bucket objects that - // were created before this time. - CreatedBefore *time.Time `type:"timestamp"` - - // Include objects in the generated manifest only if they are eligible for replication - // according to the Replication configuration on the source bucket. - EligibleForReplication *bool `type:"boolean"` - - // If provided, the generated manifest includes only source bucket objects whose - // object keys match the string constraints specified for MatchAnyPrefix, MatchAnySuffix, - // and MatchAnySubstring. - KeyNameConstraint *KeyNameConstraint `type:"structure"` - - // If provided, the generated manifest includes only source bucket objects that - // are stored with the specified storage class. - MatchAnyStorageClass []*string `type:"list" enum:"S3StorageClass"` - - // If provided, the generated manifest includes only source bucket objects that - // have one of the specified Replication statuses. - ObjectReplicationStatuses []*string `type:"list" enum:"ReplicationStatus"` + // Indicates at what date the object is to be deleted. Should be in GMT ISO + // 8601 format. + Date *time.Time `type:"timestamp"` - // If provided, the generated manifest includes only source bucket objects whose - // file size is greater than the specified number of bytes. - ObjectSizeGreaterThanBytes *int64 `type:"long"` + // Indicates the lifetime, in days, of the objects that are subject to the rule. + // The value must be a non-zero positive integer. + Days *int64 `type:"integer"` - // If provided, the generated manifest includes only source bucket objects whose - // file size is less than the specified number of bytes. - ObjectSizeLessThanBytes *int64 `type:"long"` + // Indicates whether Amazon S3 will remove a delete marker with no noncurrent + // versions. If set to true, the delete marker will be expired. If set to false, + // the policy takes no action. This cannot be specified with Days or Date in + // a Lifecycle Expiration Policy. + ExpiredObjectDeleteMarker *bool `type:"boolean"` } // String returns the string representation. @@ -15317,7 +20249,7 @@ type JobManifestGeneratorFilter struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobManifestGeneratorFilter) String() string { +func (s LifecycleExpiration) String() string { return awsutil.Prettify(s) } @@ -15326,79 +20258,71 @@ func (s JobManifestGeneratorFilter) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobManifestGeneratorFilter) GoString() string { +func (s LifecycleExpiration) GoString() string { return s.String() } -// SetCreatedAfter sets the CreatedAfter field's value. -func (s *JobManifestGeneratorFilter) SetCreatedAfter(v time.Time) *JobManifestGeneratorFilter { - s.CreatedAfter = &v +// SetDate sets the Date field's value. +func (s *LifecycleExpiration) SetDate(v time.Time) *LifecycleExpiration { + s.Date = &v return s } -// SetCreatedBefore sets the CreatedBefore field's value. -func (s *JobManifestGeneratorFilter) SetCreatedBefore(v time.Time) *JobManifestGeneratorFilter { - s.CreatedBefore = &v +// SetDays sets the Days field's value. +func (s *LifecycleExpiration) SetDays(v int64) *LifecycleExpiration { + s.Days = &v return s } -// SetEligibleForReplication sets the EligibleForReplication field's value. -func (s *JobManifestGeneratorFilter) SetEligibleForReplication(v bool) *JobManifestGeneratorFilter { - s.EligibleForReplication = &v +// SetExpiredObjectDeleteMarker sets the ExpiredObjectDeleteMarker field's value. +func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExpiration { + s.ExpiredObjectDeleteMarker = &v return s } -// SetKeyNameConstraint sets the KeyNameConstraint field's value. -func (s *JobManifestGeneratorFilter) SetKeyNameConstraint(v *KeyNameConstraint) *JobManifestGeneratorFilter { - s.KeyNameConstraint = v - return s -} +// The container for the Outposts bucket lifecycle rule. +type LifecycleRule struct { + _ struct{} `type:"structure"` -// SetMatchAnyStorageClass sets the MatchAnyStorageClass field's value. -func (s *JobManifestGeneratorFilter) SetMatchAnyStorageClass(v []*string) *JobManifestGeneratorFilter { - s.MatchAnyStorageClass = v - return s -} + // Specifies the days since the initiation of an incomplete multipart upload + // that Amazon S3 waits before permanently removing all parts of the upload. + // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket + // Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) + // in the Amazon S3 User Guide. + AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"` -// SetObjectReplicationStatuses sets the ObjectReplicationStatuses field's value. -func (s *JobManifestGeneratorFilter) SetObjectReplicationStatuses(v []*string) *JobManifestGeneratorFilter { - s.ObjectReplicationStatuses = v - return s -} + // Specifies the expiration for the lifecycle of the object in the form of date, + // days and, whether the object has a delete marker. + Expiration *LifecycleExpiration `type:"structure"` -// SetObjectSizeGreaterThanBytes sets the ObjectSizeGreaterThanBytes field's value. -func (s *JobManifestGeneratorFilter) SetObjectSizeGreaterThanBytes(v int64) *JobManifestGeneratorFilter { - s.ObjectSizeGreaterThanBytes = &v - return s -} + // The container for the filter of lifecycle rule. + Filter *LifecycleRuleFilter `type:"structure"` -// SetObjectSizeLessThanBytes sets the ObjectSizeLessThanBytes field's value. -func (s *JobManifestGeneratorFilter) SetObjectSizeLessThanBytes(v int64) *JobManifestGeneratorFilter { - s.ObjectSizeLessThanBytes = &v - return s -} + // Unique identifier for the rule. The value cannot be longer than 255 characters. + ID *string `type:"string"` -// Contains the information required to locate a manifest object. -type JobManifestLocation struct { - _ struct{} `type:"structure"` + // The noncurrent version expiration of the lifecycle rule. + NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"` - // The ETag for the specified manifest object. + // Specifies the transition rule for the lifecycle rule that describes when + // noncurrent objects transition to a specific storage class. If your bucket + // is versioning-enabled (or versioning is suspended), you can set this action + // to request that Amazon S3 transition noncurrent object versions to a specific + // storage class at a set period in the object's lifetime. // - // ETag is a required field - ETag *string `min:"1" type:"string" required:"true"` + // This is not supported by Amazon S3 on Outposts buckets. + NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationNameList:"NoncurrentVersionTransition" type:"list"` - // The Amazon Resource Name (ARN) for a manifest object. - // - // When you're using XML requests, you must replace special characters (such - // as carriage returns) in object keys with their equivalent XML entity codes. - // For more information, see XML-related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) - // in the Amazon S3 User Guide. + // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule + // is not currently being applied. // - // ObjectArn is a required field - ObjectArn *string `min:"1" type:"string" required:"true"` + // Status is a required field + Status *string `type:"string" required:"true" enum:"ExpirationStatus"` - // The optional version ID to identify a specific version of the manifest object. - ObjectVersionId *string `min:"1" type:"string"` + // Specifies when an Amazon S3 object transitions to a specified storage class. + // + // This is not supported by Amazon S3 on Outposts buckets. + Transitions []*Transition `locationNameList:"Transition" type:"list"` } // String returns the string representation. @@ -15406,7 +20330,7 @@ type JobManifestLocation struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobManifestLocation) String() string { +func (s LifecycleRule) String() string { return awsutil.Prettify(s) } @@ -15415,66 +20339,92 @@ func (s JobManifestLocation) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobManifestLocation) GoString() string { +func (s LifecycleRule) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *JobManifestLocation) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "JobManifestLocation"} - if s.ETag == nil { - invalidParams.Add(request.NewErrParamRequired("ETag")) - } - if s.ETag != nil && len(*s.ETag) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ETag", 1)) - } - if s.ObjectArn == nil { - invalidParams.Add(request.NewErrParamRequired("ObjectArn")) +func (s *LifecycleRule) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LifecycleRule"} + if s.Status == nil { + invalidParams.Add(request.NewErrParamRequired("Status")) } - if s.ObjectArn != nil && len(*s.ObjectArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ObjectArn", 1)) + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } } - if s.ObjectVersionId != nil && len(*s.ObjectVersionId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ObjectVersionId", 1)) + + if invalidParams.Len() > 0 { + return invalidParams } + return nil +} + +// SetAbortIncompleteMultipartUpload sets the AbortIncompleteMultipartUpload field's value. +func (s *LifecycleRule) SetAbortIncompleteMultipartUpload(v *AbortIncompleteMultipartUpload) *LifecycleRule { + s.AbortIncompleteMultipartUpload = v + return s +} + +// SetExpiration sets the Expiration field's value. +func (s *LifecycleRule) SetExpiration(v *LifecycleExpiration) *LifecycleRule { + s.Expiration = v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetFilter sets the Filter field's value. +func (s *LifecycleRule) SetFilter(v *LifecycleRuleFilter) *LifecycleRule { + s.Filter = v + return s } -// SetETag sets the ETag field's value. -func (s *JobManifestLocation) SetETag(v string) *JobManifestLocation { - s.ETag = &v +// SetID sets the ID field's value. +func (s *LifecycleRule) SetID(v string) *LifecycleRule { + s.ID = &v return s } -// SetObjectArn sets the ObjectArn field's value. -func (s *JobManifestLocation) SetObjectArn(v string) *JobManifestLocation { - s.ObjectArn = &v +// SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value. +func (s *LifecycleRule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *LifecycleRule { + s.NoncurrentVersionExpiration = v return s } -// SetObjectVersionId sets the ObjectVersionId field's value. -func (s *JobManifestLocation) SetObjectVersionId(v string) *JobManifestLocation { - s.ObjectVersionId = &v +// SetNoncurrentVersionTransitions sets the NoncurrentVersionTransitions field's value. +func (s *LifecycleRule) SetNoncurrentVersionTransitions(v []*NoncurrentVersionTransition) *LifecycleRule { + s.NoncurrentVersionTransitions = v return s } -// Describes the format of a manifest. If the manifest is in CSV format, also -// describes the columns contained within the manifest. -type JobManifestSpec struct { +// SetStatus sets the Status field's value. +func (s *LifecycleRule) SetStatus(v string) *LifecycleRule { + s.Status = &v + return s +} + +// SetTransitions sets the Transitions field's value. +func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule { + s.Transitions = v + return s +} + +// The container for the Outposts bucket lifecycle rule and operator. +type LifecycleRuleAndOperator struct { _ struct{} `type:"structure"` - // If the specified manifest object is in the S3BatchOperations_CSV_20180820 - // format, this element describes which columns contain the required data. - Fields []*string `type:"list" enum:"JobManifestFieldName"` + // Minimum object size to which the rule applies. + ObjectSizeGreaterThan *int64 `type:"long"` - // Indicates which of the available formats the specified manifest uses. - // - // Format is a required field - Format *string `type:"string" required:"true" enum:"JobManifestFormat"` + // Maximum object size to which the rule applies. + ObjectSizeLessThan *int64 `type:"long"` + + // Prefix identifying one or more objects to which the rule applies. + Prefix *string `type:"string"` + + // All of these tags must exist in the object's tag set in order for the rule + // to apply. + Tags []*S3Tag `type:"list"` } // String returns the string representation. @@ -15482,7 +20432,7 @@ type JobManifestSpec struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobManifestSpec) String() string { +func (s LifecycleRuleAndOperator) String() string { return awsutil.Prettify(s) } @@ -15491,15 +20441,22 @@ func (s JobManifestSpec) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobManifestSpec) GoString() string { +func (s LifecycleRuleAndOperator) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *JobManifestSpec) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "JobManifestSpec"} - if s.Format == nil { - invalidParams.Add(request.NewErrParamRequired("Format")) +func (s *LifecycleRuleAndOperator) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleAndOperator"} + 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 { @@ -15508,66 +20465,53 @@ func (s *JobManifestSpec) Validate() error { return nil } -// SetFields sets the Fields field's value. -func (s *JobManifestSpec) SetFields(v []*string) *JobManifestSpec { - s.Fields = v +// SetObjectSizeGreaterThan sets the ObjectSizeGreaterThan field's value. +func (s *LifecycleRuleAndOperator) SetObjectSizeGreaterThan(v int64) *LifecycleRuleAndOperator { + s.ObjectSizeGreaterThan = &v return s } -// SetFormat sets the Format field's value. -func (s *JobManifestSpec) SetFormat(v string) *JobManifestSpec { - s.Format = &v +// SetObjectSizeLessThan sets the ObjectSizeLessThan field's value. +func (s *LifecycleRuleAndOperator) SetObjectSizeLessThan(v int64) *LifecycleRuleAndOperator { + s.ObjectSizeLessThan = &v return s } -// The operation that you want this job to perform on every object listed in -// the manifest. For more information about the available operations, see Operations -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html) -// in the Amazon S3 User Guide. -type JobOperation struct { - _ struct{} `type:"structure"` - - // Directs the specified job to invoke an Lambda function on every object in - // the manifest. - LambdaInvoke *LambdaInvokeOperation `type:"structure"` +// SetPrefix sets the Prefix field's value. +func (s *LifecycleRuleAndOperator) SetPrefix(v string) *LifecycleRuleAndOperator { + s.Prefix = &v + return s +} - // Directs the specified job to execute a DELETE Object tagging call on every - // object in the manifest. - S3DeleteObjectTagging *S3DeleteObjectTaggingOperation `type:"structure"` +// SetTags sets the Tags field's value. +func (s *LifecycleRuleAndOperator) SetTags(v []*S3Tag) *LifecycleRuleAndOperator { + s.Tags = v + return s +} - // Directs the specified job to initiate restore requests for every archived - // object in the manifest. - S3InitiateRestoreObject *S3InitiateRestoreObjectOperation `type:"structure"` +// The container for the filter of the lifecycle rule. +type LifecycleRuleFilter struct { + _ struct{} `type:"structure"` - // Directs the specified job to run a PutObjectAcl call on every object in the - // manifest. - S3PutObjectAcl *S3SetObjectAclOperation `type:"structure"` + // The container for the AND condition for the lifecycle rule. + And *LifecycleRuleAndOperator `type:"structure"` - // Directs the specified job to run a PUT Copy object call on every object in - // the manifest. - S3PutObjectCopy *S3CopyObjectOperation `type:"structure"` + // Minimum object size to which the rule applies. + ObjectSizeGreaterThan *int64 `type:"long"` - // Contains the configuration for an S3 Object Lock legal hold operation that - // an S3 Batch Operations job passes to every object to the underlying PutObjectLegalHold - // API operation. For more information, see Using S3 Object Lock legal hold - // with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html) - // in the Amazon S3 User Guide. - S3PutObjectLegalHold *S3SetObjectLegalHoldOperation `type:"structure"` + // Maximum object size to which the rule applies. + ObjectSizeLessThan *int64 `type:"long"` - // Contains the configuration parameters for the Object Lock retention action - // for an S3 Batch Operations job. Batch Operations passes every object to the - // underlying PutObjectRetention API operation. For more information, see Using - // S3 Object Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html) + // Prefix identifying one or more objects to which the rule applies. + // + // When you're using XML requests, you must replace special characters (such + // as carriage returns) in object keys with their equivalent XML entity codes. + // For more information, see XML-related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) // in the Amazon S3 User Guide. - S3PutObjectRetention *S3SetObjectRetentionOperation `type:"structure"` - - // Directs the specified job to run a PUT Object tagging call on every object - // in the manifest. - S3PutObjectTagging *S3SetObjectTaggingOperation `type:"structure"` + Prefix *string `type:"string"` - // Directs the specified job to invoke ReplicateObject on every object in the - // job's manifest. - S3ReplicateObject *S3ReplicateObjectOperation `type:"structure"` + // A container for a key-value name pair. + Tag *S3Tag `type:"structure"` } // String returns the string representation. @@ -15575,7 +20519,7 @@ type JobOperation struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobOperation) String() string { +func (s LifecycleRuleFilter) String() string { return awsutil.Prettify(s) } @@ -15584,41 +20528,21 @@ func (s JobOperation) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobOperation) GoString() string { +func (s LifecycleRuleFilter) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *JobOperation) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "JobOperation"} - if s.LambdaInvoke != nil { - if err := s.LambdaInvoke.Validate(); err != nil { - invalidParams.AddNested("LambdaInvoke", err.(request.ErrInvalidParams)) - } - } - if s.S3PutObjectAcl != nil { - if err := s.S3PutObjectAcl.Validate(); err != nil { - invalidParams.AddNested("S3PutObjectAcl", err.(request.ErrInvalidParams)) - } - } - if s.S3PutObjectCopy != nil { - if err := s.S3PutObjectCopy.Validate(); err != nil { - invalidParams.AddNested("S3PutObjectCopy", err.(request.ErrInvalidParams)) - } - } - if s.S3PutObjectLegalHold != nil { - if err := s.S3PutObjectLegalHold.Validate(); err != nil { - invalidParams.AddNested("S3PutObjectLegalHold", err.(request.ErrInvalidParams)) - } - } - if s.S3PutObjectRetention != nil { - if err := s.S3PutObjectRetention.Validate(); err != nil { - invalidParams.AddNested("S3PutObjectRetention", err.(request.ErrInvalidParams)) +func (s *LifecycleRuleFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleFilter"} + if s.And != nil { + if err := s.And.Validate(); err != nil { + invalidParams.AddNested("And", err.(request.ErrInvalidParams)) } } - if s.S3PutObjectTagging != nil { - if err := s.S3PutObjectTagging.Validate(); err != nil { - invalidParams.AddNested("S3PutObjectTagging", err.(request.ErrInvalidParams)) + if s.Tag != nil { + if err := s.Tag.Validate(); err != nil { + invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) } } @@ -15628,73 +20552,86 @@ func (s *JobOperation) Validate() error { return nil } -// SetLambdaInvoke sets the LambdaInvoke field's value. -func (s *JobOperation) SetLambdaInvoke(v *LambdaInvokeOperation) *JobOperation { - s.LambdaInvoke = v - return s -} - -// SetS3DeleteObjectTagging sets the S3DeleteObjectTagging field's value. -func (s *JobOperation) SetS3DeleteObjectTagging(v *S3DeleteObjectTaggingOperation) *JobOperation { - s.S3DeleteObjectTagging = v - return s -} - -// SetS3InitiateRestoreObject sets the S3InitiateRestoreObject field's value. -func (s *JobOperation) SetS3InitiateRestoreObject(v *S3InitiateRestoreObjectOperation) *JobOperation { - s.S3InitiateRestoreObject = v - return s -} - -// SetS3PutObjectAcl sets the S3PutObjectAcl field's value. -func (s *JobOperation) SetS3PutObjectAcl(v *S3SetObjectAclOperation) *JobOperation { - s.S3PutObjectAcl = v - return s -} - -// SetS3PutObjectCopy sets the S3PutObjectCopy field's value. -func (s *JobOperation) SetS3PutObjectCopy(v *S3CopyObjectOperation) *JobOperation { - s.S3PutObjectCopy = v +// SetAnd sets the And field's value. +func (s *LifecycleRuleFilter) SetAnd(v *LifecycleRuleAndOperator) *LifecycleRuleFilter { + s.And = v return s } -// SetS3PutObjectLegalHold sets the S3PutObjectLegalHold field's value. -func (s *JobOperation) SetS3PutObjectLegalHold(v *S3SetObjectLegalHoldOperation) *JobOperation { - s.S3PutObjectLegalHold = v +// SetObjectSizeGreaterThan sets the ObjectSizeGreaterThan field's value. +func (s *LifecycleRuleFilter) SetObjectSizeGreaterThan(v int64) *LifecycleRuleFilter { + s.ObjectSizeGreaterThan = &v return s } -// SetS3PutObjectRetention sets the S3PutObjectRetention field's value. -func (s *JobOperation) SetS3PutObjectRetention(v *S3SetObjectRetentionOperation) *JobOperation { - s.S3PutObjectRetention = v +// SetObjectSizeLessThan sets the ObjectSizeLessThan field's value. +func (s *LifecycleRuleFilter) SetObjectSizeLessThan(v int64) *LifecycleRuleFilter { + s.ObjectSizeLessThan = &v return s } -// SetS3PutObjectTagging sets the S3PutObjectTagging field's value. -func (s *JobOperation) SetS3PutObjectTagging(v *S3SetObjectTaggingOperation) *JobOperation { - s.S3PutObjectTagging = v +// SetPrefix sets the Prefix field's value. +func (s *LifecycleRuleFilter) SetPrefix(v string) *LifecycleRuleFilter { + s.Prefix = &v return s } -// SetS3ReplicateObject sets the S3ReplicateObject field's value. -func (s *JobOperation) SetS3ReplicateObject(v *S3ReplicateObjectOperation) *JobOperation { - s.S3ReplicateObject = v +// SetTag sets the Tag field's value. +func (s *LifecycleRuleFilter) SetTag(v *S3Tag) *LifecycleRuleFilter { + s.Tag = v return s } -// Describes the total number of tasks that the specified job has started, the -// number of tasks that succeeded, and the number of tasks that failed. -type JobProgressSummary struct { +// Information about the access grant. +type ListAccessGrantEntry struct { _ struct{} `type:"structure"` - NumberOfTasksFailed *int64 `type:"long"` + // The Amazon Resource Name (ARN) of the access grant. + AccessGrantArn *string `min:"1" type:"string"` - NumberOfTasksSucceeded *int64 `type:"long"` + // The ID of the access grant. S3 Access Grants auto-generates this ID when + // you create the access grant. + AccessGrantId *string `min:"1" type:"string"` - // The JobTimers attribute of a job's progress summary. - Timers *JobTimers `type:"structure"` + // The configuration options of the grant location. The grant location is the + // S3 path to the data to which you are granting access. + AccessGrantsLocationConfiguration *AccessGrantsLocationConfiguration `type:"structure"` - TotalNumberOfTasks *int64 `type:"long"` + // The ID of the registered location to which you are granting access. S3 Access + // Grants assigns this ID when you register the location. S3 Access Grants assigns + // the ID default to the default location s3:// and assigns an auto-generated + // ID to other locations that you register. + AccessGrantsLocationId *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center + // application associated with your Identity Center instance. If the grant includes + // an application ARN, the grantee can only access the S3 data through this + // application. + ApplicationArn *string `min:"10" type:"string"` + + // The date and time when you created the S3 Access Grants instance. + CreatedAt *time.Time `type:"timestamp"` + + // The S3 path of the data to which you are granting access. It is the result + // of appending the Subprefix to the location scope. + GrantScope *string `min:"1" type:"string"` + + // The user, group, or role to which you are granting access. You can grant + // access to an IAM user or role. If you have added your corporate directory + // to Amazon Web Services IAM Identity Center and associated your Identity Center + // instance with your S3 Access Grants instance, the grantee can also be a corporate + // directory user or group. + Grantee *Grantee `type:"structure"` + + // The type of access granted to your S3 data, which can be set to one of the + // following values: + // + // * READ – Grant read-only access to the S3 data. + // + // * WRITE – Grant write-only access to the S3 data. + // + // * READWRITE – Grant both read and write access to the S3 data. + Permission *string `type:"string" enum:"Permission"` } // String returns the string representation. @@ -15702,7 +20639,7 @@ type JobProgressSummary struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobProgressSummary) String() string { +func (s ListAccessGrantEntry) String() string { return awsutil.Prettify(s) } @@ -15711,57 +20648,125 @@ func (s JobProgressSummary) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobProgressSummary) GoString() string { +func (s ListAccessGrantEntry) GoString() string { return s.String() } -// SetNumberOfTasksFailed sets the NumberOfTasksFailed field's value. -func (s *JobProgressSummary) SetNumberOfTasksFailed(v int64) *JobProgressSummary { - s.NumberOfTasksFailed = &v +// SetAccessGrantArn sets the AccessGrantArn field's value. +func (s *ListAccessGrantEntry) SetAccessGrantArn(v string) *ListAccessGrantEntry { + s.AccessGrantArn = &v return s } -// SetNumberOfTasksSucceeded sets the NumberOfTasksSucceeded field's value. -func (s *JobProgressSummary) SetNumberOfTasksSucceeded(v int64) *JobProgressSummary { - s.NumberOfTasksSucceeded = &v +// SetAccessGrantId sets the AccessGrantId field's value. +func (s *ListAccessGrantEntry) SetAccessGrantId(v string) *ListAccessGrantEntry { + s.AccessGrantId = &v return s } -// SetTimers sets the Timers field's value. -func (s *JobProgressSummary) SetTimers(v *JobTimers) *JobProgressSummary { - s.Timers = v +// SetAccessGrantsLocationConfiguration sets the AccessGrantsLocationConfiguration field's value. +func (s *ListAccessGrantEntry) SetAccessGrantsLocationConfiguration(v *AccessGrantsLocationConfiguration) *ListAccessGrantEntry { + s.AccessGrantsLocationConfiguration = v return s } -// SetTotalNumberOfTasks sets the TotalNumberOfTasks field's value. -func (s *JobProgressSummary) SetTotalNumberOfTasks(v int64) *JobProgressSummary { - s.TotalNumberOfTasks = &v +// SetAccessGrantsLocationId sets the AccessGrantsLocationId field's value. +func (s *ListAccessGrantEntry) SetAccessGrantsLocationId(v string) *ListAccessGrantEntry { + s.AccessGrantsLocationId = &v return s } -// Contains the configuration parameters for a job-completion report. -type JobReport struct { - _ struct{} `type:"structure"` +// SetApplicationArn sets the ApplicationArn field's value. +func (s *ListAccessGrantEntry) SetApplicationArn(v string) *ListAccessGrantEntry { + s.ApplicationArn = &v + return s +} - // The Amazon Resource Name (ARN) for the bucket where specified job-completion - // report will be stored. - Bucket *string `min:"1" type:"string"` +// SetCreatedAt sets the CreatedAt field's value. +func (s *ListAccessGrantEntry) SetCreatedAt(v time.Time) *ListAccessGrantEntry { + s.CreatedAt = &v + return s +} - // Indicates whether the specified job will generate a job-completion report. +// SetGrantScope sets the GrantScope field's value. +func (s *ListAccessGrantEntry) SetGrantScope(v string) *ListAccessGrantEntry { + s.GrantScope = &v + return s +} + +// SetGrantee sets the Grantee field's value. +func (s *ListAccessGrantEntry) SetGrantee(v *Grantee) *ListAccessGrantEntry { + s.Grantee = v + return s +} + +// SetPermission sets the Permission field's value. +func (s *ListAccessGrantEntry) SetPermission(v string) *ListAccessGrantEntry { + s.Permission = &v + return s +} + +type ListAccessGrantsInput struct { + _ struct{} `locationName:"ListAccessGrantsRequest" type:"structure"` + + // The ID of the Amazon Web Services account that is making this request. // - // Enabled is a required field - Enabled *bool `type:"boolean" required:"true"` + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The format of the specified job-completion report. - Format *string `type:"string" enum:"JobReportFormat"` + // The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center + // application associated with your Identity Center instance. If the grant includes + // an application ARN, the grantee can only access the S3 data through this + // application. + ApplicationArn *string `location:"querystring" locationName:"application_arn" min:"10" type:"string"` + + // The S3 path of the data to which you are granting access. It is the result + // of appending the Subprefix to the location scope. + GrantScope *string `location:"querystring" locationName:"grantscope" min:"1" type:"string"` + + // The unique identifer of the Grantee. If the grantee type is IAM, the identifier + // is the IAM Amazon Resource Name (ARN) of the user or role. If the grantee + // type is a directory user or group, the identifier is 128-bit universally + // unique identifier (UUID) in the format a1b2c3d4-5678-90ab-cdef-EXAMPLE11111. + // You can obtain this UUID from your Amazon Web Services IAM Identity Center + // instance. + GranteeIdentifier *string `location:"querystring" locationName:"granteeidentifier" type:"string"` + + // The type of the grantee to which access has been granted. It can be one of + // the following values: + // + // * IAM - An IAM user or role. + // + // * DIRECTORY_USER - Your corporate directory user. You can use this option + // if you have added your corporate identity directory to IAM Identity Center + // and associated the IAM Identity Center instance with your S3 Access Grants + // instance. + // + // * DIRECTORY_GROUP - Your corporate directory group. You can use this option + // if you have added your corporate identity directory to IAM Identity Center + // and associated the IAM Identity Center instance with your S3 Access Grants + // instance. + GranteeType *string `location:"querystring" locationName:"granteetype" type:"string" enum:"GranteeType"` + + // The maximum number of access grants that you would like returned in the List + // Access Grants response. If the results include the pagination token NextToken, + // make another call using the NextToken to determine if there are more results. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` - // An optional prefix to describe where in the specified bucket the job-completion - // report will be stored. Amazon S3 stores the job-completion report at /job-/report.json. - Prefix *string `min:"1" type:"string"` + // A pagination token to request the next page of results. Pass this value into + // a subsequent List Access Grants request in order to retrieve the next page + // of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` - // Indicates whether the job-completion report will include details of all tasks - // or only failed tasks. - ReportScope *string `type:"string" enum:"JobReportScope"` + // The type of permission granted to your S3 data, which can be set to one of + // the following values: + // + // * READ – Grant read-only access to the S3 data. + // + // * WRITE – Grant write-only access to the S3 data. + // + // * READWRITE – Grant both read and write access to the S3 data. + Permission *string `location:"querystring" locationName:"permission" type:"string" enum:"Permission"` } // String returns the string representation. @@ -15769,7 +20774,7 @@ type JobReport struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobReport) String() string { +func (s ListAccessGrantsInput) String() string { return awsutil.Prettify(s) } @@ -15778,21 +20783,24 @@ func (s JobReport) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobReport) GoString() string { +func (s ListAccessGrantsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *JobReport) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "JobReport"} - if s.Bucket != nil && len(*s.Bucket) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) +func (s *ListAccessGrantsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAccessGrantsInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) } - if s.Enabled == nil { - invalidParams.Add(request.NewErrParamRequired("Enabled")) + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Prefix != nil && len(*s.Prefix) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Prefix", 1)) + if s.ApplicationArn != nil && len(*s.ApplicationArn) < 10 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationArn", 10)) + } + if s.GrantScope != nil && len(*s.GrantScope) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GrantScope", 1)) } if invalidParams.Len() > 0 { @@ -15801,86 +20809,80 @@ func (s *JobReport) Validate() error { return nil } -// SetBucket sets the Bucket field's value. -func (s *JobReport) SetBucket(v string) *JobReport { - s.Bucket = &v +// SetAccountId sets the AccountId field's value. +func (s *ListAccessGrantsInput) SetAccountId(v string) *ListAccessGrantsInput { + s.AccountId = &v return s } -// SetEnabled sets the Enabled field's value. -func (s *JobReport) SetEnabled(v bool) *JobReport { - s.Enabled = &v +// SetApplicationArn sets the ApplicationArn field's value. +func (s *ListAccessGrantsInput) SetApplicationArn(v string) *ListAccessGrantsInput { + s.ApplicationArn = &v return s } -// SetFormat sets the Format field's value. -func (s *JobReport) SetFormat(v string) *JobReport { - s.Format = &v +// SetGrantScope sets the GrantScope field's value. +func (s *ListAccessGrantsInput) SetGrantScope(v string) *ListAccessGrantsInput { + s.GrantScope = &v return s } -// SetPrefix sets the Prefix field's value. -func (s *JobReport) SetPrefix(v string) *JobReport { - s.Prefix = &v +// SetGranteeIdentifier sets the GranteeIdentifier field's value. +func (s *ListAccessGrantsInput) SetGranteeIdentifier(v string) *ListAccessGrantsInput { + s.GranteeIdentifier = &v return s } -// SetReportScope sets the ReportScope field's value. -func (s *JobReport) SetReportScope(v string) *JobReport { - s.ReportScope = &v +// SetGranteeType sets the GranteeType field's value. +func (s *ListAccessGrantsInput) SetGranteeType(v string) *ListAccessGrantsInput { + s.GranteeType = &v return s } -// Provides timing details for the job. -type JobTimers struct { - _ struct{} `type:"structure"` - - // Indicates the elapsed time in seconds the job has been in the Active job - // state. - ElapsedTimeInActiveSeconds *int64 `type:"long"` +// SetMaxResults sets the MaxResults field's value. +func (s *ListAccessGrantsInput) SetMaxResults(v int64) *ListAccessGrantsInput { + s.MaxResults = &v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s JobTimers) String() string { - return awsutil.Prettify(s) +// SetNextToken sets the NextToken field's value. +func (s *ListAccessGrantsInput) SetNextToken(v string) *ListAccessGrantsInput { + s.NextToken = &v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s JobTimers) GoString() string { - return s.String() +// SetPermission sets the Permission field's value. +func (s *ListAccessGrantsInput) SetPermission(v string) *ListAccessGrantsInput { + s.Permission = &v + return s } -// SetElapsedTimeInActiveSeconds sets the ElapsedTimeInActiveSeconds field's value. -func (s *JobTimers) SetElapsedTimeInActiveSeconds(v int64) *JobTimers { - s.ElapsedTimeInActiveSeconds = &v - return s +func (s *ListAccessGrantsInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } } -// If provided, the generated manifest includes only source bucket objects whose -// object keys match the string constraints specified for MatchAnyPrefix, MatchAnySuffix, -// and MatchAnySubstring. -type KeyNameConstraint struct { +// Information about the S3 Access Grants instance. +type ListAccessGrantsInstanceEntry struct { _ struct{} `type:"structure"` - // If provided, the generated manifest includes objects where the specified - // string appears at the start of the object key string. - MatchAnyPrefix []*string `type:"list"` + // The Amazon Resource Name (ARN) of the S3 Access Grants instance. + AccessGrantsInstanceArn *string `min:"1" type:"string"` - // If provided, the generated manifest includes objects where the specified - // string appears anywhere within the object key string. - MatchAnySubstring []*string `type:"list"` + // The ID of the S3 Access Grants instance. The ID is default. You can have + // one S3 Access Grants instance per Region per account. + AccessGrantsInstanceId *string `min:"1" type:"string"` - // If provided, the generated manifest includes objects where the specified - // string appears at the end of the object key string. - MatchAnySuffix []*string `type:"list"` + // The date and time when you created the S3 Access Grants instance. + CreatedAt *time.Time `type:"timestamp"` + + // If you associated your S3 Access Grants instance with an Amazon Web Services + // IAM Identity Center instance, this field returns the Amazon Resource Name + // (ARN) of the IAM Identity Center instance application; a subresource of the + // original Identity Center instance. S3 Access Grants creates this Identity + // Center application for the specific S3 Access Grants instance. + IdentityCenterArn *string `min:"10" type:"string"` } // String returns the string representation. @@ -15888,7 +20890,7 @@ type KeyNameConstraint struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s KeyNameConstraint) String() string { +func (s ListAccessGrantsInstanceEntry) String() string { return awsutil.Prettify(s) } @@ -15897,35 +20899,51 @@ func (s KeyNameConstraint) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s KeyNameConstraint) GoString() string { +func (s ListAccessGrantsInstanceEntry) GoString() string { return s.String() } -// SetMatchAnyPrefix sets the MatchAnyPrefix field's value. -func (s *KeyNameConstraint) SetMatchAnyPrefix(v []*string) *KeyNameConstraint { - s.MatchAnyPrefix = v +// SetAccessGrantsInstanceArn sets the AccessGrantsInstanceArn field's value. +func (s *ListAccessGrantsInstanceEntry) SetAccessGrantsInstanceArn(v string) *ListAccessGrantsInstanceEntry { + s.AccessGrantsInstanceArn = &v return s } -// SetMatchAnySubstring sets the MatchAnySubstring field's value. -func (s *KeyNameConstraint) SetMatchAnySubstring(v []*string) *KeyNameConstraint { - s.MatchAnySubstring = v +// SetAccessGrantsInstanceId sets the AccessGrantsInstanceId field's value. +func (s *ListAccessGrantsInstanceEntry) SetAccessGrantsInstanceId(v string) *ListAccessGrantsInstanceEntry { + s.AccessGrantsInstanceId = &v return s } -// SetMatchAnySuffix sets the MatchAnySuffix field's value. -func (s *KeyNameConstraint) SetMatchAnySuffix(v []*string) *KeyNameConstraint { - s.MatchAnySuffix = v +// SetCreatedAt sets the CreatedAt field's value. +func (s *ListAccessGrantsInstanceEntry) SetCreatedAt(v time.Time) *ListAccessGrantsInstanceEntry { + s.CreatedAt = &v return s } -// Contains the configuration parameters for a Lambda Invoke operation. -type LambdaInvokeOperation struct { - _ struct{} `type:"structure"` +// SetIdentityCenterArn sets the IdentityCenterArn field's value. +func (s *ListAccessGrantsInstanceEntry) SetIdentityCenterArn(v string) *ListAccessGrantsInstanceEntry { + s.IdentityCenterArn = &v + return s +} - // The Amazon Resource Name (ARN) for the Lambda function that the specified - // job will invoke on every object in the manifest. - FunctionArn *string `min:"1" type:"string"` +type ListAccessGrantsInstancesInput struct { + _ struct{} `locationName:"ListAccessGrantsInstancesRequest" type:"structure"` + + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The maximum number of access grants that you would like returned in the List + // Access Grants response. If the results include the pagination token NextToken, + // make another call using the NextToken to determine if there are more results. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // A pagination token to request the next page of results. Pass this value into + // a subsequent List Access Grants Instances request in order to retrieve the + // next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` } // String returns the string representation. @@ -15933,7 +20951,7 @@ type LambdaInvokeOperation struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LambdaInvokeOperation) String() string { +func (s ListAccessGrantsInstancesInput) String() string { return awsutil.Prettify(s) } @@ -15942,15 +20960,18 @@ func (s LambdaInvokeOperation) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LambdaInvokeOperation) GoString() string { +func (s ListAccessGrantsInstancesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *LambdaInvokeOperation) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "LambdaInvokeOperation"} - if s.FunctionArn != nil && len(*s.FunctionArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1)) +func (s *ListAccessGrantsInstancesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAccessGrantsInstancesInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } if invalidParams.Len() > 0 { @@ -15959,81 +20980,40 @@ func (s *LambdaInvokeOperation) Validate() error { return nil } -// SetFunctionArn sets the FunctionArn field's value. -func (s *LambdaInvokeOperation) SetFunctionArn(v string) *LambdaInvokeOperation { - s.FunctionArn = &v +// SetAccountId sets the AccountId field's value. +func (s *ListAccessGrantsInstancesInput) SetAccountId(v string) *ListAccessGrantsInstancesInput { + s.AccountId = &v return s } -// The container for the Outposts bucket lifecycle configuration. -type LifecycleConfiguration struct { - _ struct{} `type:"structure"` - - // A lifecycle rule for individual objects in an Outposts bucket. - Rules []*LifecycleRule `locationNameList:"Rule" type:"list"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s LifecycleConfiguration) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s LifecycleConfiguration) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *LifecycleConfiguration) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "LifecycleConfiguration"} - if s.Rules != nil { - for i, v := range s.Rules { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetMaxResults sets the MaxResults field's value. +func (s *ListAccessGrantsInstancesInput) SetMaxResults(v int64) *ListAccessGrantsInstancesInput { + s.MaxResults = &v + return s } -// SetRules sets the Rules field's value. -func (s *LifecycleConfiguration) SetRules(v []*LifecycleRule) *LifecycleConfiguration { - s.Rules = v +// SetNextToken sets the NextToken field's value. +func (s *ListAccessGrantsInstancesInput) SetNextToken(v string) *ListAccessGrantsInstancesInput { + s.NextToken = &v return s } -// The container of the Outposts bucket lifecycle expiration. -type LifecycleExpiration struct { - _ struct{} `type:"structure"` +func (s *ListAccessGrantsInstancesInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} - // Indicates at what date the object is to be deleted. Should be in GMT ISO - // 8601 format. - Date *time.Time `type:"timestamp"` +type ListAccessGrantsInstancesOutput struct { + _ struct{} `type:"structure"` - // Indicates the lifetime, in days, of the objects that are subject to the rule. - // The value must be a non-zero positive integer. - Days *int64 `type:"integer"` + // A container for a list of S3 Access Grants instances. + AccessGrantsInstancesList []*ListAccessGrantsInstanceEntry `locationNameList:"AccessGrantsInstance" type:"list"` - // Indicates whether Amazon S3 will remove a delete marker with no noncurrent - // versions. If set to true, the delete marker will be expired. If set to false, - // the policy takes no action. This cannot be specified with Days or Date in - // a Lifecycle Expiration Policy. - ExpiredObjectDeleteMarker *bool `type:"boolean"` + // A pagination token to request the next page of results. Pass this value into + // a subsequent List Access Grants Instances request in order to retrieve the + // next page of results. + NextToken *string `type:"string"` } // String returns the string representation. @@ -16041,7 +21021,7 @@ type LifecycleExpiration struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LifecycleExpiration) String() string { +func (s ListAccessGrantsInstancesOutput) String() string { return awsutil.Prettify(s) } @@ -16050,71 +21030,50 @@ func (s LifecycleExpiration) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LifecycleExpiration) GoString() string { +func (s ListAccessGrantsInstancesOutput) GoString() string { return s.String() } -// SetDate sets the Date field's value. -func (s *LifecycleExpiration) SetDate(v time.Time) *LifecycleExpiration { - s.Date = &v - return s -} - -// SetDays sets the Days field's value. -func (s *LifecycleExpiration) SetDays(v int64) *LifecycleExpiration { - s.Days = &v +// SetAccessGrantsInstancesList sets the AccessGrantsInstancesList field's value. +func (s *ListAccessGrantsInstancesOutput) SetAccessGrantsInstancesList(v []*ListAccessGrantsInstanceEntry) *ListAccessGrantsInstancesOutput { + s.AccessGrantsInstancesList = v return s } -// SetExpiredObjectDeleteMarker sets the ExpiredObjectDeleteMarker field's value. -func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExpiration { - s.ExpiredObjectDeleteMarker = &v +// SetNextToken sets the NextToken field's value. +func (s *ListAccessGrantsInstancesOutput) SetNextToken(v string) *ListAccessGrantsInstancesOutput { + s.NextToken = &v return s } -// The container for the Outposts bucket lifecycle rule. -type LifecycleRule struct { +// A container for information about the registered location. +type ListAccessGrantsLocationsEntry struct { _ struct{} `type:"structure"` - // Specifies the days since the initiation of an incomplete multipart upload - // that Amazon S3 waits before permanently removing all parts of the upload. - // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket - // Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) - // in the Amazon S3 User Guide. - AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"` - - // Specifies the expiration for the lifecycle of the object in the form of date, - // days and, whether the object has a delete marker. - Expiration *LifecycleExpiration `type:"structure"` - - // The container for the filter of lifecycle rule. - Filter *LifecycleRuleFilter `type:"structure"` - - // Unique identifier for the rule. The value cannot be longer than 255 characters. - ID *string `type:"string"` + // The Amazon Resource Name (ARN) of the registered location. + AccessGrantsLocationArn *string `min:"1" type:"string"` - // The noncurrent version expiration of the lifecycle rule. - NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"` + // The ID of the registered location to which you are granting access. S3 Access + // Grants assigns this ID when you register the location. S3 Access Grants assigns + // the ID default to the default location s3:// and assigns an auto-generated + // ID to other locations that you register. + AccessGrantsLocationId *string `min:"1" type:"string"` - // Specifies the transition rule for the lifecycle rule that describes when - // noncurrent objects transition to a specific storage class. If your bucket - // is versioning-enabled (or versioning is suspended), you can set this action - // to request that Amazon S3 transition noncurrent object versions to a specific - // storage class at a set period in the object's lifetime. - // - // This is not supported by Amazon S3 on Outposts buckets. - NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationNameList:"NoncurrentVersionTransition" type:"list"` + // The date and time when you registered the location. + CreatedAt *time.Time `type:"timestamp"` - // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule - // is not currently being applied. - // - // Status is a required field - Status *string `type:"string" required:"true" enum:"ExpirationStatus"` + // The Amazon Resource Name (ARN) of the IAM role for the registered location. + // S3 Access Grants assumes this role to manage access to the registered location. + IAMRoleArn *string `min:"1" type:"string"` - // Specifies when an Amazon S3 object transitions to a specified storage class. - // - // This is not supported by Amazon S3 on Outposts buckets. - Transitions []*Transition `locationNameList:"Transition" type:"list"` + // The S3 path to the location that you are registering. The location scope + // can be the default S3 location s3://, the S3 path to a bucket s3://, + // or the S3 path to a bucket and prefix s3:///. A prefix in + // S3 is a string of characters at the beginning of an object key name used + // to organize the objects that you store in your S3 buckets. For example, object + // key names that start with the engineering/ prefix or object key names that + // start with the marketing/campaigns/ prefix. + LocationScope *string `min:"1" type:"string"` } // String returns the string representation. @@ -16122,7 +21081,7 @@ type LifecycleRule struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LifecycleRule) String() string { +func (s ListAccessGrantsLocationsEntry) String() string { return awsutil.Prettify(s) } @@ -16131,92 +21090,66 @@ func (s LifecycleRule) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LifecycleRule) GoString() string { +func (s ListAccessGrantsLocationsEntry) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *LifecycleRule) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "LifecycleRule"} - if s.Status == nil { - invalidParams.Add(request.NewErrParamRequired("Status")) - } - if s.Filter != nil { - if err := s.Filter.Validate(); err != nil { - invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAbortIncompleteMultipartUpload sets the AbortIncompleteMultipartUpload field's value. -func (s *LifecycleRule) SetAbortIncompleteMultipartUpload(v *AbortIncompleteMultipartUpload) *LifecycleRule { - s.AbortIncompleteMultipartUpload = v - return s -} - -// SetExpiration sets the Expiration field's value. -func (s *LifecycleRule) SetExpiration(v *LifecycleExpiration) *LifecycleRule { - s.Expiration = v - return s -} - -// SetFilter sets the Filter field's value. -func (s *LifecycleRule) SetFilter(v *LifecycleRuleFilter) *LifecycleRule { - s.Filter = v - return s -} - -// SetID sets the ID field's value. -func (s *LifecycleRule) SetID(v string) *LifecycleRule { - s.ID = &v +// SetAccessGrantsLocationArn sets the AccessGrantsLocationArn field's value. +func (s *ListAccessGrantsLocationsEntry) SetAccessGrantsLocationArn(v string) *ListAccessGrantsLocationsEntry { + s.AccessGrantsLocationArn = &v return s } -// SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value. -func (s *LifecycleRule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *LifecycleRule { - s.NoncurrentVersionExpiration = v +// SetAccessGrantsLocationId sets the AccessGrantsLocationId field's value. +func (s *ListAccessGrantsLocationsEntry) SetAccessGrantsLocationId(v string) *ListAccessGrantsLocationsEntry { + s.AccessGrantsLocationId = &v return s } -// SetNoncurrentVersionTransitions sets the NoncurrentVersionTransitions field's value. -func (s *LifecycleRule) SetNoncurrentVersionTransitions(v []*NoncurrentVersionTransition) *LifecycleRule { - s.NoncurrentVersionTransitions = v +// SetCreatedAt sets the CreatedAt field's value. +func (s *ListAccessGrantsLocationsEntry) SetCreatedAt(v time.Time) *ListAccessGrantsLocationsEntry { + s.CreatedAt = &v return s } -// SetStatus sets the Status field's value. -func (s *LifecycleRule) SetStatus(v string) *LifecycleRule { - s.Status = &v +// SetIAMRoleArn sets the IAMRoleArn field's value. +func (s *ListAccessGrantsLocationsEntry) SetIAMRoleArn(v string) *ListAccessGrantsLocationsEntry { + s.IAMRoleArn = &v return s } -// SetTransitions sets the Transitions field's value. -func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule { - s.Transitions = v +// SetLocationScope sets the LocationScope field's value. +func (s *ListAccessGrantsLocationsEntry) SetLocationScope(v string) *ListAccessGrantsLocationsEntry { + s.LocationScope = &v return s } -// The container for the Outposts bucket lifecycle rule and operator. -type LifecycleRuleAndOperator struct { - _ struct{} `type:"structure"` - - // Minimum object size to which the rule applies. - ObjectSizeGreaterThan *int64 `type:"long"` +type ListAccessGrantsLocationsInput struct { + _ struct{} `locationName:"ListAccessGrantsLocationsRequest" type:"structure"` - // Maximum object size to which the rule applies. - ObjectSizeLessThan *int64 `type:"long"` + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Prefix identifying one or more objects to which the rule applies. - Prefix *string `type:"string"` + // The S3 path to the location that you are registering. The location scope + // can be the default S3 location s3://, the S3 path to a bucket s3://, + // or the S3 path to a bucket and prefix s3:///. A prefix in + // S3 is a string of characters at the beginning of an object key name used + // to organize the objects that you store in your S3 buckets. For example, object + // key names that start with the engineering/ prefix or object key names that + // start with the marketing/campaigns/ prefix. + LocationScope *string `location:"querystring" locationName:"locationscope" min:"1" type:"string"` + + // The maximum number of access grants that you would like returned in the List + // Access Grants response. If the results include the pagination token NextToken, + // make another call using the NextToken to determine if there are more results. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` - // All of these tags must exist in the object's tag set in order for the rule - // to apply. - Tags []*S3Tag `type:"list"` + // A pagination token to request the next page of results. Pass this value into + // a subsequent List Access Grants Locations request in order to retrieve the + // next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` } // String returns the string representation. @@ -16224,7 +21157,7 @@ type LifecycleRuleAndOperator struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LifecycleRuleAndOperator) String() string { +func (s ListAccessGrantsLocationsInput) String() string { return awsutil.Prettify(s) } @@ -16233,22 +21166,21 @@ func (s LifecycleRuleAndOperator) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LifecycleRuleAndOperator) GoString() string { +func (s ListAccessGrantsLocationsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *LifecycleRuleAndOperator) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleAndOperator"} - 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)) - } - } +func (s *ListAccessGrantsLocationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAccessGrantsLocationsInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.LocationScope != nil && len(*s.LocationScope) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LocationScope", 1)) } if invalidParams.Len() > 0 { @@ -16257,53 +21189,46 @@ func (s *LifecycleRuleAndOperator) Validate() error { return nil } -// SetObjectSizeGreaterThan sets the ObjectSizeGreaterThan field's value. -func (s *LifecycleRuleAndOperator) SetObjectSizeGreaterThan(v int64) *LifecycleRuleAndOperator { - s.ObjectSizeGreaterThan = &v +// SetAccountId sets the AccountId field's value. +func (s *ListAccessGrantsLocationsInput) SetAccountId(v string) *ListAccessGrantsLocationsInput { + s.AccountId = &v return s } -// SetObjectSizeLessThan sets the ObjectSizeLessThan field's value. -func (s *LifecycleRuleAndOperator) SetObjectSizeLessThan(v int64) *LifecycleRuleAndOperator { - s.ObjectSizeLessThan = &v +// SetLocationScope sets the LocationScope field's value. +func (s *ListAccessGrantsLocationsInput) SetLocationScope(v string) *ListAccessGrantsLocationsInput { + s.LocationScope = &v return s } -// SetPrefix sets the Prefix field's value. -func (s *LifecycleRuleAndOperator) SetPrefix(v string) *LifecycleRuleAndOperator { - s.Prefix = &v +// SetMaxResults sets the MaxResults field's value. +func (s *ListAccessGrantsLocationsInput) SetMaxResults(v int64) *ListAccessGrantsLocationsInput { + s.MaxResults = &v return s } -// SetTags sets the Tags field's value. -func (s *LifecycleRuleAndOperator) SetTags(v []*S3Tag) *LifecycleRuleAndOperator { - s.Tags = v +// SetNextToken sets the NextToken field's value. +func (s *ListAccessGrantsLocationsInput) SetNextToken(v string) *ListAccessGrantsLocationsInput { + s.NextToken = &v return s } -// The container for the filter of the lifecycle rule. -type LifecycleRuleFilter struct { - _ struct{} `type:"structure"` - - // The container for the AND condition for the lifecycle rule. - And *LifecycleRuleAndOperator `type:"structure"` - - // Minimum object size to which the rule applies. - ObjectSizeGreaterThan *int64 `type:"long"` +func (s *ListAccessGrantsLocationsInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} - // Maximum object size to which the rule applies. - ObjectSizeLessThan *int64 `type:"long"` +type ListAccessGrantsLocationsOutput struct { + _ struct{} `type:"structure"` - // Prefix identifying one or more objects to which the rule applies. - // - // When you're using XML requests, you must replace special characters (such - // as carriage returns) in object keys with their equivalent XML entity codes. - // For more information, see XML-related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) - // in the Amazon S3 User Guide. - Prefix *string `type:"string"` + // A container for a list of registered locations in an S3 Access Grants instance. + AccessGrantsLocationsList []*ListAccessGrantsLocationsEntry `locationNameList:"AccessGrantsLocation" type:"list"` - // A container for a key-value name pair. - Tag *S3Tag `type:"structure"` + // A pagination token to request the next page of results. Pass this value into + // a subsequent List Access Grants Locations request in order to retrieve the + // next page of results. + NextToken *string `type:"string"` } // String returns the string representation. @@ -16311,7 +21236,7 @@ type LifecycleRuleFilter struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LifecycleRuleFilter) String() string { +func (s ListAccessGrantsLocationsOutput) String() string { return awsutil.Prettify(s) } @@ -16320,57 +21245,61 @@ func (s LifecycleRuleFilter) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LifecycleRuleFilter) GoString() string { +func (s ListAccessGrantsLocationsOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *LifecycleRuleFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleFilter"} - if s.And != nil { - if err := s.And.Validate(); err != nil { - invalidParams.AddNested("And", err.(request.ErrInvalidParams)) - } - } - if s.Tag != nil { - if err := s.Tag.Validate(); err != nil { - invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetAccessGrantsLocationsList sets the AccessGrantsLocationsList field's value. +func (s *ListAccessGrantsLocationsOutput) SetAccessGrantsLocationsList(v []*ListAccessGrantsLocationsEntry) *ListAccessGrantsLocationsOutput { + s.AccessGrantsLocationsList = v + return s } -// SetAnd sets the And field's value. -func (s *LifecycleRuleFilter) SetAnd(v *LifecycleRuleAndOperator) *LifecycleRuleFilter { - s.And = v +// SetNextToken sets the NextToken field's value. +func (s *ListAccessGrantsLocationsOutput) SetNextToken(v string) *ListAccessGrantsLocationsOutput { + s.NextToken = &v return s } -// SetObjectSizeGreaterThan sets the ObjectSizeGreaterThan field's value. -func (s *LifecycleRuleFilter) SetObjectSizeGreaterThan(v int64) *LifecycleRuleFilter { - s.ObjectSizeGreaterThan = &v - return s +type ListAccessGrantsOutput struct { + _ struct{} `type:"structure"` + + // A container for a list of grants in an S3 Access Grants instance. + AccessGrantsList []*ListAccessGrantEntry `locationNameList:"AccessGrant" type:"list"` + + // A pagination token to request the next page of results. Pass this value into + // a subsequent List Access Grants request in order to retrieve the next page + // of results. + NextToken *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListAccessGrantsOutput) String() string { + return awsutil.Prettify(s) } -// SetObjectSizeLessThan sets the ObjectSizeLessThan field's value. -func (s *LifecycleRuleFilter) SetObjectSizeLessThan(v int64) *LifecycleRuleFilter { - s.ObjectSizeLessThan = &v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListAccessGrantsOutput) GoString() string { + return s.String() } -// SetPrefix sets the Prefix field's value. -func (s *LifecycleRuleFilter) SetPrefix(v string) *LifecycleRuleFilter { - s.Prefix = &v +// SetAccessGrantsList sets the AccessGrantsList field's value. +func (s *ListAccessGrantsOutput) SetAccessGrantsList(v []*ListAccessGrantEntry) *ListAccessGrantsOutput { + s.AccessGrantsList = v return s } -// SetTag sets the Tag field's value. -func (s *LifecycleRuleFilter) SetTag(v *S3Tag) *LifecycleRuleFilter { - s.Tag = v +// SetNextToken sets the NextToken field's value. +func (s *ListAccessGrantsOutput) SetNextToken(v string) *ListAccessGrantsOutput { + s.NextToken = &v return s } @@ -17434,7 +22363,8 @@ type ListTagsForResourceInput struct { AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` // The Amazon Resource Name (ARN) of the S3 resource that you want to list the - // tags for. + // tags for. The tagged resource can be an S3 Storage Lens group or S3 Access + // Grants instance, registered location, or grant. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` @@ -18667,6 +23597,140 @@ func (s *PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *Publi return s } +type PutAccessGrantsInstanceResourcePolicyInput struct { + _ struct{} `locationName:"PutAccessGrantsInstanceResourcePolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The Organization of the resource policy of the S3 Access Grants instance. + Organization *string `min:"12" type:"string"` + + // The resource policy of the S3 Access Grants instance that you are updating. + // + // Policy is a required field + Policy *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAccessGrantsInstanceResourcePolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAccessGrantsInstanceResourcePolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutAccessGrantsInstanceResourcePolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutAccessGrantsInstanceResourcePolicyInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Organization != nil && len(*s.Organization) < 12 { + invalidParams.Add(request.NewErrParamMinLen("Organization", 12)) + } + if s.Policy == nil { + invalidParams.Add(request.NewErrParamRequired("Policy")) + } + if s.Policy != nil && len(*s.Policy) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Policy", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *PutAccessGrantsInstanceResourcePolicyInput) SetAccountId(v string) *PutAccessGrantsInstanceResourcePolicyInput { + s.AccountId = &v + return s +} + +// SetOrganization sets the Organization field's value. +func (s *PutAccessGrantsInstanceResourcePolicyInput) SetOrganization(v string) *PutAccessGrantsInstanceResourcePolicyInput { + s.Organization = &v + return s +} + +// SetPolicy sets the Policy field's value. +func (s *PutAccessGrantsInstanceResourcePolicyInput) SetPolicy(v string) *PutAccessGrantsInstanceResourcePolicyInput { + s.Policy = &v + return s +} + +func (s *PutAccessGrantsInstanceResourcePolicyInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type PutAccessGrantsInstanceResourcePolicyOutput struct { + _ struct{} `type:"structure"` + + // The date and time when you created the S3 Access Grants instance resource + // policy. + CreatedAt *time.Time `type:"timestamp"` + + // The Organization of the resource policy of the S3 Access Grants instance. + Organization *string `min:"12" type:"string"` + + // The updated resource policy of the S3 Access Grants instance. + Policy *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAccessGrantsInstanceResourcePolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PutAccessGrantsInstanceResourcePolicyOutput) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *PutAccessGrantsInstanceResourcePolicyOutput) SetCreatedAt(v time.Time) *PutAccessGrantsInstanceResourcePolicyOutput { + s.CreatedAt = &v + return s +} + +// SetOrganization sets the Organization field's value. +func (s *PutAccessGrantsInstanceResourcePolicyOutput) SetOrganization(v string) *PutAccessGrantsInstanceResourcePolicyOutput { + s.Organization = &v + return s +} + +// SetPolicy sets the Policy field's value. +func (s *PutAccessGrantsInstanceResourcePolicyOutput) SetPolicy(v string) *PutAccessGrantsInstanceResourcePolicyOutput { + s.Policy = &v + return s +} + type PutAccessPointConfigurationForObjectLambdaInput struct { _ struct{} `locationName:"PutAccessPointConfigurationForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` @@ -24136,19 +29200,23 @@ func (s SubmitMultiRegionAccessPointRoutesOutput) GoString() string { // You can add tags to new objects when you upload them, or you can add object // tags to existing objects. // -// This data type is only supported for S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups.html). +// This operation is only supported for S3 Storage Lens groups (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups.html) +// and for S3 Access Grants (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-tagging.html). +// The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, +// registered location, or grant. type Tag struct { _ struct{} `type:"structure"` - // The tag key for your Amazon Web Services resource. A tag key can be up to - // 128 Unicode characters in length and is case-sensitive. System created tags - // that begin with aws: aren’t supported. + // The key of the key-value pair of a tag added to your Amazon Web Services + // resource. A tag key can be up to 128 Unicode characters in length and is + // case-sensitive. System created tags that begin with aws: aren’t supported. // // Key is a required field Key *string `min:"1" type:"string" required:"true"` - // The tag value for your Amazon Web Services resource. A tag value can be up - // to 256 Unicode characters in length and is case-sensitive. + // The value of the key-value pair of a tag added to your Amazon Web Services + // resource. A tag value can be up to 256 Unicode characters in length and is + // case-sensitive. // // Value is a required field Value *string `type:"string" required:"true"` @@ -24207,13 +29275,14 @@ type TagResourceInput struct { _ struct{} `locationName:"TagResourceRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` // The Amazon Web Services account ID that created the S3 resource that you're - // trying to add tags to. + // trying to add tags to or the requester's account ID. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` // The Amazon Resource Name (ARN) of the S3 resource that you're trying to add - // tags to. + // tags to. The tagged resource can be an S3 Storage Lens group or S3 Access + // Grants instance, registered location, or grant. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` @@ -24444,13 +29513,14 @@ type UntagResourceInput struct { // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The Amazon Resource Name (ARN) of the S3 resource that you want to remove - // the resource tags from. + // The Amazon Resource Name (ARN) of the S3 resource that you're trying to remove + // the tags from. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` - // The tag key pair of the S3 resource tag that you're trying to remove. + // The array of tag key-value pairs that you're trying to remove from of the + // S3 resource. // // TagKeys is a required field TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"` @@ -24545,6 +29615,182 @@ func (s UntagResourceOutput) GoString() string { return s.String() } +type UpdateAccessGrantsLocationInput struct { + _ struct{} `locationName:"UpdateAccessGrantsLocationRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The ID of the registered location that you are updating. S3 Access Grants + // assigns this ID when you register the location. S3 Access Grants assigns + // the ID default to the default location s3:// and assigns an auto-generated + // ID to other locations that you register. + // + // The ID of the registered location to which you are granting access. S3 Access + // Grants assigned this ID when you registered the location. S3 Access Grants + // assigns the ID default to the default location s3:// and assigns an auto-generated + // ID to other locations that you register. + // + // If you are passing the default location, you cannot create an access grant + // for the entire default location. You must also specify a bucket or a bucket + // and prefix in the Subprefix field. + // + // AccessGrantsLocationId is a required field + AccessGrantsLocationId *string `location:"uri" locationName:"id" min:"1" type:"string" required:"true"` + + // The ID of the Amazon Web Services account that is making this request. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the IAM role for the registered location. + // S3 Access Grants assumes this role to manage access to the registered location. + // + // IAMRoleArn is a required field + IAMRoleArn *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateAccessGrantsLocationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateAccessGrantsLocationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateAccessGrantsLocationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateAccessGrantsLocationInput"} + if s.AccessGrantsLocationId == nil { + invalidParams.Add(request.NewErrParamRequired("AccessGrantsLocationId")) + } + if s.AccessGrantsLocationId != nil && len(*s.AccessGrantsLocationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccessGrantsLocationId", 1)) + } + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.IAMRoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("IAMRoleArn")) + } + if s.IAMRoleArn != nil && len(*s.IAMRoleArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("IAMRoleArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessGrantsLocationId sets the AccessGrantsLocationId field's value. +func (s *UpdateAccessGrantsLocationInput) SetAccessGrantsLocationId(v string) *UpdateAccessGrantsLocationInput { + s.AccessGrantsLocationId = &v + return s +} + +// SetAccountId sets the AccountId field's value. +func (s *UpdateAccessGrantsLocationInput) SetAccountId(v string) *UpdateAccessGrantsLocationInput { + s.AccountId = &v + return s +} + +// SetIAMRoleArn sets the IAMRoleArn field's value. +func (s *UpdateAccessGrantsLocationInput) SetIAMRoleArn(v string) *UpdateAccessGrantsLocationInput { + s.IAMRoleArn = &v + return s +} + +func (s *UpdateAccessGrantsLocationInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type UpdateAccessGrantsLocationOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the registered location that you are updating. + AccessGrantsLocationArn *string `min:"1" type:"string"` + + // The ID of the registered location to which you are granting access. S3 Access + // Grants assigned this ID when you registered the location. S3 Access Grants + // assigns the ID default to the default location s3:// and assigns an auto-generated + // ID to other locations that you register. + AccessGrantsLocationId *string `min:"1" type:"string"` + + // The date and time when you registered the location. + CreatedAt *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the IAM role of the registered location. + // S3 Access Grants assumes this role to manage access to the registered location. + IAMRoleArn *string `min:"1" type:"string"` + + // The S3 URI path of the location that you are updating. You cannot update + // the scope of the registered location. The location scope can be the default + // S3 location s3://, the S3 path to a bucket s3://, or the S3 path + // to a bucket and prefix s3:///. + LocationScope *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateAccessGrantsLocationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateAccessGrantsLocationOutput) GoString() string { + return s.String() +} + +// SetAccessGrantsLocationArn sets the AccessGrantsLocationArn field's value. +func (s *UpdateAccessGrantsLocationOutput) SetAccessGrantsLocationArn(v string) *UpdateAccessGrantsLocationOutput { + s.AccessGrantsLocationArn = &v + return s +} + +// SetAccessGrantsLocationId sets the AccessGrantsLocationId field's value. +func (s *UpdateAccessGrantsLocationOutput) SetAccessGrantsLocationId(v string) *UpdateAccessGrantsLocationOutput { + s.AccessGrantsLocationId = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *UpdateAccessGrantsLocationOutput) SetCreatedAt(v time.Time) *UpdateAccessGrantsLocationOutput { + s.CreatedAt = &v + return s +} + +// SetIAMRoleArn sets the IAMRoleArn field's value. +func (s *UpdateAccessGrantsLocationOutput) SetIAMRoleArn(v string) *UpdateAccessGrantsLocationOutput { + s.IAMRoleArn = &v + return s +} + +// SetLocationScope sets the LocationScope field's value. +func (s *UpdateAccessGrantsLocationOutput) SetLocationScope(v string) *UpdateAccessGrantsLocationOutput { + s.LocationScope = &v + return s +} + type UpdateJobPriorityInput struct { _ struct{} `locationName:"UpdateJobPriorityRequest" type:"structure"` @@ -25220,6 +30466,26 @@ func GeneratedManifestFormat_Values() []string { } } +const ( + // GranteeTypeDirectoryUser is a GranteeType enum value + GranteeTypeDirectoryUser = "DIRECTORY_USER" + + // GranteeTypeDirectoryGroup is a GranteeType enum value + GranteeTypeDirectoryGroup = "DIRECTORY_GROUP" + + // GranteeTypeIam is a GranteeType enum value + GranteeTypeIam = "IAM" +) + +// GranteeType_Values returns all elements of the GranteeType enum +func GranteeType_Values() []string { + return []string{ + GranteeTypeDirectoryUser, + GranteeTypeDirectoryGroup, + GranteeTypeIam, + } +} + const ( // JobManifestFieldNameIgnore is a JobManifestFieldName enum value JobManifestFieldNameIgnore = "Ignore" @@ -25576,6 +30842,42 @@ func OwnerOverride_Values() []string { } } +const ( + // PermissionRead is a Permission enum value + PermissionRead = "READ" + + // PermissionWrite is a Permission enum value + PermissionWrite = "WRITE" + + // PermissionReadwrite is a Permission enum value + PermissionReadwrite = "READWRITE" +) + +// Permission_Values returns all elements of the Permission enum +func Permission_Values() []string { + return []string{ + PermissionRead, + PermissionWrite, + PermissionReadwrite, + } +} + +const ( + // PrivilegeMinimal is a Privilege enum value + PrivilegeMinimal = "Minimal" + + // PrivilegeDefault is a Privilege enum value + PrivilegeDefault = "Default" +) + +// Privilege_Values returns all elements of the Privilege enum +func Privilege_Values() []string { + return []string{ + PrivilegeMinimal, + PrivilegeDefault, + } +} + const ( // ReplicaModificationsStatusEnabled is a ReplicaModificationsStatus enum value ReplicaModificationsStatusEnabled = "Enabled" @@ -25896,6 +31198,18 @@ func S3Permission_Values() []string { } } +const ( + // S3PrefixTypeObject is a S3PrefixType enum value + S3PrefixTypeObject = "Object" +) + +// S3PrefixType_Values returns all elements of the S3PrefixType enum +func S3PrefixType_Values() []string { + return []string{ + S3PrefixTypeObject, + } +} + const ( // S3SSEAlgorithmAes256 is a S3SSEAlgorithm enum value S3SSEAlgorithmAes256 = "AES256" diff --git a/service/s3control/s3controliface/interface.go b/service/s3control/s3controliface/interface.go index a02b334cfdc..f2819df3416 100644 --- a/service/s3control/s3controliface/interface.go +++ b/service/s3control/s3controliface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // AWS S3 Control. // func myFunc(svc s3controliface.S3ControlAPI) bool { -// // Make svc.CreateAccessPoint request +// // Make svc.AssociateAccessGrantsIdentityCenter request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockS3ControlClient struct { // s3controliface.S3ControlAPI // } -// func (m *mockS3ControlClient) CreateAccessPoint(input *s3control.CreateAccessPointInput) (*s3control.CreateAccessPointOutput, error) { +// func (m *mockS3ControlClient) AssociateAccessGrantsIdentityCenter(input *s3control.AssociateAccessGrantsIdentityCenterInput) (*s3control.AssociateAccessGrantsIdentityCenterOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,22 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type S3ControlAPI interface { + AssociateAccessGrantsIdentityCenter(*s3control.AssociateAccessGrantsIdentityCenterInput) (*s3control.AssociateAccessGrantsIdentityCenterOutput, error) + AssociateAccessGrantsIdentityCenterWithContext(aws.Context, *s3control.AssociateAccessGrantsIdentityCenterInput, ...request.Option) (*s3control.AssociateAccessGrantsIdentityCenterOutput, error) + AssociateAccessGrantsIdentityCenterRequest(*s3control.AssociateAccessGrantsIdentityCenterInput) (*request.Request, *s3control.AssociateAccessGrantsIdentityCenterOutput) + + CreateAccessGrant(*s3control.CreateAccessGrantInput) (*s3control.CreateAccessGrantOutput, error) + CreateAccessGrantWithContext(aws.Context, *s3control.CreateAccessGrantInput, ...request.Option) (*s3control.CreateAccessGrantOutput, error) + CreateAccessGrantRequest(*s3control.CreateAccessGrantInput) (*request.Request, *s3control.CreateAccessGrantOutput) + + CreateAccessGrantsInstance(*s3control.CreateAccessGrantsInstanceInput) (*s3control.CreateAccessGrantsInstanceOutput, error) + CreateAccessGrantsInstanceWithContext(aws.Context, *s3control.CreateAccessGrantsInstanceInput, ...request.Option) (*s3control.CreateAccessGrantsInstanceOutput, error) + CreateAccessGrantsInstanceRequest(*s3control.CreateAccessGrantsInstanceInput) (*request.Request, *s3control.CreateAccessGrantsInstanceOutput) + + CreateAccessGrantsLocation(*s3control.CreateAccessGrantsLocationInput) (*s3control.CreateAccessGrantsLocationOutput, error) + CreateAccessGrantsLocationWithContext(aws.Context, *s3control.CreateAccessGrantsLocationInput, ...request.Option) (*s3control.CreateAccessGrantsLocationOutput, error) + CreateAccessGrantsLocationRequest(*s3control.CreateAccessGrantsLocationInput) (*request.Request, *s3control.CreateAccessGrantsLocationOutput) + CreateAccessPoint(*s3control.CreateAccessPointInput) (*s3control.CreateAccessPointOutput, error) CreateAccessPointWithContext(aws.Context, *s3control.CreateAccessPointInput, ...request.Option) (*s3control.CreateAccessPointOutput, error) CreateAccessPointRequest(*s3control.CreateAccessPointInput) (*request.Request, *s3control.CreateAccessPointOutput) @@ -84,6 +100,22 @@ type S3ControlAPI interface { CreateStorageLensGroupWithContext(aws.Context, *s3control.CreateStorageLensGroupInput, ...request.Option) (*s3control.CreateStorageLensGroupOutput, error) CreateStorageLensGroupRequest(*s3control.CreateStorageLensGroupInput) (*request.Request, *s3control.CreateStorageLensGroupOutput) + DeleteAccessGrant(*s3control.DeleteAccessGrantInput) (*s3control.DeleteAccessGrantOutput, error) + DeleteAccessGrantWithContext(aws.Context, *s3control.DeleteAccessGrantInput, ...request.Option) (*s3control.DeleteAccessGrantOutput, error) + DeleteAccessGrantRequest(*s3control.DeleteAccessGrantInput) (*request.Request, *s3control.DeleteAccessGrantOutput) + + DeleteAccessGrantsInstance(*s3control.DeleteAccessGrantsInstanceInput) (*s3control.DeleteAccessGrantsInstanceOutput, error) + DeleteAccessGrantsInstanceWithContext(aws.Context, *s3control.DeleteAccessGrantsInstanceInput, ...request.Option) (*s3control.DeleteAccessGrantsInstanceOutput, error) + DeleteAccessGrantsInstanceRequest(*s3control.DeleteAccessGrantsInstanceInput) (*request.Request, *s3control.DeleteAccessGrantsInstanceOutput) + + DeleteAccessGrantsInstanceResourcePolicy(*s3control.DeleteAccessGrantsInstanceResourcePolicyInput) (*s3control.DeleteAccessGrantsInstanceResourcePolicyOutput, error) + DeleteAccessGrantsInstanceResourcePolicyWithContext(aws.Context, *s3control.DeleteAccessGrantsInstanceResourcePolicyInput, ...request.Option) (*s3control.DeleteAccessGrantsInstanceResourcePolicyOutput, error) + DeleteAccessGrantsInstanceResourcePolicyRequest(*s3control.DeleteAccessGrantsInstanceResourcePolicyInput) (*request.Request, *s3control.DeleteAccessGrantsInstanceResourcePolicyOutput) + + DeleteAccessGrantsLocation(*s3control.DeleteAccessGrantsLocationInput) (*s3control.DeleteAccessGrantsLocationOutput, error) + DeleteAccessGrantsLocationWithContext(aws.Context, *s3control.DeleteAccessGrantsLocationInput, ...request.Option) (*s3control.DeleteAccessGrantsLocationOutput, error) + DeleteAccessGrantsLocationRequest(*s3control.DeleteAccessGrantsLocationInput) (*request.Request, *s3control.DeleteAccessGrantsLocationOutput) + DeleteAccessPoint(*s3control.DeleteAccessPointInput) (*s3control.DeleteAccessPointOutput, error) DeleteAccessPointWithContext(aws.Context, *s3control.DeleteAccessPointInput, ...request.Option) (*s3control.DeleteAccessPointOutput, error) DeleteAccessPointRequest(*s3control.DeleteAccessPointInput) (*request.Request, *s3control.DeleteAccessPointOutput) @@ -152,6 +184,30 @@ type S3ControlAPI interface { DescribeMultiRegionAccessPointOperationWithContext(aws.Context, *s3control.DescribeMultiRegionAccessPointOperationInput, ...request.Option) (*s3control.DescribeMultiRegionAccessPointOperationOutput, error) DescribeMultiRegionAccessPointOperationRequest(*s3control.DescribeMultiRegionAccessPointOperationInput) (*request.Request, *s3control.DescribeMultiRegionAccessPointOperationOutput) + DissociateAccessGrantsIdentityCenter(*s3control.DissociateAccessGrantsIdentityCenterInput) (*s3control.DissociateAccessGrantsIdentityCenterOutput, error) + DissociateAccessGrantsIdentityCenterWithContext(aws.Context, *s3control.DissociateAccessGrantsIdentityCenterInput, ...request.Option) (*s3control.DissociateAccessGrantsIdentityCenterOutput, error) + DissociateAccessGrantsIdentityCenterRequest(*s3control.DissociateAccessGrantsIdentityCenterInput) (*request.Request, *s3control.DissociateAccessGrantsIdentityCenterOutput) + + GetAccessGrant(*s3control.GetAccessGrantInput) (*s3control.GetAccessGrantOutput, error) + GetAccessGrantWithContext(aws.Context, *s3control.GetAccessGrantInput, ...request.Option) (*s3control.GetAccessGrantOutput, error) + GetAccessGrantRequest(*s3control.GetAccessGrantInput) (*request.Request, *s3control.GetAccessGrantOutput) + + GetAccessGrantsInstance(*s3control.GetAccessGrantsInstanceInput) (*s3control.GetAccessGrantsInstanceOutput, error) + GetAccessGrantsInstanceWithContext(aws.Context, *s3control.GetAccessGrantsInstanceInput, ...request.Option) (*s3control.GetAccessGrantsInstanceOutput, error) + GetAccessGrantsInstanceRequest(*s3control.GetAccessGrantsInstanceInput) (*request.Request, *s3control.GetAccessGrantsInstanceOutput) + + GetAccessGrantsInstanceForPrefix(*s3control.GetAccessGrantsInstanceForPrefixInput) (*s3control.GetAccessGrantsInstanceForPrefixOutput, error) + GetAccessGrantsInstanceForPrefixWithContext(aws.Context, *s3control.GetAccessGrantsInstanceForPrefixInput, ...request.Option) (*s3control.GetAccessGrantsInstanceForPrefixOutput, error) + GetAccessGrantsInstanceForPrefixRequest(*s3control.GetAccessGrantsInstanceForPrefixInput) (*request.Request, *s3control.GetAccessGrantsInstanceForPrefixOutput) + + GetAccessGrantsInstanceResourcePolicy(*s3control.GetAccessGrantsInstanceResourcePolicyInput) (*s3control.GetAccessGrantsInstanceResourcePolicyOutput, error) + GetAccessGrantsInstanceResourcePolicyWithContext(aws.Context, *s3control.GetAccessGrantsInstanceResourcePolicyInput, ...request.Option) (*s3control.GetAccessGrantsInstanceResourcePolicyOutput, error) + GetAccessGrantsInstanceResourcePolicyRequest(*s3control.GetAccessGrantsInstanceResourcePolicyInput) (*request.Request, *s3control.GetAccessGrantsInstanceResourcePolicyOutput) + + GetAccessGrantsLocation(*s3control.GetAccessGrantsLocationInput) (*s3control.GetAccessGrantsLocationOutput, error) + GetAccessGrantsLocationWithContext(aws.Context, *s3control.GetAccessGrantsLocationInput, ...request.Option) (*s3control.GetAccessGrantsLocationOutput, error) + GetAccessGrantsLocationRequest(*s3control.GetAccessGrantsLocationInput) (*request.Request, *s3control.GetAccessGrantsLocationOutput) + GetAccessPoint(*s3control.GetAccessPointInput) (*s3control.GetAccessPointOutput, error) GetAccessPointWithContext(aws.Context, *s3control.GetAccessPointInput, ...request.Option) (*s3control.GetAccessPointOutput, error) GetAccessPointRequest(*s3control.GetAccessPointInput) (*request.Request, *s3control.GetAccessPointOutput) @@ -204,6 +260,10 @@ type S3ControlAPI interface { GetBucketVersioningWithContext(aws.Context, *s3control.GetBucketVersioningInput, ...request.Option) (*s3control.GetBucketVersioningOutput, error) GetBucketVersioningRequest(*s3control.GetBucketVersioningInput) (*request.Request, *s3control.GetBucketVersioningOutput) + GetDataAccess(*s3control.GetDataAccessInput) (*s3control.GetDataAccessOutput, error) + GetDataAccessWithContext(aws.Context, *s3control.GetDataAccessInput, ...request.Option) (*s3control.GetDataAccessOutput, error) + GetDataAccessRequest(*s3control.GetDataAccessInput) (*request.Request, *s3control.GetDataAccessOutput) + GetJobTagging(*s3control.GetJobTaggingInput) (*s3control.GetJobTaggingOutput, error) GetJobTaggingWithContext(aws.Context, *s3control.GetJobTaggingInput, ...request.Option) (*s3control.GetJobTaggingOutput, error) GetJobTaggingRequest(*s3control.GetJobTaggingInput) (*request.Request, *s3control.GetJobTaggingOutput) @@ -240,6 +300,27 @@ type S3ControlAPI interface { GetStorageLensGroupWithContext(aws.Context, *s3control.GetStorageLensGroupInput, ...request.Option) (*s3control.GetStorageLensGroupOutput, error) GetStorageLensGroupRequest(*s3control.GetStorageLensGroupInput) (*request.Request, *s3control.GetStorageLensGroupOutput) + ListAccessGrants(*s3control.ListAccessGrantsInput) (*s3control.ListAccessGrantsOutput, error) + ListAccessGrantsWithContext(aws.Context, *s3control.ListAccessGrantsInput, ...request.Option) (*s3control.ListAccessGrantsOutput, error) + ListAccessGrantsRequest(*s3control.ListAccessGrantsInput) (*request.Request, *s3control.ListAccessGrantsOutput) + + ListAccessGrantsPages(*s3control.ListAccessGrantsInput, func(*s3control.ListAccessGrantsOutput, bool) bool) error + ListAccessGrantsPagesWithContext(aws.Context, *s3control.ListAccessGrantsInput, func(*s3control.ListAccessGrantsOutput, bool) bool, ...request.Option) error + + ListAccessGrantsInstances(*s3control.ListAccessGrantsInstancesInput) (*s3control.ListAccessGrantsInstancesOutput, error) + ListAccessGrantsInstancesWithContext(aws.Context, *s3control.ListAccessGrantsInstancesInput, ...request.Option) (*s3control.ListAccessGrantsInstancesOutput, error) + ListAccessGrantsInstancesRequest(*s3control.ListAccessGrantsInstancesInput) (*request.Request, *s3control.ListAccessGrantsInstancesOutput) + + ListAccessGrantsInstancesPages(*s3control.ListAccessGrantsInstancesInput, func(*s3control.ListAccessGrantsInstancesOutput, bool) bool) error + ListAccessGrantsInstancesPagesWithContext(aws.Context, *s3control.ListAccessGrantsInstancesInput, func(*s3control.ListAccessGrantsInstancesOutput, bool) bool, ...request.Option) error + + ListAccessGrantsLocations(*s3control.ListAccessGrantsLocationsInput) (*s3control.ListAccessGrantsLocationsOutput, error) + ListAccessGrantsLocationsWithContext(aws.Context, *s3control.ListAccessGrantsLocationsInput, ...request.Option) (*s3control.ListAccessGrantsLocationsOutput, error) + ListAccessGrantsLocationsRequest(*s3control.ListAccessGrantsLocationsInput) (*request.Request, *s3control.ListAccessGrantsLocationsOutput) + + ListAccessGrantsLocationsPages(*s3control.ListAccessGrantsLocationsInput, func(*s3control.ListAccessGrantsLocationsOutput, bool) bool) error + ListAccessGrantsLocationsPagesWithContext(aws.Context, *s3control.ListAccessGrantsLocationsInput, func(*s3control.ListAccessGrantsLocationsOutput, bool) bool, ...request.Option) error + ListAccessPoints(*s3control.ListAccessPointsInput) (*s3control.ListAccessPointsOutput, error) ListAccessPointsWithContext(aws.Context, *s3control.ListAccessPointsInput, ...request.Option) (*s3control.ListAccessPointsOutput, error) ListAccessPointsRequest(*s3control.ListAccessPointsInput) (*request.Request, *s3control.ListAccessPointsOutput) @@ -293,6 +374,10 @@ type S3ControlAPI interface { ListTagsForResourceWithContext(aws.Context, *s3control.ListTagsForResourceInput, ...request.Option) (*s3control.ListTagsForResourceOutput, error) ListTagsForResourceRequest(*s3control.ListTagsForResourceInput) (*request.Request, *s3control.ListTagsForResourceOutput) + PutAccessGrantsInstanceResourcePolicy(*s3control.PutAccessGrantsInstanceResourcePolicyInput) (*s3control.PutAccessGrantsInstanceResourcePolicyOutput, error) + PutAccessGrantsInstanceResourcePolicyWithContext(aws.Context, *s3control.PutAccessGrantsInstanceResourcePolicyInput, ...request.Option) (*s3control.PutAccessGrantsInstanceResourcePolicyOutput, error) + PutAccessGrantsInstanceResourcePolicyRequest(*s3control.PutAccessGrantsInstanceResourcePolicyInput) (*request.Request, *s3control.PutAccessGrantsInstanceResourcePolicyOutput) + PutAccessPointConfigurationForObjectLambda(*s3control.PutAccessPointConfigurationForObjectLambdaInput) (*s3control.PutAccessPointConfigurationForObjectLambdaOutput, error) PutAccessPointConfigurationForObjectLambdaWithContext(aws.Context, *s3control.PutAccessPointConfigurationForObjectLambdaInput, ...request.Option) (*s3control.PutAccessPointConfigurationForObjectLambdaOutput, error) PutAccessPointConfigurationForObjectLambdaRequest(*s3control.PutAccessPointConfigurationForObjectLambdaInput) (*request.Request, *s3control.PutAccessPointConfigurationForObjectLambdaOutput) @@ -357,6 +442,10 @@ type S3ControlAPI interface { UntagResourceWithContext(aws.Context, *s3control.UntagResourceInput, ...request.Option) (*s3control.UntagResourceOutput, error) UntagResourceRequest(*s3control.UntagResourceInput) (*request.Request, *s3control.UntagResourceOutput) + UpdateAccessGrantsLocation(*s3control.UpdateAccessGrantsLocationInput) (*s3control.UpdateAccessGrantsLocationOutput, error) + UpdateAccessGrantsLocationWithContext(aws.Context, *s3control.UpdateAccessGrantsLocationInput, ...request.Option) (*s3control.UpdateAccessGrantsLocationOutput, error) + UpdateAccessGrantsLocationRequest(*s3control.UpdateAccessGrantsLocationInput) (*request.Request, *s3control.UpdateAccessGrantsLocationOutput) + UpdateJobPriority(*s3control.UpdateJobPriorityInput) (*s3control.UpdateJobPriorityOutput, error) UpdateJobPriorityWithContext(aws.Context, *s3control.UpdateJobPriorityInput, ...request.Option) (*s3control.UpdateJobPriorityOutput, error) UpdateJobPriorityRequest(*s3control.UpdateJobPriorityInput) (*request.Request, *s3control.UpdateJobPriorityOutput) diff --git a/service/secretsmanager/api.go b/service/secretsmanager/api.go index 5893068b042..4b2b295c300 100644 --- a/service/secretsmanager/api.go +++ b/service/secretsmanager/api.go @@ -13,6 +13,189 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" ) +const opBatchGetSecretValue = "BatchGetSecretValue" + +// BatchGetSecretValueRequest generates a "aws/request.Request" representing the +// client's request for the BatchGetSecretValue 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 BatchGetSecretValue for more information on using the BatchGetSecretValue +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the BatchGetSecretValueRequest method. +// req, resp := client.BatchGetSecretValueRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/BatchGetSecretValue +func (c *SecretsManager) BatchGetSecretValueRequest(input *BatchGetSecretValueInput) (req *request.Request, output *BatchGetSecretValueOutput) { + op := &request.Operation{ + Name: opBatchGetSecretValue, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &BatchGetSecretValueInput{} + } + + output = &BatchGetSecretValueOutput{} + req = c.newRequest(op, input, output) + return +} + +// BatchGetSecretValue API operation for AWS Secrets Manager. +// +// Retrieves the contents of the encrypted fields SecretString or SecretBinary +// for up to 20 secrets. To retrieve a single secret, call GetSecretValue. +// +// To choose which secrets to retrieve, you can specify a list of secrets by +// name or ARN, or you can use filters. If Secrets Manager encounters errors +// such as AccessDeniedException while attempting to retrieve any of the secrets, +// you can see the errors in Errors in the response. +// +// Secrets Manager generates CloudTrail GetSecretValue log entries for each +// secret you request when you call this action. Do not include sensitive information +// in request parameters because it might be logged. For more information, see +// Logging Secrets Manager events with CloudTrail (https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). +// +// Required permissions: secretsmanager:BatchGetSecretValue, and you must have +// secretsmanager:GetSecretValue for each secret. If you use filters, you must +// also have secretsmanager:ListSecrets. If the secrets are encrypted using +// customer-managed keys instead of the Amazon Web Services managed key aws/secretsmanager, +// then you also need kms:Decrypt permissions for the keys. For more information, +// see IAM policy actions for Secrets Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) +// and Authentication and access control in Secrets Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Secrets Manager's +// API operation BatchGetSecretValue for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// Secrets Manager can't find the resource that you asked for. +// +// - InvalidParameterException +// The parameter name or value is invalid. +// +// - InvalidRequestException +// A parameter value is not valid for the current state of the resource. +// +// Possible causes: +// +// - The secret is scheduled for deletion. +// +// - You tried to enable rotation on a secret that doesn't already have a +// Lambda function ARN configured and you didn't include such an ARN as a +// parameter in this call. +// +// - The secret is managed by another service, and you must use that service +// to update it. For more information, see Secrets managed by other Amazon +// Web Services services (https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html). +// +// - DecryptionFailure +// Secrets Manager can't decrypt the protected secret text using the provided +// KMS key. +// +// - InternalServiceError +// An error occurred on the server side. +// +// - InvalidNextTokenException +// The NextToken value is invalid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/BatchGetSecretValue +func (c *SecretsManager) BatchGetSecretValue(input *BatchGetSecretValueInput) (*BatchGetSecretValueOutput, error) { + req, out := c.BatchGetSecretValueRequest(input) + return out, req.Send() +} + +// BatchGetSecretValueWithContext is the same as BatchGetSecretValue with the addition of +// the ability to pass a context and additional request options. +// +// See BatchGetSecretValue for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *SecretsManager) BatchGetSecretValueWithContext(ctx aws.Context, input *BatchGetSecretValueInput, opts ...request.Option) (*BatchGetSecretValueOutput, error) { + req, out := c.BatchGetSecretValueRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// BatchGetSecretValuePages iterates over the pages of a BatchGetSecretValue operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See BatchGetSecretValue 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 BatchGetSecretValue operation. +// pageNum := 0 +// err := client.BatchGetSecretValuePages(params, +// func(page *secretsmanager.BatchGetSecretValueOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *SecretsManager) BatchGetSecretValuePages(input *BatchGetSecretValueInput, fn func(*BatchGetSecretValueOutput, bool) bool) error { + return c.BatchGetSecretValuePagesWithContext(aws.BackgroundContext(), input, fn) +} + +// BatchGetSecretValuePagesWithContext same as BatchGetSecretValuePages 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 *SecretsManager) BatchGetSecretValuePagesWithContext(ctx aws.Context, input *BatchGetSecretValueInput, fn func(*BatchGetSecretValueOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *BatchGetSecretValueInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.BatchGetSecretValueRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*BatchGetSecretValueOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opCancelRotateSecret = "CancelRotateSecret" // CancelRotateSecretRequest generates a "aws/request.Request" representing the @@ -910,6 +1093,8 @@ func (c *SecretsManager) GetSecretValueRequest(input *GetSecretValueInput) (req // Retrieves the contents of the encrypted fields SecretString or SecretBinary // from the specified version of a secret, whichever contains content. // +// To retrieve the values for a group of secrets, call BatchGetSecretValue. +// // We recommend that you cache your secret values by using client-side caching. // Caching secrets improves speed and reduces your costs. For more information, // see Cache secrets for your applications (https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html). @@ -1205,7 +1390,7 @@ func (c *SecretsManager) ListSecretsRequest(input *ListSecretsInput) (req *reque // // To list the versions of a secret, use ListSecretVersionIds. // -// To get the secret value from SecretString or SecretBinary, call GetSecretValue. +// To retrieve the values for the secrets, call BatchGetSecretValue or GetSecretValue. // // For information about finding secrets in the console, see Find secrets in // Secrets Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html). @@ -2816,6 +3001,208 @@ func (c *SecretsManager) ValidateResourcePolicyWithContext(ctx aws.Context, inpu return out, req.Send() } +// The error Secrets Manager encountered while retrieving an individual secret +// as part of BatchGetSecretValue. +type APIErrorType struct { + _ struct{} `type:"structure"` + + // The error Secrets Manager encountered while retrieving an individual secret + // as part of BatchGetSecretValue, for example ResourceNotFoundException,InvalidParameterException, + // InvalidRequestException, DecryptionFailure, or AccessDeniedException. + ErrorCode *string `type:"string"` + + // A message describing the error. + Message *string `type:"string"` + + // The ARN or name of the secret. + SecretId *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s APIErrorType) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s APIErrorType) GoString() string { + return s.String() +} + +// SetErrorCode sets the ErrorCode field's value. +func (s *APIErrorType) SetErrorCode(v string) *APIErrorType { + s.ErrorCode = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *APIErrorType) SetMessage(v string) *APIErrorType { + s.Message = &v + return s +} + +// SetSecretId sets the SecretId field's value. +func (s *APIErrorType) SetSecretId(v string) *APIErrorType { + s.SecretId = &v + return s +} + +type BatchGetSecretValueInput struct { + _ struct{} `type:"structure"` + + // The filters to choose which secrets to retrieve. You must include Filters + // or SecretIdList, but not both. + Filters []*Filter `type:"list"` + + // The number of results to include in the response. + // + // If there are more results available, in the response, Secrets Manager includes + // NextToken. To get the next results, call BatchGetSecretValue again with the + // value from NextToken. + MaxResults *int64 `min:"1" type:"integer"` + + // A token that indicates where the output should continue from, if a previous + // call did not show all results. To get the next results, call BatchGetSecretValue + // again with this value. + NextToken *string `min:"1" type:"string"` + + // The ARN or names of the secrets to retrieve. You must include Filters or + // SecretIdList, but not both. + SecretIdList []*string `min:"1" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetSecretValueInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetSecretValueInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchGetSecretValueInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchGetSecretValueInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.SecretIdList != nil && len(s.SecretIdList) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SecretIdList", 1)) + } + if s.Filters != nil { + for i, v := range s.Filters { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilters sets the Filters field's value. +func (s *BatchGetSecretValueInput) SetFilters(v []*Filter) *BatchGetSecretValueInput { + s.Filters = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *BatchGetSecretValueInput) SetMaxResults(v int64) *BatchGetSecretValueInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *BatchGetSecretValueInput) SetNextToken(v string) *BatchGetSecretValueInput { + s.NextToken = &v + return s +} + +// SetSecretIdList sets the SecretIdList field's value. +func (s *BatchGetSecretValueInput) SetSecretIdList(v []*string) *BatchGetSecretValueInput { + s.SecretIdList = v + return s +} + +type BatchGetSecretValueOutput struct { + _ struct{} `type:"structure"` + + // A list of errors Secrets Manager encountered while attempting to retrieve + // individual secrets. + Errors []*APIErrorType `type:"list"` + + // Secrets Manager includes this value if there's more output available than + // what is included in the current response. This can occur even when the response + // includes no values at all, such as when you ask for a filtered view of a + // long list. To get the next results, call BatchGetSecretValue again with this + // value. + NextToken *string `min:"1" type:"string"` + + // A list of secret values. + SecretValues []*SecretValueEntry `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetSecretValueOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BatchGetSecretValueOutput) GoString() string { + return s.String() +} + +// SetErrors sets the Errors field's value. +func (s *BatchGetSecretValueOutput) SetErrors(v []*APIErrorType) *BatchGetSecretValueOutput { + s.Errors = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *BatchGetSecretValueOutput) SetNextToken(v string) *BatchGetSecretValueOutput { + s.NextToken = &v + return s +} + +// SetSecretValues sets the SecretValues field's value. +func (s *BatchGetSecretValueOutput) SetSecretValues(v []*SecretValueEntry) *BatchGetSecretValueOutput { + s.SecretValues = v + return s +} + type CancelRotateSecretInput struct { _ struct{} `type:"structure"` @@ -6478,10 +6865,7 @@ type SecretListEntry struct { // successfully completed. This value is null if the secret hasn't ever rotated. LastRotatedDate *time.Time `type:"timestamp"` - // The friendly name of the secret. You can use forward slashes in the name - // to represent a path hierarchy. For example, /prod/databases/dbserver1 could - // represent the secret for a server named dbserver1 in the folder databases - // in the folder prod. + // The friendly name of the secret. Name *string `min:"1" type:"string"` // The next rotation is scheduled to occur on or before this date. If the secret @@ -6639,6 +7023,107 @@ func (s *SecretListEntry) SetTags(v []*Tag) *SecretListEntry { return s } +// A structure that contains the secret value and other details for a secret. +type SecretValueEntry struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the secret. + ARN *string `min:"20" type:"string"` + + // The date the secret was created. + CreatedDate *time.Time `type:"timestamp"` + + // The friendly name of the secret. + Name *string `min:"1" type:"string"` + + // The decrypted secret value, if the secret value was originally provided as + // binary data in the form of a byte array. The parameter represents the binary + // data as a base64-encoded (https://tools.ietf.org/html/rfc4648#section-4) + // string. + // + // SecretBinary is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by SecretValueEntry's + // String and GoString methods. + // + // SecretBinary is automatically base64 encoded/decoded by the SDK. + SecretBinary []byte `min:"1" type:"blob" sensitive:"true"` + + // The decrypted secret value, if the secret value was originally provided as + // a string or through the Secrets Manager console. + // + // SecretString is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by SecretValueEntry's + // String and GoString methods. + SecretString *string `min:"1" type:"string" sensitive:"true"` + + // The unique version identifier of this version of the secret. + VersionId *string `min:"32" type:"string"` + + // A list of all of the staging labels currently attached to this version of + // the secret. + VersionStages []*string `min:"1" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SecretValueEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SecretValueEntry) GoString() string { + return s.String() +} + +// SetARN sets the ARN field's value. +func (s *SecretValueEntry) SetARN(v string) *SecretValueEntry { + s.ARN = &v + return s +} + +// SetCreatedDate sets the CreatedDate field's value. +func (s *SecretValueEntry) SetCreatedDate(v time.Time) *SecretValueEntry { + s.CreatedDate = &v + return s +} + +// SetName sets the Name field's value. +func (s *SecretValueEntry) SetName(v string) *SecretValueEntry { + s.Name = &v + return s +} + +// SetSecretBinary sets the SecretBinary field's value. +func (s *SecretValueEntry) SetSecretBinary(v []byte) *SecretValueEntry { + s.SecretBinary = v + return s +} + +// SetSecretString sets the SecretString field's value. +func (s *SecretValueEntry) SetSecretString(v string) *SecretValueEntry { + s.SecretString = &v + return s +} + +// SetVersionId sets the VersionId field's value. +func (s *SecretValueEntry) SetVersionId(v string) *SecretValueEntry { + s.VersionId = &v + return s +} + +// SetVersionStages sets the VersionStages field's value. +func (s *SecretValueEntry) SetVersionStages(v []*string) *SecretValueEntry { + s.VersionStages = v + return s +} + // A structure that contains information about one version of a secret. type SecretVersionsListEntry struct { _ struct{} `type:"structure"` diff --git a/service/secretsmanager/secretsmanageriface/interface.go b/service/secretsmanager/secretsmanageriface/interface.go index 4bf6e8cda13..c2607b12e80 100644 --- a/service/secretsmanager/secretsmanageriface/interface.go +++ b/service/secretsmanager/secretsmanageriface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // AWS Secrets Manager. // func myFunc(svc secretsmanageriface.SecretsManagerAPI) bool { -// // Make svc.CancelRotateSecret request +// // Make svc.BatchGetSecretValue request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockSecretsManagerClient struct { // secretsmanageriface.SecretsManagerAPI // } -// func (m *mockSecretsManagerClient) CancelRotateSecret(input *secretsmanager.CancelRotateSecretInput) (*secretsmanager.CancelRotateSecretOutput, error) { +// func (m *mockSecretsManagerClient) BatchGetSecretValue(input *secretsmanager.BatchGetSecretValueInput) (*secretsmanager.BatchGetSecretValueOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,13 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type SecretsManagerAPI interface { + BatchGetSecretValue(*secretsmanager.BatchGetSecretValueInput) (*secretsmanager.BatchGetSecretValueOutput, error) + BatchGetSecretValueWithContext(aws.Context, *secretsmanager.BatchGetSecretValueInput, ...request.Option) (*secretsmanager.BatchGetSecretValueOutput, error) + BatchGetSecretValueRequest(*secretsmanager.BatchGetSecretValueInput) (*request.Request, *secretsmanager.BatchGetSecretValueOutput) + + BatchGetSecretValuePages(*secretsmanager.BatchGetSecretValueInput, func(*secretsmanager.BatchGetSecretValueOutput, bool) bool) error + BatchGetSecretValuePagesWithContext(aws.Context, *secretsmanager.BatchGetSecretValueInput, func(*secretsmanager.BatchGetSecretValueOutput, bool) bool, ...request.Option) error + CancelRotateSecret(*secretsmanager.CancelRotateSecretInput) (*secretsmanager.CancelRotateSecretOutput, error) CancelRotateSecretWithContext(aws.Context, *secretsmanager.CancelRotateSecretInput, ...request.Option) (*secretsmanager.CancelRotateSecretOutput, error) CancelRotateSecretRequest(*secretsmanager.CancelRotateSecretInput) (*request.Request, *secretsmanager.CancelRotateSecretOutput) diff --git a/service/securityhub/api.go b/service/securityhub/api.go index 3dd868084c2..be530145871 100644 --- a/service/securityhub/api.go +++ b/service/securityhub/api.go @@ -5254,6 +5254,102 @@ func (c *SecurityHub) GetMembersWithContext(ctx aws.Context, input *GetMembersIn return out, req.Send() } +const opGetSecurityControlDefinition = "GetSecurityControlDefinition" + +// GetSecurityControlDefinitionRequest generates a "aws/request.Request" representing the +// client's request for the GetSecurityControlDefinition 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 GetSecurityControlDefinition for more information on using the GetSecurityControlDefinition +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetSecurityControlDefinitionRequest method. +// req, resp := client.GetSecurityControlDefinitionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetSecurityControlDefinition +func (c *SecurityHub) GetSecurityControlDefinitionRequest(input *GetSecurityControlDefinitionInput) (req *request.Request, output *GetSecurityControlDefinitionOutput) { + op := &request.Operation{ + Name: opGetSecurityControlDefinition, + HTTPMethod: "GET", + HTTPPath: "/securityControl/definition", + } + + if input == nil { + input = &GetSecurityControlDefinitionInput{} + } + + output = &GetSecurityControlDefinitionOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetSecurityControlDefinition API operation for AWS SecurityHub. +// +// Retrieves the definition of a security control. The definition includes the +// control title, description, Region availability, parameter definitions, and +// other details. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 SecurityHub's +// API operation GetSecurityControlDefinition for usage and error information. +// +// Returned Error Types: +// +// - InternalException +// Internal server error. +// +// - InvalidInputException +// The request was rejected because you supplied an invalid or out-of-range +// value for an input parameter. +// +// - InvalidAccessException +// The account doesn't have permission to perform this action. +// +// - LimitExceededException +// The request was rejected because it attempted to create resources beyond +// the current Amazon Web Services account or throttling limits. The error code +// describes the limit exceeded. +// +// - ResourceNotFoundException +// The request was rejected because we can't find the specified resource. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetSecurityControlDefinition +func (c *SecurityHub) GetSecurityControlDefinition(input *GetSecurityControlDefinitionInput) (*GetSecurityControlDefinitionOutput, error) { + req, out := c.GetSecurityControlDefinitionRequest(input) + return out, req.Send() +} + +// GetSecurityControlDefinitionWithContext is the same as GetSecurityControlDefinition with the addition of +// the ability to pass a context and additional request options. +// +// See GetSecurityControlDefinition for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *SecurityHub) GetSecurityControlDefinitionWithContext(ctx aws.Context, input *GetSecurityControlDefinitionInput, opts ...request.Option) (*GetSecurityControlDefinitionOutput, error) { + req, out := c.GetSecurityControlDefinitionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opInviteMembers = "InviteMembers" // InviteMembersRequest generates a "aws/request.Request" representing the @@ -7242,6 +7338,106 @@ func (c *SecurityHub) UpdateOrganizationConfigurationWithContext(ctx aws.Context return out, req.Send() } +const opUpdateSecurityControl = "UpdateSecurityControl" + +// UpdateSecurityControlRequest generates a "aws/request.Request" representing the +// client's request for the UpdateSecurityControl 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 UpdateSecurityControl for more information on using the UpdateSecurityControl +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateSecurityControlRequest method. +// req, resp := client.UpdateSecurityControlRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateSecurityControl +func (c *SecurityHub) UpdateSecurityControlRequest(input *UpdateSecurityControlInput) (req *request.Request, output *UpdateSecurityControlOutput) { + op := &request.Operation{ + Name: opUpdateSecurityControl, + HTTPMethod: "PATCH", + HTTPPath: "/securityControl/update", + } + + if input == nil { + input = &UpdateSecurityControlInput{} + } + + output = &UpdateSecurityControlOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateSecurityControl API operation for AWS SecurityHub. +// +// Updates the properties of a security 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 SecurityHub's +// API operation UpdateSecurityControl for usage and error information. +// +// Returned Error Types: +// +// - InternalException +// Internal server error. +// +// - InvalidInputException +// The request was rejected because you supplied an invalid or out-of-range +// value for an input parameter. +// +// - InvalidAccessException +// The account doesn't have permission to perform this action. +// +// - LimitExceededException +// The request was rejected because it attempted to create resources beyond +// the current Amazon Web Services account or throttling limits. The error code +// describes the limit exceeded. +// +// - ResourceNotFoundException +// The request was rejected because we can't find the specified resource. +// +// - ResourceInUseException +// The request was rejected because it conflicts with the resource's availability. +// For example, you tried to update a security control that's currently in the +// UPDATING state. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateSecurityControl +func (c *SecurityHub) UpdateSecurityControl(input *UpdateSecurityControlInput) (*UpdateSecurityControlOutput, error) { + req, out := c.UpdateSecurityControlRequest(input) + return out, req.Send() +} + +// UpdateSecurityControlWithContext is the same as UpdateSecurityControl with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateSecurityControl for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *SecurityHub) UpdateSecurityControlWithContext(ctx aws.Context, input *UpdateSecurityControlInput, opts ...request.Option) (*UpdateSecurityControlOutput, error) { + req, out := c.UpdateSecurityControlRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateSecurityHubConfiguration = "UpdateSecurityHubConfiguration" // UpdateSecurityHubConfigurationRequest generates a "aws/request.Request" representing the @@ -14762,7 +14958,7 @@ func (s *AwsCloudFrontDistributionOriginGroups) SetItems(v []*AwsCloudFrontDistr } // A complex type that describes the Amazon S3 bucket, HTTP server (for example, -// a web server), AWS Elemental MediaStore, or other server from which CloudFront +// a web server), Elemental MediaStore, or other server from which CloudFront // gets your files. type AwsCloudFrontDistributionOriginItem struct { _ struct{} `type:"structure"` @@ -40708,11 +40904,10 @@ func (s *AwsSecurityFinding) SetWorkflowState(v string) *AwsSecurityFinding { return s } -// A collection of attributes that are applied to all active Security Hub-aggregated -// findings and that result in a subset of findings that are included in this -// insight. +// A collection of filters that are applied to all active findings aggregated +// by Security Hub. // -// You can filter by up to 10 finding attributes. For each attribute, you can +// You can filter by up to ten finding attributes. For each attribute, you can // provide up to 20 filter values. type AwsSecurityFindingFilters struct { _ struct{} `type:"structure"` @@ -40734,6 +40929,12 @@ type AwsSecurityFindingFilters struct { // typically consist of an Amazon Web Service and a number, such as APIGateway.5. ComplianceSecurityControlId []*StringFilter `type:"list"` + // The name of a security control parameter. + ComplianceSecurityControlParametersName []*StringFilter `type:"list"` + + // The current value of a security control parameter. + ComplianceSecurityControlParametersValue []*StringFilter `type:"list"` + // Exclusive to findings that are generated as the result of a check run against // a specific rule in a supported standard, such as CIS Amazon Web Services // Foundations. Contains security standard-related finding details. @@ -41088,6 +41289,16 @@ type AwsSecurityFindingFilters struct { // The veracity of a finding. VerificationState []*StringFilter `type:"list"` + // Indicates whether a software vulnerability in your environment has a known + // exploit. You can filter findings by this field only if you use Security Hub + // and Amazon Inspector. + VulnerabilitiesExploitAvailable []*StringFilter `type:"list"` + + // Indicates whether a vulnerability is fixed in a newer version of the affected + // software packages. You can filter findings by this field only if you use + // Security Hub and Amazon Inspector. + VulnerabilitiesFixAvailable []*StringFilter `type:"list"` + // The workflow state of a finding. // // Note that this field is deprecated. To search for a finding based on its @@ -41164,6 +41375,18 @@ func (s *AwsSecurityFindingFilters) SetComplianceSecurityControlId(v []*StringFi return s } +// SetComplianceSecurityControlParametersName sets the ComplianceSecurityControlParametersName field's value. +func (s *AwsSecurityFindingFilters) SetComplianceSecurityControlParametersName(v []*StringFilter) *AwsSecurityFindingFilters { + s.ComplianceSecurityControlParametersName = v + return s +} + +// SetComplianceSecurityControlParametersValue sets the ComplianceSecurityControlParametersValue field's value. +func (s *AwsSecurityFindingFilters) SetComplianceSecurityControlParametersValue(v []*StringFilter) *AwsSecurityFindingFilters { + s.ComplianceSecurityControlParametersValue = v + return s +} + // SetComplianceStatus sets the ComplianceStatus field's value. func (s *AwsSecurityFindingFilters) SetComplianceStatus(v []*StringFilter) *AwsSecurityFindingFilters { s.ComplianceStatus = v @@ -41710,6 +41933,18 @@ func (s *AwsSecurityFindingFilters) SetVerificationState(v []*StringFilter) *Aws return s } +// SetVulnerabilitiesExploitAvailable sets the VulnerabilitiesExploitAvailable field's value. +func (s *AwsSecurityFindingFilters) SetVulnerabilitiesExploitAvailable(v []*StringFilter) *AwsSecurityFindingFilters { + s.VulnerabilitiesExploitAvailable = v + return s +} + +// SetVulnerabilitiesFixAvailable sets the VulnerabilitiesFixAvailable field's value. +func (s *AwsSecurityFindingFilters) SetVulnerabilitiesFixAvailable(v []*StringFilter) *AwsSecurityFindingFilters { + s.VulnerabilitiesFixAvailable = v + return s +} + // SetWorkflowState sets the WorkflowState field's value. func (s *AwsSecurityFindingFilters) SetWorkflowState(v []*StringFilter) *AwsSecurityFindingFilters { s.WorkflowState = v @@ -45803,6 +46038,39 @@ func (s *BatchUpdateStandardsControlAssociationsOutput) SetUnprocessedAssociatio return s } +// The options for customizing a security control parameter with a boolean. +// For a boolean parameter, the options are true and false. +type BooleanConfigurationOptions struct { + _ struct{} `type:"structure"` + + // The Security Hub default value for a boolean parameter. + DefaultValue *bool `type:"boolean"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BooleanConfigurationOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s BooleanConfigurationOptions) GoString() string { + return s.String() +} + +// SetDefaultValue sets the DefaultValue field's value. +func (s *BooleanConfigurationOptions) SetDefaultValue(v bool) *BooleanConfigurationOptions { + s.DefaultValue = &v + return s +} + // Boolean filter for querying findings. type BooleanFilter struct { _ struct{} `type:"structure"` @@ -46232,6 +46500,9 @@ type Compliance struct { // typically consist of an Amazon Web Service and a number, such as APIGateway.5. SecurityControlId *string `type:"string"` + // An object that includes security control parameter names and values. + SecurityControlParameters []*SecurityControlParameter `type:"list"` + // The result of a standards check. // // The valid values for Status are as follows. @@ -46308,6 +46579,12 @@ func (s *Compliance) SetSecurityControlId(v string) *Compliance { return s } +// SetSecurityControlParameters sets the SecurityControlParameters field's value. +func (s *Compliance) SetSecurityControlParameters(v []*SecurityControlParameter) *Compliance { + s.SecurityControlParameters = v + return s +} + // SetStatus sets the Status field's value. func (s *Compliance) SetStatus(v string) *Compliance { s.Status = &v @@ -46320,6 +46597,106 @@ func (s *Compliance) SetStatusReasons(v []*StatusReason) *Compliance { return s } +// The options for customizing a security control parameter. +type ConfigurationOptions struct { + _ struct{} `type:"structure"` + + // The options for customizing a security control parameter that is a boolean. + // For a boolean parameter, the options are true and false. + Boolean *BooleanConfigurationOptions `type:"structure"` + + // The options for customizing a security control parameter that is a double. + Double *DoubleConfigurationOptions `type:"structure"` + + // The options for customizing a security control parameter that is an enum. + Enum *EnumConfigurationOptions `type:"structure"` + + // The options for customizing a security control parameter that is a list of + // enums. + EnumList *EnumListConfigurationOptions `type:"structure"` + + // The options for customizing a security control parameter that is an integer. + Integer *IntegerConfigurationOptions `type:"structure"` + + // The options for customizing a security control parameter that is a list of + // integers. + IntegerList *IntegerListConfigurationOptions `type:"structure"` + + // The options for customizing a security control parameter that is a list of + // strings. + StringList *StringListConfigurationOptions `type:"structure"` + + // The options for customizing a security control parameter that is a string + // data type. + String_ *StringConfigurationOptions `locationName:"String" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConfigurationOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConfigurationOptions) GoString() string { + return s.String() +} + +// SetBoolean sets the Boolean field's value. +func (s *ConfigurationOptions) SetBoolean(v *BooleanConfigurationOptions) *ConfigurationOptions { + s.Boolean = v + return s +} + +// SetDouble sets the Double field's value. +func (s *ConfigurationOptions) SetDouble(v *DoubleConfigurationOptions) *ConfigurationOptions { + s.Double = v + return s +} + +// SetEnum sets the Enum field's value. +func (s *ConfigurationOptions) SetEnum(v *EnumConfigurationOptions) *ConfigurationOptions { + s.Enum = v + return s +} + +// SetEnumList sets the EnumList field's value. +func (s *ConfigurationOptions) SetEnumList(v *EnumListConfigurationOptions) *ConfigurationOptions { + s.EnumList = v + return s +} + +// SetInteger sets the Integer field's value. +func (s *ConfigurationOptions) SetInteger(v *IntegerConfigurationOptions) *ConfigurationOptions { + s.Integer = v + return s +} + +// SetIntegerList sets the IntegerList field's value. +func (s *ConfigurationOptions) SetIntegerList(v *IntegerListConfigurationOptions) *ConfigurationOptions { + s.IntegerList = v + return s +} + +// SetStringList sets the StringList field's value. +func (s *ConfigurationOptions) SetStringList(v *StringListConfigurationOptions) *ConfigurationOptions { + s.StringList = v + return s +} + +// SetString_ sets the String_ field's value. +func (s *ConfigurationOptions) SetString_(v *StringConfigurationOptions) *ConfigurationOptions { + s.String_ = v + return s +} + // Container details related to a finding. type ContainerDetails struct { _ struct{} `type:"structure"` @@ -48886,6 +49263,56 @@ func (s *DnsRequestAction) SetProtocol(v string) *DnsRequestAction { return s } +// The options for customizing a security control parameter that is a double. +type DoubleConfigurationOptions struct { + _ struct{} `type:"structure"` + + // The Security Hub default value for a control parameter that is a double. + DefaultValue *float64 `type:"double"` + + // The maximum valid value for a control parameter that is a double. + Max *float64 `type:"double"` + + // The minimum valid value for a control parameter that is a double. + Min *float64 `type:"double"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DoubleConfigurationOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DoubleConfigurationOptions) GoString() string { + return s.String() +} + +// SetDefaultValue sets the DefaultValue field's value. +func (s *DoubleConfigurationOptions) SetDefaultValue(v float64) *DoubleConfigurationOptions { + s.DefaultValue = &v + return s +} + +// SetMax sets the Max field's value. +func (s *DoubleConfigurationOptions) SetMax(v float64) *DoubleConfigurationOptions { + s.Max = &v + return s +} + +// SetMin sets the Min field's value. +func (s *DoubleConfigurationOptions) SetMin(v float64) *DoubleConfigurationOptions { + s.Min = &v + return s +} + type EnableImportFindingsForProductInput struct { _ struct{} `type:"structure"` @@ -49131,6 +49558,100 @@ func (s EnableSecurityHubOutput) GoString() string { return s.String() } +// The options for customizing a security control parameter that is an enum. +type EnumConfigurationOptions struct { + _ struct{} `type:"structure"` + + // The valid values for a control parameter that is an enum. + AllowedValues []*string `type:"list"` + + // The Security Hub default value for a control parameter that is an enum. + DefaultValue *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnumConfigurationOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnumConfigurationOptions) GoString() string { + return s.String() +} + +// SetAllowedValues sets the AllowedValues field's value. +func (s *EnumConfigurationOptions) SetAllowedValues(v []*string) *EnumConfigurationOptions { + s.AllowedValues = v + return s +} + +// SetDefaultValue sets the DefaultValue field's value. +func (s *EnumConfigurationOptions) SetDefaultValue(v string) *EnumConfigurationOptions { + s.DefaultValue = &v + return s +} + +// The options for customizing a security control parameter that is a list of +// enums. +type EnumListConfigurationOptions struct { + _ struct{} `type:"structure"` + + // The valid values for a control parameter that is a list of enums. + AllowedValues []*string `type:"list"` + + // The Security Hub default value for a control parameter that is a list of + // enums. + DefaultValue []*string `type:"list"` + + // The maximum number of list items that an enum list control parameter can + // accept. + MaxItems *int64 `type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnumListConfigurationOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnumListConfigurationOptions) GoString() string { + return s.String() +} + +// SetAllowedValues sets the AllowedValues field's value. +func (s *EnumListConfigurationOptions) SetAllowedValues(v []*string) *EnumListConfigurationOptions { + s.AllowedValues = v + return s +} + +// SetDefaultValue sets the DefaultValue field's value. +func (s *EnumListConfigurationOptions) SetDefaultValue(v []*string) *EnumListConfigurationOptions { + s.DefaultValue = v + return s +} + +// SetMaxItems sets the MaxItems field's value. +func (s *EnumListConfigurationOptions) SetMaxItems(v int64) *EnumListConfigurationOptions { + s.MaxItems = &v + return s +} + // Provides information about the file paths that were affected by the threat. type FilePaths struct { _ struct{} `type:"structure"` @@ -50801,6 +51322,88 @@ func (s *GetMembersOutput) SetUnprocessedAccounts(v []*Result) *GetMembersOutput return s } +type GetSecurityControlDefinitionInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the security control to retrieve the definition for. This field + // doesn’t accept an Amazon Resource Name (ARN). + // + // SecurityControlId is a required field + SecurityControlId *string `location:"querystring" locationName:"SecurityControlId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSecurityControlDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSecurityControlDefinitionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSecurityControlDefinitionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetSecurityControlDefinitionInput"} + if s.SecurityControlId == nil { + invalidParams.Add(request.NewErrParamRequired("SecurityControlId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSecurityControlId sets the SecurityControlId field's value. +func (s *GetSecurityControlDefinitionInput) SetSecurityControlId(v string) *GetSecurityControlDefinitionInput { + s.SecurityControlId = &v + return s +} + +type GetSecurityControlDefinitionOutput struct { + _ struct{} `type:"structure"` + + // Provides metadata for a security control, including its unique standard-agnostic + // identifier, title, description, severity, availability in Amazon Web Services + // Regions, and a link to remediation steps. + // + // SecurityControlDefinition is a required field + SecurityControlDefinition *SecurityControlDefinition `type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSecurityControlDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSecurityControlDefinitionOutput) GoString() string { + return s.String() +} + +// SetSecurityControlDefinition sets the SecurityControlDefinition field's value. +func (s *GetSecurityControlDefinitionOutput) SetSecurityControlDefinition(v *SecurityControlDefinition) *GetSecurityControlDefinitionOutput { + s.SecurityControlDefinition = v + return s +} + // An Internet Control Message Protocol (ICMP) type and code. type IcmpTypeCode struct { _ struct{} `type:"structure"` @@ -51077,6 +51680,118 @@ func (s *InsightResults) SetResultValues(v []*InsightResultValue) *InsightResult return s } +// The options for customizing a security control parameter that is an integer. +type IntegerConfigurationOptions struct { + _ struct{} `type:"structure"` + + // The Security Hub default value for a control parameter that is an integer. + DefaultValue *int64 `type:"integer"` + + // The maximum valid value for a control parameter that is an integer. + Max *int64 `type:"integer"` + + // The minimum valid value for a control parameter that is an integer. + Min *int64 `type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IntegerConfigurationOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IntegerConfigurationOptions) GoString() string { + return s.String() +} + +// SetDefaultValue sets the DefaultValue field's value. +func (s *IntegerConfigurationOptions) SetDefaultValue(v int64) *IntegerConfigurationOptions { + s.DefaultValue = &v + return s +} + +// SetMax sets the Max field's value. +func (s *IntegerConfigurationOptions) SetMax(v int64) *IntegerConfigurationOptions { + s.Max = &v + return s +} + +// SetMin sets the Min field's value. +func (s *IntegerConfigurationOptions) SetMin(v int64) *IntegerConfigurationOptions { + s.Min = &v + return s +} + +// The options for customizing a security control parameter that is a list of +// integers. +type IntegerListConfigurationOptions struct { + _ struct{} `type:"structure"` + + // The Security Hub default value for a control parameter that is a list of + // integers. + DefaultValue []*int64 `type:"list"` + + // The maximum valid value for a control parameter that is a list of integers. + Max *int64 `type:"integer"` + + // The maximum number of list items that an interger list control parameter + // can accept. + MaxItems *int64 `type:"integer"` + + // The minimum valid value for a control parameter that is a list of integers. + Min *int64 `type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IntegerListConfigurationOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s IntegerListConfigurationOptions) GoString() string { + return s.String() +} + +// SetDefaultValue sets the DefaultValue field's value. +func (s *IntegerListConfigurationOptions) SetDefaultValue(v []*int64) *IntegerListConfigurationOptions { + s.DefaultValue = v + return s +} + +// SetMax sets the Max field's value. +func (s *IntegerListConfigurationOptions) SetMax(v int64) *IntegerListConfigurationOptions { + s.Max = &v + return s +} + +// SetMaxItems sets the MaxItems field's value. +func (s *IntegerListConfigurationOptions) SetMaxItems(v int64) *IntegerListConfigurationOptions { + s.MaxItems = &v + return s +} + +// SetMin sets the Min field's value. +func (s *IntegerListConfigurationOptions) SetMin(v int64) *IntegerListConfigurationOptions { + s.Min = &v + return s +} + // Internal server error. type InternalException struct { _ struct{} `type:"structure"` @@ -53435,10 +54150,18 @@ type NumberFilter struct { // findings. Eq *float64 `type:"double"` + // The greater-than condition to be applied to a single field when querying + // for findings. + Gt *float64 `type:"double"` + // The greater-than-equal condition to be applied to a single field when querying // for findings. Gte *float64 `type:"double"` + // The less-than condition to be applied to a single field when querying for + // findings. + Lt *float64 `type:"double"` + // The less-than-equal condition to be applied to a single field when querying // for findings. Lte *float64 `type:"double"` @@ -53468,12 +54191,24 @@ func (s *NumberFilter) SetEq(v float64) *NumberFilter { return s } +// SetGt sets the Gt field's value. +func (s *NumberFilter) SetGt(v float64) *NumberFilter { + s.Gt = &v + return s +} + // SetGte sets the Gte field's value. func (s *NumberFilter) SetGte(v float64) *NumberFilter { s.Gte = &v return s } +// SetLt sets the Lt field's value. +func (s *NumberFilter) SetLt(v float64) *NumberFilter { + s.Lt = &v + return s +} + // SetLte sets the Lte field's value. func (s *NumberFilter) SetLte(v float64) *NumberFilter { s.Lte = &v @@ -53606,6 +54341,207 @@ func (s *Page) SetPageNumber(v int64) *Page { return s } +// An object that provides the current value of a security control parameter +// and identifies whether it has been customized. +type ParameterConfiguration struct { + _ struct{} `type:"structure"` + + // The current value of a control parameter. + Value *ParameterValue `type:"structure"` + + // Identifies whether a control parameter uses a custom user-defined value or + // the Security Hub default value. + // + // ValueType is a required field + ValueType *string `type:"string" required:"true" enum:"ParameterValueType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ParameterConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ParameterConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ParameterConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ParameterConfiguration"} + if s.ValueType == nil { + invalidParams.Add(request.NewErrParamRequired("ValueType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetValue sets the Value field's value. +func (s *ParameterConfiguration) SetValue(v *ParameterValue) *ParameterConfiguration { + s.Value = v + return s +} + +// SetValueType sets the ValueType field's value. +func (s *ParameterConfiguration) SetValueType(v string) *ParameterConfiguration { + s.ValueType = &v + return s +} + +// An object that describes a security control parameter and the options for +// customizing it. +type ParameterDefinition struct { + _ struct{} `type:"structure"` + + // The options for customizing a control parameter. Customization options vary + // based on the data type of the parameter. + // + // ConfigurationOptions is a required field + ConfigurationOptions *ConfigurationOptions `type:"structure" required:"true"` + + // Description of a control parameter. + // + // Description is a required field + Description *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ParameterDefinition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ParameterDefinition) GoString() string { + return s.String() +} + +// SetConfigurationOptions sets the ConfigurationOptions field's value. +func (s *ParameterDefinition) SetConfigurationOptions(v *ConfigurationOptions) *ParameterDefinition { + s.ConfigurationOptions = v + return s +} + +// SetDescription sets the Description field's value. +func (s *ParameterDefinition) SetDescription(v string) *ParameterDefinition { + s.Description = &v + return s +} + +// An object that includes the data type of a security control parameter and +// its current value. +type ParameterValue struct { + _ struct{} `type:"structure"` + + // A control parameter that is a boolean. + Boolean *bool `type:"boolean"` + + // A control parameter that is a double. + Double *float64 `type:"double"` + + // A control parameter that is an enum. + Enum *string `type:"string"` + + // A control parameter that is a list of enums. + EnumList []*string `type:"list"` + + // A control parameter that is an integer. + Integer *int64 `type:"integer"` + + // A control parameter that is a list of integers. + IntegerList []*int64 `type:"list"` + + // A control parameter that is a list of strings. + StringList []*string `type:"list"` + + // A control parameter that is a string. + String_ *string `locationName:"String" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ParameterValue) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ParameterValue) GoString() string { + return s.String() +} + +// SetBoolean sets the Boolean field's value. +func (s *ParameterValue) SetBoolean(v bool) *ParameterValue { + s.Boolean = &v + return s +} + +// SetDouble sets the Double field's value. +func (s *ParameterValue) SetDouble(v float64) *ParameterValue { + s.Double = &v + return s +} + +// SetEnum sets the Enum field's value. +func (s *ParameterValue) SetEnum(v string) *ParameterValue { + s.Enum = &v + return s +} + +// SetEnumList sets the EnumList field's value. +func (s *ParameterValue) SetEnumList(v []*string) *ParameterValue { + s.EnumList = v + return s +} + +// SetInteger sets the Integer field's value. +func (s *ParameterValue) SetInteger(v int64) *ParameterValue { + s.Integer = &v + return s +} + +// SetIntegerList sets the IntegerList field's value. +func (s *ParameterValue) SetIntegerList(v []*int64) *ParameterValue { + s.IntegerList = v + return s +} + +// SetStringList sets the StringList field's value. +func (s *ParameterValue) SetStringList(v []*string) *ParameterValue { + s.StringList = v + return s +} + +// SetString_ sets the String_ field's value. +func (s *ParameterValue) SetString_(v string) *ParameterValue { + s.String_ = &v + return s +} + // Provides an overview of the patch compliance status for an instance against // a selected compliance standard. type PatchSummary struct { @@ -55573,6 +56509,74 @@ func (s *ResourceDetails) SetOther(v map[string]*string) *ResourceDetails { return s } +// The request was rejected because it conflicts with the resource's availability. +// For example, you tried to update a security control that's currently in the +// UPDATING state. +type ResourceInUseException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Code_ *string `locationName:"Code" type:"string"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceInUseException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceInUseException) GoString() string { + return s.String() +} + +func newErrorResourceInUseException(v protocol.ResponseMetadata) error { + return &ResourceInUseException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceInUseException) Code() string { + return "ResourceInUseException" +} + +// Message returns the exception's message. +func (s *ResourceInUseException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceInUseException) OrigErr() error { + return nil +} + +func (s *ResourceInUseException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceInUseException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceInUseException) RequestID() string { + return s.RespMetadata.RequestID +} + // The request was rejected because we can't find the specified resource. type ResourceNotFoundException struct { _ struct{} `type:"structure"` @@ -56737,6 +57741,18 @@ type SecurityControl struct { // Description is a required field Description *string `type:"string" required:"true"` + // The most recent reason for updating the customizable properties of a security + // control. This differs from the UpdateReason field of the BatchUpdateStandardsControlAssociations + // (https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_BatchUpdateStandardsControlAssociations.html) + // API, which tracks the reason for updating the enablement status of a control. + // This field accepts alphanumeric characters in addition to white spaces, dashes, + // and underscores. + LastUpdateReason *string `type:"string"` + + // An object that identifies the name of a control parameter, its current value, + // and whether it has been customized. + Parameters map[string]*ParameterConfiguration `type:"map"` + // A link to Security Hub documentation that explains how to remediate a failed // finding for a security control. // @@ -56774,6 +57790,12 @@ type SecurityControl struct { // // Title is a required field Title *string `type:"string" required:"true"` + + // Identifies whether customizable properties of a security control are reflected + // in Security Hub findings. A status of READY indicates findings include the + // current parameter values. A status of UPDATING indicates that all findings + // may not include the current parameter values. + UpdateStatus *string `type:"string" enum:"UpdateStatus"` } // String returns the string representation. @@ -56800,6 +57822,18 @@ func (s *SecurityControl) SetDescription(v string) *SecurityControl { return s } +// SetLastUpdateReason sets the LastUpdateReason field's value. +func (s *SecurityControl) SetLastUpdateReason(v string) *SecurityControl { + s.LastUpdateReason = &v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *SecurityControl) SetParameters(v map[string]*ParameterConfiguration) *SecurityControl { + s.Parameters = v + return s +} + // SetRemediationUrl sets the RemediationUrl field's value. func (s *SecurityControl) SetRemediationUrl(v string) *SecurityControl { s.RemediationUrl = &v @@ -56836,6 +57870,12 @@ func (s *SecurityControl) SetTitle(v string) *SecurityControl { return s } +// SetUpdateStatus sets the UpdateStatus field's value. +func (s *SecurityControl) SetUpdateStatus(v string) *SecurityControl { + s.UpdateStatus = &v + return s +} + // Provides metadata for a security control, including its unique standard-agnostic // identifier, title, description, severity, availability in Amazon Web Services // Regions, and a link to remediation steps. @@ -56848,6 +57888,11 @@ type SecurityControlDefinition struct { // CurrentRegionAvailability is a required field CurrentRegionAvailability *string `type:"string" required:"true" enum:"RegionAvailabilityStatus"` + // Security control properties that you can customize. Currently, only parameter + // customization is supported for select controls. An empty array is returned + // for controls that don’t support custom properties. + CustomizableProperties []*string `type:"list" enum:"SecurityControlProperty"` + // The description of a security control across standards. This typically summarizes // how Security Hub evaluates the control and the conditions under which it // produces a failed finding. This parameter doesn't reference a specific standard. @@ -56855,6 +57900,11 @@ type SecurityControlDefinition struct { // Description is a required field Description *string `type:"string" required:"true"` + // An object that provides a security control parameter name, description, and + // the options for customizing it. This object is excluded for a control that + // doesn't support custom parameters. + ParameterDefinitions map[string]*ParameterDefinition `type:"map"` + // A link to Security Hub documentation that explains how to remediate a failed // finding for a security control. // @@ -56908,12 +57958,24 @@ func (s *SecurityControlDefinition) SetCurrentRegionAvailability(v string) *Secu return s } +// SetCustomizableProperties sets the CustomizableProperties field's value. +func (s *SecurityControlDefinition) SetCustomizableProperties(v []*string) *SecurityControlDefinition { + s.CustomizableProperties = v + return s +} + // SetDescription sets the Description field's value. func (s *SecurityControlDefinition) SetDescription(v string) *SecurityControlDefinition { s.Description = &v return s } +// SetParameterDefinitions sets the ParameterDefinitions field's value. +func (s *SecurityControlDefinition) SetParameterDefinitions(v map[string]*ParameterDefinition) *SecurityControlDefinition { + s.ParameterDefinitions = v + return s +} + // SetRemediationUrl sets the RemediationUrl field's value. func (s *SecurityControlDefinition) SetRemediationUrl(v string) *SecurityControlDefinition { s.RemediationUrl = &v @@ -56938,6 +58000,47 @@ func (s *SecurityControlDefinition) SetTitle(v string) *SecurityControlDefinitio return s } +// A parameter that a security control accepts. +type SecurityControlParameter struct { + _ struct{} `type:"structure"` + + // The name of a + Name *string `type:"string"` + + // The current value of a control parameter. + Value []*string `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SecurityControlParameter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SecurityControlParameter) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *SecurityControlParameter) SetName(v string) *SecurityControlParameter { + s.Name = &v + return s +} + +// SetValue sets the Value field's value. +func (s *SecurityControlParameter) SetValue(v []*string) *SecurityControlParameter { + s.Value = v + return s +} + // The list of detected instances of sensitive data. type SensitiveDataDetections struct { _ struct{} `type:"structure"` @@ -57080,8 +58183,8 @@ type Severity struct { // * 90–100 - CRITICAL Label *string `type:"string" enum:"SeverityLabel"` - // Deprecated. The normalized severity of a finding. This attribute is being - // deprecated. Instead of providing Normalized, provide Label. + // Deprecated. The normalized severity of a finding. Instead of providing Normalized, + // provide Label. // // If you provide Label and do not provide Normalized, then Normalized is set // automatically as follows. @@ -57100,8 +58203,8 @@ type Severity struct { // The native severity from the finding product that generated the finding. Original *string `type:"string"` - // Deprecated. This attribute is being deprecated. Instead of providing Product, - // provide Original. + // Deprecated. This attribute isn't included in findings. Instead of providing + // Product, provide Original. // // The native severity as defined by the Amazon Web Services service or integrated // partner product that generated the finding. @@ -58368,6 +59471,57 @@ func (s *StatusReason) SetReasonCode(v string) *StatusReason { return s } +// The options for customizing a security control parameter that is a string. +type StringConfigurationOptions struct { + _ struct{} `type:"structure"` + + // The Security Hub default value for a control parameter that is a string. + DefaultValue *string `type:"string"` + + // The description of the RE2 regular expression. + ExpressionDescription *string `type:"string"` + + // An RE2 regular expression that Security Hub uses to validate a user-provided + // control parameter string. + Re2Expression *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StringConfigurationOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StringConfigurationOptions) GoString() string { + return s.String() +} + +// SetDefaultValue sets the DefaultValue field's value. +func (s *StringConfigurationOptions) SetDefaultValue(v string) *StringConfigurationOptions { + s.DefaultValue = &v + return s +} + +// SetExpressionDescription sets the ExpressionDescription field's value. +func (s *StringConfigurationOptions) SetExpressionDescription(v string) *StringConfigurationOptions { + s.ExpressionDescription = &v + return s +} + +// SetRe2Expression sets the Re2Expression field's value. +func (s *StringConfigurationOptions) SetRe2Expression(v string) *StringConfigurationOptions { + s.Re2Expression = &v + return s +} + // A string filter for filtering Security Hub findings. type StringFilter struct { _ struct{} `type:"structure"` @@ -58480,6 +59634,69 @@ func (s *StringFilter) SetValue(v string) *StringFilter { return s } +// The options for customizing a security control parameter that is a list of +// strings. +type StringListConfigurationOptions struct { + _ struct{} `type:"structure"` + + // The Security Hub default value for a control parameter that is a list of + // strings. + DefaultValue []*string `type:"list"` + + // The description of the RE2 regular expression. + ExpressionDescription *string `type:"string"` + + // The maximum number of list items that a string list control parameter can + // accept. + MaxItems *int64 `type:"integer"` + + // An RE2 regular expression that Security Hub uses to validate a user-provided + // list of strings for a control parameter. + Re2Expression *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StringListConfigurationOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StringListConfigurationOptions) GoString() string { + return s.String() +} + +// SetDefaultValue sets the DefaultValue field's value. +func (s *StringListConfigurationOptions) SetDefaultValue(v []*string) *StringListConfigurationOptions { + s.DefaultValue = v + return s +} + +// SetExpressionDescription sets the ExpressionDescription field's value. +func (s *StringListConfigurationOptions) SetExpressionDescription(v string) *StringListConfigurationOptions { + s.ExpressionDescription = &v + return s +} + +// SetMaxItems sets the MaxItems field's value. +func (s *StringListConfigurationOptions) SetMaxItems(v int64) *StringListConfigurationOptions { + s.MaxItems = &v + return s +} + +// SetRe2Expression sets the Re2Expression field's value. +func (s *StringListConfigurationOptions) SetRe2Expression(v string) *StringListConfigurationOptions { + s.Re2Expression = &v + return s +} + type TagResourceInput struct { _ struct{} `type:"structure"` @@ -59693,6 +60910,109 @@ func (s UpdateOrganizationConfigurationOutput) GoString() string { return s.String() } +type UpdateSecurityControlInput struct { + _ struct{} `type:"structure"` + + // The most recent reason for updating the properties of the security control. + // This field accepts alphanumeric characters in addition to white spaces, dashes, + // and underscores. + LastUpdateReason *string `type:"string"` + + // An object that specifies which security control parameters to update. + // + // Parameters is a required field + Parameters map[string]*ParameterConfiguration `type:"map" required:"true"` + + // The Amazon Resource Name (ARN) or ID of the control to update. + // + // SecurityControlId is a required field + SecurityControlId *string `type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSecurityControlInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSecurityControlInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateSecurityControlInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityControlInput"} + if s.Parameters == nil { + invalidParams.Add(request.NewErrParamRequired("Parameters")) + } + if s.SecurityControlId == nil { + invalidParams.Add(request.NewErrParamRequired("SecurityControlId")) + } + if s.Parameters != nil { + for i, v := range s.Parameters { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Parameters", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLastUpdateReason sets the LastUpdateReason field's value. +func (s *UpdateSecurityControlInput) SetLastUpdateReason(v string) *UpdateSecurityControlInput { + s.LastUpdateReason = &v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *UpdateSecurityControlInput) SetParameters(v map[string]*ParameterConfiguration) *UpdateSecurityControlInput { + s.Parameters = v + return s +} + +// SetSecurityControlId sets the SecurityControlId field's value. +func (s *UpdateSecurityControlInput) SetSecurityControlId(v string) *UpdateSecurityControlInput { + s.SecurityControlId = &v + return s +} + +type UpdateSecurityControlOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSecurityControlOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSecurityControlOutput) GoString() string { + return s.String() +} + type UpdateSecurityHubConfigurationInput struct { _ struct{} `type:"structure"` @@ -60849,6 +62169,22 @@ func NetworkDirection_Values() []string { } } +const ( + // ParameterValueTypeDefault is a ParameterValueType enum value + ParameterValueTypeDefault = "DEFAULT" + + // ParameterValueTypeCustom is a ParameterValueType enum value + ParameterValueTypeCustom = "CUSTOM" +) + +// ParameterValueType_Values returns all elements of the ParameterValueType enum +func ParameterValueType_Values() []string { + return []string{ + ParameterValueTypeDefault, + ParameterValueTypeCustom, + } +} + const ( // PartitionAws is a Partition enum value PartitionAws = "aws" @@ -60917,6 +62253,18 @@ func RuleStatus_Values() []string { } } +const ( + // SecurityControlPropertyParameters is a SecurityControlProperty enum value + SecurityControlPropertyParameters = "Parameters" +) + +// SecurityControlProperty_Values returns all elements of the SecurityControlProperty enum +func SecurityControlProperty_Values() []string { + return []string{ + SecurityControlPropertyParameters, + } +} + const ( // SeverityLabelInformational is a SeverityLabel enum value SeverityLabelInformational = "INFORMATIONAL" @@ -61169,6 +62517,22 @@ func UnprocessedErrorCode_Values() []string { } } +const ( + // UpdateStatusReady is a UpdateStatus enum value + UpdateStatusReady = "READY" + + // UpdateStatusUpdating is a UpdateStatus enum value + UpdateStatusUpdating = "UPDATING" +) + +// UpdateStatus_Values returns all elements of the UpdateStatus enum +func UpdateStatus_Values() []string { + return []string{ + UpdateStatusReady, + UpdateStatusUpdating, + } +} + const ( // VerificationStateUnknown is a VerificationState enum value VerificationStateUnknown = "UNKNOWN" diff --git a/service/securityhub/errors.go b/service/securityhub/errors.go index 53f34b4b1aa..f6eb8fe2180 100644 --- a/service/securityhub/errors.go +++ b/service/securityhub/errors.go @@ -47,6 +47,14 @@ const ( // The resource specified in the request conflicts with an existing resource. ErrCodeResourceConflictException = "ResourceConflictException" + // ErrCodeResourceInUseException for service response error code + // "ResourceInUseException". + // + // The request was rejected because it conflicts with the resource's availability. + // For example, you tried to update a security control that's currently in the + // UPDATING state. + ErrCodeResourceInUseException = "ResourceInUseException" + // ErrCodeResourceNotFoundException for service response error code // "ResourceNotFoundException". // @@ -61,5 +69,6 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "InvalidInputException": newErrorInvalidInputException, "LimitExceededException": newErrorLimitExceededException, "ResourceConflictException": newErrorResourceConflictException, + "ResourceInUseException": newErrorResourceInUseException, "ResourceNotFoundException": newErrorResourceNotFoundException, } diff --git a/service/securityhub/examples_test.go b/service/securityhub/examples_test.go index 4f039742d89..fdca33f17e7 100644 --- a/service/securityhub/examples_test.go +++ b/service/securityhub/examples_test.go @@ -1884,6 +1884,42 @@ func ExampleSecurityHub_GetMembers_shared00() { fmt.Println(result) } +// To get the definition of a security control. +// The following example retrieves definition details for the specified security control. +func ExampleSecurityHub_GetSecurityControlDefinition_shared00() { + svc := securityhub.New(session.New()) + input := &securityhub.GetSecurityControlDefinitionInput{ + SecurityControlId: aws.String("EC2.4"), + } + + result, err := svc.GetSecurityControlDefinition(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case securityhub.ErrCodeInternalException: + fmt.Println(securityhub.ErrCodeInternalException, aerr.Error()) + case securityhub.ErrCodeInvalidInputException: + fmt.Println(securityhub.ErrCodeInvalidInputException, aerr.Error()) + case securityhub.ErrCodeInvalidAccessException: + fmt.Println(securityhub.ErrCodeInvalidAccessException, aerr.Error()) + case securityhub.ErrCodeLimitExceededException: + fmt.Println(securityhub.ErrCodeLimitExceededException, aerr.Error()) + case securityhub.ErrCodeResourceNotFoundException: + fmt.Println(securityhub.ErrCodeResourceNotFoundException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To invite accounts to become members // The following example invites the specified AWS accounts to become member accounts // associated with the calling Security Hub administrator account. You only use this @@ -2474,6 +2510,54 @@ func ExampleSecurityHub_UpdateOrganizationConfiguration_shared00() { fmt.Println(result) } +// To update security control properties +// The following example updates the specified security control. Specifically, this +// example updates control parameters. +func ExampleSecurityHub_UpdateSecurityControl_shared00() { + svc := securityhub.New(session.New()) + input := &securityhub.UpdateSecurityControlInput{ + LastUpdateReason: aws.String("Comply with internal requirements"), + Parameters: map[string]*securityhub.ParameterConfiguration{ + "maxCredentialUsageAge": { + Value: &securityhub.ParameterValue{ + Integer: aws.Int64(15), + }, + ValueType: aws.String("CUSTOM"), + }, + }, + SecurityControlId: aws.String("ACM.1"), + } + + result, err := svc.UpdateSecurityControl(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case securityhub.ErrCodeInternalException: + fmt.Println(securityhub.ErrCodeInternalException, aerr.Error()) + case securityhub.ErrCodeInvalidInputException: + fmt.Println(securityhub.ErrCodeInvalidInputException, aerr.Error()) + case securityhub.ErrCodeInvalidAccessException: + fmt.Println(securityhub.ErrCodeInvalidAccessException, aerr.Error()) + case securityhub.ErrCodeLimitExceededException: + fmt.Println(securityhub.ErrCodeLimitExceededException, aerr.Error()) + case securityhub.ErrCodeResourceNotFoundException: + fmt.Println(securityhub.ErrCodeResourceNotFoundException, aerr.Error()) + case securityhub.ErrCodeResourceInUseException: + fmt.Println(securityhub.ErrCodeResourceInUseException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // To update Security Hub settings // The following example updates Security Hub settings to turn on consolidated control // findings, and to automatically enable new controls in enabled standards. diff --git a/service/securityhub/securityhubiface/interface.go b/service/securityhub/securityhubiface/interface.go index 13f1c454b80..31eb5858430 100644 --- a/service/securityhub/securityhubiface/interface.go +++ b/service/securityhub/securityhubiface/interface.go @@ -276,6 +276,10 @@ type SecurityHubAPI interface { GetMembersWithContext(aws.Context, *securityhub.GetMembersInput, ...request.Option) (*securityhub.GetMembersOutput, error) GetMembersRequest(*securityhub.GetMembersInput) (*request.Request, *securityhub.GetMembersOutput) + GetSecurityControlDefinition(*securityhub.GetSecurityControlDefinitionInput) (*securityhub.GetSecurityControlDefinitionOutput, error) + GetSecurityControlDefinitionWithContext(aws.Context, *securityhub.GetSecurityControlDefinitionInput, ...request.Option) (*securityhub.GetSecurityControlDefinitionOutput, error) + GetSecurityControlDefinitionRequest(*securityhub.GetSecurityControlDefinitionInput) (*request.Request, *securityhub.GetSecurityControlDefinitionOutput) + InviteMembers(*securityhub.InviteMembersInput) (*securityhub.InviteMembersOutput, error) InviteMembersWithContext(aws.Context, *securityhub.InviteMembersInput, ...request.Option) (*securityhub.InviteMembersOutput, error) InviteMembersRequest(*securityhub.InviteMembersInput) (*request.Request, *securityhub.InviteMembersOutput) @@ -365,6 +369,10 @@ type SecurityHubAPI interface { UpdateOrganizationConfigurationWithContext(aws.Context, *securityhub.UpdateOrganizationConfigurationInput, ...request.Option) (*securityhub.UpdateOrganizationConfigurationOutput, error) UpdateOrganizationConfigurationRequest(*securityhub.UpdateOrganizationConfigurationInput) (*request.Request, *securityhub.UpdateOrganizationConfigurationOutput) + UpdateSecurityControl(*securityhub.UpdateSecurityControlInput) (*securityhub.UpdateSecurityControlOutput, error) + UpdateSecurityControlWithContext(aws.Context, *securityhub.UpdateSecurityControlInput, ...request.Option) (*securityhub.UpdateSecurityControlOutput, error) + UpdateSecurityControlRequest(*securityhub.UpdateSecurityControlInput) (*request.Request, *securityhub.UpdateSecurityControlOutput) + UpdateSecurityHubConfiguration(*securityhub.UpdateSecurityHubConfigurationInput) (*securityhub.UpdateSecurityHubConfigurationOutput, error) UpdateSecurityHubConfigurationWithContext(aws.Context, *securityhub.UpdateSecurityHubConfigurationInput, ...request.Option) (*securityhub.UpdateSecurityHubConfigurationOutput, error) UpdateSecurityHubConfigurationRequest(*securityhub.UpdateSecurityHubConfigurationInput) (*request.Request, *securityhub.UpdateSecurityHubConfigurationOutput) diff --git a/service/sfn/api.go b/service/sfn/api.go index 812622095a8..ff17c215c18 100644 --- a/service/sfn/api.go +++ b/service/sfn/api.go @@ -2691,10 +2691,11 @@ func (c *SFN) RedriveExecutionRequest(input *RedriveExecutionInput) (req *reques // state, RedriveExecution API action reschedules and redrives only the iterations // and branches that failed or aborted. // -// To redrive a workflow that includes a Distributed Map state with failed child -// workflow executions, you must redrive the parent workflow (https://docs.aws.amazon.com/step-functions/latest/dg/use-dist-map-orchestrate-large-scale-parallel-workloads.html#dist-map-orchestrate-parallel-workloads-key-terms). -// The parent workflow redrives all the unsuccessful states, including Distributed -// Map. +// To redrive a workflow that includes a Distributed Map state whose Map Run +// failed, you must redrive the parent workflow (https://docs.aws.amazon.com/step-functions/latest/dg/use-dist-map-orchestrate-large-scale-parallel-workloads.html#dist-map-orchestrate-parallel-workloads-key-terms). +// The parent workflow redrives all the unsuccessful states, including a failed +// Map Run. If a Map Run was not started in the original execution attempt, +// the redriven parent workflow starts the Map Run. // // This API action is not supported by EXPRESS state machines. // @@ -3478,6 +3479,137 @@ func (c *SFN) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, o return out, req.Send() } +const opTestState = "TestState" + +// TestStateRequest generates a "aws/request.Request" representing the +// client's request for the TestState 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 TestState for more information on using the TestState +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the TestStateRequest method. +// req, resp := client.TestStateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/TestState +func (c *SFN) TestStateRequest(input *TestStateInput) (req *request.Request, output *TestStateOutput) { + op := &request.Operation{ + Name: opTestState, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &TestStateInput{} + } + + output = &TestStateOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("sync-", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// TestState API operation for AWS Step Functions. +// +// Accepts the definition of a single state and executes it. You can test a +// state without creating a state machine or updating an existing state machine. +// Using this API, you can test the following: +// +// - A state's input and output processing (https://docs.aws.amazon.com/step-functions/latest/dg/test-state-isolation.html#test-state-input-output-dataflow) +// data flow +// +// - An Amazon Web Services service integration (https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-services.html) +// request and response +// +// - An HTTP Task (https://docs.aws.amazon.com/step-functions/latest/dg/connect-third-party-apis.html) +// request and response +// +// You can call this API on only one state at a time. The states that you can +// test include the following: +// +// - All Task types (https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-task-state.html#task-types) +// except Activity (https://docs.aws.amazon.com/step-functions/latest/dg/concepts-activities.html) +// +// - Pass (https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-pass-state.html) +// +// - Wait (https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-wait-state.html) +// +// - Choice (https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-choice-state.html) +// +// - Succeed (https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-succeed-state.html) +// +// - Fail (https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-fail-state.html) +// +// The TestState API assumes an IAM role which must contain the required IAM +// permissions for the resources your state is accessing. For information about +// the permissions a state might need, see IAM permissions to test a state (https://docs.aws.amazon.com/step-functions/latest/dg/test-state-isolation.html#test-state-permissions). +// +// The TestState API can run for up to five minutes. If the execution of a state +// exceeds this duration, it fails with the States.Timeout error. +// +// TestState doesn't support Activity tasks (https://docs.aws.amazon.com/step-functions/latest/dg/concepts-activities.html), +// .sync or .waitForTaskToken service integration patterns (https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html), +// Parallel (https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-parallel-state.html), +// or Map (https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-map-state.html) +// states. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 Step Functions's +// API operation TestState for usage and error information. +// +// Returned Error Types: +// +// - InvalidArn +// The provided Amazon Resource Name (ARN) is not valid. +// +// - InvalidDefinition +// The provided Amazon States Language definition is not valid. +// +// - InvalidExecutionInput +// The provided JSON input data is not valid. +// +// - ValidationException +// The input does not satisfy the constraints specified by an Amazon Web Services +// service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/TestState +func (c *SFN) TestState(input *TestStateInput) (*TestStateOutput, error) { + req, out := c.TestStateRequest(input) + return out, req.Send() +} + +// TestStateWithContext is the same as TestState with the addition of +// the ability to pass a context and additional request options. +// +// See TestState for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *SFN) TestStateWithContext(ctx aws.Context, input *TestStateInput, opts ...request.Option) (*TestStateOutput, error) { + req, out := c.TestStateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUntagResource = "UntagResource" // UntagResourceRequest generates a "aws/request.Request" representing the @@ -3897,6 +4029,9 @@ func (c *SFN) UpdateStateMachineAliasRequest(input *UpdateStateMachineAliasInput // // HTTP Status Code: 409 // +// - StateMachineDeleting +// The specified state machine is being deleted. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/UpdateStateMachineAlias func (c *SFN) UpdateStateMachineAlias(input *UpdateStateMachineAliasInput) (*UpdateStateMachineAliasOutput, error) { req, out := c.UpdateStateMachineAliasRequest(input) @@ -5723,8 +5858,8 @@ type DescribeExecutionOutput struct { OutputDetails *CloudWatchEventsExecutionDataDetails `locationName:"outputDetails" type:"structure"` // The number of times you've redriven an execution. If you have not yet redriven - // an execution, the redriveCount is 0. This count is not updated for redrives - // that failed to start or are pending to be redriven. + // an execution, the redriveCount is 0. This count is only updated if you successfully + // redrive an execution. RedriveCount *int64 `locationName:"redriveCount" type:"integer"` // The date the execution was last redriven. If you have not yet redriven an @@ -6032,8 +6167,8 @@ type DescribeMapRunOutput struct { MaxConcurrency *int64 `locationName:"maxConcurrency" type:"integer" required:"true"` // The number of times you've redriven a Map Run. If you have not yet redriven - // a Map Run, the redriveCount is 0. This count is not updated for redrives - // that failed to start or are pending to be redriven. + // a Map Run, the redriveCount is 0. This count is only updated if you successfully + // redrive a Map Run. RedriveCount *int64 `locationName:"redriveCount" type:"integer"` // The date a Map Run was last redriven. If you have not yet redriven a Map @@ -7043,8 +7178,8 @@ type ExecutionListItem struct { Name *string `locationName:"name" min:"1" type:"string" required:"true"` // The number of times you've redriven an execution. If you have not yet redriven - // an execution, the redriveCount is 0. This count is not updated for redrives - // that failed to start or are pending to be redriven. + // an execution, the redriveCount is 0. This count is only updated when you + // successfully redrive an execution. RedriveCount *int64 `locationName:"redriveCount" type:"integer"` // The date the execution was last redriven. @@ -8129,6 +8264,270 @@ func (s *HistoryEventExecutionDataDetails) SetTruncated(v bool) *HistoryEventExe return s } +// Contains additional details about the state's execution, including its input +// and output data processing flow, and HTTP request and response information. +type InspectionData struct { + _ struct{} `type:"structure" sensitive:"true"` + + // The input after Step Functions applies the InputPath (https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-inputpath) + // filter. + // + // AfterInputPath is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InspectionData's + // String and GoString methods. + AfterInputPath *string `locationName:"afterInputPath" type:"string" sensitive:"true"` + + // The effective input after Step Functions applies the Parameters (https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-parameters) + // filter. + // + // AfterParameters is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InspectionData's + // String and GoString methods. + AfterParameters *string `locationName:"afterParameters" type:"string" sensitive:"true"` + + // The effective result combined with the raw state input after Step Functions + // applies the ResultPath (https://docs.aws.amazon.com/step-functions/latest/dg/input-output-resultpath.html) + // filter. + // + // AfterResultPath is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InspectionData's + // String and GoString methods. + AfterResultPath *string `locationName:"afterResultPath" type:"string" sensitive:"true"` + + // The effective result after Step Functions applies the ResultSelector (https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-resultselector) + // filter. + // + // AfterResultSelector is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InspectionData's + // String and GoString methods. + AfterResultSelector *string `locationName:"afterResultSelector" type:"string" sensitive:"true"` + + // The raw state input. + // + // Input is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InspectionData's + // String and GoString methods. + Input *string `locationName:"input" type:"string" sensitive:"true"` + + // The raw HTTP request that is sent when you test an HTTP Task. + Request *InspectionDataRequest `locationName:"request" type:"structure"` + + // The raw HTTP response that is returned when you test an HTTP Task. + Response *InspectionDataResponse `locationName:"response" type:"structure"` + + // The state's raw result. + // + // Result is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InspectionData's + // String and GoString methods. + Result *string `locationName:"result" type:"string" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InspectionData) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InspectionData) GoString() string { + return s.String() +} + +// SetAfterInputPath sets the AfterInputPath field's value. +func (s *InspectionData) SetAfterInputPath(v string) *InspectionData { + s.AfterInputPath = &v + return s +} + +// SetAfterParameters sets the AfterParameters field's value. +func (s *InspectionData) SetAfterParameters(v string) *InspectionData { + s.AfterParameters = &v + return s +} + +// SetAfterResultPath sets the AfterResultPath field's value. +func (s *InspectionData) SetAfterResultPath(v string) *InspectionData { + s.AfterResultPath = &v + return s +} + +// SetAfterResultSelector sets the AfterResultSelector field's value. +func (s *InspectionData) SetAfterResultSelector(v string) *InspectionData { + s.AfterResultSelector = &v + return s +} + +// SetInput sets the Input field's value. +func (s *InspectionData) SetInput(v string) *InspectionData { + s.Input = &v + return s +} + +// SetRequest sets the Request field's value. +func (s *InspectionData) SetRequest(v *InspectionDataRequest) *InspectionData { + s.Request = v + return s +} + +// SetResponse sets the Response field's value. +func (s *InspectionData) SetResponse(v *InspectionDataResponse) *InspectionData { + s.Response = v + return s +} + +// SetResult sets the Result field's value. +func (s *InspectionData) SetResult(v string) *InspectionData { + s.Result = &v + return s +} + +// Contains additional details about the state's execution, including its input +// and output data processing flow, and HTTP request information. +type InspectionDataRequest struct { + _ struct{} `type:"structure"` + + // The request body for the HTTP request. + Body *string `locationName:"body" type:"string"` + + // The request headers associated with the HTTP request. + Headers *string `locationName:"headers" type:"string"` + + // The HTTP method used for the HTTP request. + Method *string `locationName:"method" type:"string"` + + // The protocol used to make the HTTP request. + Protocol *string `locationName:"protocol" type:"string"` + + // The API endpoint used for the HTTP request. + Url *string `locationName:"url" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InspectionDataRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InspectionDataRequest) GoString() string { + return s.String() +} + +// SetBody sets the Body field's value. +func (s *InspectionDataRequest) SetBody(v string) *InspectionDataRequest { + s.Body = &v + return s +} + +// SetHeaders sets the Headers field's value. +func (s *InspectionDataRequest) SetHeaders(v string) *InspectionDataRequest { + s.Headers = &v + return s +} + +// SetMethod sets the Method field's value. +func (s *InspectionDataRequest) SetMethod(v string) *InspectionDataRequest { + s.Method = &v + return s +} + +// SetProtocol sets the Protocol field's value. +func (s *InspectionDataRequest) SetProtocol(v string) *InspectionDataRequest { + s.Protocol = &v + return s +} + +// SetUrl sets the Url field's value. +func (s *InspectionDataRequest) SetUrl(v string) *InspectionDataRequest { + s.Url = &v + return s +} + +// Contains additional details about the state's execution, including its input +// and output data processing flow, and HTTP response information. The inspectionLevel +// request parameter specifies which details are returned. +type InspectionDataResponse struct { + _ struct{} `type:"structure"` + + // The HTTP response returned. + Body *string `locationName:"body" type:"string"` + + // The response headers associated with the HTTP response. + Headers *string `locationName:"headers" type:"string"` + + // The protocol used to return the HTTP response. + Protocol *string `locationName:"protocol" type:"string"` + + // The HTTP response status code for the HTTP response. + StatusCode *string `locationName:"statusCode" type:"string"` + + // The message associated with the HTTP status code. + StatusMessage *string `locationName:"statusMessage" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InspectionDataResponse) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InspectionDataResponse) GoString() string { + return s.String() +} + +// SetBody sets the Body field's value. +func (s *InspectionDataResponse) SetBody(v string) *InspectionDataResponse { + s.Body = &v + return s +} + +// SetHeaders sets the Headers field's value. +func (s *InspectionDataResponse) SetHeaders(v string) *InspectionDataResponse { + s.Headers = &v + return s +} + +// SetProtocol sets the Protocol field's value. +func (s *InspectionDataResponse) SetProtocol(v string) *InspectionDataResponse { + s.Protocol = &v + return s +} + +// SetStatusCode sets the StatusCode field's value. +func (s *InspectionDataResponse) SetStatusCode(v string) *InspectionDataResponse { + s.StatusCode = &v + return s +} + +// SetStatusMessage sets the StatusMessage field's value. +func (s *InspectionDataResponse) SetStatusMessage(v string) *InspectionDataResponse { + s.StatusMessage = &v + return s +} + // The provided Amazon Resource Name (ARN) is not valid. type InvalidArn struct { _ struct{} `type:"structure"` @@ -9991,8 +10390,8 @@ type MapRunExecutionCounts struct { // The number of FAILED, ABORTED, or TIMED_OUT child workflow executions that // cannot be redriven because their execution status is terminal. For example, - // if your execution event history contains 25,000 entries, or the toleratedFailureCount - // or toleratedFailurePercentage for the Distributed Map has exceeded. + // child workflows with an execution status of FAILED, ABORTED, or TIMED_OUT + // and a redriveStatus of NOT_REDRIVABLE. FailuresNotRedrivable *int64 `locationName:"failuresNotRedrivable" type:"long"` // The total number of child workflow executions that were started by a Map @@ -10186,9 +10585,8 @@ type MapRunItemCounts struct { // The number of FAILED, ABORTED, or TIMED_OUT items in child workflow executions // that cannot be redriven because the execution status of those child workflows - // is terminal. For example, if your execution event history contains 25,000 - // entries, or the toleratedFailureCount or toleratedFailurePercentage for the - // Distributed Map has exceeded. + // is terminal. For example, child workflows with an execution status of FAILED, + // ABORTED, or TIMED_OUT and a redriveStatus of NOT_REDRIVABLE. FailuresNotRedrivable *int64 `locationName:"failuresNotRedrivable" type:"long"` // The total number of items to process in child workflow executions that haven't @@ -10691,7 +11089,9 @@ type RedriveExecutionInput struct { // A unique, case-sensitive identifier that you provide to ensure the idempotency // of the request. If you don’t specify a client token, the Amazon Web Services // SDK automatically generates a client token and uses it for the request to - // ensure idempotency. The API uses one of the last 10 client tokens provided. + // ensure idempotency. The API will return idempotent responses for the last + // 10 client tokens used to successfully redrive the execution. These client + // tokens are valid for up to 15 minutes after they are first used. ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` // The Amazon Resource Name (ARN) of the execution to be redriven. @@ -13318,6 +13718,233 @@ func (s *TaskTimedOutEventDetails) SetResourceType(v string) *TaskTimedOutEventD return s } +type TestStateInput struct { + _ struct{} `type:"structure"` + + // The Amazon States Language (https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html) + // (ASL) definition of the state. + // + // Definition is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by TestStateInput's + // String and GoString methods. + // + // Definition is a required field + Definition *string `locationName:"definition" min:"1" type:"string" required:"true" sensitive:"true"` + + // A string that contains the JSON input data for the state. + // + // Input is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by TestStateInput's + // String and GoString methods. + Input *string `locationName:"input" type:"string" sensitive:"true"` + + // Determines the values to return when a state is tested. You can specify one + // of the following types: + // + // * INFO: Shows the final state output. By default, Step Functions sets + // inspectionLevel to INFO if you don't specify a level. + // + // * DEBUG: Shows the final state output along with the input and output + // data processing result. + // + // * TRACE: Shows the HTTP request and response for an HTTP Task. This level + // also shows the final state output along with the input and output data + // processing result. + // + // Each of these levels also provide information about the status of the state + // execution and the next state to transition to. + InspectionLevel *string `locationName:"inspectionLevel" type:"string" enum:"InspectionLevel"` + + // Specifies whether or not to include secret information in the test result. + // For HTTP Tasks, a secret includes the data that an EventBridge connection + // adds to modify the HTTP request headers, query parameters, and body. Step + // Functions doesn't omit any information included in the state definition or + // the HTTP response. + // + // If you set revealSecrets to true, you must make sure that the IAM user that + // calls the TestState API has permission for the states:RevealSecrets action. + // For an example of IAM policy that sets the states:RevealSecrets permission, + // see IAM permissions to test a state (https://docs.aws.amazon.com/step-functions/latest/dg/test-state-isolation.html#test-state-permissions). + // Without this permission, Step Functions throws an access denied error. + // + // By default, revealSecrets is set to false. + RevealSecrets *bool `locationName:"revealSecrets" type:"boolean"` + + // The Amazon Resource Name (ARN) of the execution role with the required IAM + // permissions for the state. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TestStateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TestStateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TestStateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TestStateInput"} + if s.Definition == nil { + invalidParams.Add(request.NewErrParamRequired("Definition")) + } + if s.Definition != nil && len(*s.Definition) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Definition", 1)) + } + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDefinition sets the Definition field's value. +func (s *TestStateInput) SetDefinition(v string) *TestStateInput { + s.Definition = &v + return s +} + +// SetInput sets the Input field's value. +func (s *TestStateInput) SetInput(v string) *TestStateInput { + s.Input = &v + return s +} + +// SetInspectionLevel sets the InspectionLevel field's value. +func (s *TestStateInput) SetInspectionLevel(v string) *TestStateInput { + s.InspectionLevel = &v + return s +} + +// SetRevealSecrets sets the RevealSecrets field's value. +func (s *TestStateInput) SetRevealSecrets(v bool) *TestStateInput { + s.RevealSecrets = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *TestStateInput) SetRoleArn(v string) *TestStateInput { + s.RoleArn = &v + return s +} + +type TestStateOutput struct { + _ struct{} `type:"structure"` + + // A detailed explanation of the cause for the error when the execution of a + // state fails. + // + // Cause is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by TestStateOutput's + // String and GoString methods. + Cause *string `locationName:"cause" type:"string" sensitive:"true"` + + // The error returned when the execution of a state fails. + // + // Error is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by TestStateOutput's + // String and GoString methods. + Error *string `locationName:"error" type:"string" sensitive:"true"` + + // Returns additional details about the state's execution, including its input + // and output data processing flow, and HTTP request and response information. + // The inspectionLevel request parameter specifies which details are returned. + // + // InspectionData is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by TestStateOutput's + // String and GoString methods. + InspectionData *InspectionData `locationName:"inspectionData" type:"structure" sensitive:"true"` + + // The name of the next state to transition to. If you haven't defined a next + // state in your definition or if the execution of the state fails, this field + // doesn't contain a value. + NextState *string `locationName:"nextState" min:"1" type:"string"` + + // The JSON output data of the state. Length constraints apply to the payload + // size, and are expressed as bytes in UTF-8 encoding. + // + // Output is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by TestStateOutput's + // String and GoString methods. + Output *string `locationName:"output" type:"string" sensitive:"true"` + + // The execution status of the state. + Status *string `locationName:"status" type:"string" enum:"TestExecutionStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TestStateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TestStateOutput) GoString() string { + return s.String() +} + +// SetCause sets the Cause field's value. +func (s *TestStateOutput) SetCause(v string) *TestStateOutput { + s.Cause = &v + return s +} + +// SetError sets the Error field's value. +func (s *TestStateOutput) SetError(v string) *TestStateOutput { + s.Error = &v + return s +} + +// SetInspectionData sets the InspectionData field's value. +func (s *TestStateOutput) SetInspectionData(v *InspectionData) *TestStateOutput { + s.InspectionData = v + return s +} + +// SetNextState sets the NextState field's value. +func (s *TestStateOutput) SetNextState(v string) *TestStateOutput { + s.NextState = &v + return s +} + +// SetOutput sets the Output field's value. +func (s *TestStateOutput) SetOutput(v string) *TestStateOutput { + s.Output = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *TestStateOutput) SetStatus(v string) *TestStateOutput { + s.Status = &v + return s +} + // 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 Step Functions Developer Guide. @@ -14293,6 +14920,26 @@ func HistoryEventType_Values() []string { } } +const ( + // InspectionLevelInfo is a InspectionLevel enum value + InspectionLevelInfo = "INFO" + + // InspectionLevelDebug is a InspectionLevel enum value + InspectionLevelDebug = "DEBUG" + + // InspectionLevelTrace is a InspectionLevel enum value + InspectionLevelTrace = "TRACE" +) + +// InspectionLevel_Values returns all elements of the InspectionLevel enum +func InspectionLevel_Values() []string { + return []string{ + InspectionLevelInfo, + InspectionLevelDebug, + InspectionLevelTrace, + } +} + const ( // LogLevelAll is a LogLevel enum value LogLevelAll = "ALL" @@ -14393,6 +15040,30 @@ func SyncExecutionStatus_Values() []string { } } +const ( + // TestExecutionStatusSucceeded is a TestExecutionStatus enum value + TestExecutionStatusSucceeded = "SUCCEEDED" + + // TestExecutionStatusFailed is a TestExecutionStatus enum value + TestExecutionStatusFailed = "FAILED" + + // TestExecutionStatusRetriable is a TestExecutionStatus enum value + TestExecutionStatusRetriable = "RETRIABLE" + + // TestExecutionStatusCaughtError is a TestExecutionStatus enum value + TestExecutionStatusCaughtError = "CAUGHT_ERROR" +) + +// TestExecutionStatus_Values returns all elements of the TestExecutionStatus enum +func TestExecutionStatus_Values() []string { + return []string{ + TestExecutionStatusSucceeded, + TestExecutionStatusFailed, + TestExecutionStatusRetriable, + TestExecutionStatusCaughtError, + } +} + const ( // ValidationExceptionReasonApiDoesNotSupportLabeledArns is a ValidationExceptionReason enum value ValidationExceptionReasonApiDoesNotSupportLabeledArns = "API_DOES_NOT_SUPPORT_LABELED_ARNS" diff --git a/service/sfn/sfniface/interface.go b/service/sfn/sfniface/interface.go index 435bb886aa8..7679554bd54 100644 --- a/service/sfn/sfniface/interface.go +++ b/service/sfn/sfniface/interface.go @@ -199,6 +199,10 @@ type SFNAPI interface { TagResourceWithContext(aws.Context, *sfn.TagResourceInput, ...request.Option) (*sfn.TagResourceOutput, error) TagResourceRequest(*sfn.TagResourceInput) (*request.Request, *sfn.TagResourceOutput) + TestState(*sfn.TestStateInput) (*sfn.TestStateOutput, error) + TestStateWithContext(aws.Context, *sfn.TestStateInput, ...request.Option) (*sfn.TestStateOutput, error) + TestStateRequest(*sfn.TestStateInput) (*request.Request, *sfn.TestStateOutput) + UntagResource(*sfn.UntagResourceInput) (*sfn.UntagResourceOutput, error) UntagResourceWithContext(aws.Context, *sfn.UntagResourceInput, ...request.Option) (*sfn.UntagResourceOutput, error) UntagResourceRequest(*sfn.UntagResourceInput) (*request.Request, *sfn.UntagResourceOutput) diff --git a/service/transcribeservice/api.go b/service/transcribeservice/api.go index 7a5717f149b..937f0cc4d9f 100644 --- a/service/transcribeservice/api.go +++ b/service/transcribeservice/api.go @@ -4852,6 +4852,10 @@ type CallAnalyticsJobSettings struct { // be encoded at a sample rate of 16,000 Hz or higher. LanguageOptions []*string `min:"1" type:"list" enum:"LanguageCode"` + // Contains GenerateAbstractiveSummary, which is a required parameter if you + // want to enable Generative call summarization in your Call Analytics request. + Summarization *Summarization `type:"structure"` + // Specify how you want your custom vocabulary filter applied to your transcript. // // To replace words with ***, choose mask. @@ -4925,6 +4929,11 @@ func (s *CallAnalyticsJobSettings) Validate() error { } } } + if s.Summarization != nil { + if err := s.Summarization.Validate(); err != nil { + invalidParams.AddNested("Summarization", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -4956,6 +4965,12 @@ func (s *CallAnalyticsJobSettings) SetLanguageOptions(v []*string) *CallAnalytic return s } +// SetSummarization sets the Summarization field's value. +func (s *CallAnalyticsJobSettings) SetSummarization(v *Summarization) *CallAnalyticsJobSettings { + s.Summarization = v + return s +} + // SetVocabularyFilterMethod sets the VocabularyFilterMethod field's value. func (s *CallAnalyticsJobSettings) SetVocabularyFilterMethod(v string) *CallAnalyticsJobSettings { s.VocabularyFilterMethod = &v @@ -12118,6 +12133,59 @@ func (s *SubtitlesOutput_) SetSubtitleFileUris(v []*string) *SubtitlesOutput_ { return s } +// Contains GenerateAbstractiveSummary, which is a required parameter if you +// want to enable Generative call summarization in your Call Analytics request. +type Summarization struct { + _ struct{} `type:"structure"` + + // Enables Generative call summarization in your Call Analytics request + // + // Generative call summarization provides a summary of the transcript including + // important components discussed in the conversation. + // + // For more information, see Enabling generative call summarization (https://docs.aws.amazon.com/transcribe/latest/dg/tca-enable-summarization.html). + // + // GenerateAbstractiveSummary is a required field + GenerateAbstractiveSummary *bool `type:"boolean" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Summarization) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Summarization) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Summarization) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Summarization"} + if s.GenerateAbstractiveSummary == nil { + invalidParams.Add(request.NewErrParamRequired("GenerateAbstractiveSummary")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGenerateAbstractiveSummary sets the GenerateAbstractiveSummary field's value. +func (s *Summarization) SetGenerateAbstractiveSummary(v bool) *Summarization { + s.GenerateAbstractiveSummary = &v + return s +} + // Adds metadata, in the form of a key:value pair, to the specified resource. // // For example, you could add the tag Department:Sales to a resource to indicate @@ -14137,6 +14205,198 @@ const ( // LanguageCodeSvSe is a LanguageCode enum value LanguageCodeSvSe = "sv-SE" + + // LanguageCodeAbGe is a LanguageCode enum value + LanguageCodeAbGe = "ab-GE" + + // LanguageCodeAstEs is a LanguageCode enum value + LanguageCodeAstEs = "ast-ES" + + // LanguageCodeAzAz is a LanguageCode enum value + LanguageCodeAzAz = "az-AZ" + + // LanguageCodeBaRu is a LanguageCode enum value + LanguageCodeBaRu = "ba-RU" + + // LanguageCodeBeBy is a LanguageCode enum value + LanguageCodeBeBy = "be-BY" + + // LanguageCodeBgBg is a LanguageCode enum value + LanguageCodeBgBg = "bg-BG" + + // LanguageCodeBnIn is a LanguageCode enum value + LanguageCodeBnIn = "bn-IN" + + // LanguageCodeBsBa is a LanguageCode enum value + LanguageCodeBsBa = "bs-BA" + + // LanguageCodeCaEs is a LanguageCode enum value + LanguageCodeCaEs = "ca-ES" + + // LanguageCodeCkbIq is a LanguageCode enum value + LanguageCodeCkbIq = "ckb-IQ" + + // LanguageCodeCkbIr is a LanguageCode enum value + LanguageCodeCkbIr = "ckb-IR" + + // LanguageCodeCsCz is a LanguageCode enum value + LanguageCodeCsCz = "cs-CZ" + + // LanguageCodeCyWl is a LanguageCode enum value + LanguageCodeCyWl = "cy-WL" + + // LanguageCodeElGr is a LanguageCode enum value + LanguageCodeElGr = "el-GR" + + // LanguageCodeEtEt is a LanguageCode enum value + LanguageCodeEtEt = "et-ET" + + // LanguageCodeEuEs is a LanguageCode enum value + LanguageCodeEuEs = "eu-ES" + + // LanguageCodeFiFi is a LanguageCode enum value + LanguageCodeFiFi = "fi-FI" + + // LanguageCodeGlEs is a LanguageCode enum value + LanguageCodeGlEs = "gl-ES" + + // LanguageCodeGuIn is a LanguageCode enum value + LanguageCodeGuIn = "gu-IN" + + // LanguageCodeHaNg is a LanguageCode enum value + LanguageCodeHaNg = "ha-NG" + + // LanguageCodeHrHr is a LanguageCode enum value + LanguageCodeHrHr = "hr-HR" + + // LanguageCodeHuHu is a LanguageCode enum value + LanguageCodeHuHu = "hu-HU" + + // LanguageCodeHyAm is a LanguageCode enum value + LanguageCodeHyAm = "hy-AM" + + // LanguageCodeIsIs is a LanguageCode enum value + LanguageCodeIsIs = "is-IS" + + // LanguageCodeKaGe is a LanguageCode enum value + LanguageCodeKaGe = "ka-GE" + + // LanguageCodeKabDz is a LanguageCode enum value + LanguageCodeKabDz = "kab-DZ" + + // LanguageCodeKkKz is a LanguageCode enum value + LanguageCodeKkKz = "kk-KZ" + + // LanguageCodeKnIn is a LanguageCode enum value + LanguageCodeKnIn = "kn-IN" + + // LanguageCodeKyKg is a LanguageCode enum value + LanguageCodeKyKg = "ky-KG" + + // LanguageCodeLgIn is a LanguageCode enum value + LanguageCodeLgIn = "lg-IN" + + // LanguageCodeLtLt is a LanguageCode enum value + LanguageCodeLtLt = "lt-LT" + + // LanguageCodeLvLv is a LanguageCode enum value + LanguageCodeLvLv = "lv-LV" + + // LanguageCodeMhrRu is a LanguageCode enum value + LanguageCodeMhrRu = "mhr-RU" + + // LanguageCodeMiNz is a LanguageCode enum value + LanguageCodeMiNz = "mi-NZ" + + // LanguageCodeMkMk is a LanguageCode enum value + LanguageCodeMkMk = "mk-MK" + + // LanguageCodeMlIn is a LanguageCode enum value + LanguageCodeMlIn = "ml-IN" + + // LanguageCodeMnMn is a LanguageCode enum value + LanguageCodeMnMn = "mn-MN" + + // LanguageCodeMrIn is a LanguageCode enum value + LanguageCodeMrIn = "mr-IN" + + // LanguageCodeMtMt is a LanguageCode enum value + LanguageCodeMtMt = "mt-MT" + + // LanguageCodeNoNo is a LanguageCode enum value + LanguageCodeNoNo = "no-NO" + + // LanguageCodeOrIn is a LanguageCode enum value + LanguageCodeOrIn = "or-IN" + + // LanguageCodePaIn is a LanguageCode enum value + LanguageCodePaIn = "pa-IN" + + // LanguageCodePlPl is a LanguageCode enum value + LanguageCodePlPl = "pl-PL" + + // LanguageCodePsAf is a LanguageCode enum value + LanguageCodePsAf = "ps-AF" + + // LanguageCodeRoRo is a LanguageCode enum value + LanguageCodeRoRo = "ro-RO" + + // LanguageCodeRwRw is a LanguageCode enum value + LanguageCodeRwRw = "rw-RW" + + // LanguageCodeSiLk is a LanguageCode enum value + LanguageCodeSiLk = "si-LK" + + // LanguageCodeSkSk is a LanguageCode enum value + LanguageCodeSkSk = "sk-SK" + + // LanguageCodeSlSi is a LanguageCode enum value + LanguageCodeSlSi = "sl-SI" + + // LanguageCodeSoSo is a LanguageCode enum value + LanguageCodeSoSo = "so-SO" + + // LanguageCodeSrRs is a LanguageCode enum value + LanguageCodeSrRs = "sr-RS" + + // LanguageCodeSuId is a LanguageCode enum value + LanguageCodeSuId = "su-ID" + + // LanguageCodeSwBi is a LanguageCode enum value + LanguageCodeSwBi = "sw-BI" + + // LanguageCodeSwKe is a LanguageCode enum value + LanguageCodeSwKe = "sw-KE" + + // LanguageCodeSwRw is a LanguageCode enum value + LanguageCodeSwRw = "sw-RW" + + // LanguageCodeSwTz is a LanguageCode enum value + LanguageCodeSwTz = "sw-TZ" + + // LanguageCodeSwUg is a LanguageCode enum value + LanguageCodeSwUg = "sw-UG" + + // LanguageCodeTlPh is a LanguageCode enum value + LanguageCodeTlPh = "tl-PH" + + // LanguageCodeTtRu is a LanguageCode enum value + LanguageCodeTtRu = "tt-RU" + + // LanguageCodeUgCn is a LanguageCode enum value + LanguageCodeUgCn = "ug-CN" + + // LanguageCodeUkUa is a LanguageCode enum value + LanguageCodeUkUa = "uk-UA" + + // LanguageCodeUzUz is a LanguageCode enum value + LanguageCodeUzUz = "uz-UZ" + + // LanguageCodeWoSn is a LanguageCode enum value + LanguageCodeWoSn = "wo-SN" + + // LanguageCodeZuZa is a LanguageCode enum value + LanguageCodeZuZa = "zu-ZA" ) // LanguageCode_Values returns all elements of the LanguageCode enum @@ -14181,6 +14441,70 @@ func LanguageCode_Values() []string { LanguageCodeEnNz, LanguageCodeViVn, LanguageCodeSvSe, + LanguageCodeAbGe, + LanguageCodeAstEs, + LanguageCodeAzAz, + LanguageCodeBaRu, + LanguageCodeBeBy, + LanguageCodeBgBg, + LanguageCodeBnIn, + LanguageCodeBsBa, + LanguageCodeCaEs, + LanguageCodeCkbIq, + LanguageCodeCkbIr, + LanguageCodeCsCz, + LanguageCodeCyWl, + LanguageCodeElGr, + LanguageCodeEtEt, + LanguageCodeEuEs, + LanguageCodeFiFi, + LanguageCodeGlEs, + LanguageCodeGuIn, + LanguageCodeHaNg, + LanguageCodeHrHr, + LanguageCodeHuHu, + LanguageCodeHyAm, + LanguageCodeIsIs, + LanguageCodeKaGe, + LanguageCodeKabDz, + LanguageCodeKkKz, + LanguageCodeKnIn, + LanguageCodeKyKg, + LanguageCodeLgIn, + LanguageCodeLtLt, + LanguageCodeLvLv, + LanguageCodeMhrRu, + LanguageCodeMiNz, + LanguageCodeMkMk, + LanguageCodeMlIn, + LanguageCodeMnMn, + LanguageCodeMrIn, + LanguageCodeMtMt, + LanguageCodeNoNo, + LanguageCodeOrIn, + LanguageCodePaIn, + LanguageCodePlPl, + LanguageCodePsAf, + LanguageCodeRoRo, + LanguageCodeRwRw, + LanguageCodeSiLk, + LanguageCodeSkSk, + LanguageCodeSlSi, + LanguageCodeSoSo, + LanguageCodeSrRs, + LanguageCodeSuId, + LanguageCodeSwBi, + LanguageCodeSwKe, + LanguageCodeSwRw, + LanguageCodeSwTz, + LanguageCodeSwUg, + LanguageCodeTlPh, + LanguageCodeTtRu, + LanguageCodeUgCn, + LanguageCodeUkUa, + LanguageCodeUzUz, + LanguageCodeWoSn, + LanguageCodeZuZa, } } diff --git a/service/workspaces/api.go b/service/workspaces/api.go index 3082345f30a..cee81743982 100644 --- a/service/workspaces/api.go +++ b/service/workspaces/api.go @@ -9579,6 +9579,49 @@ func (s *CreateWorkspacesOutput) SetPendingRequests(v []*Workspace) *CreateWorks return s } +// Describes the data replication settings. +type DataReplicationSettings struct { + _ struct{} `type:"structure"` + + // Indicates whether data replication is enabled, and if enabled, the type of + // data replication. + DataReplication *string `type:"string" enum:"DataReplication"` + + // The date and time at which the last successful snapshot was taken of the + // primary WorkSpace used for replicating data. + RecoverySnapshotTime *time.Time `type:"timestamp"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DataReplicationSettings) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DataReplicationSettings) GoString() string { + return s.String() +} + +// SetDataReplication sets the DataReplication field's value. +func (s *DataReplicationSettings) SetDataReplication(v string) *DataReplicationSettings { + s.DataReplication = &v + return s +} + +// SetRecoverySnapshotTime sets the RecoverySnapshotTime field's value. +func (s *DataReplicationSettings) SetRecoverySnapshotTime(v time.Time) *DataReplicationSettings { + s.RecoverySnapshotTime = &v + return s +} + // Returns default client branding attributes that were imported. These attributes // display on the client login screen. // @@ -15204,15 +15247,16 @@ func (s ModifyWorkspaceCreationPropertiesOutput) GoString() string { type ModifyWorkspacePropertiesInput struct { _ struct{} `type:"structure"` + // Indicates the data replication status. + DataReplication *string `type:"string" enum:"DataReplication"` + // The identifier of the WorkSpace. // // WorkspaceId is a required field WorkspaceId *string `type:"string" required:"true"` // The properties of the WorkSpace. - // - // WorkspaceProperties is a required field - WorkspaceProperties *WorkspaceProperties `type:"structure" required:"true"` + WorkspaceProperties *WorkspaceProperties `type:"structure"` } // String returns the string representation. @@ -15239,9 +15283,6 @@ func (s *ModifyWorkspacePropertiesInput) Validate() error { if s.WorkspaceId == nil { invalidParams.Add(request.NewErrParamRequired("WorkspaceId")) } - if s.WorkspaceProperties == nil { - invalidParams.Add(request.NewErrParamRequired("WorkspaceProperties")) - } if invalidParams.Len() > 0 { return invalidParams @@ -15249,6 +15290,12 @@ func (s *ModifyWorkspacePropertiesInput) Validate() error { return nil } +// SetDataReplication sets the DataReplication field's value. +func (s *ModifyWorkspacePropertiesInput) SetDataReplication(v string) *ModifyWorkspacePropertiesInput { + s.DataReplication = &v + return s +} + // SetWorkspaceId sets the WorkspaceId field's value. func (s *ModifyWorkspacePropertiesInput) SetWorkspaceId(v string) *ModifyWorkspacePropertiesInput { s.WorkspaceId = &v @@ -16993,6 +17040,10 @@ func (s *Snapshot) SetSnapshotTime(v time.Time) *Snapshot { type StandbyWorkspace struct { _ struct{} `type:"structure"` + // Indicates whether data replication is enabled, and if enabled, the type of + // data replication. + DataReplication *string `type:"string" enum:"DataReplication"` + // The identifier of the directory for the standby WorkSpace. // // DirectoryId is a required field @@ -17057,6 +17108,12 @@ func (s *StandbyWorkspace) Validate() error { return nil } +// SetDataReplication sets the DataReplication field's value. +func (s *StandbyWorkspace) SetDataReplication(v string) *StandbyWorkspace { + s.DataReplication = &v + return s +} + // SetDirectoryId sets the DirectoryId field's value. func (s *StandbyWorkspace) SetDirectoryId(v string) *StandbyWorkspace { s.DirectoryId = &v @@ -17081,6 +17138,58 @@ func (s *StandbyWorkspace) SetVolumeEncryptionKey(v string) *StandbyWorkspace { return s } +// Describes the properties of the related standby WorkSpaces. +type StandbyWorkspacesProperties struct { + _ struct{} `type:"structure"` + + // Indicates whether data replication is enabled, and if enabled, the type of + // data replication. + DataReplication *string `type:"string" enum:"DataReplication"` + + // The date and time at which the last successful snapshot was taken of the + // primary WorkSpace used for replicating data. + RecoverySnapshotTime *time.Time `type:"timestamp"` + + // The identifier of the standby WorkSpace + StandbyWorkspaceId *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StandbyWorkspacesProperties) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s StandbyWorkspacesProperties) GoString() string { + return s.String() +} + +// SetDataReplication sets the DataReplication field's value. +func (s *StandbyWorkspacesProperties) SetDataReplication(v string) *StandbyWorkspacesProperties { + s.DataReplication = &v + return s +} + +// SetRecoverySnapshotTime sets the RecoverySnapshotTime field's value. +func (s *StandbyWorkspacesProperties) SetRecoverySnapshotTime(v time.Time) *StandbyWorkspacesProperties { + s.RecoverySnapshotTime = &v + return s +} + +// SetStandbyWorkspaceId sets the StandbyWorkspaceId field's value. +func (s *StandbyWorkspacesProperties) SetStandbyWorkspaceId(v string) *StandbyWorkspacesProperties { + s.StandbyWorkspaceId = &v + return s +} + // Information used to start a WorkSpace. type StartRequest struct { _ struct{} `type:"structure"` @@ -18321,6 +18430,9 @@ type Workspace struct { // this name varies. For more information, see Launch a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/launch-workspaces-tutorials.html). ComputerName *string `type:"string"` + // Indicates the settings of the data replication. + DataReplicationSettings *DataReplicationSettings `type:"structure"` + // The identifier of the Directory Service directory for the WorkSpace. DirectoryId *string `min:"10" type:"string"` @@ -18343,6 +18455,9 @@ type Workspace struct { // Indicates whether the data stored on the root volume is encrypted. RootVolumeEncryptionEnabled *bool `type:"boolean"` + // The properties of the standby WorkSpace + StandbyWorkspacesProperties []*StandbyWorkspacesProperties `type:"list"` + // The operational state of the WorkSpace. // // After a WorkSpace is terminated, the TERMINATED state is returned only briefly @@ -18403,6 +18518,12 @@ func (s *Workspace) SetComputerName(v string) *Workspace { return s } +// SetDataReplicationSettings sets the DataReplicationSettings field's value. +func (s *Workspace) SetDataReplicationSettings(v *DataReplicationSettings) *Workspace { + s.DataReplicationSettings = v + return s +} + // SetDirectoryId sets the DirectoryId field's value. func (s *Workspace) SetDirectoryId(v string) *Workspace { s.DirectoryId = &v @@ -18445,6 +18566,12 @@ func (s *Workspace) SetRootVolumeEncryptionEnabled(v bool) *Workspace { return s } +// SetStandbyWorkspacesProperties sets the StandbyWorkspacesProperties field's value. +func (s *Workspace) SetStandbyWorkspacesProperties(v []*StandbyWorkspacesProperties) *Workspace { + s.StandbyWorkspacesProperties = v + return s +} + // SetState sets the State field's value. func (s *Workspace) SetState(v string) *Workspace { s.State = &v @@ -19932,6 +20059,22 @@ func ConnectionState_Values() []string { } } +const ( + // DataReplicationNoReplication is a DataReplication enum value + DataReplicationNoReplication = "NO_REPLICATION" + + // DataReplicationPrimaryAsSource is a DataReplication enum value + DataReplicationPrimaryAsSource = "PRIMARY_AS_SOURCE" +) + +// DataReplication_Values returns all elements of the DataReplication enum +func DataReplication_Values() []string { + return []string{ + DataReplicationNoReplication, + DataReplicationPrimaryAsSource, + } +} + const ( // DedicatedTenancyModificationStateEnumPending is a DedicatedTenancyModificationStateEnum enum value DedicatedTenancyModificationStateEnumPending = "PENDING" diff --git a/service/workspacesthinclient/api.go b/service/workspacesthinclient/api.go new file mode 100644 index 00000000000..b75709dbdf9 --- /dev/null +++ b/service/workspacesthinclient/api.go @@ -0,0 +1,5355 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package workspacesthinclient + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +const opCreateEnvironment = "CreateEnvironment" + +// CreateEnvironmentRequest generates a "aws/request.Request" representing the +// client's request for the CreateEnvironment operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateEnvironment for more information on using the CreateEnvironment +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the CreateEnvironmentRequest method. +// req, resp := client.CreateEnvironmentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/CreateEnvironment +func (c *WorkSpacesThinClient) CreateEnvironmentRequest(input *CreateEnvironmentInput) (req *request.Request, output *CreateEnvironmentOutput) { + op := &request.Operation{ + Name: opCreateEnvironment, + HTTPMethod: "POST", + HTTPPath: "/environments", + } + + if input == nil { + input = &CreateEnvironmentInput{} + } + + output = &CreateEnvironmentOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// CreateEnvironment API operation for Amazon WorkSpaces Thin Client. +// +// Creates an environment for your thin client devices. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 WorkSpaces Thin Client's +// API operation CreateEnvironment for usage and error information. +// +// Returned Error Types: +// +// - ServiceQuotaExceededException +// Your request exceeds a service quota. +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ConflictException +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/CreateEnvironment +func (c *WorkSpacesThinClient) CreateEnvironment(input *CreateEnvironmentInput) (*CreateEnvironmentOutput, error) { + req, out := c.CreateEnvironmentRequest(input) + return out, req.Send() +} + +// CreateEnvironmentWithContext is the same as CreateEnvironment with the addition of +// the ability to pass a context and additional request options. +// +// See CreateEnvironment for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) CreateEnvironmentWithContext(ctx aws.Context, input *CreateEnvironmentInput, opts ...request.Option) (*CreateEnvironmentOutput, error) { + req, out := c.CreateEnvironmentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteDevice = "DeleteDevice" + +// DeleteDeviceRequest generates a "aws/request.Request" representing the +// client's request for the DeleteDevice 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 DeleteDevice for more information on using the DeleteDevice +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteDeviceRequest method. +// req, resp := client.DeleteDeviceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/DeleteDevice +func (c *WorkSpacesThinClient) DeleteDeviceRequest(input *DeleteDeviceInput) (req *request.Request, output *DeleteDeviceOutput) { + op := &request.Operation{ + Name: opDeleteDevice, + HTTPMethod: "DELETE", + HTTPPath: "/devices/{id}", + } + + if input == nil { + input = &DeleteDeviceInput{} + } + + output = &DeleteDeviceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// DeleteDevice API operation for Amazon WorkSpaces Thin Client. +// +// Deletes a thin client device. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 WorkSpaces Thin Client's +// API operation DeleteDevice for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ConflictException +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/DeleteDevice +func (c *WorkSpacesThinClient) DeleteDevice(input *DeleteDeviceInput) (*DeleteDeviceOutput, error) { + req, out := c.DeleteDeviceRequest(input) + return out, req.Send() +} + +// DeleteDeviceWithContext is the same as DeleteDevice with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteDevice for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) DeleteDeviceWithContext(ctx aws.Context, input *DeleteDeviceInput, opts ...request.Option) (*DeleteDeviceOutput, error) { + req, out := c.DeleteDeviceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteEnvironment = "DeleteEnvironment" + +// DeleteEnvironmentRequest generates a "aws/request.Request" representing the +// client's request for the DeleteEnvironment operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteEnvironment for more information on using the DeleteEnvironment +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeleteEnvironmentRequest method. +// req, resp := client.DeleteEnvironmentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/DeleteEnvironment +func (c *WorkSpacesThinClient) DeleteEnvironmentRequest(input *DeleteEnvironmentInput) (req *request.Request, output *DeleteEnvironmentOutput) { + op := &request.Operation{ + Name: opDeleteEnvironment, + HTTPMethod: "DELETE", + HTTPPath: "/environments/{id}", + } + + if input == nil { + input = &DeleteEnvironmentInput{} + } + + output = &DeleteEnvironmentOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// DeleteEnvironment API operation for Amazon WorkSpaces Thin Client. +// +// Deletes an environment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon WorkSpaces Thin Client's +// API operation DeleteEnvironment for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ConflictException +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/DeleteEnvironment +func (c *WorkSpacesThinClient) DeleteEnvironment(input *DeleteEnvironmentInput) (*DeleteEnvironmentOutput, error) { + req, out := c.DeleteEnvironmentRequest(input) + return out, req.Send() +} + +// DeleteEnvironmentWithContext is the same as DeleteEnvironment with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteEnvironment for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) DeleteEnvironmentWithContext(ctx aws.Context, input *DeleteEnvironmentInput, opts ...request.Option) (*DeleteEnvironmentOutput, error) { + req, out := c.DeleteEnvironmentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeregisterDevice = "DeregisterDevice" + +// DeregisterDeviceRequest generates a "aws/request.Request" representing the +// client's request for the DeregisterDevice 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 DeregisterDevice for more information on using the DeregisterDevice +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DeregisterDeviceRequest method. +// req, resp := client.DeregisterDeviceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/DeregisterDevice +func (c *WorkSpacesThinClient) DeregisterDeviceRequest(input *DeregisterDeviceInput) (req *request.Request, output *DeregisterDeviceOutput) { + op := &request.Operation{ + Name: opDeregisterDevice, + HTTPMethod: "POST", + HTTPPath: "/deregister-device/{id}", + } + + if input == nil { + input = &DeregisterDeviceInput{} + } + + output = &DeregisterDeviceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// DeregisterDevice API operation for Amazon WorkSpaces Thin Client. +// +// Deregisters a thin client device. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 WorkSpaces Thin Client's +// API operation DeregisterDevice for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - ConflictException +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/DeregisterDevice +func (c *WorkSpacesThinClient) DeregisterDevice(input *DeregisterDeviceInput) (*DeregisterDeviceOutput, error) { + req, out := c.DeregisterDeviceRequest(input) + return out, req.Send() +} + +// DeregisterDeviceWithContext is the same as DeregisterDevice with the addition of +// the ability to pass a context and additional request options. +// +// See DeregisterDevice for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) DeregisterDeviceWithContext(ctx aws.Context, input *DeregisterDeviceInput, opts ...request.Option) (*DeregisterDeviceOutput, error) { + req, out := c.DeregisterDeviceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetDevice = "GetDevice" + +// GetDeviceRequest generates a "aws/request.Request" representing the +// client's request for the GetDevice 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 GetDevice for more information on using the GetDevice +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetDeviceRequest method. +// req, resp := client.GetDeviceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/GetDevice +func (c *WorkSpacesThinClient) GetDeviceRequest(input *GetDeviceInput) (req *request.Request, output *GetDeviceOutput) { + op := &request.Operation{ + Name: opGetDevice, + HTTPMethod: "GET", + HTTPPath: "/devices/{id}", + } + + if input == nil { + input = &GetDeviceInput{} + } + + output = &GetDeviceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// GetDevice API operation for Amazon WorkSpaces Thin Client. +// +// Returns information for a thin client device. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 WorkSpaces Thin Client's +// API operation GetDevice for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/GetDevice +func (c *WorkSpacesThinClient) GetDevice(input *GetDeviceInput) (*GetDeviceOutput, error) { + req, out := c.GetDeviceRequest(input) + return out, req.Send() +} + +// GetDeviceWithContext is the same as GetDevice with the addition of +// the ability to pass a context and additional request options. +// +// See GetDevice for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) GetDeviceWithContext(ctx aws.Context, input *GetDeviceInput, opts ...request.Option) (*GetDeviceOutput, error) { + req, out := c.GetDeviceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetEnvironment = "GetEnvironment" + +// GetEnvironmentRequest generates a "aws/request.Request" representing the +// client's request for the GetEnvironment operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetEnvironment for more information on using the GetEnvironment +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetEnvironmentRequest method. +// req, resp := client.GetEnvironmentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/GetEnvironment +func (c *WorkSpacesThinClient) GetEnvironmentRequest(input *GetEnvironmentInput) (req *request.Request, output *GetEnvironmentOutput) { + op := &request.Operation{ + Name: opGetEnvironment, + HTTPMethod: "GET", + HTTPPath: "/environments/{id}", + } + + if input == nil { + input = &GetEnvironmentInput{} + } + + output = &GetEnvironmentOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// GetEnvironment API operation for Amazon WorkSpaces Thin Client. +// +// Returns information for an environment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon WorkSpaces Thin Client's +// API operation GetEnvironment for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/GetEnvironment +func (c *WorkSpacesThinClient) GetEnvironment(input *GetEnvironmentInput) (*GetEnvironmentOutput, error) { + req, out := c.GetEnvironmentRequest(input) + return out, req.Send() +} + +// GetEnvironmentWithContext is the same as GetEnvironment with the addition of +// the ability to pass a context and additional request options. +// +// See GetEnvironment for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) GetEnvironmentWithContext(ctx aws.Context, input *GetEnvironmentInput, opts ...request.Option) (*GetEnvironmentOutput, error) { + req, out := c.GetEnvironmentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetSoftwareSet = "GetSoftwareSet" + +// GetSoftwareSetRequest generates a "aws/request.Request" representing the +// client's request for the GetSoftwareSet 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 GetSoftwareSet for more information on using the GetSoftwareSet +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetSoftwareSetRequest method. +// req, resp := client.GetSoftwareSetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/GetSoftwareSet +func (c *WorkSpacesThinClient) GetSoftwareSetRequest(input *GetSoftwareSetInput) (req *request.Request, output *GetSoftwareSetOutput) { + op := &request.Operation{ + Name: opGetSoftwareSet, + HTTPMethod: "GET", + HTTPPath: "/softwaresets/{id}", + } + + if input == nil { + input = &GetSoftwareSetInput{} + } + + output = &GetSoftwareSetOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// GetSoftwareSet API operation for Amazon WorkSpaces Thin Client. +// +// Returns information for a software set. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 WorkSpaces Thin Client's +// API operation GetSoftwareSet for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/GetSoftwareSet +func (c *WorkSpacesThinClient) GetSoftwareSet(input *GetSoftwareSetInput) (*GetSoftwareSetOutput, error) { + req, out := c.GetSoftwareSetRequest(input) + return out, req.Send() +} + +// GetSoftwareSetWithContext is the same as GetSoftwareSet with the addition of +// the ability to pass a context and additional request options. +// +// See GetSoftwareSet for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) GetSoftwareSetWithContext(ctx aws.Context, input *GetSoftwareSetInput, opts ...request.Option) (*GetSoftwareSetOutput, error) { + req, out := c.GetSoftwareSetRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListDevices = "ListDevices" + +// ListDevicesRequest generates a "aws/request.Request" representing the +// client's request for the ListDevices 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 ListDevices for more information on using the ListDevices +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListDevicesRequest method. +// req, resp := client.ListDevicesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/ListDevices +func (c *WorkSpacesThinClient) ListDevicesRequest(input *ListDevicesInput) (req *request.Request, output *ListDevicesOutput) { + op := &request.Operation{ + Name: opListDevices, + HTTPMethod: "GET", + HTTPPath: "/devices", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDevicesInput{} + } + + output = &ListDevicesOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// ListDevices API operation for Amazon WorkSpaces Thin Client. +// +// Returns a list of thin client devices. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 WorkSpaces Thin Client's +// API operation ListDevices for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/ListDevices +func (c *WorkSpacesThinClient) ListDevices(input *ListDevicesInput) (*ListDevicesOutput, error) { + req, out := c.ListDevicesRequest(input) + return out, req.Send() +} + +// ListDevicesWithContext is the same as ListDevices with the addition of +// the ability to pass a context and additional request options. +// +// See ListDevices for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) ListDevicesWithContext(ctx aws.Context, input *ListDevicesInput, opts ...request.Option) (*ListDevicesOutput, error) { + req, out := c.ListDevicesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListDevicesPages iterates over the pages of a ListDevices operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListDevices 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 ListDevices operation. +// pageNum := 0 +// err := client.ListDevicesPages(params, +// func(page *workspacesthinclient.ListDevicesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *WorkSpacesThinClient) ListDevicesPages(input *ListDevicesInput, fn func(*ListDevicesOutput, bool) bool) error { + return c.ListDevicesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListDevicesPagesWithContext same as ListDevicesPages 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 *WorkSpacesThinClient) ListDevicesPagesWithContext(ctx aws.Context, input *ListDevicesInput, fn func(*ListDevicesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListDevicesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListDevicesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListDevicesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListEnvironments = "ListEnvironments" + +// ListEnvironmentsRequest generates a "aws/request.Request" representing the +// client's request for the ListEnvironments operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListEnvironments for more information on using the ListEnvironments +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListEnvironmentsRequest method. +// req, resp := client.ListEnvironmentsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/ListEnvironments +func (c *WorkSpacesThinClient) ListEnvironmentsRequest(input *ListEnvironmentsInput) (req *request.Request, output *ListEnvironmentsOutput) { + op := &request.Operation{ + Name: opListEnvironments, + HTTPMethod: "GET", + HTTPPath: "/environments", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListEnvironmentsInput{} + } + + output = &ListEnvironmentsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// ListEnvironments API operation for Amazon WorkSpaces Thin Client. +// +// Returns a list of environments. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon WorkSpaces Thin Client's +// API operation ListEnvironments for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/ListEnvironments +func (c *WorkSpacesThinClient) ListEnvironments(input *ListEnvironmentsInput) (*ListEnvironmentsOutput, error) { + req, out := c.ListEnvironmentsRequest(input) + return out, req.Send() +} + +// ListEnvironmentsWithContext is the same as ListEnvironments with the addition of +// the ability to pass a context and additional request options. +// +// See ListEnvironments for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) ListEnvironmentsWithContext(ctx aws.Context, input *ListEnvironmentsInput, opts ...request.Option) (*ListEnvironmentsOutput, error) { + req, out := c.ListEnvironmentsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListEnvironmentsPages iterates over the pages of a ListEnvironments operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListEnvironments method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListEnvironments operation. +// pageNum := 0 +// err := client.ListEnvironmentsPages(params, +// func(page *workspacesthinclient.ListEnvironmentsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *WorkSpacesThinClient) ListEnvironmentsPages(input *ListEnvironmentsInput, fn func(*ListEnvironmentsOutput, bool) bool) error { + return c.ListEnvironmentsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListEnvironmentsPagesWithContext same as ListEnvironmentsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) ListEnvironmentsPagesWithContext(ctx aws.Context, input *ListEnvironmentsInput, fn func(*ListEnvironmentsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListEnvironmentsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListEnvironmentsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListEnvironmentsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListSoftwareSets = "ListSoftwareSets" + +// ListSoftwareSetsRequest generates a "aws/request.Request" representing the +// client's request for the ListSoftwareSets 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 ListSoftwareSets for more information on using the ListSoftwareSets +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListSoftwareSetsRequest method. +// req, resp := client.ListSoftwareSetsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/ListSoftwareSets +func (c *WorkSpacesThinClient) ListSoftwareSetsRequest(input *ListSoftwareSetsInput) (req *request.Request, output *ListSoftwareSetsOutput) { + op := &request.Operation{ + Name: opListSoftwareSets, + HTTPMethod: "GET", + HTTPPath: "/softwaresets", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListSoftwareSetsInput{} + } + + output = &ListSoftwareSetsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// ListSoftwareSets API operation for Amazon WorkSpaces Thin Client. +// +// Returns a list of software sets. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 WorkSpaces Thin Client's +// API operation ListSoftwareSets for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/ListSoftwareSets +func (c *WorkSpacesThinClient) ListSoftwareSets(input *ListSoftwareSetsInput) (*ListSoftwareSetsOutput, error) { + req, out := c.ListSoftwareSetsRequest(input) + return out, req.Send() +} + +// ListSoftwareSetsWithContext is the same as ListSoftwareSets with the addition of +// the ability to pass a context and additional request options. +// +// See ListSoftwareSets for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) ListSoftwareSetsWithContext(ctx aws.Context, input *ListSoftwareSetsInput, opts ...request.Option) (*ListSoftwareSetsOutput, error) { + req, out := c.ListSoftwareSetsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListSoftwareSetsPages iterates over the pages of a ListSoftwareSets operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListSoftwareSets 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 ListSoftwareSets operation. +// pageNum := 0 +// err := client.ListSoftwareSetsPages(params, +// func(page *workspacesthinclient.ListSoftwareSetsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *WorkSpacesThinClient) ListSoftwareSetsPages(input *ListSoftwareSetsInput, fn func(*ListSoftwareSetsOutput, bool) bool) error { + return c.ListSoftwareSetsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListSoftwareSetsPagesWithContext same as ListSoftwareSetsPages 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 *WorkSpacesThinClient) ListSoftwareSetsPagesWithContext(ctx aws.Context, input *ListSoftwareSetsInput, fn func(*ListSoftwareSetsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListSoftwareSetsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListSoftwareSetsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListSoftwareSetsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/ListTagsForResource +func (c *WorkSpacesThinClient) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// ListTagsForResource API operation for Amazon WorkSpaces Thin Client. +// +// Returns a list of tags for 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 WorkSpaces Thin Client's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - InternalServiceException +// Request processing failed due to some unknown error, exception, or failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/ListTagsForResource +func (c *WorkSpacesThinClient) 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 *WorkSpacesThinClient) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/TagResource +func (c *WorkSpacesThinClient) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// TagResource API operation for Amazon WorkSpaces Thin Client. +// +// Assigns one or more tags (key-value pairs) to the specified resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon WorkSpaces Thin Client's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - InternalServiceException +// Request processing failed due to some unknown error, exception, or failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/TagResource +func (c *WorkSpacesThinClient) 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 *WorkSpacesThinClient) 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/workspaces-thin-client-2023-08-22/UntagResource +func (c *WorkSpacesThinClient) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// UntagResource API operation for Amazon WorkSpaces Thin Client. +// +// Removes a tag or 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 WorkSpaces Thin Client's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - InternalServiceException +// Request processing failed due to some unknown error, exception, or failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/UntagResource +func (c *WorkSpacesThinClient) 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 *WorkSpacesThinClient) 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 opUpdateDevice = "UpdateDevice" + +// UpdateDeviceRequest generates a "aws/request.Request" representing the +// client's request for the UpdateDevice 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 UpdateDevice for more information on using the UpdateDevice +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateDeviceRequest method. +// req, resp := client.UpdateDeviceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/UpdateDevice +func (c *WorkSpacesThinClient) UpdateDeviceRequest(input *UpdateDeviceInput) (req *request.Request, output *UpdateDeviceOutput) { + op := &request.Operation{ + Name: opUpdateDevice, + HTTPMethod: "PATCH", + HTTPPath: "/devices/{id}", + } + + if input == nil { + input = &UpdateDeviceInput{} + } + + output = &UpdateDeviceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// UpdateDevice API operation for Amazon WorkSpaces Thin Client. +// +// Updates a thin client device. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 WorkSpaces Thin Client's +// API operation UpdateDevice for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/UpdateDevice +func (c *WorkSpacesThinClient) UpdateDevice(input *UpdateDeviceInput) (*UpdateDeviceOutput, error) { + req, out := c.UpdateDeviceRequest(input) + return out, req.Send() +} + +// UpdateDeviceWithContext is the same as UpdateDevice with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateDevice for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) UpdateDeviceWithContext(ctx aws.Context, input *UpdateDeviceInput, opts ...request.Option) (*UpdateDeviceOutput, error) { + req, out := c.UpdateDeviceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateEnvironment = "UpdateEnvironment" + +// UpdateEnvironmentRequest generates a "aws/request.Request" representing the +// client's request for the UpdateEnvironment operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateEnvironment for more information on using the UpdateEnvironment +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateEnvironmentRequest method. +// req, resp := client.UpdateEnvironmentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/UpdateEnvironment +func (c *WorkSpacesThinClient) UpdateEnvironmentRequest(input *UpdateEnvironmentInput) (req *request.Request, output *UpdateEnvironmentOutput) { + op := &request.Operation{ + Name: opUpdateEnvironment, + HTTPMethod: "PATCH", + HTTPPath: "/environments/{id}", + } + + if input == nil { + input = &UpdateEnvironmentInput{} + } + + output = &UpdateEnvironmentOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// UpdateEnvironment API operation for Amazon WorkSpaces Thin Client. +// +// Updates an environment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon WorkSpaces Thin Client's +// API operation UpdateEnvironment for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/UpdateEnvironment +func (c *WorkSpacesThinClient) UpdateEnvironment(input *UpdateEnvironmentInput) (*UpdateEnvironmentOutput, error) { + req, out := c.UpdateEnvironmentRequest(input) + return out, req.Send() +} + +// UpdateEnvironmentWithContext is the same as UpdateEnvironment with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateEnvironment for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) UpdateEnvironmentWithContext(ctx aws.Context, input *UpdateEnvironmentInput, opts ...request.Option) (*UpdateEnvironmentOutput, error) { + req, out := c.UpdateEnvironmentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateSoftwareSet = "UpdateSoftwareSet" + +// UpdateSoftwareSetRequest generates a "aws/request.Request" representing the +// client's request for the UpdateSoftwareSet 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 UpdateSoftwareSet for more information on using the UpdateSoftwareSet +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateSoftwareSetRequest method. +// req, resp := client.UpdateSoftwareSetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/UpdateSoftwareSet +func (c *WorkSpacesThinClient) UpdateSoftwareSetRequest(input *UpdateSoftwareSetInput) (req *request.Request, output *UpdateSoftwareSetOutput) { + op := &request.Operation{ + Name: opUpdateSoftwareSet, + HTTPMethod: "PATCH", + HTTPPath: "/softwaresets/{id}", + } + + if input == nil { + input = &UpdateSoftwareSetInput{} + } + + output = &UpdateSoftwareSetOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("api.", nil)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// UpdateSoftwareSet API operation for Amazon WorkSpaces Thin Client. +// +// Updates a software set. +// +// Returns awserr.Error for service API and SDK errors. Use runtime 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 WorkSpaces Thin Client's +// API operation UpdateSoftwareSet for usage and error information. +// +// Returned Error Types: +// +// - ValidationException +// The input fails to satisfy the specified constraints. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ResourceNotFoundException +// The resource specified in the request was not found. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// - InternalServerException +// The server encountered an internal error and is unable to complete the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22/UpdateSoftwareSet +func (c *WorkSpacesThinClient) UpdateSoftwareSet(input *UpdateSoftwareSetInput) (*UpdateSoftwareSetOutput, error) { + req, out := c.UpdateSoftwareSetRequest(input) + return out, req.Send() +} + +// UpdateSoftwareSetWithContext is the same as UpdateSoftwareSet with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateSoftwareSet for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkSpacesThinClient) UpdateSoftwareSetWithContext(ctx aws.Context, input *UpdateSoftwareSetInput, opts ...request.Option) (*UpdateSoftwareSetOutput, error) { + req, out := c.UpdateSoftwareSetRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// You do not have sufficient access to perform this action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The ID of the resource associated with the request. + ResourceId *string `locationName:"resourceId" type:"string"` + + // The type of the resource associated with the request. + ResourceType *string `locationName:"resourceType" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConflictException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConflictException) GoString() string { + return s.String() +} + +func newErrorConflictException(v protocol.ResponseMetadata) error { + return &ConflictException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConflictException) Code() string { + return "ConflictException" +} + +// Message returns the exception's message. +func (s *ConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConflictException) OrigErr() error { + return nil +} + +func (s *ConflictException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConflictException) RequestID() string { + return s.RespMetadata.RequestID +} + +type CreateEnvironmentInput struct { + _ struct{} `type:"structure"` + + // Specifies a unique, case-sensitive identifier that you provide to ensure + // the idempotency of the request. This lets you safely retry the request without + // accidentally performing the same operation a second time. Passing the same + // value to a later call to an operation requires that you also pass the same + // value for all other parameters. We recommend that you use a UUID type of + // value (https://wikipedia.org/wiki/Universally_unique_identifier). + // + // If you don't provide this value, then Amazon Web Services generates a random + // one for you. + // + // If you retry the operation with the same ClientToken, but with different + // parameters, the retry fails with an IdempotentParameterMismatch error. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The ID of the software set to apply. + DesiredSoftwareSetId *string `locationName:"desiredSoftwareSetId" type:"string"` + + // The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, + // WorkSpaces Web, or AppStream 2.0. + // + // DesktopArn is a required field + DesktopArn *string `locationName:"desktopArn" min:"20" type:"string" required:"true"` + + // The URL for the identity provider login (only for environments that use AppStream + // 2.0). + // + // DesktopEndpoint is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateEnvironmentInput's + // String and GoString methods. + DesktopEndpoint *string `locationName:"desktopEndpoint" min:"1" type:"string" sensitive:"true"` + + // The Amazon Resource Name (ARN) of the Key Management Service key to use to + // encrypt the environment. + KmsKeyArn *string `locationName:"kmsKeyArn" min:"20" type:"string"` + + // A specification for a time window to apply software updates. + MaintenanceWindow *MaintenanceWindow `locationName:"maintenanceWindow" type:"structure"` + + // The name for the environment. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateEnvironmentInput's + // String and GoString methods. + Name *string `locationName:"name" type:"string" sensitive:"true"` + + // An option to define which software updates to apply. + SoftwareSetUpdateMode *string `locationName:"softwareSetUpdateMode" type:"string" enum:"SoftwareSetUpdateMode"` + + // An option to define if software updates should be applied within a maintenance + // window. + SoftwareSetUpdateSchedule *string `locationName:"softwareSetUpdateSchedule" type:"string" enum:"SoftwareSetUpdateSchedule"` + + // A map of the key-value pairs of the tag or tags to assign to the resource. + // + // Tags is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateEnvironmentInput's + // String and GoString methods. + Tags map[string]*string `locationName:"tags" type:"map" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateEnvironmentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateEnvironmentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateEnvironmentInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.DesktopArn == nil { + invalidParams.Add(request.NewErrParamRequired("DesktopArn")) + } + if s.DesktopArn != nil && len(*s.DesktopArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("DesktopArn", 20)) + } + if s.DesktopEndpoint != nil && len(*s.DesktopEndpoint) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DesktopEndpoint", 1)) + } + if s.KmsKeyArn != nil && len(*s.KmsKeyArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 20)) + } + if s.MaintenanceWindow != nil { + if err := s.MaintenanceWindow.Validate(); err != nil { + invalidParams.AddNested("MaintenanceWindow", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateEnvironmentInput) SetClientToken(v string) *CreateEnvironmentInput { + s.ClientToken = &v + return s +} + +// SetDesiredSoftwareSetId sets the DesiredSoftwareSetId field's value. +func (s *CreateEnvironmentInput) SetDesiredSoftwareSetId(v string) *CreateEnvironmentInput { + s.DesiredSoftwareSetId = &v + return s +} + +// SetDesktopArn sets the DesktopArn field's value. +func (s *CreateEnvironmentInput) SetDesktopArn(v string) *CreateEnvironmentInput { + s.DesktopArn = &v + return s +} + +// SetDesktopEndpoint sets the DesktopEndpoint field's value. +func (s *CreateEnvironmentInput) SetDesktopEndpoint(v string) *CreateEnvironmentInput { + s.DesktopEndpoint = &v + return s +} + +// SetKmsKeyArn sets the KmsKeyArn field's value. +func (s *CreateEnvironmentInput) SetKmsKeyArn(v string) *CreateEnvironmentInput { + s.KmsKeyArn = &v + return s +} + +// SetMaintenanceWindow sets the MaintenanceWindow field's value. +func (s *CreateEnvironmentInput) SetMaintenanceWindow(v *MaintenanceWindow) *CreateEnvironmentInput { + s.MaintenanceWindow = v + return s +} + +// SetName sets the Name field's value. +func (s *CreateEnvironmentInput) SetName(v string) *CreateEnvironmentInput { + s.Name = &v + return s +} + +// SetSoftwareSetUpdateMode sets the SoftwareSetUpdateMode field's value. +func (s *CreateEnvironmentInput) SetSoftwareSetUpdateMode(v string) *CreateEnvironmentInput { + s.SoftwareSetUpdateMode = &v + return s +} + +// SetSoftwareSetUpdateSchedule sets the SoftwareSetUpdateSchedule field's value. +func (s *CreateEnvironmentInput) SetSoftwareSetUpdateSchedule(v string) *CreateEnvironmentInput { + s.SoftwareSetUpdateSchedule = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateEnvironmentInput) SetTags(v map[string]*string) *CreateEnvironmentInput { + s.Tags = v + return s +} + +type CreateEnvironmentOutput struct { + _ struct{} `type:"structure"` + + // Describes an environment. + Environment *EnvironmentSummary `locationName:"environment" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateEnvironmentOutput) GoString() string { + return s.String() +} + +// SetEnvironment sets the Environment field's value. +func (s *CreateEnvironmentOutput) SetEnvironment(v *EnvironmentSummary) *CreateEnvironmentOutput { + s.Environment = v + return s +} + +type DeleteDeviceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Specifies a unique, case-sensitive identifier that you provide to ensure + // the idempotency of the request. This lets you safely retry the request without + // accidentally performing the same operation a second time. Passing the same + // value to a later call to an operation requires that you also pass the same + // value for all other parameters. We recommend that you use a UUID type of + // value (https://wikipedia.org/wiki/Universally_unique_identifier). + // + // If you don't provide this value, then Amazon Web Services generates a random + // one for you. + // + // If you retry the operation with the same ClientToken, but with different + // parameters, the retry fails with an IdempotentParameterMismatch error. + ClientToken *string `location:"querystring" locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The ID of the device to delete. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteDeviceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteDeviceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDeviceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteDeviceInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *DeleteDeviceInput) SetClientToken(v string) *DeleteDeviceInput { + s.ClientToken = &v + return s +} + +// SetId sets the Id field's value. +func (s *DeleteDeviceInput) SetId(v string) *DeleteDeviceInput { + s.Id = &v + return s +} + +type DeleteDeviceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteDeviceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteDeviceOutput) GoString() string { + return s.String() +} + +type DeleteEnvironmentInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Specifies a unique, case-sensitive identifier that you provide to ensure + // the idempotency of the request. This lets you safely retry the request without + // accidentally performing the same operation a second time. Passing the same + // value to a later call to an operation requires that you also pass the same + // value for all other parameters. We recommend that you use a UUID type of + // value (https://wikipedia.org/wiki/Universally_unique_identifier). + // + // If you don't provide this value, then Amazon Web Services generates a random + // one for you. + // + // If you retry the operation with the same ClientToken, but with different + // parameters, the retry fails with an IdempotentParameterMismatch error. + ClientToken *string `location:"querystring" locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The ID of the environment to delete. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteEnvironmentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteEnvironmentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteEnvironmentInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *DeleteEnvironmentInput) SetClientToken(v string) *DeleteEnvironmentInput { + s.ClientToken = &v + return s +} + +// SetId sets the Id field's value. +func (s *DeleteEnvironmentInput) SetId(v string) *DeleteEnvironmentInput { + s.Id = &v + return s +} + +type DeleteEnvironmentOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteEnvironmentOutput) GoString() string { + return s.String() +} + +type DeregisterDeviceInput struct { + _ struct{} `type:"structure"` + + // Specifies a unique, case-sensitive identifier that you provide to ensure + // the idempotency of the request. This lets you safely retry the request without + // accidentally performing the same operation a second time. Passing the same + // value to a later call to an operation requires that you also pass the same + // value for all other parameters. We recommend that you use a UUID type of + // value (https://wikipedia.org/wiki/Universally_unique_identifier). + // + // If you don't provide this value, then Amazon Web Services generates a random + // one for you. + // + // If you retry the operation with the same ClientToken, but with different + // parameters, the retry fails with an IdempotentParameterMismatch error. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The ID of the device to deregister. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` + + // The desired new status for the device. + TargetDeviceStatus *string `locationName:"targetDeviceStatus" type:"string" enum:"TargetDeviceStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeregisterDeviceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeregisterDeviceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeregisterDeviceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeregisterDeviceInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *DeregisterDeviceInput) SetClientToken(v string) *DeregisterDeviceInput { + s.ClientToken = &v + return s +} + +// SetId sets the Id field's value. +func (s *DeregisterDeviceInput) SetId(v string) *DeregisterDeviceInput { + s.Id = &v + return s +} + +// SetTargetDeviceStatus sets the TargetDeviceStatus field's value. +func (s *DeregisterDeviceInput) SetTargetDeviceStatus(v string) *DeregisterDeviceInput { + s.TargetDeviceStatus = &v + return s +} + +type DeregisterDeviceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeregisterDeviceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeregisterDeviceOutput) GoString() string { + return s.String() +} + +// Describes a thin client device. +type Device struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the device. + Arn *string `locationName:"arn" min:"20" type:"string"` + + // The timestamp of when the device was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The ID of the software set currently installed on the device. + CurrentSoftwareSetId *string `locationName:"currentSoftwareSetId" type:"string"` + + // The version of the software set currently installed on the device. + CurrentSoftwareSetVersion *string `locationName:"currentSoftwareSetVersion" type:"string"` + + // The ID of the software set which the device has been set to. + DesiredSoftwareSetId *string `locationName:"desiredSoftwareSetId" type:"string"` + + // The ID of the environment the device is associated with. + EnvironmentId *string `locationName:"environmentId" type:"string"` + + // The ID of the device. + Id *string `locationName:"id" type:"string"` + + // The Amazon Resource Name (ARN) of the Key Management Service key used to + // encrypt the device. + KmsKeyArn *string `locationName:"kmsKeyArn" min:"20" type:"string"` + + // The timestamp of the most recent session on the device. + LastConnectedAt *time.Time `locationName:"lastConnectedAt" type:"timestamp"` + + // The timestamp of the most recent check-in of the device. + LastPostureAt *time.Time `locationName:"lastPostureAt" type:"timestamp"` + + // The model number of the device. + Model *string `locationName:"model" type:"string"` + + // The name of the device. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Device's + // String and GoString methods. + Name *string `locationName:"name" type:"string" sensitive:"true"` + + // The ID of the software set that is pending to be installed on the device. + PendingSoftwareSetId *string `locationName:"pendingSoftwareSetId" type:"string"` + + // The version of the software set that is pending to be installed on the device. + PendingSoftwareSetVersion *string `locationName:"pendingSoftwareSetVersion" type:"string"` + + // The hardware serial number of the device. + SerialNumber *string `locationName:"serialNumber" type:"string"` + + // Describes if the software currently installed on the device is a supported + // version. + SoftwareSetComplianceStatus *string `locationName:"softwareSetComplianceStatus" type:"string" enum:"DeviceSoftwareSetComplianceStatus"` + + // An option to define if software updates should be applied within a maintenance + // window. + SoftwareSetUpdateSchedule *string `locationName:"softwareSetUpdateSchedule" type:"string" enum:"SoftwareSetUpdateSchedule"` + + // Describes if the device has a supported version of software installed. + SoftwareSetUpdateStatus *string `locationName:"softwareSetUpdateStatus" type:"string" enum:"SoftwareSetUpdateStatus"` + + // The status of the device. + Status *string `locationName:"status" type:"string" enum:"DeviceStatus"` + + // The tag keys and optional values for the resource. + // + // Tags is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Device's + // String and GoString methods. + Tags *EmbeddedTag `locationName:"tags" type:"structure" sensitive:"true"` + + // The timestamp of when the device was updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Device) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Device) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *Device) SetArn(v string) *Device { + s.Arn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *Device) SetCreatedAt(v time.Time) *Device { + s.CreatedAt = &v + return s +} + +// SetCurrentSoftwareSetId sets the CurrentSoftwareSetId field's value. +func (s *Device) SetCurrentSoftwareSetId(v string) *Device { + s.CurrentSoftwareSetId = &v + return s +} + +// SetCurrentSoftwareSetVersion sets the CurrentSoftwareSetVersion field's value. +func (s *Device) SetCurrentSoftwareSetVersion(v string) *Device { + s.CurrentSoftwareSetVersion = &v + return s +} + +// SetDesiredSoftwareSetId sets the DesiredSoftwareSetId field's value. +func (s *Device) SetDesiredSoftwareSetId(v string) *Device { + s.DesiredSoftwareSetId = &v + return s +} + +// SetEnvironmentId sets the EnvironmentId field's value. +func (s *Device) SetEnvironmentId(v string) *Device { + s.EnvironmentId = &v + return s +} + +// SetId sets the Id field's value. +func (s *Device) SetId(v string) *Device { + s.Id = &v + return s +} + +// SetKmsKeyArn sets the KmsKeyArn field's value. +func (s *Device) SetKmsKeyArn(v string) *Device { + s.KmsKeyArn = &v + return s +} + +// SetLastConnectedAt sets the LastConnectedAt field's value. +func (s *Device) SetLastConnectedAt(v time.Time) *Device { + s.LastConnectedAt = &v + return s +} + +// SetLastPostureAt sets the LastPostureAt field's value. +func (s *Device) SetLastPostureAt(v time.Time) *Device { + s.LastPostureAt = &v + return s +} + +// SetModel sets the Model field's value. +func (s *Device) SetModel(v string) *Device { + s.Model = &v + return s +} + +// SetName sets the Name field's value. +func (s *Device) SetName(v string) *Device { + s.Name = &v + return s +} + +// SetPendingSoftwareSetId sets the PendingSoftwareSetId field's value. +func (s *Device) SetPendingSoftwareSetId(v string) *Device { + s.PendingSoftwareSetId = &v + return s +} + +// SetPendingSoftwareSetVersion sets the PendingSoftwareSetVersion field's value. +func (s *Device) SetPendingSoftwareSetVersion(v string) *Device { + s.PendingSoftwareSetVersion = &v + return s +} + +// SetSerialNumber sets the SerialNumber field's value. +func (s *Device) SetSerialNumber(v string) *Device { + s.SerialNumber = &v + return s +} + +// SetSoftwareSetComplianceStatus sets the SoftwareSetComplianceStatus field's value. +func (s *Device) SetSoftwareSetComplianceStatus(v string) *Device { + s.SoftwareSetComplianceStatus = &v + return s +} + +// SetSoftwareSetUpdateSchedule sets the SoftwareSetUpdateSchedule field's value. +func (s *Device) SetSoftwareSetUpdateSchedule(v string) *Device { + s.SoftwareSetUpdateSchedule = &v + return s +} + +// SetSoftwareSetUpdateStatus sets the SoftwareSetUpdateStatus field's value. +func (s *Device) SetSoftwareSetUpdateStatus(v string) *Device { + s.SoftwareSetUpdateStatus = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *Device) SetStatus(v string) *Device { + s.Status = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *Device) SetTags(v *EmbeddedTag) *Device { + s.Tags = v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *Device) SetUpdatedAt(v time.Time) *Device { + s.UpdatedAt = &v + return s +} + +// Describes a thin client device. +type DeviceSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the device. + Arn *string `locationName:"arn" min:"20" type:"string"` + + // The timestamp of when the device was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The ID of the software set currently installed on the device. + CurrentSoftwareSetId *string `locationName:"currentSoftwareSetId" type:"string"` + + // The ID of the software set which the device has been set to. + DesiredSoftwareSetId *string `locationName:"desiredSoftwareSetId" type:"string"` + + // The ID of the environment the device is associated with. + EnvironmentId *string `locationName:"environmentId" type:"string"` + + // The ID of the device. + Id *string `locationName:"id" type:"string"` + + // The timestamp of the most recent session on the device. + LastConnectedAt *time.Time `locationName:"lastConnectedAt" type:"timestamp"` + + // The timestamp of the most recent check-in of the device. + LastPostureAt *time.Time `locationName:"lastPostureAt" type:"timestamp"` + + // The model number of the device. + Model *string `locationName:"model" type:"string"` + + // The name of the device. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DeviceSummary's + // String and GoString methods. + Name *string `locationName:"name" type:"string" sensitive:"true"` + + // The ID of the software set that is pending to be installed on the device. + PendingSoftwareSetId *string `locationName:"pendingSoftwareSetId" type:"string"` + + // The hardware serial number of the device. + SerialNumber *string `locationName:"serialNumber" type:"string"` + + // An option to define if software updates should be applied within a maintenance + // window. + SoftwareSetUpdateSchedule *string `locationName:"softwareSetUpdateSchedule" type:"string" enum:"SoftwareSetUpdateSchedule"` + + // The status of the device. + Status *string `locationName:"status" type:"string" enum:"DeviceStatus"` + + // The tag keys and optional values for the resource. + // + // Tags is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DeviceSummary's + // String and GoString methods. + Tags *EmbeddedTag `locationName:"tags" type:"structure" sensitive:"true"` + + // The timestamp of when the device was updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeviceSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeviceSummary) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *DeviceSummary) SetArn(v string) *DeviceSummary { + s.Arn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *DeviceSummary) SetCreatedAt(v time.Time) *DeviceSummary { + s.CreatedAt = &v + return s +} + +// SetCurrentSoftwareSetId sets the CurrentSoftwareSetId field's value. +func (s *DeviceSummary) SetCurrentSoftwareSetId(v string) *DeviceSummary { + s.CurrentSoftwareSetId = &v + return s +} + +// SetDesiredSoftwareSetId sets the DesiredSoftwareSetId field's value. +func (s *DeviceSummary) SetDesiredSoftwareSetId(v string) *DeviceSummary { + s.DesiredSoftwareSetId = &v + return s +} + +// SetEnvironmentId sets the EnvironmentId field's value. +func (s *DeviceSummary) SetEnvironmentId(v string) *DeviceSummary { + s.EnvironmentId = &v + return s +} + +// SetId sets the Id field's value. +func (s *DeviceSummary) SetId(v string) *DeviceSummary { + s.Id = &v + return s +} + +// SetLastConnectedAt sets the LastConnectedAt field's value. +func (s *DeviceSummary) SetLastConnectedAt(v time.Time) *DeviceSummary { + s.LastConnectedAt = &v + return s +} + +// SetLastPostureAt sets the LastPostureAt field's value. +func (s *DeviceSummary) SetLastPostureAt(v time.Time) *DeviceSummary { + s.LastPostureAt = &v + return s +} + +// SetModel sets the Model field's value. +func (s *DeviceSummary) SetModel(v string) *DeviceSummary { + s.Model = &v + return s +} + +// SetName sets the Name field's value. +func (s *DeviceSummary) SetName(v string) *DeviceSummary { + s.Name = &v + return s +} + +// SetPendingSoftwareSetId sets the PendingSoftwareSetId field's value. +func (s *DeviceSummary) SetPendingSoftwareSetId(v string) *DeviceSummary { + s.PendingSoftwareSetId = &v + return s +} + +// SetSerialNumber sets the SerialNumber field's value. +func (s *DeviceSummary) SetSerialNumber(v string) *DeviceSummary { + s.SerialNumber = &v + return s +} + +// SetSoftwareSetUpdateSchedule sets the SoftwareSetUpdateSchedule field's value. +func (s *DeviceSummary) SetSoftwareSetUpdateSchedule(v string) *DeviceSummary { + s.SoftwareSetUpdateSchedule = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *DeviceSummary) SetStatus(v string) *DeviceSummary { + s.Status = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *DeviceSummary) SetTags(v *EmbeddedTag) *DeviceSummary { + s.Tags = v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *DeviceSummary) SetUpdatedAt(v time.Time) *DeviceSummary { + s.UpdatedAt = &v + return s +} + +// The resource and internal ID of a resource to tag. +type EmbeddedTag struct { + _ struct{} `type:"structure" sensitive:"true"` + + // The internal ID of a resource to tag. + InternalId *string `locationName:"internalId" type:"string"` + + // The Amazon Resource Name (ARN) of a resource to tag. + ResourceArn *string `locationName:"resourceArn" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EmbeddedTag) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EmbeddedTag) GoString() string { + return s.String() +} + +// SetInternalId sets the InternalId field's value. +func (s *EmbeddedTag) SetInternalId(v string) *EmbeddedTag { + s.InternalId = &v + return s +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *EmbeddedTag) SetResourceArn(v string) *EmbeddedTag { + s.ResourceArn = &v + return s +} + +// Describes an environment. +type Environment struct { + _ struct{} `type:"structure"` + + // The activation code to register a device to the environment. + ActivationCode *string `locationName:"activationCode" type:"string"` + + // The Amazon Resource Name (ARN) of the environment. + Arn *string `locationName:"arn" min:"20" type:"string"` + + // The timestamp of when the environment was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The ID of the software set to apply. + DesiredSoftwareSetId *string `locationName:"desiredSoftwareSetId" type:"string"` + + // The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, + // WorkSpaces Web, or AppStream 2.0. + DesktopArn *string `locationName:"desktopArn" min:"20" type:"string"` + + // The URL for the identity provider login (only for environments that use AppStream + // 2.0). + // + // DesktopEndpoint is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Environment's + // String and GoString methods. + DesktopEndpoint *string `locationName:"desktopEndpoint" min:"1" type:"string" sensitive:"true"` + + // The type of streaming desktop for the environment. + DesktopType *string `locationName:"desktopType" type:"string" enum:"DesktopType"` + + // The ID of the environment. + Id *string `locationName:"id" type:"string"` + + // The Amazon Resource Name (ARN) of the Key Management Service key used to + // encrypt the environment. + KmsKeyArn *string `locationName:"kmsKeyArn" min:"20" type:"string"` + + // A specification for a time window to apply software updates. + MaintenanceWindow *MaintenanceWindow `locationName:"maintenanceWindow" type:"structure"` + + // The name of the environment. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Environment's + // String and GoString methods. + Name *string `locationName:"name" type:"string" sensitive:"true"` + + // The ID of the software set that is pending to be installed. + PendingSoftwareSetId *string `locationName:"pendingSoftwareSetId" type:"string"` + + // The version of the software set that is pending to be installed. + PendingSoftwareSetVersion *string `locationName:"pendingSoftwareSetVersion" type:"string"` + + // The number of devices registered to the environment. + RegisteredDevicesCount *int64 `locationName:"registeredDevicesCount" type:"integer"` + + // Describes if the software currently installed on all devices in the environment + // is a supported version. + SoftwareSetComplianceStatus *string `locationName:"softwareSetComplianceStatus" type:"string" enum:"EnvironmentSoftwareSetComplianceStatus"` + + // An option to define which software updates to apply. + SoftwareSetUpdateMode *string `locationName:"softwareSetUpdateMode" type:"string" enum:"SoftwareSetUpdateMode"` + + // An option to define if software updates should be applied within a maintenance + // window. + SoftwareSetUpdateSchedule *string `locationName:"softwareSetUpdateSchedule" type:"string" enum:"SoftwareSetUpdateSchedule"` + + // The tag keys and optional values for the resource. + // + // Tags is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Environment's + // String and GoString methods. + Tags *EmbeddedTag `locationName:"tags" type:"structure" sensitive:"true"` + + // The timestamp of when the device was updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Environment) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Environment) GoString() string { + return s.String() +} + +// SetActivationCode sets the ActivationCode field's value. +func (s *Environment) SetActivationCode(v string) *Environment { + s.ActivationCode = &v + return s +} + +// SetArn sets the Arn field's value. +func (s *Environment) SetArn(v string) *Environment { + s.Arn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *Environment) SetCreatedAt(v time.Time) *Environment { + s.CreatedAt = &v + return s +} + +// SetDesiredSoftwareSetId sets the DesiredSoftwareSetId field's value. +func (s *Environment) SetDesiredSoftwareSetId(v string) *Environment { + s.DesiredSoftwareSetId = &v + return s +} + +// SetDesktopArn sets the DesktopArn field's value. +func (s *Environment) SetDesktopArn(v string) *Environment { + s.DesktopArn = &v + return s +} + +// SetDesktopEndpoint sets the DesktopEndpoint field's value. +func (s *Environment) SetDesktopEndpoint(v string) *Environment { + s.DesktopEndpoint = &v + return s +} + +// SetDesktopType sets the DesktopType field's value. +func (s *Environment) SetDesktopType(v string) *Environment { + s.DesktopType = &v + return s +} + +// SetId sets the Id field's value. +func (s *Environment) SetId(v string) *Environment { + s.Id = &v + return s +} + +// SetKmsKeyArn sets the KmsKeyArn field's value. +func (s *Environment) SetKmsKeyArn(v string) *Environment { + s.KmsKeyArn = &v + return s +} + +// SetMaintenanceWindow sets the MaintenanceWindow field's value. +func (s *Environment) SetMaintenanceWindow(v *MaintenanceWindow) *Environment { + s.MaintenanceWindow = v + return s +} + +// SetName sets the Name field's value. +func (s *Environment) SetName(v string) *Environment { + s.Name = &v + return s +} + +// SetPendingSoftwareSetId sets the PendingSoftwareSetId field's value. +func (s *Environment) SetPendingSoftwareSetId(v string) *Environment { + s.PendingSoftwareSetId = &v + return s +} + +// SetPendingSoftwareSetVersion sets the PendingSoftwareSetVersion field's value. +func (s *Environment) SetPendingSoftwareSetVersion(v string) *Environment { + s.PendingSoftwareSetVersion = &v + return s +} + +// SetRegisteredDevicesCount sets the RegisteredDevicesCount field's value. +func (s *Environment) SetRegisteredDevicesCount(v int64) *Environment { + s.RegisteredDevicesCount = &v + return s +} + +// SetSoftwareSetComplianceStatus sets the SoftwareSetComplianceStatus field's value. +func (s *Environment) SetSoftwareSetComplianceStatus(v string) *Environment { + s.SoftwareSetComplianceStatus = &v + return s +} + +// SetSoftwareSetUpdateMode sets the SoftwareSetUpdateMode field's value. +func (s *Environment) SetSoftwareSetUpdateMode(v string) *Environment { + s.SoftwareSetUpdateMode = &v + return s +} + +// SetSoftwareSetUpdateSchedule sets the SoftwareSetUpdateSchedule field's value. +func (s *Environment) SetSoftwareSetUpdateSchedule(v string) *Environment { + s.SoftwareSetUpdateSchedule = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *Environment) SetTags(v *EmbeddedTag) *Environment { + s.Tags = v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *Environment) SetUpdatedAt(v time.Time) *Environment { + s.UpdatedAt = &v + return s +} + +// Describes an environment. +type EnvironmentSummary struct { + _ struct{} `type:"structure"` + + // The activation code to register a device to the environment. + ActivationCode *string `locationName:"activationCode" type:"string"` + + // The Amazon Resource Name (ARN) of the environment. + Arn *string `locationName:"arn" min:"20" type:"string"` + + // The timestamp of when the environment was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The ID of the software set to apply. + DesiredSoftwareSetId *string `locationName:"desiredSoftwareSetId" type:"string"` + + // The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, + // WorkSpaces Web, or AppStream 2.0. + DesktopArn *string `locationName:"desktopArn" min:"20" type:"string"` + + // The URL for the identity provider login (only for environments that use AppStream + // 2.0). + // + // DesktopEndpoint is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by EnvironmentSummary's + // String and GoString methods. + DesktopEndpoint *string `locationName:"desktopEndpoint" min:"1" type:"string" sensitive:"true"` + + // The type of streaming desktop for the environment. + DesktopType *string `locationName:"desktopType" type:"string" enum:"DesktopType"` + + // The ID of the environment. + Id *string `locationName:"id" type:"string"` + + // A specification for a time window to apply software updates. + MaintenanceWindow *MaintenanceWindow `locationName:"maintenanceWindow" type:"structure"` + + // The name of the environment. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by EnvironmentSummary's + // String and GoString methods. + Name *string `locationName:"name" type:"string" sensitive:"true"` + + // The ID of the software set that is pending to be installed. + PendingSoftwareSetId *string `locationName:"pendingSoftwareSetId" type:"string"` + + // An option to define which software updates to apply. + SoftwareSetUpdateMode *string `locationName:"softwareSetUpdateMode" type:"string" enum:"SoftwareSetUpdateMode"` + + // An option to define if software updates should be applied within a maintenance + // window. + SoftwareSetUpdateSchedule *string `locationName:"softwareSetUpdateSchedule" type:"string" enum:"SoftwareSetUpdateSchedule"` + + // The tag keys and optional values for the resource. + // + // Tags is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by EnvironmentSummary's + // String and GoString methods. + Tags *EmbeddedTag `locationName:"tags" type:"structure" sensitive:"true"` + + // The timestamp of when the device was updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnvironmentSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EnvironmentSummary) GoString() string { + return s.String() +} + +// SetActivationCode sets the ActivationCode field's value. +func (s *EnvironmentSummary) SetActivationCode(v string) *EnvironmentSummary { + s.ActivationCode = &v + return s +} + +// SetArn sets the Arn field's value. +func (s *EnvironmentSummary) SetArn(v string) *EnvironmentSummary { + s.Arn = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *EnvironmentSummary) SetCreatedAt(v time.Time) *EnvironmentSummary { + s.CreatedAt = &v + return s +} + +// SetDesiredSoftwareSetId sets the DesiredSoftwareSetId field's value. +func (s *EnvironmentSummary) SetDesiredSoftwareSetId(v string) *EnvironmentSummary { + s.DesiredSoftwareSetId = &v + return s +} + +// SetDesktopArn sets the DesktopArn field's value. +func (s *EnvironmentSummary) SetDesktopArn(v string) *EnvironmentSummary { + s.DesktopArn = &v + return s +} + +// SetDesktopEndpoint sets the DesktopEndpoint field's value. +func (s *EnvironmentSummary) SetDesktopEndpoint(v string) *EnvironmentSummary { + s.DesktopEndpoint = &v + return s +} + +// SetDesktopType sets the DesktopType field's value. +func (s *EnvironmentSummary) SetDesktopType(v string) *EnvironmentSummary { + s.DesktopType = &v + return s +} + +// SetId sets the Id field's value. +func (s *EnvironmentSummary) SetId(v string) *EnvironmentSummary { + s.Id = &v + return s +} + +// SetMaintenanceWindow sets the MaintenanceWindow field's value. +func (s *EnvironmentSummary) SetMaintenanceWindow(v *MaintenanceWindow) *EnvironmentSummary { + s.MaintenanceWindow = v + return s +} + +// SetName sets the Name field's value. +func (s *EnvironmentSummary) SetName(v string) *EnvironmentSummary { + s.Name = &v + return s +} + +// SetPendingSoftwareSetId sets the PendingSoftwareSetId field's value. +func (s *EnvironmentSummary) SetPendingSoftwareSetId(v string) *EnvironmentSummary { + s.PendingSoftwareSetId = &v + return s +} + +// SetSoftwareSetUpdateMode sets the SoftwareSetUpdateMode field's value. +func (s *EnvironmentSummary) SetSoftwareSetUpdateMode(v string) *EnvironmentSummary { + s.SoftwareSetUpdateMode = &v + return s +} + +// SetSoftwareSetUpdateSchedule sets the SoftwareSetUpdateSchedule field's value. +func (s *EnvironmentSummary) SetSoftwareSetUpdateSchedule(v string) *EnvironmentSummary { + s.SoftwareSetUpdateSchedule = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *EnvironmentSummary) SetTags(v *EmbeddedTag) *EnvironmentSummary { + s.Tags = v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *EnvironmentSummary) SetUpdatedAt(v time.Time) *EnvironmentSummary { + s.UpdatedAt = &v + return s +} + +type GetDeviceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the device for which to return information. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetDeviceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetDeviceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDeviceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetDeviceInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *GetDeviceInput) SetId(v string) *GetDeviceInput { + s.Id = &v + return s +} + +type GetDeviceOutput struct { + _ struct{} `type:"structure"` + + // Describes an device. + Device *Device `locationName:"device" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetDeviceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetDeviceOutput) GoString() string { + return s.String() +} + +// SetDevice sets the Device field's value. +func (s *GetDeviceOutput) SetDevice(v *Device) *GetDeviceOutput { + s.Device = v + return s +} + +type GetEnvironmentInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the environment for which to return information. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEnvironmentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetEnvironmentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetEnvironmentInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *GetEnvironmentInput) SetId(v string) *GetEnvironmentInput { + s.Id = &v + return s +} + +type GetEnvironmentOutput struct { + _ struct{} `type:"structure"` + + // Describes an environment. + Environment *Environment `locationName:"environment" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetEnvironmentOutput) GoString() string { + return s.String() +} + +// SetEnvironment sets the Environment field's value. +func (s *GetEnvironmentOutput) SetEnvironment(v *Environment) *GetEnvironmentOutput { + s.Environment = v + return s +} + +type GetSoftwareSetInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ID of the software set for which to return information. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSoftwareSetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSoftwareSetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSoftwareSetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetSoftwareSetInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *GetSoftwareSetInput) SetId(v string) *GetSoftwareSetInput { + s.Id = &v + return s +} + +type GetSoftwareSetOutput struct { + _ struct{} `type:"structure"` + + // Describes a software set. + SoftwareSet *SoftwareSet `locationName:"softwareSet" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSoftwareSetOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetSoftwareSetOutput) GoString() string { + return s.String() +} + +// SetSoftwareSet sets the SoftwareSet field's value. +func (s *GetSoftwareSetOutput) SetSoftwareSet(v *SoftwareSet) *GetSoftwareSetOutput { + s.SoftwareSet = v + return s +} + +// The server encountered an internal error and is unable to complete the request. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The number of seconds to wait before retrying the next request. + RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Request processing failed due to some unknown error, exception, or failure. +type InternalServiceException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The number of seconds to wait before retrying the next request. + RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServiceException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InternalServiceException) GoString() string { + return s.String() +} + +func newErrorInternalServiceException(v protocol.ResponseMetadata) error { + return &InternalServiceException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServiceException) Code() string { + return "InternalServiceException" +} + +// Message returns the exception's message. +func (s *InternalServiceException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServiceException) OrigErr() error { + return nil +} + +func (s *InternalServiceException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServiceException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServiceException) RequestID() string { + return s.RespMetadata.RequestID +} + +type ListDevicesInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The maximum number of results that are returned per call. You can use nextToken + // to obtain further pages of results. + // + // This is only an upper limit. The actual number of results returned per call + // might be fewer than the specified maximum. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If nextToken is returned, there are more results available. The value of + // nextToken is a unique pagination token for each page. Make the call again + // using the returned token to retrieve the next page. Keep all other arguments + // unchanged. Each pagination token expires after 24 hours. Using an expired + // pagination token will return an HTTP 400 InvalidToken error. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListDevicesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListDevicesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDevicesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListDevicesInput"} + 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 *ListDevicesInput) SetMaxResults(v int64) *ListDevicesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDevicesInput) SetNextToken(v string) *ListDevicesInput { + s.NextToken = &v + return s +} + +type ListDevicesOutput struct { + _ struct{} `type:"structure"` + + // Describes devices. + Devices []*DeviceSummary `locationName:"devices" type:"list"` + + // If nextToken is returned, there are more results available. The value of + // nextToken is a unique pagination token for each page. Make the call again + // using the returned token to retrieve the next page. Keep all other arguments + // unchanged. Each pagination token expires after 24 hours. Using an expired + // pagination token will return an HTTP 400 InvalidToken error. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListDevicesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListDevicesOutput) GoString() string { + return s.String() +} + +// SetDevices sets the Devices field's value. +func (s *ListDevicesOutput) SetDevices(v []*DeviceSummary) *ListDevicesOutput { + s.Devices = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDevicesOutput) SetNextToken(v string) *ListDevicesOutput { + s.NextToken = &v + return s +} + +type ListEnvironmentsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The maximum number of results that are returned per call. You can use nextToken + // to obtain further pages of results. + // + // This is only an upper limit. The actual number of results returned per call + // might be fewer than the specified maximum. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If nextToken is returned, there are more results available. The value of + // nextToken is a unique pagination token for each page. Make the call again + // using the returned token to retrieve the next page. Keep all other arguments + // unchanged. Each pagination token expires after 24 hours. Using an expired + // pagination token will return an HTTP 400 InvalidToken error. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEnvironmentsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEnvironmentsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListEnvironmentsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListEnvironmentsInput"} + if s.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 *ListEnvironmentsInput) SetMaxResults(v int64) *ListEnvironmentsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEnvironmentsInput) SetNextToken(v string) *ListEnvironmentsInput { + s.NextToken = &v + return s +} + +type ListEnvironmentsOutput struct { + _ struct{} `type:"structure"` + + // Describes environments. + Environments []*EnvironmentSummary `locationName:"environments" type:"list"` + + // If nextToken is returned, there are more results available. The value of + // nextToken is a unique pagination token for each page. Make the call again + // using the returned token to retrieve the next page. Keep all other arguments + // unchanged. Each pagination token expires after 24 hours. Using an expired + // pagination token will return an HTTP 400 InvalidToken error. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEnvironmentsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListEnvironmentsOutput) GoString() string { + return s.String() +} + +// SetEnvironments sets the Environments field's value. +func (s *ListEnvironmentsOutput) SetEnvironments(v []*EnvironmentSummary) *ListEnvironmentsOutput { + s.Environments = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEnvironmentsOutput) SetNextToken(v string) *ListEnvironmentsOutput { + s.NextToken = &v + return s +} + +type ListSoftwareSetsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The maximum number of results that are returned per call. You can use nextToken + // to obtain further pages of results. + // + // This is only an upper limit. The actual number of results returned per call + // might be fewer than the specified maximum. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If nextToken is returned, there are more results available. The value of + // nextToken is a unique pagination token for each page. Make the call again + // using the returned token to retrieve the next page. Keep all other arguments + // unchanged. Each pagination token expires after 24 hours. Using an expired + // pagination token will return an HTTP 400 InvalidToken error. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSoftwareSetsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSoftwareSetsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListSoftwareSetsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListSoftwareSetsInput"} + 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 *ListSoftwareSetsInput) SetMaxResults(v int64) *ListSoftwareSetsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListSoftwareSetsInput) SetNextToken(v string) *ListSoftwareSetsInput { + s.NextToken = &v + return s +} + +type ListSoftwareSetsOutput struct { + _ struct{} `type:"structure"` + + // If nextToken is returned, there are more results available. The value of + // nextToken is a unique pagination token for each page. Make the call again + // using the returned token to retrieve the next page. Keep all other arguments + // unchanged. Each pagination token expires after 24 hours. Using an expired + // pagination token will return an HTTP 400 InvalidToken error. + NextToken *string `locationName:"nextToken" type:"string"` + + // Describes software sets. + SoftwareSets []*SoftwareSetSummary `locationName:"softwareSets" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSoftwareSetsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListSoftwareSetsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListSoftwareSetsOutput) SetNextToken(v string) *ListSoftwareSetsOutput { + s.NextToken = &v + return s +} + +// SetSoftwareSets sets the SoftwareSets field's value. +func (s *ListSoftwareSetsOutput) SetSoftwareSets(v []*SoftwareSetSummary) *ListSoftwareSetsOutput { + s.SoftwareSets = v + return s +} + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The Amazon Resource Name (ARN) of the resource for which you want to retrieve + // tags. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // A map of the key-value pairs for the tag or tags assigned to the specified + // resource. + // + // Tags is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ListTagsForResourceOutput's + // String and GoString methods. + Tags map[string]*string `locationName:"tags" type:"map" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +// Describes the maintenance window for a thin client device. +type MaintenanceWindow struct { + _ struct{} `type:"structure"` + + // The option to set the maintenance window during the device local time or + // Universal Coordinated Time (UTC). + ApplyTimeOf *string `locationName:"applyTimeOf" type:"string" enum:"ApplyTimeOf"` + + // The days of the week during which the maintenance window is open. + DaysOfTheWeek []*string `locationName:"daysOfTheWeek" min:"1" type:"list" enum:"DayOfWeek"` + + // The hour for the maintenance window end (00-23). + EndTimeHour *int64 `locationName:"endTimeHour" type:"integer"` + + // The minutes for the maintenance window end (00-59). + EndTimeMinute *int64 `locationName:"endTimeMinute" type:"integer"` + + // The hour for the maintenance window start (00-23). + StartTimeHour *int64 `locationName:"startTimeHour" type:"integer"` + + // The minutes past the hour for the maintenance window start (00-59). + StartTimeMinute *int64 `locationName:"startTimeMinute" type:"integer"` + + // An option to select the default or custom maintenance window. + Type *string `locationName:"type" type:"string" enum:"MaintenanceWindowType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MaintenanceWindow) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MaintenanceWindow) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MaintenanceWindow) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MaintenanceWindow"} + if s.DaysOfTheWeek != nil && len(s.DaysOfTheWeek) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DaysOfTheWeek", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplyTimeOf sets the ApplyTimeOf field's value. +func (s *MaintenanceWindow) SetApplyTimeOf(v string) *MaintenanceWindow { + s.ApplyTimeOf = &v + return s +} + +// SetDaysOfTheWeek sets the DaysOfTheWeek field's value. +func (s *MaintenanceWindow) SetDaysOfTheWeek(v []*string) *MaintenanceWindow { + s.DaysOfTheWeek = v + return s +} + +// SetEndTimeHour sets the EndTimeHour field's value. +func (s *MaintenanceWindow) SetEndTimeHour(v int64) *MaintenanceWindow { + s.EndTimeHour = &v + return s +} + +// SetEndTimeMinute sets the EndTimeMinute field's value. +func (s *MaintenanceWindow) SetEndTimeMinute(v int64) *MaintenanceWindow { + s.EndTimeMinute = &v + return s +} + +// SetStartTimeHour sets the StartTimeHour field's value. +func (s *MaintenanceWindow) SetStartTimeHour(v int64) *MaintenanceWindow { + s.StartTimeHour = &v + return s +} + +// SetStartTimeMinute sets the StartTimeMinute field's value. +func (s *MaintenanceWindow) SetStartTimeMinute(v int64) *MaintenanceWindow { + s.StartTimeMinute = &v + return s +} + +// SetType sets the Type field's value. +func (s *MaintenanceWindow) SetType(v string) *MaintenanceWindow { + s.Type = &v + return s +} + +// The resource specified in the request was not found. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The ID of the resource associated with the request. + ResourceId *string `locationName:"resourceId" type:"string"` + + // The type of the resource associated with the request. + ResourceType *string `locationName:"resourceType" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Your request exceeds a service quota. +type ServiceQuotaExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The code for the quota in Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html). + QuotaCode *string `locationName:"quotaCode" type:"string"` + + // The ID of the resource that exceeds the service quota. + ResourceId *string `locationName:"resourceId" type:"string"` + + // The type of the resource that exceeds the service quota. + ResourceType *string `locationName:"resourceType" type:"string"` + + // The code for the service in Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html). + ServiceCode *string `locationName:"serviceCode" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceQuotaExceededException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServiceQuotaExceededException) GoString() string { + return s.String() +} + +func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error { + return &ServiceQuotaExceededException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ServiceQuotaExceededException) Code() string { + return "ServiceQuotaExceededException" +} + +// Message returns the exception's message. +func (s *ServiceQuotaExceededException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceQuotaExceededException) OrigErr() error { + return nil +} + +func (s *ServiceQuotaExceededException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceQuotaExceededException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServiceQuotaExceededException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Describes software. +type Software struct { + _ struct{} `type:"structure"` + + // The name of the software component. + Name *string `locationName:"name" type:"string"` + + // The version of the software component. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Software) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Software) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *Software) SetName(v string) *Software { + s.Name = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *Software) SetVersion(v string) *Software { + s.Version = &v + return s +} + +// Describes a software set. +type SoftwareSet struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the software set. + Arn *string `locationName:"arn" min:"20" type:"string"` + + // The ID of the software set. + Id *string `locationName:"id" type:"string"` + + // The timestamp of when the software set was released. + ReleasedAt *time.Time `locationName:"releasedAt" type:"timestamp"` + + // A list of the software components in the software set. + Software []*Software `locationName:"software" type:"list"` + + // The timestamp of the end of support for the software set. + SupportedUntil *time.Time `locationName:"supportedUntil" type:"timestamp"` + + // An option to define if the software set has been validated. + ValidationStatus *string `locationName:"validationStatus" type:"string" enum:"SoftwareSetValidationStatus"` + + // The version of the software set. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SoftwareSet) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SoftwareSet) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *SoftwareSet) SetArn(v string) *SoftwareSet { + s.Arn = &v + return s +} + +// SetId sets the Id field's value. +func (s *SoftwareSet) SetId(v string) *SoftwareSet { + s.Id = &v + return s +} + +// SetReleasedAt sets the ReleasedAt field's value. +func (s *SoftwareSet) SetReleasedAt(v time.Time) *SoftwareSet { + s.ReleasedAt = &v + return s +} + +// SetSoftware sets the Software field's value. +func (s *SoftwareSet) SetSoftware(v []*Software) *SoftwareSet { + s.Software = v + return s +} + +// SetSupportedUntil sets the SupportedUntil field's value. +func (s *SoftwareSet) SetSupportedUntil(v time.Time) *SoftwareSet { + s.SupportedUntil = &v + return s +} + +// SetValidationStatus sets the ValidationStatus field's value. +func (s *SoftwareSet) SetValidationStatus(v string) *SoftwareSet { + s.ValidationStatus = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *SoftwareSet) SetVersion(v string) *SoftwareSet { + s.Version = &v + return s +} + +// Describes a software set. +type SoftwareSetSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the software set. + Arn *string `locationName:"arn" min:"20" type:"string"` + + // The ID of the software set. + Id *string `locationName:"id" type:"string"` + + // The timestamp of when the software set was released. + ReleasedAt *time.Time `locationName:"releasedAt" type:"timestamp"` + + // The timestamp of the end of support for the software set. + SupportedUntil *time.Time `locationName:"supportedUntil" type:"timestamp"` + + // An option to define if the software set has been validated. + ValidationStatus *string `locationName:"validationStatus" type:"string" enum:"SoftwareSetValidationStatus"` + + // The version of the software set. + Version *string `locationName:"version" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SoftwareSetSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SoftwareSetSummary) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *SoftwareSetSummary) SetArn(v string) *SoftwareSetSummary { + s.Arn = &v + return s +} + +// SetId sets the Id field's value. +func (s *SoftwareSetSummary) SetId(v string) *SoftwareSetSummary { + s.Id = &v + return s +} + +// SetReleasedAt sets the ReleasedAt field's value. +func (s *SoftwareSetSummary) SetReleasedAt(v time.Time) *SoftwareSetSummary { + s.ReleasedAt = &v + return s +} + +// SetSupportedUntil sets the SupportedUntil field's value. +func (s *SoftwareSetSummary) SetSupportedUntil(v time.Time) *SoftwareSetSummary { + s.SupportedUntil = &v + return s +} + +// SetValidationStatus sets the ValidationStatus field's value. +func (s *SoftwareSetSummary) SetValidationStatus(v string) *SoftwareSetSummary { + s.ValidationStatus = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *SoftwareSetSummary) SetVersion(v string) *SoftwareSetSummary { + s.Version = &v + return s +} + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource that you want to tag. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // A map of the key-value pairs of the tag or tags to assign to the resource. + // + // Tags is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by TagResourceInput's + // String and GoString methods. + // + // Tags is a required field + Tags map[string]*string `locationName:"tags" type:"map" required:"true" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { + s.Tags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TagResourceOutput) GoString() string { + return s.String() +} + +// The request was denied due to request throttling. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` + + // The code for the quota in Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html). + QuotaCode *string `locationName:"quotaCode" type:"string"` + + // The number of seconds to wait before retrying the next request. + RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"` + + // The code for the service in Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html). + ServiceCode *string `locationName:"serviceCode" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +type UntagResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The Amazon Resource Name (ARN) of the resource that you want to untag. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` + + // The keys of the key-value pairs for the tag or tags you want to remove from + // the specified resource. + // + // TagKeys is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UntagResourceInput's + // String and GoString methods. + // + // TagKeys is a required field + TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTagKeys sets the TagKeys field's value. +func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { + s.TagKeys = v + return s +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UntagResourceOutput) GoString() string { + return s.String() +} + +type UpdateDeviceInput struct { + _ struct{} `type:"structure"` + + // The ID of the software set to apply. + DesiredSoftwareSetId *string `locationName:"desiredSoftwareSetId" type:"string"` + + // The ID of the device to update. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the Key Management Service key to use for + // the update. + KmsKeyArn *string `locationName:"kmsKeyArn" min:"20" type:"string"` + + // The name of the device to update. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateDeviceInput's + // String and GoString methods. + Name *string `locationName:"name" type:"string" sensitive:"true"` + + // An option to define if software updates should be applied within a maintenance + // window. + SoftwareSetUpdateSchedule *string `locationName:"softwareSetUpdateSchedule" type:"string" enum:"SoftwareSetUpdateSchedule"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateDeviceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateDeviceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDeviceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateDeviceInput"} + 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.KmsKeyArn != nil && len(*s.KmsKeyArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDesiredSoftwareSetId sets the DesiredSoftwareSetId field's value. +func (s *UpdateDeviceInput) SetDesiredSoftwareSetId(v string) *UpdateDeviceInput { + s.DesiredSoftwareSetId = &v + return s +} + +// SetId sets the Id field's value. +func (s *UpdateDeviceInput) SetId(v string) *UpdateDeviceInput { + s.Id = &v + return s +} + +// SetKmsKeyArn sets the KmsKeyArn field's value. +func (s *UpdateDeviceInput) SetKmsKeyArn(v string) *UpdateDeviceInput { + s.KmsKeyArn = &v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateDeviceInput) SetName(v string) *UpdateDeviceInput { + s.Name = &v + return s +} + +// SetSoftwareSetUpdateSchedule sets the SoftwareSetUpdateSchedule field's value. +func (s *UpdateDeviceInput) SetSoftwareSetUpdateSchedule(v string) *UpdateDeviceInput { + s.SoftwareSetUpdateSchedule = &v + return s +} + +type UpdateDeviceOutput struct { + _ struct{} `type:"structure"` + + // Describes a device. + Device *DeviceSummary `locationName:"device" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateDeviceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateDeviceOutput) GoString() string { + return s.String() +} + +// SetDevice sets the Device field's value. +func (s *UpdateDeviceOutput) SetDevice(v *DeviceSummary) *UpdateDeviceOutput { + s.Device = v + return s +} + +type UpdateEnvironmentInput struct { + _ struct{} `type:"structure"` + + // The ID of the software set to apply. + DesiredSoftwareSetId *string `locationName:"desiredSoftwareSetId" type:"string"` + + // The Amazon Resource Name (ARN) of the desktop to stream from Amazon WorkSpaces, + // WorkSpaces Web, or AppStream 2.0. + DesktopArn *string `locationName:"desktopArn" min:"20" type:"string"` + + // The URL for the identity provider login (only for environments that use AppStream + // 2.0). + // + // DesktopEndpoint is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateEnvironmentInput's + // String and GoString methods. + DesktopEndpoint *string `locationName:"desktopEndpoint" min:"1" type:"string" sensitive:"true"` + + // The ID of the environment to update. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` + + // A specification for a time window to apply software updates. + MaintenanceWindow *MaintenanceWindow `locationName:"maintenanceWindow" type:"structure"` + + // The name of the environment to update. + // + // Name is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateEnvironmentInput's + // String and GoString methods. + Name *string `locationName:"name" type:"string" sensitive:"true"` + + // An option to define which software updates to apply. + SoftwareSetUpdateMode *string `locationName:"softwareSetUpdateMode" type:"string" enum:"SoftwareSetUpdateMode"` + + // An option to define if software updates should be applied within a maintenance + // window. + SoftwareSetUpdateSchedule *string `locationName:"softwareSetUpdateSchedule" type:"string" enum:"SoftwareSetUpdateSchedule"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEnvironmentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateEnvironmentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateEnvironmentInput"} + if s.DesktopArn != nil && len(*s.DesktopArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("DesktopArn", 20)) + } + if s.DesktopEndpoint != nil && len(*s.DesktopEndpoint) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DesktopEndpoint", 1)) + } + 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.MaintenanceWindow != nil { + if err := s.MaintenanceWindow.Validate(); err != nil { + invalidParams.AddNested("MaintenanceWindow", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDesiredSoftwareSetId sets the DesiredSoftwareSetId field's value. +func (s *UpdateEnvironmentInput) SetDesiredSoftwareSetId(v string) *UpdateEnvironmentInput { + s.DesiredSoftwareSetId = &v + return s +} + +// SetDesktopArn sets the DesktopArn field's value. +func (s *UpdateEnvironmentInput) SetDesktopArn(v string) *UpdateEnvironmentInput { + s.DesktopArn = &v + return s +} + +// SetDesktopEndpoint sets the DesktopEndpoint field's value. +func (s *UpdateEnvironmentInput) SetDesktopEndpoint(v string) *UpdateEnvironmentInput { + s.DesktopEndpoint = &v + return s +} + +// SetId sets the Id field's value. +func (s *UpdateEnvironmentInput) SetId(v string) *UpdateEnvironmentInput { + s.Id = &v + return s +} + +// SetMaintenanceWindow sets the MaintenanceWindow field's value. +func (s *UpdateEnvironmentInput) SetMaintenanceWindow(v *MaintenanceWindow) *UpdateEnvironmentInput { + s.MaintenanceWindow = v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateEnvironmentInput) SetName(v string) *UpdateEnvironmentInput { + s.Name = &v + return s +} + +// SetSoftwareSetUpdateMode sets the SoftwareSetUpdateMode field's value. +func (s *UpdateEnvironmentInput) SetSoftwareSetUpdateMode(v string) *UpdateEnvironmentInput { + s.SoftwareSetUpdateMode = &v + return s +} + +// SetSoftwareSetUpdateSchedule sets the SoftwareSetUpdateSchedule field's value. +func (s *UpdateEnvironmentInput) SetSoftwareSetUpdateSchedule(v string) *UpdateEnvironmentInput { + s.SoftwareSetUpdateSchedule = &v + return s +} + +type UpdateEnvironmentOutput struct { + _ struct{} `type:"structure"` + + // Describes an environment. + Environment *EnvironmentSummary `locationName:"environment" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateEnvironmentOutput) GoString() string { + return s.String() +} + +// SetEnvironment sets the Environment field's value. +func (s *UpdateEnvironmentOutput) SetEnvironment(v *EnvironmentSummary) *UpdateEnvironmentOutput { + s.Environment = v + return s +} + +type UpdateSoftwareSetInput struct { + _ struct{} `type:"structure"` + + // The ID of the software set to update. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` + + // An option to define if the software set has been validated. + // + // ValidationStatus is a required field + ValidationStatus *string `locationName:"validationStatus" type:"string" required:"true" enum:"SoftwareSetValidationStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSoftwareSetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSoftwareSetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateSoftwareSetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateSoftwareSetInput"} + 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.ValidationStatus == nil { + invalidParams.Add(request.NewErrParamRequired("ValidationStatus")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *UpdateSoftwareSetInput) SetId(v string) *UpdateSoftwareSetInput { + s.Id = &v + return s +} + +// SetValidationStatus sets the ValidationStatus field's value. +func (s *UpdateSoftwareSetInput) SetValidationStatus(v string) *UpdateSoftwareSetInput { + s.ValidationStatus = &v + return s +} + +type UpdateSoftwareSetOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSoftwareSetOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateSoftwareSetOutput) GoString() string { + return s.String() +} + +// The input fails to satisfy the specified constraints. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // A list of fields that didn't validate. + FieldList []*ValidationExceptionField `locationName:"fieldList" type:"list"` + + Message_ *string `locationName:"message" type:"string"` + + // The reason for the exception. + Reason *string `locationName:"reason" type:"string" enum:"ValidationExceptionReason"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationException) GoString() string { + return s.String() +} + +func newErrorValidationException(v protocol.ResponseMetadata) error { + return &ValidationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ValidationException) Code() string { + return "ValidationException" +} + +// Message returns the exception's message. +func (s *ValidationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ValidationException) OrigErr() error { + return nil +} + +func (s *ValidationException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ValidationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ValidationException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Describes a validation exception. +type ValidationExceptionField struct { + _ struct{} `type:"structure"` + + // A message that describes the reason for the exception. + // + // Message is a required field + Message *string `locationName:"message" type:"string" required:"true"` + + // The name of the exception. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationExceptionField) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ValidationExceptionField) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *ValidationExceptionField) SetMessage(v string) *ValidationExceptionField { + s.Message = &v + return s +} + +// SetName sets the Name field's value. +func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField { + s.Name = &v + return s +} + +const ( + // ApplyTimeOfUtc is a ApplyTimeOf enum value + ApplyTimeOfUtc = "UTC" + + // ApplyTimeOfDevice is a ApplyTimeOf enum value + ApplyTimeOfDevice = "DEVICE" +) + +// ApplyTimeOf_Values returns all elements of the ApplyTimeOf enum +func ApplyTimeOf_Values() []string { + return []string{ + ApplyTimeOfUtc, + ApplyTimeOfDevice, + } +} + +const ( + // DayOfWeekMonday is a DayOfWeek enum value + DayOfWeekMonday = "MONDAY" + + // DayOfWeekTuesday is a DayOfWeek enum value + DayOfWeekTuesday = "TUESDAY" + + // DayOfWeekWednesday is a DayOfWeek enum value + DayOfWeekWednesday = "WEDNESDAY" + + // DayOfWeekThursday is a DayOfWeek enum value + DayOfWeekThursday = "THURSDAY" + + // DayOfWeekFriday is a DayOfWeek enum value + DayOfWeekFriday = "FRIDAY" + + // DayOfWeekSaturday is a DayOfWeek enum value + DayOfWeekSaturday = "SATURDAY" + + // DayOfWeekSunday is a DayOfWeek enum value + DayOfWeekSunday = "SUNDAY" +) + +// DayOfWeek_Values returns all elements of the DayOfWeek enum +func DayOfWeek_Values() []string { + return []string{ + DayOfWeekMonday, + DayOfWeekTuesday, + DayOfWeekWednesday, + DayOfWeekThursday, + DayOfWeekFriday, + DayOfWeekSaturday, + DayOfWeekSunday, + } +} + +const ( + // DesktopTypeWorkspaces is a DesktopType enum value + DesktopTypeWorkspaces = "workspaces" + + // DesktopTypeAppstream is a DesktopType enum value + DesktopTypeAppstream = "appstream" + + // DesktopTypeWorkspacesWeb is a DesktopType enum value + DesktopTypeWorkspacesWeb = "workspaces-web" +) + +// DesktopType_Values returns all elements of the DesktopType enum +func DesktopType_Values() []string { + return []string{ + DesktopTypeWorkspaces, + DesktopTypeAppstream, + DesktopTypeWorkspacesWeb, + } +} + +const ( + // DeviceSoftwareSetComplianceStatusNone is a DeviceSoftwareSetComplianceStatus enum value + DeviceSoftwareSetComplianceStatusNone = "NONE" + + // DeviceSoftwareSetComplianceStatusCompliant is a DeviceSoftwareSetComplianceStatus enum value + DeviceSoftwareSetComplianceStatusCompliant = "COMPLIANT" + + // DeviceSoftwareSetComplianceStatusNotCompliant is a DeviceSoftwareSetComplianceStatus enum value + DeviceSoftwareSetComplianceStatusNotCompliant = "NOT_COMPLIANT" +) + +// DeviceSoftwareSetComplianceStatus_Values returns all elements of the DeviceSoftwareSetComplianceStatus enum +func DeviceSoftwareSetComplianceStatus_Values() []string { + return []string{ + DeviceSoftwareSetComplianceStatusNone, + DeviceSoftwareSetComplianceStatusCompliant, + DeviceSoftwareSetComplianceStatusNotCompliant, + } +} + +const ( + // DeviceStatusRegistered is a DeviceStatus enum value + DeviceStatusRegistered = "REGISTERED" + + // DeviceStatusDeregistering is a DeviceStatus enum value + DeviceStatusDeregistering = "DEREGISTERING" + + // DeviceStatusDeregistered is a DeviceStatus enum value + DeviceStatusDeregistered = "DEREGISTERED" + + // DeviceStatusArchived is a DeviceStatus enum value + DeviceStatusArchived = "ARCHIVED" +) + +// DeviceStatus_Values returns all elements of the DeviceStatus enum +func DeviceStatus_Values() []string { + return []string{ + DeviceStatusRegistered, + DeviceStatusDeregistering, + DeviceStatusDeregistered, + DeviceStatusArchived, + } +} + +const ( + // EnvironmentSoftwareSetComplianceStatusNoRegisteredDevices is a EnvironmentSoftwareSetComplianceStatus enum value + EnvironmentSoftwareSetComplianceStatusNoRegisteredDevices = "NO_REGISTERED_DEVICES" + + // EnvironmentSoftwareSetComplianceStatusCompliant is a EnvironmentSoftwareSetComplianceStatus enum value + EnvironmentSoftwareSetComplianceStatusCompliant = "COMPLIANT" + + // EnvironmentSoftwareSetComplianceStatusNotCompliant is a EnvironmentSoftwareSetComplianceStatus enum value + EnvironmentSoftwareSetComplianceStatusNotCompliant = "NOT_COMPLIANT" +) + +// EnvironmentSoftwareSetComplianceStatus_Values returns all elements of the EnvironmentSoftwareSetComplianceStatus enum +func EnvironmentSoftwareSetComplianceStatus_Values() []string { + return []string{ + EnvironmentSoftwareSetComplianceStatusNoRegisteredDevices, + EnvironmentSoftwareSetComplianceStatusCompliant, + EnvironmentSoftwareSetComplianceStatusNotCompliant, + } +} + +const ( + // MaintenanceWindowTypeSystem is a MaintenanceWindowType enum value + MaintenanceWindowTypeSystem = "SYSTEM" + + // MaintenanceWindowTypeCustom is a MaintenanceWindowType enum value + MaintenanceWindowTypeCustom = "CUSTOM" +) + +// MaintenanceWindowType_Values returns all elements of the MaintenanceWindowType enum +func MaintenanceWindowType_Values() []string { + return []string{ + MaintenanceWindowTypeSystem, + MaintenanceWindowTypeCustom, + } +} + +const ( + // SoftwareSetUpdateModeUseLatest is a SoftwareSetUpdateMode enum value + SoftwareSetUpdateModeUseLatest = "USE_LATEST" + + // SoftwareSetUpdateModeUseDesired is a SoftwareSetUpdateMode enum value + SoftwareSetUpdateModeUseDesired = "USE_DESIRED" +) + +// SoftwareSetUpdateMode_Values returns all elements of the SoftwareSetUpdateMode enum +func SoftwareSetUpdateMode_Values() []string { + return []string{ + SoftwareSetUpdateModeUseLatest, + SoftwareSetUpdateModeUseDesired, + } +} + +const ( + // SoftwareSetUpdateScheduleUseMaintenanceWindow is a SoftwareSetUpdateSchedule enum value + SoftwareSetUpdateScheduleUseMaintenanceWindow = "USE_MAINTENANCE_WINDOW" + + // SoftwareSetUpdateScheduleApplyImmediately is a SoftwareSetUpdateSchedule enum value + SoftwareSetUpdateScheduleApplyImmediately = "APPLY_IMMEDIATELY" +) + +// SoftwareSetUpdateSchedule_Values returns all elements of the SoftwareSetUpdateSchedule enum +func SoftwareSetUpdateSchedule_Values() []string { + return []string{ + SoftwareSetUpdateScheduleUseMaintenanceWindow, + SoftwareSetUpdateScheduleApplyImmediately, + } +} + +const ( + // SoftwareSetUpdateStatusAvailable is a SoftwareSetUpdateStatus enum value + SoftwareSetUpdateStatusAvailable = "AVAILABLE" + + // SoftwareSetUpdateStatusInProgress is a SoftwareSetUpdateStatus enum value + SoftwareSetUpdateStatusInProgress = "IN_PROGRESS" + + // SoftwareSetUpdateStatusUpToDate is a SoftwareSetUpdateStatus enum value + SoftwareSetUpdateStatusUpToDate = "UP_TO_DATE" +) + +// SoftwareSetUpdateStatus_Values returns all elements of the SoftwareSetUpdateStatus enum +func SoftwareSetUpdateStatus_Values() []string { + return []string{ + SoftwareSetUpdateStatusAvailable, + SoftwareSetUpdateStatusInProgress, + SoftwareSetUpdateStatusUpToDate, + } +} + +const ( + // SoftwareSetValidationStatusValidated is a SoftwareSetValidationStatus enum value + SoftwareSetValidationStatusValidated = "VALIDATED" + + // SoftwareSetValidationStatusNotValidated is a SoftwareSetValidationStatus enum value + SoftwareSetValidationStatusNotValidated = "NOT_VALIDATED" +) + +// SoftwareSetValidationStatus_Values returns all elements of the SoftwareSetValidationStatus enum +func SoftwareSetValidationStatus_Values() []string { + return []string{ + SoftwareSetValidationStatusValidated, + SoftwareSetValidationStatusNotValidated, + } +} + +const ( + // TargetDeviceStatusDeregistered is a TargetDeviceStatus enum value + TargetDeviceStatusDeregistered = "DEREGISTERED" + + // TargetDeviceStatusArchived is a TargetDeviceStatus enum value + TargetDeviceStatusArchived = "ARCHIVED" +) + +// TargetDeviceStatus_Values returns all elements of the TargetDeviceStatus enum +func TargetDeviceStatus_Values() []string { + return []string{ + TargetDeviceStatusDeregistered, + TargetDeviceStatusArchived, + } +} + +const ( + // ValidationExceptionReasonUnknownOperation is a ValidationExceptionReason enum value + ValidationExceptionReasonUnknownOperation = "unknownOperation" + + // ValidationExceptionReasonCannotParse is a ValidationExceptionReason enum value + ValidationExceptionReasonCannotParse = "cannotParse" + + // ValidationExceptionReasonFieldValidationFailed is a ValidationExceptionReason enum value + ValidationExceptionReasonFieldValidationFailed = "fieldValidationFailed" + + // ValidationExceptionReasonOther is a ValidationExceptionReason enum value + ValidationExceptionReasonOther = "other" +) + +// ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum +func ValidationExceptionReason_Values() []string { + return []string{ + ValidationExceptionReasonUnknownOperation, + ValidationExceptionReasonCannotParse, + ValidationExceptionReasonFieldValidationFailed, + ValidationExceptionReasonOther, + } +} diff --git a/service/workspacesthinclient/doc.go b/service/workspacesthinclient/doc.go new file mode 100644 index 00000000000..d66fd4fa938 --- /dev/null +++ b/service/workspacesthinclient/doc.go @@ -0,0 +1,43 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package workspacesthinclient provides the client and types for making API +// requests to Amazon WorkSpaces Thin Client. +// +// Amazon WorkSpaces Thin Client is a affordable device built to work with Amazon +// Web Services End User Computing (EUC) virtual desktops to provide users with +// a complete cloud desktop solution. WorkSpaces Thin Client is a compact device +// designed to connect up to two monitors and USB devices like a keyboard, mouse, +// headset, and webcam. To maximize endpoint security, WorkSpaces Thin Client +// devices do not allow local data storage or installation of unapproved applications. +// The WorkSpaces Thin Client device ships preloaded with device management +// software. +// +// You can use these APIs to complete WorkSpaces Thin Client tasks, such as +// creating environments or viewing devices. For more information about WorkSpaces +// Thin Client, including the required permissions to use the service, see the +// Amazon WorkSpaces Thin Client Administrator Guide (https://docs.aws.amazon.com/workspaces-thin-client/latest/ag/). +// For more information about using the Command Line Interface (CLI) to manage +// your WorkSpaces Thin Client resources, see the WorkSpaces Thin Client section +// of the CLI Reference (https://docs.aws.amazon.com/cli/latest/reference/workspaces-thin-client/index.html). +// +// See https://docs.aws.amazon.com/goto/WebAPI/workspaces-thin-client-2023-08-22 for more information on this service. +// +// See workspacesthinclient package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/workspacesthinclient/ +// +// # Using the Client +// +// To contact Amazon WorkSpaces Thin Client with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon WorkSpaces Thin Client client WorkSpacesThinClient for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/workspacesthinclient/#New +package workspacesthinclient diff --git a/service/workspacesthinclient/errors.go b/service/workspacesthinclient/errors.go new file mode 100644 index 00000000000..4180fb64a6e --- /dev/null +++ b/service/workspacesthinclient/errors.go @@ -0,0 +1,71 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package workspacesthinclient + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // The requested operation would cause a conflict with the current state of + // a service resource associated with the request. Resolve the conflict before + // retrying this request. + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // The server encountered an internal error and is unable to complete the request. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeInternalServiceException for service response error code + // "InternalServiceException". + // + // Request processing failed due to some unknown error, exception, or failure. + ErrCodeInternalServiceException = "InternalServiceException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The resource specified in the request was not found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // Your request exceeds a service quota. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input fails to satisfy the specified constraints. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "ConflictException": newErrorConflictException, + "InternalServerException": newErrorInternalServerException, + "InternalServiceException": newErrorInternalServiceException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "ThrottlingException": newErrorThrottlingException, + "ValidationException": newErrorValidationException, +} diff --git a/service/workspacesthinclient/service.go b/service/workspacesthinclient/service.go new file mode 100644 index 00000000000..eeb65867db3 --- /dev/null +++ b/service/workspacesthinclient/service.go @@ -0,0 +1,106 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package workspacesthinclient + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// WorkSpacesThinClient provides the API operation methods for making requests to +// Amazon WorkSpaces Thin Client. See this package's package overview docs +// for details on the service. +// +// WorkSpacesThinClient methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type WorkSpacesThinClient struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "WorkSpaces Thin Client" // Name of service. + EndpointsID = "thinclient" // ID to lookup a service endpoint with. + ServiceID = "WorkSpaces Thin Client" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the WorkSpacesThinClient client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a WorkSpacesThinClient client from just a session. +// svc := workspacesthinclient.New(mySession) +// +// // Create a WorkSpacesThinClient client with additional configuration +// svc := workspacesthinclient.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *WorkSpacesThinClient { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "thinclient" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *WorkSpacesThinClient { + svc := &WorkSpacesThinClient{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2023-08-22", + ResolvedRegion: resolvedRegion, + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a WorkSpacesThinClient operation and runs any +// custom request initialization. +func (c *WorkSpacesThinClient) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/workspacesthinclient/workspacesthinclientiface/interface.go b/service/workspacesthinclient/workspacesthinclientiface/interface.go new file mode 100644 index 00000000000..d880a0aecb3 --- /dev/null +++ b/service/workspacesthinclient/workspacesthinclientiface/interface.go @@ -0,0 +1,137 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package workspacesthinclientiface provides an interface to enable mocking the Amazon WorkSpaces Thin Client service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package workspacesthinclientiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/workspacesthinclient" +) + +// WorkSpacesThinClientAPI provides an interface to enable mocking the +// workspacesthinclient.WorkSpacesThinClient service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon WorkSpaces Thin Client. +// func myFunc(svc workspacesthinclientiface.WorkSpacesThinClientAPI) bool { +// // Make svc.CreateEnvironment request +// } +// +// func main() { +// sess := session.New() +// svc := workspacesthinclient.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockWorkSpacesThinClientClient struct { +// workspacesthinclientiface.WorkSpacesThinClientAPI +// } +// func (m *mockWorkSpacesThinClientClient) CreateEnvironment(input *workspacesthinclient.CreateEnvironmentInput) (*workspacesthinclient.CreateEnvironmentOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockWorkSpacesThinClientClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type WorkSpacesThinClientAPI interface { + CreateEnvironment(*workspacesthinclient.CreateEnvironmentInput) (*workspacesthinclient.CreateEnvironmentOutput, error) + CreateEnvironmentWithContext(aws.Context, *workspacesthinclient.CreateEnvironmentInput, ...request.Option) (*workspacesthinclient.CreateEnvironmentOutput, error) + CreateEnvironmentRequest(*workspacesthinclient.CreateEnvironmentInput) (*request.Request, *workspacesthinclient.CreateEnvironmentOutput) + + DeleteDevice(*workspacesthinclient.DeleteDeviceInput) (*workspacesthinclient.DeleteDeviceOutput, error) + DeleteDeviceWithContext(aws.Context, *workspacesthinclient.DeleteDeviceInput, ...request.Option) (*workspacesthinclient.DeleteDeviceOutput, error) + DeleteDeviceRequest(*workspacesthinclient.DeleteDeviceInput) (*request.Request, *workspacesthinclient.DeleteDeviceOutput) + + DeleteEnvironment(*workspacesthinclient.DeleteEnvironmentInput) (*workspacesthinclient.DeleteEnvironmentOutput, error) + DeleteEnvironmentWithContext(aws.Context, *workspacesthinclient.DeleteEnvironmentInput, ...request.Option) (*workspacesthinclient.DeleteEnvironmentOutput, error) + DeleteEnvironmentRequest(*workspacesthinclient.DeleteEnvironmentInput) (*request.Request, *workspacesthinclient.DeleteEnvironmentOutput) + + DeregisterDevice(*workspacesthinclient.DeregisterDeviceInput) (*workspacesthinclient.DeregisterDeviceOutput, error) + DeregisterDeviceWithContext(aws.Context, *workspacesthinclient.DeregisterDeviceInput, ...request.Option) (*workspacesthinclient.DeregisterDeviceOutput, error) + DeregisterDeviceRequest(*workspacesthinclient.DeregisterDeviceInput) (*request.Request, *workspacesthinclient.DeregisterDeviceOutput) + + GetDevice(*workspacesthinclient.GetDeviceInput) (*workspacesthinclient.GetDeviceOutput, error) + GetDeviceWithContext(aws.Context, *workspacesthinclient.GetDeviceInput, ...request.Option) (*workspacesthinclient.GetDeviceOutput, error) + GetDeviceRequest(*workspacesthinclient.GetDeviceInput) (*request.Request, *workspacesthinclient.GetDeviceOutput) + + GetEnvironment(*workspacesthinclient.GetEnvironmentInput) (*workspacesthinclient.GetEnvironmentOutput, error) + GetEnvironmentWithContext(aws.Context, *workspacesthinclient.GetEnvironmentInput, ...request.Option) (*workspacesthinclient.GetEnvironmentOutput, error) + GetEnvironmentRequest(*workspacesthinclient.GetEnvironmentInput) (*request.Request, *workspacesthinclient.GetEnvironmentOutput) + + GetSoftwareSet(*workspacesthinclient.GetSoftwareSetInput) (*workspacesthinclient.GetSoftwareSetOutput, error) + GetSoftwareSetWithContext(aws.Context, *workspacesthinclient.GetSoftwareSetInput, ...request.Option) (*workspacesthinclient.GetSoftwareSetOutput, error) + GetSoftwareSetRequest(*workspacesthinclient.GetSoftwareSetInput) (*request.Request, *workspacesthinclient.GetSoftwareSetOutput) + + ListDevices(*workspacesthinclient.ListDevicesInput) (*workspacesthinclient.ListDevicesOutput, error) + ListDevicesWithContext(aws.Context, *workspacesthinclient.ListDevicesInput, ...request.Option) (*workspacesthinclient.ListDevicesOutput, error) + ListDevicesRequest(*workspacesthinclient.ListDevicesInput) (*request.Request, *workspacesthinclient.ListDevicesOutput) + + ListDevicesPages(*workspacesthinclient.ListDevicesInput, func(*workspacesthinclient.ListDevicesOutput, bool) bool) error + ListDevicesPagesWithContext(aws.Context, *workspacesthinclient.ListDevicesInput, func(*workspacesthinclient.ListDevicesOutput, bool) bool, ...request.Option) error + + ListEnvironments(*workspacesthinclient.ListEnvironmentsInput) (*workspacesthinclient.ListEnvironmentsOutput, error) + ListEnvironmentsWithContext(aws.Context, *workspacesthinclient.ListEnvironmentsInput, ...request.Option) (*workspacesthinclient.ListEnvironmentsOutput, error) + ListEnvironmentsRequest(*workspacesthinclient.ListEnvironmentsInput) (*request.Request, *workspacesthinclient.ListEnvironmentsOutput) + + ListEnvironmentsPages(*workspacesthinclient.ListEnvironmentsInput, func(*workspacesthinclient.ListEnvironmentsOutput, bool) bool) error + ListEnvironmentsPagesWithContext(aws.Context, *workspacesthinclient.ListEnvironmentsInput, func(*workspacesthinclient.ListEnvironmentsOutput, bool) bool, ...request.Option) error + + ListSoftwareSets(*workspacesthinclient.ListSoftwareSetsInput) (*workspacesthinclient.ListSoftwareSetsOutput, error) + ListSoftwareSetsWithContext(aws.Context, *workspacesthinclient.ListSoftwareSetsInput, ...request.Option) (*workspacesthinclient.ListSoftwareSetsOutput, error) + ListSoftwareSetsRequest(*workspacesthinclient.ListSoftwareSetsInput) (*request.Request, *workspacesthinclient.ListSoftwareSetsOutput) + + ListSoftwareSetsPages(*workspacesthinclient.ListSoftwareSetsInput, func(*workspacesthinclient.ListSoftwareSetsOutput, bool) bool) error + ListSoftwareSetsPagesWithContext(aws.Context, *workspacesthinclient.ListSoftwareSetsInput, func(*workspacesthinclient.ListSoftwareSetsOutput, bool) bool, ...request.Option) error + + ListTagsForResource(*workspacesthinclient.ListTagsForResourceInput) (*workspacesthinclient.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *workspacesthinclient.ListTagsForResourceInput, ...request.Option) (*workspacesthinclient.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*workspacesthinclient.ListTagsForResourceInput) (*request.Request, *workspacesthinclient.ListTagsForResourceOutput) + + TagResource(*workspacesthinclient.TagResourceInput) (*workspacesthinclient.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *workspacesthinclient.TagResourceInput, ...request.Option) (*workspacesthinclient.TagResourceOutput, error) + TagResourceRequest(*workspacesthinclient.TagResourceInput) (*request.Request, *workspacesthinclient.TagResourceOutput) + + UntagResource(*workspacesthinclient.UntagResourceInput) (*workspacesthinclient.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *workspacesthinclient.UntagResourceInput, ...request.Option) (*workspacesthinclient.UntagResourceOutput, error) + UntagResourceRequest(*workspacesthinclient.UntagResourceInput) (*request.Request, *workspacesthinclient.UntagResourceOutput) + + UpdateDevice(*workspacesthinclient.UpdateDeviceInput) (*workspacesthinclient.UpdateDeviceOutput, error) + UpdateDeviceWithContext(aws.Context, *workspacesthinclient.UpdateDeviceInput, ...request.Option) (*workspacesthinclient.UpdateDeviceOutput, error) + UpdateDeviceRequest(*workspacesthinclient.UpdateDeviceInput) (*request.Request, *workspacesthinclient.UpdateDeviceOutput) + + UpdateEnvironment(*workspacesthinclient.UpdateEnvironmentInput) (*workspacesthinclient.UpdateEnvironmentOutput, error) + UpdateEnvironmentWithContext(aws.Context, *workspacesthinclient.UpdateEnvironmentInput, ...request.Option) (*workspacesthinclient.UpdateEnvironmentOutput, error) + UpdateEnvironmentRequest(*workspacesthinclient.UpdateEnvironmentInput) (*request.Request, *workspacesthinclient.UpdateEnvironmentOutput) + + UpdateSoftwareSet(*workspacesthinclient.UpdateSoftwareSetInput) (*workspacesthinclient.UpdateSoftwareSetOutput, error) + UpdateSoftwareSetWithContext(aws.Context, *workspacesthinclient.UpdateSoftwareSetInput, ...request.Option) (*workspacesthinclient.UpdateSoftwareSetOutput, error) + UpdateSoftwareSetRequest(*workspacesthinclient.UpdateSoftwareSetInput) (*request.Request, *workspacesthinclient.UpdateSoftwareSetOutput) +} + +var _ WorkSpacesThinClientAPI = (*workspacesthinclient.WorkSpacesThinClient)(nil)