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.
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
.
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.
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.
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.
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.
New
- The finding is for newly-introduced access.
Unchanged
- The preview finding is an existing finding that would remain unchanged.
Changed
- The preview finding is an existing finding with a change in status.
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.
Contains information about an external access or unused access finding. Only one parameter can be used in a FindingDetails
object.
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.
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
.
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.
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.
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:
https://bcm-data-exports.us-east-1.api.aws
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.
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.
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.
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.
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.
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:
If your event selector includes read-only events, write-only events, or all events. This applies to both management events and data events.
If your event selector includes management events.
If your event selector includes data events, the resources on which you are logging data events.
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.
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.
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.
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
.
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
.
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.
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.
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.
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.
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.
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
.
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.
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.
The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken
value.
The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken
value.
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.
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.
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:
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.
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:
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.
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.
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.
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
.
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.
The name of the utilization metric.
The following utilization metrics are available:
VolumeReadOpsPerSecond
- The completed read operations per second from the volume in a specified period of time.
Unit: Count
VolumeWriteOpsPerSecond
- The completed write operations per second to the volume in a specified period of time.
Unit: Count
VolumeReadBytesPerSecond
- The bytes read per second from the volume in a specified period of time.
Unit: Bytes
VolumeWriteBytesPerSecond
- The bytes written to the volume in a specified period of time.
Unit: Bytes
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.
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.
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.
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.
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:
Hypervisor
— The hypervisor of the recommended instance type is different than that of the current instance. For example, the recommended instance type uses a Nitro hypervisor and the current instance uses a Xen hypervisor. The differences that you should consider between these hypervisors are covered in the Nitro Hypervisor section of the Amazon EC2 frequently asked questions. For more information, see Instances built on the Nitro System in the Amazon EC2 User Guide for Linux, or Instances built on the Nitro System in the Amazon EC2 User Guide for Windows.
NetworkInterface
— The network interface of the recommended instance type is different than that of the current instance. For example, the recommended instance type supports enhanced networking and the current instance might not. To enable enhanced networking for the recommended instance type, you must install the Elastic Network Adapter (ENA) driver or the Intel 82599 Virtual Function driver. For more information, see Networking and storage features and Enhanced networking on Linux in the Amazon EC2 User Guide for Linux, or Networking and storage features and Enhanced networking on Windows in the Amazon EC2 User Guide for Windows.
StorageInterface
— The storage interface of the recommended instance type is different than that of the current instance. For example, the recommended instance type uses an NVMe storage interface and the current instance does not. To access NVMe volumes for the recommended instance type, you will need to install or upgrade the NVMe driver. For more information, see Networking and storage features and Amazon EBS and NVMe on Linux instances in the Amazon EC2 User Guide for Linux, or Networking and storage features and Amazon EBS and NVMe on Windows instances in the Amazon EC2 User Guide for Windows.
InstanceStoreAvailability
— The recommended instance type does not support instance store volumes and the current instance does. Before migrating, you might need to back up the data on your instance store volumes if you want to preserve them. For more information, see How do I back up an instance store volume on my Amazon EC2 instance to Amazon EBS? in the Amazon Web Services Premium Support Knowledge Base. For more information, see Networking and storage features and Amazon EC2 instance store in the Amazon EC2 User Guide for Linux, or see Networking and storage features and Amazon EC2 instance store in the Amazon EC2 User Guide for Windows.
VirtualizationType
— The recommended instance type uses the hardware virtual machine (HVM) virtualization type and the current instance uses the paravirtual (PV) virtualization type. For more information about the differences between these virtualization types, see Linux AMI virtualization types in the Amazon EC2 User Guide for Linux, or Windows AMI virtualization types in the Amazon EC2 User Guide for Windows.
Architecture
— The CPU architecture between the recommended instance type and the current instance is different. For example, the recommended instance type might use an Arm CPU architecture and the current instance type might use a different one, such as x86. Before migrating, you should consider recompiling the software on your instance for the new architecture. Alternatively, you might switch to an Amazon Machine Image (AMI) that supports the new architecture. For more information about the CPU architecture for each instance type, see Amazon EC2 Instance Types.
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.
This preference is only available for the Amazon EC2 instance and Auto Scaling group resource types.
Compute Optimizer only supports the customization of Ec2InstanceTypes
.
The name of the preferred resource list.
", + "PreferredResource$name": "The type of preferred resource to customize.
Compute Optimizer only supports the customization of Ec2InstanceTypes
.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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
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
The configuration item status. The valid values are:
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
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
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 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 doesn't record resources of this type.
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 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 doesn't record resources of this type
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:
Asia Pacific (Hyderabad)
Asia Pacific (Melbourne)
Europe (Spain)
Europe (Zurich)
Israel (Tel Aviv)
Middle East (UAE)
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:
Asia Pacific (Hyderabad)
Asia Pacific (Melbourne)
Europe (Spain)
Europe (Zurich)
Israel (Tel Aviv)
Middle East (UAE)
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
.
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
.
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:
Asia Pacific (Hyderabad)
Asia Pacific (Melbourne)
Europe (Spain)
Europe (Zurich)
Israel (Tel Aviv)
Middle East (UAE)
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:
Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES
), or
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.
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)
Asia Pacific (Melbourne)
Europe (Spain)
Europe (Zurich)
Israel (Tel Aviv)
Middle East (UAE)
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:
Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES
), or
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.
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.
The name of the configuration recorder to be deleted. You can retrieve the name of your configuration recorder by using the DescribeConfigurationRecorders
action.
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:
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.
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.
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:
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
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.
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:
Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES
), or
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.
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.
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.
", + "refs": { + "ConfigurationRecorder$recordingMode": "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.
" + } + }, + "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.
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
Specifies the recording strategy of the configuration recorder.
", "refs": { - "RecordingGroup$recordingStrategy": "An object that specifies the recording strategy for the configuration recorder.
If you set the useOnly
field of RecordingStrategy 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 to true
. When Config adds support for a new regionally recorded resource type, Config automatically starts recording resources of that type.
If you set the useOnly
field of RecordingStrategy to INCLUSION_BY_RESOURCE_TYPES
, Config records configuration changes for only the resource types you specify in the resourceTypes
field of RecordingGroup.
If you set the useOnly
field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES
, Config records configuration changes for all supported resource types except the resource types that you specify to exclude from being recorded in the resourceTypes
field of ExclusionByResourceTypes.
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:
Asia Pacific (Hyderabad)
Asia Pacific (Melbourne)
Europe (Spain)
Europe (Zurich)
Israel (Tel Aviv)
Middle East (UAE)
An object that specifies the recording strategy for the configuration recorder.
If you set the useOnly
field of RecordingStrategy to ALL_SUPPORTED_RESOURCE_TYPES
, Config records configuration changes for all supported resource types, excluding the global IAM resource types. You also must set the allSupported
field of RecordingGroup 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 to INCLUSION_BY_RESOURCE_TYPES
, Config records configuration changes for only the resource types you specify in the resourceTypes
field of RecordingGroup.
If you set the useOnly
field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES
, Config records configuration changes for all supported resource types except the resource types that you specify to exclude from being recorded in the resourceTypes
field of ExclusionByResourceTypes.
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:
Asia Pacific (Hyderabad)
Asia Pacific (Melbourne)
Europe (Spain)
Europe (Zurich)
Israel (Tel Aviv)
Middle East (UAE)
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 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 in the Config developer guide.
If you set this option to INCLUSION_BY_RESOURCE_TYPES
, Config records configuration changes for only the resource types that you specify in the resourceTypes
field of RecordingGroup.
If you set this option to EXCLUSION_BY_RESOURCE_TYPES
, Config records configuration changes for all supported resource types, except the resource types that you specify to exclude from being recorded in the resourceTypes
field of ExclusionByResourceTypes.
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:
Asia Pacific (Hyderabad)
Asia Pacific (Melbourne)
Europe (Spain)
Europe (Zurich)
Israel (Tel Aviv)
Middle East (UAE)
The recording strategy for the configuration recorder.
If you set this option to ALL_SUPPORTED_RESOURCE_TYPES
, Config records configuration changes for all supported resource types, excluding the global IAM resource types. You also must set the allSupported
field of RecordingGroup 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 in the Config developer guide.
If you set this option to INCLUSION_BY_RESOURCE_TYPES
, Config records configuration changes for only the resource types that you specify in the resourceTypes
field of RecordingGroup.
If you set this option to EXCLUSION_BY_RESOURCE_TYPES
, Config records configuration changes for all supported resource types, except the resource types that you specify to exclude from being recorded in the resourceTypes
field of ExclusionByResourceTypes.
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:
Asia Pacific (Hyderabad)
Asia Pacific (Melbourne)
Europe (Spain)
Europe (Zurich)
Israel (Tel Aviv)
Middle East (UAE)
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\"
).
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.
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.
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:
the controlIdentifier
for the control--or guardrail--you are targeting.
the ARN associated with the target organizational unit (OU), which we call the targetIdentifier
.
the ARN associated with a resource that you wish to tag or untag.
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:
the controlIdentifier
for the control--or guardrail--you are targeting.
the ARN associated with the target organizational unit (OU), which we call the targetIdentifier
.
the ARN associated with a resource that you wish to tag or untag.
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 .
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 .
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.
The ARN of the enabled control.
", "EnabledControlSummary$arn": "The ARN of the enabled control.
", "GetEnabledControlInput$enabledControlIdentifier": "The controlIdentifier
of the enabled control.
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
.
The drift status of the enabled control.
Valid values:
DRIFTED
: The enabledControl
deployed in this configuration doesn’t match the configuration that AWS Control Tower expected.
IN_SYNC
: The enabledControl
deployed in this configuration matches the configuration that AWS Control Tower expected.
NOT_CHECKING
: AWS 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.
The drift status of the enabled control.
Valid values:
DRIFTED
: The enabledControl
deployed in this configuration doesn’t match the configuration that Amazon Web Services Control Tower expected.
IN_SYNC
: The enabledControl
deployed in this configuration matches the configuration that Amazon Web Services Control Tower expected.
NOT_CHECKING
: Amazon Web Services Control Tower does not check drift for this enabled control. Drift is not supported for the control type.
UNKNOWN
: Amazon Web Services Control Tower is not able to check the drift status for the enabled control.
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:
DRIFTED
: The landing zone deployed in this configuration does not match the configuration that Amazon Web Services Control Tower expected.
IN_SYNC
: The landing zone deployed in this configuration matches the configuration that Amazon Web Services Control Tower expected.
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:
SUCCEEDED
: The landing zone operation succeeded.
IN_PROGRESS
: The landing zone operation is in progress.
FAILED
: The landing zone operation failed.
The landing zone operation type.
Valid values:
DELETE
: The DeleteLandingZone
operation.
CREATE
: The CreateLandingZone
operation.
UPDATE
: The UpdateLandingZone
operation.
RESET
: The ResetLandingZone
operation.
The landing zone deployment status.
Valid values:
ACTIVE
: The landing zone is actively deployed.
PROCESSING
: The landing zone is processing deployment.
FAILED
: The landing zone failed deployment.
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.
A unique identifier assigned to a DeleteLandingZone
operation. You can use this identifier as an input of GetLandingZoneOperation
to check the operation's status.
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.
A unique identifier assigned to a UpdateLandingZone
operation. You can use this identifier as an input of GetLandingZoneOperation
to check the operation's status.
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.
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.
A list of tags, as key:value
strings.
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:
https://cost-optimization-hub.us-east-1.amazonaws.com
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.
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
.
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
.
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
.
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.
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.
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.
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.
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
.
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.
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
.
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
.
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
.
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.
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
.
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
.
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
.
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
.
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
.
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
.
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
.
The data and time when the investigation began. The value is an UTC ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z
.
The data and time when the investigation began. The value is an UTC ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z
.
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
.
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 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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
The Amazon EKS Auth API and the AssumeRoleForPodIdentity
action are only used by the EKS Pod Identity Agent.
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
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
.
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
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.
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.
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.
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.
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.
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.
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
.
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
.
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.
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.
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
.
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.
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.
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
:
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
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
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.
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.
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.
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
.
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.
The version of the add-on. The version must match one of the versions returned by DescribeAddonVersions
.
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.
The name of the add-on. The name must match one of the names returned by ListAddons
.
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.
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.
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:
Within one of the following private IP address blocks: 10.0.0.0/8
, 172.16.0.0/12
, or 192.168.0.0/16
.
Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.
Between /24 and /12.
You can only specify a custom CIDR block when you create a cluster and can't change this value once the cluster is created.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
.
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.
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.
The publisher of the add-on. For valid publishers
, don't specify a value for this property.
The owner of the add-on. For valid owners
, don't specify a value for this property.
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.
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:
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.
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:
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.
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:
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.
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).
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 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.
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:
Creates a new, empty file system. The file system will have an Amazon EFS assigned ID, and an initial lifecycle state creating
.
Returns with the description of the created file system.
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.
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:
The file system ID for which you are creating the mount target.
A subnet ID, which determines the following:
The VPC in which Amazon EFS creates the mount target
The Availability Zone in which Amazon EFS creates the mount target
The IP address range from which Amazon EFS selects the IP address of the mount target (if you don't specify an IP address in the request)
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:
Must belong to the same VPC as the subnets of the existing mount targets
Must not be in the same Availability Zone as any of the subnets of the existing mount targets
If the request satisfies the requirements, Amazon EFS does the following:
Creates a new mount target in the specified subnet.
Also creates a new network interface in the subnet as follows:
If the request provides an IpAddress
, Amazon EFS assigns that IP address to the network interface. Otherwise, Amazon EFS assigns a free address in the subnet (in the same way that the Amazon EC2 CreateNetworkInterface
call does when a request does not specify a primary private IP address).
If the request provides SecurityGroups
, this network interface is associated with those security groups. Otherwise, it belongs to the default security group for the subnet's VPC.
Assigns the description Mount target fsmt-id for file system fs-id
where fsmt-id
is the mount target ID, and fs-id
is the FileSystemId
.
Sets the requesterManaged
property of the network interface to true
, and the requesterId
value to EFS
.
Each Amazon EFS mount target has one corresponding requester-managed EC2 network interface. After the network interface is created, Amazon EFS sets the NetworkInterfaceId
field in the mount target's description to the network interface ID, and the IpAddress
field to its address. If network interface creation fails, the entire CreateMountTarget
operation fails.
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:
elasticfilesystem:CreateMountTarget
This operation also requires permissions for the following Amazon EC2 actions:
ec2:DescribeSubnets
ec2:DescribeNetworkInterfaces
ec2:CreateNetworkInterface
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:
Source file system - An existing EFS file system that you want replicated. The source file system cannot be a destination file system in an existing replication configuration.
Destination file system configuration - The configuration of the destination file system to which the source file system will be replicated. There can only be one destination file system in a replication configuration. The destination file system configuration consists of the following properties:
Amazon Web Services Region - The Amazon Web Services Region in which the destination file system is created. Amazon EFS replication is available in all Amazon Web Services Regions in which EFS is available. To use EFS replication in a Region that is disabled by default, you must first opt in to the Region. For more information, see Managing Amazon Web Services Regions 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 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:
Performance mode - The destination file system's performance mode matches that of the source file system, unless the destination file system uses EFS One Zone storage. In that case, the General Purpose performance mode is used. The performance mode cannot be changed.
Throughput mode - The destination file system's throughput mode matches that of the source file system. After the file system is created, you can modify the throughput mode.
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.
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 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:
Creates a new, empty file system. The file system will have an Amazon EFS assigned ID, and an initial lifecycle state creating
.
Returns with the description of the created file system.
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.
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:
The file system ID for which you are creating the mount target.
A subnet ID, which determines the following:
The VPC in which Amazon EFS creates the mount target
The Availability Zone in which Amazon EFS creates the mount target
The IP address range from which Amazon EFS selects the IP address of the mount target (if you don't specify an IP address in the request)
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:
Must belong to the same VPC as the subnets of the existing mount targets
Must not be in the same Availability Zone as any of the subnets of the existing mount targets
If the request satisfies the requirements, Amazon EFS does the following:
Creates a new mount target in the specified subnet.
Also creates a new network interface in the subnet as follows:
If the request provides an IpAddress
, Amazon EFS assigns that IP address to the network interface. Otherwise, Amazon EFS assigns a free address in the subnet (in the same way that the Amazon EC2 CreateNetworkInterface
call does when a request does not specify a primary private IP address).
If the request provides SecurityGroups
, this network interface is associated with those security groups. Otherwise, it belongs to the default security group for the subnet's VPC.
Assigns the description Mount target fsmt-id for file system fs-id
where fsmt-id
is the mount target ID, and fs-id
is the FileSystemId
.
Sets the requesterManaged
property of the network interface to true
, and the requesterId
value to EFS
.
Each Amazon EFS mount target has one corresponding requester-managed EC2 network interface. After the network interface is created, Amazon EFS sets the NetworkInterfaceId
field in the mount target's description to the network interface ID, and the IpAddress
field to its address. If network interface creation fails, the entire CreateMountTarget
operation fails.
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:
elasticfilesystem:CreateMountTarget
This operation also requires permissions for the following Amazon EC2 actions:
ec2:DescribeSubnets
ec2:DescribeNetworkInterfaces
ec2:CreateNetworkInterface
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:
Source file system - An existing EFS file system that you want replicated. The source file system cannot be a destination file system in an existing replication configuration.
Destination file system configuration - The configuration of the destination file system to which the source file system will be replicated. There can only be one destination file system in a replication configuration. The destination file system configuration consists of the following properties:
Amazon Web Services Region - The Amazon Web Services Region in which the destination file system is created. Amazon EFS replication is available in all Amazon Web Services Regions in which EFS is available. To use EFS replication in a Region that is disabled by default, you must first opt in to the Region. For more information, see Managing Amazon Web Services Regions in the Amazon Web Services General Reference Reference Guide
Availability 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 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:
Performance mode - The destination file system's performance mode matches that of the source file system, unless the destination file system uses EFS One Zone storage. In that case, the General Purpose performance mode is used. The performance mode cannot be changed.
Throughput mode - The destination file system's throughput mode matches that of the source file system. After the file system is created, you can modify the throughput mode.
The following properties are turned off by default:
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 file system. After the file system is created, you can change this setting.
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.
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.
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.
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.
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.
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.
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.
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:
elasticfilesystem:DescribeMountTargetSecurityGroups
action on the mount target's file system.
ec2:DescribeNetworkInterfaceAttribute
action on the mount target's network interface.
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
.
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.
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.
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:
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.
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
.
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:
The ID for the file system for which you are enabling, disabling, or modifying lifecycle management and EFS Intelligent-Tiering.
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 with separate LifecyclePolicy
objects. See the example requests in the following section for more information.
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.
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.
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.
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 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:
The ID for the file system for which you are enabling, disabling, or modifying Lifecycle management.
A LifecyclePolicies
array of LifecyclePolicy
objects that define when 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
.
Specifies which EFS file system to retrieve the BackupPolicy
for.
Specifies which EFS file system for which to retrieve the BackupPolicy
.
Specifies which EFS file system to retrieve the FileSystemPolicy
for.
(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).
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 to move files in the file system from primary storage to the IA storage class.
When to move files that are in IA storage to primary 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.
An array of LifecyclePolicy
objects that define the file system's LifecycleConfiguration
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.
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.
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 storage transition. See the example requests in the following section for more information.
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.
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.
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
.
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
.
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.
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 for the file system, you need to again opt in to the Amazon Web Services Region. For more information, see Managing Amazon Web Services Regions in the Amazon Web Services General Reference Guide.
The Error
state occurs when either the source or the destination file system (or both) is in a failed state and is unrecoverable. For more information, see Monitoring replication status in the Amazon EFS User Guide. You must delete the replication configuration, and then restore the most recent backup of the failed file system (either the source or the destination) to a new 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 for the file system, you need to again opt in to the Amazon Web Services Region. For more information, see Managing Amazon Web Services Regions in the Amazon Web Services General Reference Guide.
The Error
state occurs when either the source or the destination file system (or both) is in a failed state and is unrecoverable. For more information, see Monitoring replication status in the Amazon EFS User Guide. You must delete the replication configuration, and then restore the most recent backup of the failed file system (either the source or the destination) to a new file system.
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.
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.
ENABLED
- EFS is automatically backing up 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.
DISABLING
- EFS is turning off automatic backups for the file system.
Describes the status of the file system's backup policy.
ENABLED
– EFS is automatically backing up 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.
DISABLING
– EFS is turning off automatic backups for the file system.
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
.
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
.
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
.
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": "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:
Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS.
Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP.
Gateway Load Balancer - Operates at the network layer (layer 3).
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.
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.
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:
Deregistration delay in the Application Load Balancers User Guide
Deregistration delay in the Network Load Balancers User Guide
Deregistration delay in the Gateway Load Balancers User Guide
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:
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:
Target group attributes in the Application Load Balancers Guide
Target group attributes in the Network Load Balancers Guide
Target group attributes in the Gateway Load Balancers Guide
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
.
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
.
[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:
deletion_protection.enabled
- Indicates whether deletion protection is enabled. The value is true
or false
. The default is false
.
load_balancing.cross_zone.enabled
- Indicates whether cross-zone load balancing is enabled. The possible values are true
and false
. The default for Network Load Balancers and Gateway Load Balancers is false
. The default for Application Load Balancers is true
, and cannot be changed.
The following attributes are supported by both Application Load Balancers and Network Load Balancers:
access_logs.s3.enabled
- Indicates whether access logs are enabled. The value is true
or false
. The default is false
.
access_logs.s3.bucket
- The name of the S3 bucket for the access logs. This attribute is required if access 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.
access_logs.s3.prefix
- The prefix for the location in the S3 bucket for the access logs.
ipv6.deny_all_igw_traffic
- Blocks internet gateway (IGW) access to the load balancer. It is set to false
for internet-facing load balancers and true
for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.
The following attributes are supported by only Application Load Balancers:
idle_timeout.timeout_seconds
- The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.
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 is defensive
.
routing.http.drop_invalid_header_fields.enabled
- Indicates whether HTTP headers with invalid header fields are removed by the load balancer (true
) or routed to targets (false
). The default is false
.
routing.http.preserve_host_header.enabled
- Indicates whether the Application Load Balancer should preserve the Host
header in the HTTP request and send it to the target without any change. The possible values are true
and false
. The default is false
.
routing.http.x_amzn_tls_version_and_cipher_suite.enabled
- Indicates whether the two headers (x-amzn-tls-version
and x-amzn-tls-cipher-suite
), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The x-amzn-tls-version
header has information about the TLS protocol version negotiated with the client, and the x-amzn-tls-cipher-suite
header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are true
and false
. The default is false
.
routing.http.xff_client_port.enabled
- Indicates whether the X-Forwarded-For
header should preserve the source port that the client used to connect to the load balancer. The possible values are true
and false
. The default is false
.
routing.http.xff_header_processing.mode
- Enables you to modify, preserve, or remove the X-Forwarded-For
header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are append
, preserve
, and remove
. The default is append
.
If the value is append
, the Application Load Balancer adds the client IP address (of the last hop) to the X-Forwarded-For
header in the HTTP request before it sends it to targets.
If the value is preserve
the Application Load Balancer preserves the X-Forwarded-For
header in the HTTP request, and sends it to targets without any change.
If the value is remove
, the Application Load Balancer removes the X-Forwarded-For
header in the HTTP request before it sends it to targets.
routing.http2.enabled
- Indicates whether HTTP/2 is enabled. The possible values are true
and false
. The default is true
. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.
waf.fail_open.enabled
- Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to Amazon Web Services WAF. The possible values are true
and false
. The default is false
.
The following attributes are supported by only Network Load Balancers:
dns_record.client_routing_policy
- Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are availability_zone_affinity
with 100 percent zonal affinity, partial_availability_zone_affinity
with 85 percent zonal affinity, and any_availability_zone
with 0 percent zonal affinity.
The name of the attribute.
The following attributes are supported by all load balancers:
deletion_protection.enabled
- Indicates whether deletion protection is enabled. The value is true
or false
. The default is false
.
load_balancing.cross_zone.enabled
- Indicates whether cross-zone load balancing is enabled. The possible values are true
and false
. The default for Network Load Balancers and Gateway Load Balancers is false
. The default for Application Load Balancers is true
, and cannot be changed.
The following attributes are supported by both Application Load Balancers and Network Load Balancers:
access_logs.s3.enabled
- Indicates whether access logs are enabled. The value is true
or false
. The default is false
.
access_logs.s3.bucket
- The name of the S3 bucket for the access logs. This attribute is required if access 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.
access_logs.s3.prefix
- The prefix for the location in the S3 bucket for the access logs.
ipv6.deny_all_igw_traffic
- Blocks internet gateway (IGW) access to the load balancer. It is set to false
for internet-facing load balancers and true
for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.
The following attributes are supported by only Application Load Balancers:
idle_timeout.timeout_seconds
- The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.
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 is defensive
.
routing.http.drop_invalid_header_fields.enabled
- Indicates whether HTTP headers with invalid header fields are removed by the load balancer (true
) or routed to targets (false
). The default is false
.
routing.http.preserve_host_header.enabled
- Indicates whether the Application Load Balancer should preserve the Host
header in the HTTP request and send it to the target without any change. The possible values are true
and false
. The default is false
.
routing.http.x_amzn_tls_version_and_cipher_suite.enabled
- Indicates whether the two headers (x-amzn-tls-version
and x-amzn-tls-cipher-suite
), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The x-amzn-tls-version
header has information about the TLS protocol version negotiated with the client, and the x-amzn-tls-cipher-suite
header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are true
and false
. The default is false
.
routing.http.xff_client_port.enabled
- Indicates whether the X-Forwarded-For
header should preserve the source port that the client used to connect to the load balancer. The possible values are true
and false
. The default is false
.
routing.http.xff_header_processing.mode
- Enables you to modify, preserve, or remove the X-Forwarded-For
header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are append
, preserve
, and remove
. The default is append
.
If the value is append
, the Application Load Balancer adds the client IP address (of the last hop) to the X-Forwarded-For
header in the HTTP request before it sends it to targets.
If the value is preserve
the Application Load Balancer preserves the X-Forwarded-For
header in the HTTP request, and sends it to targets without any change.
If the value is remove
, the Application Load Balancer removes the X-Forwarded-For
header in the HTTP request before it sends it to targets.
routing.http2.enabled
- Indicates whether HTTP/2 is enabled. The possible values are true
and false
. The default is true
. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.
waf.fail_open.enabled
- Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to Amazon Web Services WAF. The possible values are true
and false
. The default is false
.
The following attributes are supported by only Network Load Balancers:
dns_record.client_routing_policy
- Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are availability_zone_affinity
with 100 percent zonal affinity, partial_availability_zone_affinity
with 85 percent zonal affinity, and any_availability_zone
with 0 percent zonal affinity.
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
.
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:
application-load-balancers
condition-values-per-alb-rule
condition-wildcards-per-alb-rule
gateway-load-balancers
gateway-load-balancers-per-vpc
geneve-target-groups
listeners-per-application-load-balancer
listeners-per-network-load-balancer
network-load-balancers
rules-per-application-load-balancer
target-groups
target-groups-per-action-on-application-load-balancer
target-groups-per-action-on-network-load-balancer
target-groups-per-application-load-balancer
targets-per-application-load-balancer
targets-per-availability-zone-per-gateway-load-balancer
targets-per-availability-zone-per-network-load-balancer
targets-per-network-load-balancer
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:
deregistration_delay.timeout_seconds
- The amount of time, in seconds, for Elastic Load Balancing to wait before changing the state of a deregistering target from draining
to unused
. The range is 0-3600 seconds. The default value is 300 seconds. If the target is a Lambda function, this attribute is not supported.
stickiness.enabled
- Indicates whether target stickiness is enabled. The value is true
or false
. The default is false
.
stickiness.type
- Indicates the type of stickiness. The possible values are:
lb_cookie
and app_cookie
for Application Load Balancers.
source_ip
for Network Load Balancers.
source_ip_dest_ip
and source_ip_dest_ip_proto
for Gateway Load Balancers.
The following attributes are supported by Application Load Balancers and Network Load Balancers:
load_balancing.cross_zone.enabled
- Indicates whether cross zone load balancing is enabled. The value is true
, false
or use_load_balancer_configuration
. The default is use_load_balancer_configuration
.
target_group_health.dns_failover.minimum_healthy_targets.count
- The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are off
or an integer from 1 to the maximum number of targets. The default is off
.
target_group_health.dns_failover.minimum_healthy_targets.percentage
- The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are off
or an integer from 1 to 100. The default is off
.
target_group_health.unhealthy_state_routing.minimum_healthy_targets.count
- The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are 1 to the maximum number of targets. The default is 1.
target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage
- The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are off
or an integer from 1 to 100. The default is off
.
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:
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
.
slow_start.duration_seconds
- The time period, in seconds, during which a newly registered target receives an increasing share of the traffic to the target group. After this time period ends, the target receives its full share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 seconds (disabled).
stickiness.app_cookie.cookie_name
- Indicates the name of the application-based cookie. Names that start with the following prefixes are not allowed: AWSALB
, AWSALBAPP
, and AWSALBTG
; they're reserved for use by the load balancer.
stickiness.app_cookie.duration_seconds
- The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the application-based cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).
stickiness.lb_cookie.duration_seconds
- The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).
The following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function:
lambda.multi_value_headers.enabled
- Indicates whether the request and response headers that are exchanged between the load balancer and the Lambda function include arrays of values or strings. The value is true
or false
. The default is false
. If the value is false
and the request contains a duplicate header field name or query parameter key, the load balancer uses the last value sent by the client.
The following attributes are supported only by Network Load Balancers:
deregistration_delay.connection_termination.enabled
- Indicates whether the load balancer terminates connections at the end of the deregistration timeout. The value is true
or false
. For new UDP/TCP_UDP target groups the default is true
. Otherwise, the default is false
.
preserve_client_ip.enabled
- Indicates whether client IP preservation is enabled. The value is true
or false
. The default is disabled if the target group type is IP address and the target group protocol is TCP or TLS. Otherwise, the default is enabled. Client IP preservation cannot be disabled for UDP and TCP_UDP target groups.
proxy_protocol_v2.enabled
- Indicates whether Proxy Protocol version 2 is enabled. The value is true
or false
. The default is false
.
target_health_state.unhealthy.connection_termination.enabled
- Indicates whether the load balancer terminates connections to unhealthy targets. The value is true
or false
. The default is true
.
The following attributes are supported only by Gateway Load Balancers:
target_failover.on_deregistration
- Indicates how the Gateway Load Balancer handles existing flows when a target is deregistered. The possible values are rebalance
and no_rebalance
. The default is no_rebalance
. The two attributes (target_failover.on_deregistration
and target_failover.on_unhealthy
) can't be set independently. The value you set for both attributes must be the same.
target_failover.on_unhealthy
- Indicates how the Gateway Load Balancer handles existing flows when a target is unhealthy. The possible values are rebalance
and no_rebalance
. The default is no_rebalance
. The two attributes (target_failover.on_deregistration
and target_failover.on_unhealthy
) cannot be set independently. The value you set for both attributes must be the same.
The name of the attribute.
The following attributes are supported by all load balancers:
deregistration_delay.timeout_seconds
- The amount of time, in seconds, for Elastic Load Balancing to wait before changing the state of a deregistering target from draining
to unused
. The range is 0-3600 seconds. The default value is 300 seconds. If the target is a Lambda function, this attribute is not supported.
stickiness.enabled
- Indicates whether target stickiness is enabled. The value is true
or false
. The default is false
.
stickiness.type
- Indicates the type of stickiness. The possible values are:
lb_cookie
and app_cookie
for Application Load Balancers.
source_ip
for Network Load Balancers.
source_ip_dest_ip
and source_ip_dest_ip_proto
for Gateway Load Balancers.
The following attributes are supported by Application Load Balancers and Network Load Balancers:
load_balancing.cross_zone.enabled
- Indicates whether cross zone load balancing is enabled. The value is true
, false
or use_load_balancer_configuration
. The default is use_load_balancer_configuration
.
target_group_health.dns_failover.minimum_healthy_targets.count
- The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are off
or an integer from 1 to the maximum number of targets. The default is off
.
target_group_health.dns_failover.minimum_healthy_targets.percentage
- The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are off
or an integer from 1 to 100. The default is off
.
target_group_health.unhealthy_state_routing.minimum_healthy_targets.count
- The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are 1 to the maximum number of targets. The default is 1.
target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage
- The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are off
or an integer from 1 to 100. The default is off
.
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:
load_balancing.algorithm.type
- The load balancing algorithm determines how the load balancer selects targets when routing requests. The value 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 to the target group. After this time period ends, the target receives its full share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 seconds (disabled).
stickiness.app_cookie.cookie_name
- Indicates the name of the application-based cookie. Names that start with the following prefixes are not allowed: AWSALB
, AWSALBAPP
, and AWSALBTG
; they're reserved for use by the load balancer.
stickiness.app_cookie.duration_seconds
- The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the application-based cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).
stickiness.lb_cookie.duration_seconds
- The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).
The following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function:
lambda.multi_value_headers.enabled
- Indicates whether the request and response headers that are exchanged between the load balancer and the Lambda function include arrays of values or strings. The value is true
or false
. The default is false
. If the value is false
and the request contains a duplicate header field name or query parameter key, the load balancer uses the last value sent by the client.
The following attributes are supported only by Network Load Balancers:
deregistration_delay.connection_termination.enabled
- Indicates whether the load balancer terminates connections at the end of the deregistration timeout. The value is true
or false
. For new UDP/TCP_UDP target groups the default is true
. Otherwise, the default is false
.
preserve_client_ip.enabled
- Indicates whether client IP preservation is enabled. The value is true
or false
. The default is disabled if the target group type is IP address and the target group protocol is TCP or TLS. Otherwise, the default is enabled. Client IP preservation cannot be disabled for UDP and TCP_UDP target groups.
proxy_protocol_v2.enabled
- Indicates whether Proxy Protocol version 2 is enabled. The value is true
or false
. The default is false
.
target_health_state.unhealthy.connection_termination.enabled
- Indicates whether the load balancer terminates connections to unhealthy targets. The value is true
or false
. The default is true
.
The following attributes are supported only by Gateway Load Balancers:
target_failover.on_deregistration
- Indicates how the Gateway Load Balancer handles existing flows when a target is deregistered. The possible values are rebalance
and no_rebalance
. The default is no_rebalance
. The two attributes (target_failover.on_deregistration
and target_failover.on_unhealthy
) can't be set independently. The value you set for both attributes must be the same.
target_failover.on_unhealthy
- Indicates how the Gateway Load Balancer handles existing flows when a target is unhealthy. The possible values are rebalance
and no_rebalance
. The default is no_rebalance
. The two attributes (target_failover.on_deregistration
and target_failover.on_unhealthy
) cannot be set independently. The value you set for both attributes must be the same.
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:
https://freetier.us-east-1.api.aws
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:
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.
", + "refs": { + "Expression$Not": "Return results that don’t match the Expression
that you specified.
An expression that specifies the conditions that you want each FreeTierUsage
object to meet.
Return results that match all Expressions
that you specified in the array.
Return results that match any of the Expressions
that you specified. in the array.
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\"
.
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.
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
.
Describes the usage details of the offer. For example, this might be Global-BoxUsage:freetrial
.
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.
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.
Any files that FSx has already exported are not reverted.
FSx continues to export any files that are in-flight when the cancel operation is received.
FSx does not export any files that have not yet been exported.
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:
A Persistent deployment type
Are not linked to a data repository
For more information about backups, see the following:
For Amazon FSx for Lustre, see Working with FSx for Lustre backups.
For Amazon FSx for Windows, see Working with FSx for Windows backups.
For Amazon FSx for NetApp ONTAP, see Working with FSx for NetApp ONTAP backups.
For Amazon FSx for OpenZFS, see Working with FSx for OpenZFS backups.
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:
Creates a new Amazon FSx backup with an assigned ID, and an initial lifecycle state of CREATING
.
Returns the description of the backup.
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.
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.
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 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
.
When using this operation, keep the following in mind:
The implementation might return fewer than MaxResults
cache descriptions while still including a NextToken
value.
The order of caches returned in the response of one DescribeFileCaches
call and the order of caches returned across the responses of a multicall iteration is unspecified.
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 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
.
When using this operation, keep the following in mind:
The implementation might return fewer than MaxResults
file system descriptions while still including a NextToken
value.
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 multicall iteration is unspecified.
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:
The operation might return fewer than the MaxResults
value of snapshot descriptions while still including a NextToken
value.
The order of snapshots returned in the response of one DescribeSnapshots
call and the order of backups returned across the responses of a multi-call iteration is unspecified.
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 NextToken
value. 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:
The implementation might return fewer than MaxResults
file system descriptions while still including a NextToken
value.
The order of tags returned in the response of one ListTagsForResource
call and the order of tags returned across the responses of a multi-call iteration is unspecified.
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.
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:
AuditLogConfiguration
AutomaticBackupRetentionDays
DailyAutomaticBackupStartTime
SelfManagedActiveDirectoryConfiguration
StorageCapacity
StorageType
ThroughputCapacity
DiskIopsConfiguration
WeeklyMaintenanceStartTime
For FSx for Lustre file systems, you can update the following properties:
AutoImportPolicy
AutomaticBackupRetentionDays
DailyAutomaticBackupStartTime
DataCompressionType
LogConfiguration
LustreRootSquashConfiguration
PerUnitStorageThroughput
StorageCapacity
WeeklyMaintenanceStartTime
For FSx for ONTAP file systems, you can update the following properties:
AddRouteTableIds
AutomaticBackupRetentionDays
DailyAutomaticBackupStartTime
DiskIopsConfiguration
FsxAdminPassword
RemoveRouteTableIds
StorageCapacity
ThroughputCapacity
WeeklyMaintenanceStartTime
For FSx for OpenZFS file systems, you can update the following properties:
AddRouteTableIds
AutomaticBackupRetentionDays
CopyTagsToBackups
CopyTagsToVolumes
DailyAutomaticBackupStartTime
DiskIopsConfiguration
RemoveRouteTableIds
StorageCapacity
ThroughputCapacity
WeeklyMaintenanceStartTime
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:
AuditLogConfiguration
AutomaticBackupRetentionDays
DailyAutomaticBackupStartTime
SelfManagedActiveDirectoryConfiguration
StorageCapacity
StorageType
ThroughputCapacity
DiskIopsConfiguration
WeeklyMaintenanceStartTime
For FSx for Lustre file systems, you can update the following properties:
AutoImportPolicy
AutomaticBackupRetentionDays
DailyAutomaticBackupStartTime
DataCompressionType
LogConfiguration
LustreRootSquashConfiguration
PerUnitStorageThroughput
StorageCapacity
WeeklyMaintenanceStartTime
For FSx for ONTAP file systems, you can update the following properties:
AddRouteTableIds
AutomaticBackupRetentionDays
DailyAutomaticBackupStartTime
DiskIopsConfiguration
FsxAdminPassword
HAPairs
RemoveRouteTableIds
StorageCapacity
ThroughputCapacity
ThroughputCapacityPerHAPair
WeeklyMaintenanceStartTime
For FSx for OpenZFS file systems, you can update the following properties:
AddRouteTableIds
AutomaticBackupRetentionDays
CopyTagsToBackups
CopyTagsToVolumes
DailyAutomaticBackupStartTime
DiskIopsConfiguration
RemoveRouteTableIds
StorageCapacity
ThroughputCapacity
WeeklyMaintenanceStartTime
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.
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:
FILE_SYSTEM_UPDATE
- A file system update administrative action initiated from the Amazon FSx console, API (UpdateFileSystem
), or CLI (update-file-system
).
THROUGHPUT_OPTIMIZATION
- After the FILE_SYSTEM_UPDATE
task to increase a file system's throughput capacity has been completed successfully, a THROUGHPUT_OPTIMIZATION
task starts.
You can track the storage-optimization progress using the ProgressPercent
property. When THROUGHPUT_OPTIMIZATION
has been completed successfully, the parent FILE_SYSTEM_UPDATE
action status changes to COMPLETED
. For more information, see Managing throughput capacity in the Amazon FSx for Windows File Server User Guide.
STORAGE_OPTIMIZATION
- After the FILE_SYSTEM_UPDATE
task to increase a file system's storage capacity has been completed successfully, a STORAGE_OPTIMIZATION
task starts.
For Windows and ONTAP, storage optimization is the process of migrating the file system data to newer larger disks.
For Lustre, storage optimization consists of rebalancing the data across the existing and newly added file servers.
You can track the storage-optimization progress using the ProgressPercent
property. When STORAGE_OPTIMIZATION
has been completed successfully, the parent FILE_SYSTEM_UPDATE
action status changes to COMPLETED
. For more information, see Managing storage capacity in the Amazon FSx for Windows File Server User Guide, Managing storage capacity in the Amazon FSx for Lustre User Guide, and Managing storage capacity and provisioned IOPS in the Amazon FSx for NetApp ONTAP User Guide.
FILE_SYSTEM_ALIAS_ASSOCIATION
- A file system update to associate a new Domain Name System (DNS) alias with the file system. For more information, see AssociateFileSystemAliases.
FILE_SYSTEM_ALIAS_DISASSOCIATION
- A file system update to disassociate a DNS alias from the file system. For more information, see DisassociateFileSystemAliases.
IOPS_OPTIMIZATION
- After the FILE_SYSTEM_UPDATE
task to increase a file system's throughput capacity has been completed successfully, a IOPS_OPTIMIZATION
task starts.
You can track the storage-optimization progress using the ProgressPercent
property. When IOPS_OPTIMIZATION
has been completed successfully, the parent FILE_SYSTEM_UPDATE
action status changes to COMPLETED
. For more information, see Managing provisioned SSD IOPS in the Amazon FSx for Windows File Server User Guide.
STORAGE_TYPE_OPTIMIZATION
- After the FILE_SYSTEM_UPDATE
task to increase a file system's throughput capacity has been completed successfully, a STORAGE_TYPE_OPTIMIZATION
task starts.
You can track the storage-optimization progress using the ProgressPercent
property. When STORAGE_TYPE_OPTIMIZATION
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_RESTORE
- An Amazon FSx for OpenZFS volume is returned to the state saved by the specified snapshot, initiated from an API (RestoreVolumeFromSnapshot
) or CLI (restore-volume-from-snapshot
).
SNAPSHOT_UPDATE
- A snapshot update to an Amazon FSx for OpenZFS volume initiated from the Amazon FSx console, API (UpdateSnapshot
), or CLI (update-snapshot
).
RELEASE_NFS_V3_LOCKS
- Tracks the release of Network File System (NFS) V3 locks on an Amazon FSx for OpenZFS file system.
Describes the type of administrative action, as follows:
FILE_SYSTEM_UPDATE
- A file system update administrative action initiated from the Amazon FSx console, API (UpdateFileSystem
), or CLI (update-file-system
).
THROUGHPUT_OPTIMIZATION
- After the FILE_SYSTEM_UPDATE
task to increase a file system's throughput capacity has been completed successfully, a THROUGHPUT_OPTIMIZATION
task starts.
You can track the storage-optimization progress using the ProgressPercent
property. When THROUGHPUT_OPTIMIZATION
has been completed successfully, the parent FILE_SYSTEM_UPDATE
action status changes to COMPLETED
. For more information, see Managing throughput capacity in the Amazon FSx for Windows File Server User Guide.
STORAGE_OPTIMIZATION
- After the FILE_SYSTEM_UPDATE
task to increase a file system's storage capacity has been completed successfully, a STORAGE_OPTIMIZATION
task starts.
For Windows and ONTAP, storage optimization is the process of migrating the file system data to newer larger disks.
For Lustre, storage optimization consists of rebalancing the data across the existing and newly added file servers.
You can track the storage-optimization progress using the ProgressPercent
property. When STORAGE_OPTIMIZATION
has been completed successfully, the parent FILE_SYSTEM_UPDATE
action status changes to COMPLETED
. For more information, see Managing storage capacity in the Amazon FSx for Windows File Server User Guide, Managing storage capacity in the Amazon FSx for Lustre User Guide, and Managing storage capacity and provisioned IOPS in the Amazon FSx for NetApp ONTAP User Guide.
FILE_SYSTEM_ALIAS_ASSOCIATION
- A file system update to associate a new Domain Name System (DNS) alias with the file system. For more information, see AssociateFileSystemAliases.
FILE_SYSTEM_ALIAS_DISASSOCIATION
- A file system update to disassociate a DNS alias from the file system. For more information, see DisassociateFileSystemAliases.
IOPS_OPTIMIZATION
- After the FILE_SYSTEM_UPDATE
task to increase a file system's throughput capacity has been completed successfully, a IOPS_OPTIMIZATION
task starts.
You can track the storage-optimization progress using the ProgressPercent
property. When IOPS_OPTIMIZATION
has been completed successfully, the parent FILE_SYSTEM_UPDATE
action status changes to COMPLETED
. For more information, see Managing provisioned SSD IOPS in the Amazon FSx for Windows File Server User Guide.
STORAGE_TYPE_OPTIMIZATION
- After the FILE_SYSTEM_UPDATE
task to increase a file system's throughput capacity has been completed successfully, a STORAGE_TYPE_OPTIMIZATION
task starts.
You can track the storage-optimization progress using the ProgressPercent
property. When STORAGE_TYPE_OPTIMIZATION
has been completed successfully, the parent FILE_SYSTEM_UPDATE
action status changes to COMPLETED
.
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
) or CLI (restore-volume-from-snapshot
).
SNAPSHOT_UPDATE
- A snapshot update to an Amazon FSx for OpenZFS volume initiated from the Amazon FSx console, API (UpdateSnapshot
), or CLI (update-snapshot
).
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
).
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.
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.
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:
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.
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.
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.
The target value for the administration action, provided in the UpdateFileSystem
operation. Returned for FILE_SYSTEM_UPDATE
administrative actions.
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.
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.
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:
The destination ARN that you provide (either CloudWatch Logs log group or Kinesis Data Firehose delivery stream) must be in the same Amazon Web Services partition, Amazon Web Services Region, and Amazon Web Services account as your Amazon FSx file system.
The name of the Amazon CloudWatch Logs log group must begin with the /aws/fsx
prefix. The name of the Amazon Kinesis Data Firehose delivery stream must begin with the aws-fsx
prefix.
If you do not provide a destination in AuditLogDestination
, Amazon FSx will create and use a log stream in the CloudWatch Logs /aws/fsx/windows
log group.
If AuditLogDestination
is provided and the resource does not exist, the request will fail with a BadRequest
error.
If FileAccessAuditLogLevel
and FileShareAccessAuditLogLevel
are both set to DISABLED
, you cannot specify a destination in AuditLogDestination
.
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:
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
.
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:
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
.
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.
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:
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
.
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:
For MULTI_AZ_1
and SINGLE_AZ_2
, valid values are 160, 320, 640, 1280, 2560, 3840, 5120, 7680, or 10240 MBps.
For SINGLE_AZ_1
, valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MBps.
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:
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
.
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:
For MULTI_AZ_1
and SINGLE_AZ_2
, valid values are 160, 320, 640, 1280, 2560, 3840, 5120, 7680, or 10240 MB/s.
For SINGLE_AZ_1
, valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s.
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.
MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ) unavailability.
SINGLE_AZ_1
- A file system configured 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.
", - "OntapFileSystemConfiguration$DeploymentType": "Specifies the FSx for ONTAP file system deployment type in use in the file system.
MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ) unavailability.
SINGLE_AZ_1
- A file system configured 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.
" + "CreateFileSystemOntapConfiguration$DeploymentType": "Specifies the FSx for ONTAP file system deployment type to use in creating the file system.
MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ) unavailability.
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.
", + "OntapFileSystemConfiguration$DeploymentType": "Specifies the FSx for ONTAP file system deployment type in use in the file system.
MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ) unavailability.
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.
" } }, "OntapEndpointIpAddresses": { @@ -1894,8 +1959,9 @@ "OpenZFSCopyStrategy": { "base": null, "refs": { - "CreateOpenZFSOriginSnapshotConfiguration$CopyStrategy": "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.
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 the data from a 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.
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.
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.
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.
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 the data from a 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.
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.
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:
default
: This is the default policy. A maximum of six hourly snapshots taken five minutes past the hour. A maximum of two daily snapshots taken Monday through Saturday at 10 minutes after midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes after midnight.
default-1weekly
: This policy is the same as the default
policy except that it only retains one snapshot from the weekly schedule.
none
: This policy does not take any snapshots. This policy can be assigned to volumes to prevent automatic snapshots from being taken.
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:
default
: This is the default policy. A maximum of six hourly snapshots taken five minutes past the hour. A maximum of two daily snapshots taken Monday through Saturday at 10 minutes after midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes after midnight.
default-1weekly
: This policy is the same as the default
policy except that it only retains one snapshot from the weekly schedule.
none
: This policy does not take any snapshots. This policy can be assigned to volumes to prevent automatic snapshots from being taken.
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:
default
: This is the default policy. A maximum of six hourly snapshots taken five minutes past the hour. A maximum of two daily snapshots taken Monday through Saturday at 10 minutes after midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes after midnight.
default-1weekly
: This policy is the same as the default
policy except that it only retains one snapshot from the weekly schedule.
none
: This policy does not take any snapshots. This policy can be assigned to volumes to prevent automatic snapshots from being taken.
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:
default
: This is the default policy. A maximum of six hourly snapshots taken five minutes past the hour. A maximum of two daily snapshots taken Monday through Saturday at 10 minutes after midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes after midnight.
default-1weekly
: This policy is the same as the default
policy except that it only retains one snapshot from the weekly schedule.
none
: This policy does not take any snapshots. This policy can be assigned to volumes to prevent automatic snapshots from being taken.
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:
FAILED
- Amazon FSx failed to process the administrative action successfully.
IN_PROGRESS
- Amazon FSx is processing the administrative action.
PENDING
- Amazon FSx is waiting to process the administrative action.
COMPLETED
- Amazon FSx has finished processing the administrative task.
UPDATED_OPTIMIZING
- For a storage-capacity increase update, Amazon FSx has updated the file system with the new storage capacity, and is now performing the storage-optimization process.
The status of the administrative action, as follows:
FAILED
- Amazon FSx failed to process the administrative action successfully.
IN_PROGRESS
- Amazon FSx is processing the administrative action.
PENDING
- Amazon FSx is waiting to process the administrative action.
COMPLETED
- Amazon FSx has finished processing the administrative task.
UPDATED_OPTIMIZING
- For a storage-capacity increase update, Amazon FSx has updated the file system with the new storage capacity, and is now performing the storage-optimization process.
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.
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:
For SCRATCH_2
, PERSISTENT_2
and PERSISTENT_1
deployment types using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.
For PERSISTENT_1
HDD file systems, valid values are increments of 6000 GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file systems.
For SCRATCH_1
deployment type, valid values are 1200 GiB, 2400 GiB, 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).
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:
For SSD storage, valid values are 32 GiB-65,536 GiB (64 TiB).
For HDD storage, valid values are 2000 GiB-65,536 GiB (64 TiB).
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.
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:
For SCRATCH_2
, PERSISTENT_2
and PERSISTENT_1
deployment types using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.
For PERSISTENT_1
HDD file systems, valid values are increments of 6000 GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file systems.
For SCRATCH_1
deployment type, valid values are 1200 GiB, 2400 GiB, and increments of 3600 GiB.
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:
For SSD storage, valid values are 32 GiB-65,536 GiB (64 TiB).
For HDD storage, valid values are 2000 GiB-65,536 GiB (64 TiB).
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.
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 SCRATCH_2
, PERSISTENT_1
, and PERSISTENT_2 SSD
deployment types, valid values are in multiples of 2400 GiB. The value must be greater than the current storage capacity.
For PERSISTENT HDD
file systems, valid values are multiples of 6000 GiB for 12-MBps throughput per TiB file systems and multiples of 1800 GiB for 40-MBps throughput per TiB file systems. The values must be greater than the current storage capacity.
For SCRATCH_1
file systems, you can't increase the storage capacity.
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.
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.
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.
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.
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:
SNAPSHOT_ONLY
- (Default value) moves cold snapshots to the capacity pool storage tier.
AUTO
- moves cold user data and snapshots to the capacity pool storage tier based on your access patterns.
ALL
- moves all user data blocks in both the active file system and Snapshot copies to the storage pool tier.
NONE
- keeps a volume's data in the primary storage tier, preventing it from being moved to the capacity pool tier.
Specifies the tiering policy used to transition data. Default value is SNAPSHOT_ONLY
.
SNAPSHOT_ONLY
- moves cold snapshots to the capacity pool storage tier.
AUTO
- moves cold user data and snapshots to the capacity pool storage tier based on your access patterns.
ALL
- moves all user data blocks in both the active file system and Snapshot copies to the storage pool tier.
NONE
- keeps a volume's data in the primary storage tier, preventing it from being moved to the capacity pool tier.
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
.
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.
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.
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.
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.
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
.
The lifecycle state of the volume being restored.
", "Volume$Lifecycle": "The lifecycle status of the volume.
AVAILABLE
- The volume is fully available for use.
CREATED
- The volume has been created.
CREATING
- Amazon FSx is creating the new volume.
DELETING
- Amazon FSx is deleting an existing volume.
FAILED
- Amazon FSx was unable to create the volume.
MISCONFIGURED
- The volume is in a failed but recoverable state.
PENDING
- Amazon FSx hasn't started creating the volume.
The path to the volume from the root volume. For example, fsx/parentVolume/volume1
.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
.
Represents a member of the complex data structure. The datatype
of the property can be either primitive or another struct
.
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.
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.
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.
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.
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.
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
.
The fully qualified name of the struct node for the custom property if the data type of the custom property is Struct
or StructArray
.
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
.
(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/
.
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.
An optional attribute specifying the upper bound for STRING
and WSTRING
.
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.
The structured message for the message signal. It can be defined with either a primitiveMessageDefinition
, structuredMessageListDefinition
, or structuredMessageDefinition
recursively.
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.
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
.
The vehicle middleware defined as a type of network interface. Examples of vehicle middleware include ROS2
and SOME/IP
.
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\"
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
.
The offset used to calculate the signal value. Combined with scaling, the calculation is value = raw_value * scaling + offset
.
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.
The detailed message for the decoder manifest. When a decoder manifest is in an INVALID
status, the message contains detailed reason and help information.
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
.
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
.
The fully qualified name of the custom structure. For example, the fully qualified name of a custom structure might be ComplexDataTypes.VehicleDataTypes.SVMCamera
.
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.
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.
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.
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.
Specify the logGroupName
parameter to cause all log events stored in the log group to be encrypted with that key. Only the log events ingested after the key is associated are encrypted with that key.
Associating a KMS key with a log group overrides any existing associations between the log group and a KMS key. After a KMS key is associated with a log group, all newly ingested data for the log group 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.
Associating a key with a log group does not cause the results of queries of that log group to be encrypted with that key. To have query results encrypted with a KMS key, you must use an AssociateKmsKey
operation with the resourceIdentifier
parameter that specifies a query-result
resource.
Specify the resourceIdentifier
parameter with a query-result
resource, to use that key to encrypt the stored results of all future StartQuery operations in the account. The response from a GetQueryResults operation will still return the query results in plain text.
Even if you have not associated a key with your query results, the query results are encrypted when stored, using the default CloudWatch Logs method.
If you run a query from a monitoring account that queries logs in a source account, the query results key from the monitoring account, if any, is used.
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.
Cancels the specified export task.
The task must be in the PENDING
or RUNNING
state.
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:
Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.
Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.
If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Use CreateDelivery
to create a delivery by pairing exactly one delivery source and one delivery destination.
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:
Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.
Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.
If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Use CreateDelivery
to create a delivery by pairing exactly one delivery source and one delivery destination.
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.
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.
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:
Log group names must be unique within a Region for an Amazon Web Services account.
Log group names can be between 1 and 512 characters long.
Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), '.' (period), and '#' (number sign)
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.
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:
Log stream names must be unique within the log group.
Log stream names can be between 1 and 512 characters long.
Don't use ':' (colon) or '*' (asterisk) characters.
Deletes a CloudWatch Logs account policy.
To use this operation, you must be signed on with the logs:DeleteDataProtectionPolicy
and logs:DeleteAccountPolicy
permissions.
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.
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.
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
.
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.
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.
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:
Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.
Use PutDeliveryDestination
to create a delivery destination, which is a logical object that represents the actual delivery destination.
If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Use CreateDelivery
to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.
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:
Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.
Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.
Use this operation in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.
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:
Use PutDeliverySource
to create a delivery source, which is a logical object that represents the resource that is actually sending the logs.
Use PutDeliveryDestination
to create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.
If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Use CreateDelivery
to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.
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:
Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.
Use PutDeliveryDestination
to create a delivery destination, which is a logical object that represents the actual delivery destination.
If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Use CreateDelivery
to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.
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:
Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.
Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.
Use this operation in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.
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:
Use PutDeliverySource
to create a delivery source, which is a logical object that represents the resource that is actually sending the logs.
Use PutDeliveryDestination
to create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.
If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Use CreateDelivery
to create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.
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.
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:
The maximum batch size is 1,048,576 bytes. This size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event.
None of the log events in the batch can be more than 2 hours in the future.
None of the log events in the batch can be more than 14 days in the past. Also, none of the log events can be from earlier than the retention period of the log group.
The log events in the batch must be in chronological order by their timestamp. The timestamp is the time that the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC
. (In Amazon Web Services Tools for PowerShell and the Amazon Web Services SDK for .NET, the timestamp is specified in .NET format: yyyy-mm-ddThh:mm:ss
. For example, 2017-09-15T13:45:30
.)
A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails.
Each log event can be no larger than 256 KB.
The maximum number of log events in a batch is 10,000.
The quota of five requests per second per log stream has been removed. Instead, PutLogEvents
actions are throttled based on a per-second per-account quota. You can request an increase to the per-second throttling quota by using the Service Quotas service.
If a call to PutLogEvents
returns \"UnrecognizedClientException\" the most likely cause is a non-valid Amazon Web Services access key ID or secret key.
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.
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.
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.
Specifies whether the anomaly detector is currently active. To change its status, use the enabled
parameter in the UpdateLogAnomalyDetector operation.
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.
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.
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:
Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.
Create a delivery destination, which is a logical object that represents the actual delivery destination.
If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.
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:
Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.
Create a delivery destination, which is a logical object that represents the actual delivery destination.
If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.
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:
Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.
Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.
If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.
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:
Create a delivery source, which is a logical object that represents the resource that is actually sending the logs. For more information, see PutDeliverySource.
Create a delivery destination, which is a logical object that represents the actual delivery destination. For more information, see PutDeliveryDestination.
If you are delivering logs cross-account, you must use PutDeliveryDestinationPolicy in the destination account to assign an IAM policy to the destination. This policy allows delivery to that destination.
Create a delivery by pairing exactly one delivery source and one delivery destination. For more information, see CreateDelivery.
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.
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
.
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
.
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.
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
.
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.
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.
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
.
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.
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:
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
", + "DescribeLogGroupsRequest$logGroupClass": "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
", + "LogGroup$logGroupClass": "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
" + } + }, "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.
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.
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.
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
.
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
.
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
.
This is true if the query was stopped by the StopQuery
operation.
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.
Specifies whether the value of value
is in seconds, minutes, or hours.
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.
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 <*>
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:
when the CreateAccessor
action does not set a networkType
.
to all existing Accessor
tokens that were created before the networkType
property was introduced.
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.
Determines whether the vote percentage must be greater than the ThresholdPercentage
or must be greater than or equal to the ThreholdPercentage
to be approved.
Determines whether the vote percentage must be greater than the ThresholdPercentage
or must be greater than or equal to the ThresholdPercentage
to be approved.
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:
Sample utterances. For example, \"I want to order a pizza\" and \"Can I order a pizza.\" You can't provide utterances for built-in intents.
Information to be gathered. You specify slots for the information that you bot requests from the user. You can specify standard slot types, such as date and time, or custom slot types for your application.
How the intent is fulfilled. You can provide a Lambda function or configure the intent to return the intent information to your client application. If you use a Lambda function, Amazon Lex invokes the function when all of the intent information is available.
A confirmation prompt to send to the user to confirm an intent. For example, \"Shall I order your pizza?\"
A conclusion statement to send to the user after the intent is fulfilled. For example, \"I ordered your pizza.\"
A follow-up prompt that asks the user for additional activity. For example, \"Do you want a drink with your pizza?\"
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.
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:
The childDirected
field was set to true when the bot was created.
You are using slot obfuscation with one or more slots.
You opted out of participating in improving Amazon Lex.
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.
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.
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:
metrics
– A list of AnalyticsUtteranceMetric objects. In each object, use the name
field to specify the metric to calculate, the statistic
field to specify whether to calculate the Sum
, Average
, or Max
number, and the order
field to specify whether to sort the results in Ascending
or Descending
order.
startDateTime
and endDateTime
– Define a time range for which you want to retrieve results.
Of the optional fields, you can organize the results in the following ways:
Use the filters
field to filter the results, the groupBy
field to specify categories by which to group the results, and the binBy
field to specify time intervals by which to group the results.
Use the maxResults
field to limit the number of results to return in a single response and the nextToken
field to return the next batch of results if the response does not return the full set of results.
Note that an order
field exists in both binBy
and metrics
. Currently, you can specify it in either field, but not in both.
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.
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.
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.
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
.
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.
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.
If the botStatus
is Failed
, this contains a list of reasons that the version couldn't be built.
If the exportStatus
is failed, contains one or more reasons why the export could not be completed.
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.
creationStartTime
– The time at which the generation request was created.
lastUpdatedTime
– The time at which the generation request was last updated.
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
.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
The ID of the action the user interacted with. This corresponds to the ACTION_ID
field of the Action interaction schema.
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.
Represents an action interaction event sent using the PutActionInteractions
API.
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
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\\\"
.
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.
Represents item interaction event information sent using the PutEvents
API.
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.
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).
userId
sessionId
eventType
timestamp
recommendationId
impression
The event value that corresponds to the EVENT_VALUE
field of the Interactions schema.
The event value that corresponds to the EVENT_VALUE
field of the Item interactions schema.
Represents item metadata added to an Items dataset using the PutItems
API. For more information see Importing Items Incrementally.
Represents item metadata added to an Items dataset using the PutItems
API. For more information see Importing items individually.
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.
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.
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.
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.
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.
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.
Represents user metadata added to a Users dataset using the PutUsers
API. For more information see Importing users individually.
The ID of the user who interacted with the action. This corresponds to the USER_ID
field of the Action interaction schema.
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.
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:
USER_PERSONALIZATION - userId
required, itemId
not used
RELATED_ITEMS - itemId
required, userId
not used
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
.
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.
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.
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 PredictedAction
s.
An object that identifies an item.
The and APIs return a list of PredictedItem
s.
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.
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:
CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
DELETE PENDING > DELETE IN_PROGRESS
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:
Interactions
Items
Users
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:
CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
DELETE PENDING > DELETE IN_PROGRESS
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:
Item interactions
Items
Users
Action interactions
Actions
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:
CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
DELETE PENDING > DELETE IN_PROGRESS
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:
CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
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.
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:
Interactions
Items
Users
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:
CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
DELETE PENDING
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:
CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
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:
CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
DELETE PENDING > DELETE IN_PROGRESS
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:
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, 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:
CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
DELETE PENDING
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:
CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
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:
CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
DELETE PENDING > DELETE IN_PROGRESS
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:
CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
STOP PENDING > STOP IN_PROGRESS > INACTIVE > START PENDING > START IN_PROGRESS > ACTIVE
DELETE PENDING > DELETE IN_PROGRESS
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.
Deletes a dataset group. Before you delete a dataset group, you must delete the following:
All associated event trackers.
All associated solutions.
All datasets in the dataset group.
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:
CREATE_PENDING > CREATE_STOPPED
or
CREATE_IN_PROGRESS > CREATE_STOPPING > CREATE_STOPPED
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.
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
.
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:
Interactions
Items
Users
One of the following values:
Interactions
Items
Users
The type of dataset.
One of the following (case insensitive) values:
Interactions
Items
Users
Actions
Action_Interactions
One of the following values:
Interactions
Items
Users
Actions
Action_Interactions
The dataset type. One of the following values:
Interactions
Items
Users
Event-Interactions
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.
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.
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).
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).
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).
A token returned from the previous call to ListDatasets
for getting the next set of dataset import jobs (if they exist).
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).
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.
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.
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.
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.
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
.
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.
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
.
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
.
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 '*'.
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
If true
, the cluster can be accessed from a public network.
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.
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.
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:
If ClusterExists
is set to true
, ClusterIdentifier
is required.
If ClusterExists
is set to false
and ClusterIdentifier
isn't specified, all snapshots associated with deleted clusters (orphaned snapshots) are returned.
If ClusterExists
is set to false
and ClusterIdentifier
is specified for a deleted cluster, snapshots associated with that cluster are returned.
If ClusterExists
is set to false
and ClusterIdentifier
is specified for an existing cluster, no snapshots are returned.
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.
The next action that the bot should take in its interaction with the user. The possible values are:
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 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.
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.
The next action that the bot should take in its interaction with the user. 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.
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.
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.
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:
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).
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.
If the value is text/plain; charset=utf-8
, Amazon Lex V2 returns text in the response.
The type of response. Same as the type specified in the responseContentType
field in the request.
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.
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.
Indicates the format for audio input or that the content is text. The header must start with one of the following prefixes:
PCM format, audio data must be in little-endian byte order.
audio/l16; rate=16000; channels=1
audio/x-l16; sample-rate=16000; channel-count=1
audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false
Opus format
audio/x-cbr-opus-with-preamble;preamble-size=0;bit-rate=256000;frame-size-milliseconds=4
Text format
text/plain; charset=utf-8
The message that Amazon Lex V2 returns in the response can be either text or speech based on the responseContentType
value.
If the value is text/plain;charset=utf-8
, Amazon Lex V2 returns text in the response.
If the value begins with audio/
, Amazon Lex V2 returns speech in the response. Amazon Lex V2 uses Amazon Polly to generate the speech using the configuration that you specified in the responseContentType
parameter. For example, if you specify audio/mpeg
as the value, Amazon Lex V2 returns speech in the MPEG format.
If the value is audio/pcm
, the speech returned is audio/pcm
at 16 KHz in 16-bit, little-endian format.
The following are the accepted values:
audio/mpeg
audio/ogg
audio/pcm (16 KHz)
audio/* (defaults to mpeg)
text/plain; charset=utf-8
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.
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.
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.
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.
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.
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
.
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.
Spell by letter - \"b\" \"o\" \"b\"
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 .
" + "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.
Spell by letter - \"b\" \"o\" \"b\"
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 .
" } }, "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.
To successfully complete the PutObject
request, you must have the s3:PutObject
in your IAM permissions.
To successfully change the objects acl of your PutObject
request, you must have the s3:PutObjectAcl
in your IAM permissions.
To successfully set the tag-set with your PutObject
request, you must have the s3:PutObjectTagging
in your IAM permissions.
The Content-MD5
header is required for any request to upload an object with a retention period configured using Amazon S3 Object Lock. For more information about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview in the Amazon S3 User Guide.
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.
You can set access permissions using one of the following methods:
Specify a canned ACL with the x-amz-acl
request header. Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and permissions. Specify the canned ACL name as the value of x-amz-ac
l. If you use this header, you cannot use other access control-specific headers in your request. For more information, see Canned ACL.
Specify access permissions explicitly with the x-amz-grant-read
, x-amz-grant-read-acp
, x-amz-grant-write-acp
, and x-amz-grant-full-control
headers. When using these headers, you specify explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3 groups) who will receive the permission. If you use these ACL-specific headers, you cannot use x-amz-acl
header to set a canned ACL. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview.
You specify each grantee as a type=value pair, where the type is one of the following:
id
– if the value specified is the canonical user ID of an Amazon Web Services account
uri
– if you are granting permissions to a predefined group
emailAddress
– if the value specified is the email address of an Amazon Web Services account
Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:
US East (N. Virginia)
US West (N. California)
US West (Oregon)
Asia Pacific (Singapore)
Asia Pacific (Sydney)
Asia Pacific (Tokyo)
Europe (Ireland)
South America (São Paulo)
For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.
For example, the following x-amz-grant-read
header grants list objects permission to the two Amazon Web Services accounts identified by their email addresses.
x-amz-grant-read: emailAddress=\"xyz@amazon.com\", emailAddress=\"abc@amazon.com\"
You can use either a canned ACL or specify access permissions explicitly. You cannot do both.
You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:
By the person's ID:
<Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> </Grantee>
DisplayName is optional and ignored in the request.
By URI:
<Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>
By Email address:
<Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee>
The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser.
Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:
US East (N. Virginia)
US West (N. California)
US West (Oregon)
Asia Pacific (Singapore)
Asia Pacific (Sydney)
Asia Pacific (Tokyo)
Europe (Ireland)
South America (São Paulo)
For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.
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
:
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.
The DefaultRetention
settings require both a mode and a period.
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.
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.
The DefaultRetention
settings require both a mode and a period.
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 enable Object Lock for new or existing buckets. For more information, see Configuring Object Lock.
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.
InvalidTag
- The tag provided was not a valid tag. This error can occur if the tag did not pass input validation. For more information, see Object Tagging.
MalformedXML
- The XML provided does not match the schema.
OperationAborted
- A conflicting conditional action is currently in progress against this resource. Please try again.
InternalError
- The service was unable to apply the provided tag to the object.
The following operations are related to PutObjectTagging
:
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
:
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.
You must have the s3:AssociateAccessGrantsIdentityCenter
permission to use this operation.
You must also have the following permissions: sso:CreateApplication
, sso:PutApplicationGrant
, and sso:PutApplicationAuthenticationMethod
.
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.
You must have the s3:CreateAccessGrant
permission to use this operation.
For any directory identity - sso:DescribeInstance
and sso:DescribeApplication
For directory users - identitystore:DescribeUser
For directory groups - identitystore:DescribeGroup
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.
You must have the s3:CreateAccessGrantsInstance
permission to use this operation.
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.
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://<bucket-name>
A bucket and prefix - S3://<bucket-name>/<prefix>
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.
You must have the s3:CreateAccessGrantsLocation
permission to use this operation.
You must also have the following permission for the specified IAM role: iam:PassRole
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
:
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
:
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:
Tags
LifecycleConfigurations for deleting expired objects
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:
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
:
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.
You must have the s3:DeleteAccessGrant
permission to use this operation.
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.
You must have the s3:DeleteAccessGrantsInstance
permission to use this operation.
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.
You must have the s3:DeleteAccessGrantsInstanceResourcePolicy
permission to use this operation.
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.
You must have the s3:DeleteAccessGrantsLocation
permission to use this operation.
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
:
Deletes the specified Object Lambda Access Point.
The following actions are related to DeleteAccessPointForObjectLambda
:
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
:
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
:
Dissociates the Amazon Web Services IAM Identity Center instance from the S3 Access Grants instance.
You must have the s3:DissociateAccessGrantsIdentityCenter
permission to use this operation.
You must have the sso:DeleteApplication
permission to use this operation.
Get the details of an access grant from your S3 Access Grants instance.
You must have the s3:GetAccessGrant
permission to use this operation.
Retrieves the S3 Access Grants instance for a Region in your account.
You must have the s3:GetAccessGrantsInstance
permission to use this operation.
Retrieve the S3 Access Grants instance that contains a particular prefix.
You must have the s3:GetAccessGrantsInstanceForPrefix
permission for the caller account to use this operation.
The prefix owner account must grant you the following permissions to their S3 Access Grants instance: s3:GetAccessGrantsInstanceForPrefix
.
Returns the resource policy of the S3 Access Grants instance.
You must have the s3:GetAccessGrantsInstanceResourcePolicy
permission to use this operation.
Retrieves the details of a particular location registered in your S3 Access Grants instance.
You must have the s3:GetAccessGrantsLocation
permission to use this operation.
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
:
Returns configuration for an Object Lambda Access Point.
The following actions are related to GetAccessPointConfigurationForObjectLambda
:
Returns configuration information about the specified Object Lambda Access Point
The following actions are related to GetAccessPointForObjectLambda
:
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
:
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:
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 section.
The following actions are related to GetBucketTagging
:
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.
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.
You must have the s3:GetDataAccess
permission to use this operation.
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 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
:
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
:
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.
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.
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.
You must have the s3:ListAccessGrants
permission to use this operation.
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.
You must have the s3:ListAccessGrantsInstances
permission to use this operation.
Returns a list of the locations registered in your S3 Access Grants instance.
You must have the s3:ListAccessGrantsLocations
permission to use this operation.
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
:
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
:
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.
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.
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.
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.
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.
You must have the s3:PutAccessGrantsInstanceResourcePolicy
permission to use this operation.
Replaces configuration for an Object Lambda Access Point.
The following actions are related to PutAccessPointConfigurationForObjectLambda
:
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
:
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
:
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.
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.
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.
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.
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.
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.
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.
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.
You must have the s3:UpdateAccessGrantsLocation
permission to use this operation.
You must also have the following permission: iam:PassRole
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.
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.
The ID of the S3 Access Grants instance. The ID is default
. You can have one S3 Access Grants instance per Region per account.
The ID of the S3 Access Grants instance. The ID is default
. You can have one S3 Access Grants instance per Region per account.
The ID of the S3 Access Grants instance. The ID is default
. You can have one S3 Access Grants instance per Region per account.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
The policy details for the PutMultiRegionAccessPoint
request.
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.
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.
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.
The S3 path of the data to which you are granting access. It is the result of appending the Subprefix
to the location scope.
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.
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.
The S3 path of the data to which you are granting access. It is the result of appending the Subprefix
to the location scope.
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.
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.
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.
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.
The S3 path of the data to which you are granting access. It is the result of appending the Subprefix
to the location scope.
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>
.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
Sends a call to Zelkova, an automated reasoning engine, to ensure your resource policy does not allow broad access to your secret, for example policies that use a wildcard for the principal.
Checks for correct syntax in a policy.
Verifies the policy does not lock out a caller.
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.
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
.
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.
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
.
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.
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
.
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.
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.
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.
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.
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.
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.
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.
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
.
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.
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.
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.
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.
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.
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.
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
.
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).
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.
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.
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
.
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
.
The options for customizing a security control parameter that is a boolean. For a boolean parameter, the options are true
and false
.
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.
PASSED
- Standards check passed for all evaluated resources.
WARNING
- Some information is missing or this check is not supported for your configuration.
FAILED
- Standards check failed for at least one evaluated resource.
NOT_AVAILABLE
- Check could not be performed due to a service outage, API error, or because the result of the Config evaluation was NOT_APPLICABLE
. If the Config evaluation result was NOT_APPLICABLE
, then after 3 days, Security Hub automatically archives the finding.
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
.
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
.
The ICMP type for which to deny or allow access. To deny or allow all types, use the value -1
.
The number of findings returned for each GroupByAttributeValue
.
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.
INFORMATIONAL
- 0
LOW
- 1
MEDIUM
- 40
HIGH
- 70
CRITICAL
- 90
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.
INFORMATIONAL
- 0
LOW
- 1
MEDIUM
- 40
HIGH
- 70
CRITICAL
- 90
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.
The message of the error returned by the BatchImportFindings
operation.
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
.
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
.
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
.
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.
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.
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.
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.
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.
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.
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.
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.
Software and Configuration Checks
TTPs
Effects
Unusual Behaviors
Sensitive Data Identifications
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.
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.
List tags for a given resource.
Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @
.
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:
The execution status isn't SUCCEEDED
.
Your workflow execution has not exceeded the redrivable period of 14 days. Redrivable period refers to the time during which you can redrive a given execution. This period starts from the day a state machine completes its execution.
The workflow execution has not exceeded the maximum open time of one year. For more information about state machine quotas, see Quotas related to state machine executions.
The execution event history count is less than 24,999. Redriven executions append their event history to the existing event history. Make sure your workflow execution contains less than 24,999 events to accommodate the ExecutionRedriven
history event and at least one other history event.
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:
The execution status isn't SUCCEEDED
.
Your workflow execution has not exceeded the redrivable period of 14 days. Redrivable period refers to the time during which you can redrive a given execution. This period starts from the day a state machine completes its execution.
The workflow execution has not exceeded the maximum open time of one year. For more information about state machine quotas, see Quotas related to state machine executions.
The execution event history count is less than 24,999. Redriven executions append their event history to the existing event history. Make sure your workflow execution contains less than 24,999 events to accommodate the ExecutionRedriven
history event and at least one other history event.
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.
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.
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.
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.
Stops an execution.
This API action is not supported by EXPRESS
state machines.
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: _ . : / = + - @
.
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 data flow
An Amazon Web Services service integration request and response
An HTTP Task request and response
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.
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:
The following qualified state machine ARN refers to a Distributed Map state with a label mapStateLabel
in a state machine named myStateMachine
.
arn:partition:states:region:account-id:stateMachine:myStateMachine/mapStateLabel
If you provide a qualified state machine ARN that refers to a Distributed Map state, the request fails with ValidationException
.
The following qualified state machine ARN refers to an alias named PROD
.
arn:<partition>:states:<region>:<account-id>:stateMachine:<myStateMachine:PROD>
If you provide a qualified state machine ARN that refers to a version ARN or an alias ARN, the request starts execution for that version or alias.
The following unqualified state machine ARN refers to a state machine named myStateMachine
.
arn:<partition>:states:<region>:<account-id>:stateMachine:<myStateMachine>
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
.
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
.
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.
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.
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:
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.
" + } + }, "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.
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
.
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.
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.
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
.
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.
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.
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.
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.
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.
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.
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.
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
.
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.
For executions of type STANDARD
, or for a Distributed Map that includes child workflows of type STANDARD
, redriveStatusReason
can include one of the following reasons:
State machine is in DELETING status
.
Execution is RUNNING and cannot be redriven
.
Execution is SUCCEEDED and cannot be redriven
.
Execution was started before the launch of RedriveExecution
.
Execution history event limit exceeded
.
Execution has exceeded the max execution time
.
Execution redrivable period exceeded
.
For a Distributed Map that includes child workflows of type EXPRESS
, redriveStatusReason
is only returned if the child workflows are not redrivable. This happens when the child workflow executions have completed successfully.
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.
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.
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.
Indicates whether automatic language identification was enabled (TRUE
) for the specified transcription job.
Indicates whether automatic multi-language identification was enabled (TRUE
) for the specified transcription job.
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.
Contains GenerateAbstractiveSummary
, which is a required parameter if you want to enable Generative call summarization in your Call Analytics request.
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.
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.
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.
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.
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
).
The hour for the maintenance window end (00
-23
).
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
).
The minutes for the maintenance window end (00
-59
).
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.
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.
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.
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.
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.
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.
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.